diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/DQBomService.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/DQBomService.java index 50ebaa40..5154205e 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/DQBomService.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/DQBomService.java @@ -3,7 +3,6 @@ package com.nflg.product.bomnew.service; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.convert.Convert; import cn.hutool.core.date.DateUtil; -import cn.hutool.core.date.LocalDateTimeUtil; import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.RandomUtil; import cn.hutool.core.util.StrUtil; @@ -387,6 +386,8 @@ public class DQBomService { List datas = getAll(rootBomRowId); datas.remove(0); + List materialNos = datas.stream().map(BomNewDQbomVO::getMaterialNo).collect(Collectors.toList()); + List materialBaseInfos = materialMainService.getMaterialBaseInfo(materialNos); ImportSapParamDTO sapDto = new ImportSapParamDTO(); sapDto.setZID(RandomUtil.randomNumbers(5)); sapDto.setI_WERKS("1"); @@ -397,28 +398,35 @@ public class DQBomService { T1DTO t1 = new T1DTO(); t1.setID(RandomUtil.randomNumbers(5)); t1.setMATNR(d.getParentMaterialNo()); - t1.setMEINS(d.getMaterialUnit()); t1.setMENGE(d.getNum().toString()); t1.setPOSTP(d.getProjectType()); + t1.setDATUM(dateYMD); + + t1.setMEINS(d.getMaterialUnit()); if (BomConstant.PROJECT_TYPE_TEMPORARY.equals(d.getProjectType())) { t1.setIDNRK(""); t1.setPOTX1(d.getMaterialName()); } else { t1.setIDNRK(d.getMaterialNo()); + BaseMaterialVO bm = materialBaseInfos.stream().filter(m -> m.getMaterialNo().equals(d.getMaterialNo())).findFirst().orElse(null); + if (!Objects.isNull(bm)) { + t1.setMEINS(bm.getMaterialUnit()); + } } - t1.setDATUM(dateYMD); + t1s.add(t1); }); sapDto.setT1(t1s); ResultVO resultVO = SpringUtil.getBean(SapOpUtilService.class).importToSapV2(sapDto, null); - if (resultVO.getState().equals(STATE.Success.getState())) { - BomNewDQbomParentEntity parentEntity = new BomNewDQbomParentEntity(); - parentEntity.setRowId(rootBomRowId); - parentEntity.setSapState(MBomConstantEnum.MBomStatusEnum.PUB_SAP.getValue()); - parentEntity.setSapTime(LocalDateTimeUtil.now()); - dQBomParentService.updateById(parentEntity); - } - return resultVO; + boolean update = dQBomParentService.lambdaUpdate() + .eq(BomNewDQbomParentEntity::getRowId, rootBomRowId) + .set(BomNewDQbomParentEntity::getSapTime, LocalDateTime.now()) + .set(resultVO.getState().equals(STATE.Success.getState()) + , BomNewDQbomParentEntity::getSapState, MBomConstantEnum.MBomStatusEnum.PUB_SAP.getValue()) + .set(!resultVO.getState().equals(STATE.Success.getState()) + , BomNewDQbomParentEntity::getSapState, MBomConstantEnum.MBomStatusEnum.PUB_ERROR.getValue()) + .update(); + return update ? resultVO : ResultVO.error("更新数据失败"); } public BomDQbomEditDetailVO editDetail(Long rowId, Long bomRowId) {