From a809862b54d07de61c16588c39c2ca881749c62e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E9=B9=8F=E9=A3=9E?= Date: Fri, 31 May 2024 14:33:46 +0800 Subject: [PATCH] =?UTF-8?q?optimize:=20=E5=AF=BC=E5=85=A5SAP=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/nflg/product/bomnew/api/user/PBomApi.java | 5 ++--- .../bomnew/service/BomNewPbomExportToSAPImpl.java | 3 ++- .../bomnew/service/BomNewPbomParentService.java | 3 ++- .../product/bomnew/service/EBomImportService.java | 15 +++++++++++++-- .../product/bomnew/service/SapOpUtilService.java | 4 ++-- 5 files changed, 21 insertions(+), 9 deletions(-) diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/PBomApi.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/PBomApi.java index 32eb889e..c20a6264 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/PBomApi.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/PBomApi.java @@ -283,10 +283,9 @@ public class PBomApi extends BaseApi { @PostMapping("realesePbom") @ApiOperation("发布Pbom") @LogRecord(success = "发布PBom,物料编码:{{#bom.materialNo}}-版本:{{#bom.currentVersion}} 操作结果:{{#_ret}}", bizNo = "{{#bomRowId}}",type = "发布PBom") - public ResultVO realesePbom(@Valid @RequestBody @NotNull PbomImportToSAPQuery query) { + public ResultVO> realesePbom(@Valid @RequestBody @NotNull PbomImportToSAPQuery query) { bomNewPbomParentService.realesePbom(query.getRootBomRowId()); - bomNewPbomParentService.importToSAP2(query); - return ResultVO.success(); + return ResultVO.success(bomNewPbomParentService.importToSAP2(query)); } diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewPbomExportToSAPImpl.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewPbomExportToSAPImpl.java index 77b92cb0..d3b73f0e 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewPbomExportToSAPImpl.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewPbomExportToSAPImpl.java @@ -206,7 +206,8 @@ public class BomNewPbomExportToSAPImpl implements IBomNewPbomExportToSAP { private BomNewPbomParentEntity getParent(BomNewPbomChildEntity child) { return bomNewPbomParentService.lambdaQuery() .eq(BomNewPbomParentEntity::getMaterialNo, child.getMaterialNo()) - .eq(BomNewPbomParentEntity::getStatus, PBomStatusEnum.FACTORY_CONFIRM.getValue()) + .eq(!is21, BomNewPbomParentEntity::getStatus, PBomStatusEnum.FACTORY_CONFIRM.getValue()) + .eq(is21, BomNewPbomParentEntity::getStatus, PBomStatusEnum.PUBLISH.getValue()) .eq(BomNewPbomParentEntity::getFacCode, child.getFacCode()) .ne(BomNewPbomParentEntity::getCreatedBy, "admin") .orderByDesc(BomNewPbomParentEntity::getCurrentVersion) diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewPbomParentService.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewPbomParentService.java index 5b11ca9a..f2b1794a 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewPbomParentService.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewPbomParentService.java @@ -1018,7 +1018,8 @@ public class BomNewPbomParentService extends ServiceImpl parentMaterialNos = allBom.stream().filter(u -> PBomStatusEnum.WAIT_PUBLISH.equalsValue(u.getStatus()) && u.getBomRowId() > 0).map(u->u.getMaterialNo()).collect(Collectors.toList()); parentMaterialNos.add(parent.getMaterialNo()); - Integer state = (parent.getMaterialNo().startsWith("31") && parent.getFacCode().equals(EBomConstant.MAIN_FACTORY_CODE_1010)) ? PBomStatusEnum.WAIT_FACTORY.getValue() : PBomStatusEnum.PUBLISH.getValue(); + //Integer state = (parent.getMaterialNo().startsWith("31") && parent.getFacCode().equals(EBomConstant.MAIN_FACTORY_CODE_1010)) ? PBomStatusEnum.WAIT_FACTORY.getValue() : PBomStatusEnum.PUBLISH.getValue(); + Integer state = parent.getMaterialNo().startsWith("31") ? PBomStatusEnum.FACTORY_CONFIRM.getValue() : PBomStatusEnum.PUBLISH.getValue(); bomRowIds.add(bomRowId); this.getBaseMapper().bomRelease(state, SessionUtil.getUserName(), bomRowIds); //同步sap diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/EBomImportService.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/EBomImportService.java index c494e6a1..8906aa8d 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/EBomImportService.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/EBomImportService.java @@ -331,12 +331,14 @@ public class EBomImportService { } for (EbomExcelDTO data : datas) { buildChild(children, materialBaseInfos, data - , parents.stream().filter(p -> p.getMaterialNo().equals(data.getParentMaterialNo())).findFirst().get()); + , parents.stream().filter(p -> p.getMaterialNo().equals(data.getParentMaterialNo())).findFirst().get(), + parents); } return Pair.of(parents, children); } - private void buildChild(List children, List materialBaseInfos, EbomExcelDTO data, BomNewEbomParentEntity p) { + private void buildChild(List children, List materialBaseInfos + , EbomExcelDTO data, BomNewEbomParentEntity p, List parents) { BomNewEbomChildEntity child = new BomNewEbomChildEntity(); child.setRowId(IdWorker.getId()); child.setParentRowId(p.getRowId()); @@ -379,8 +381,17 @@ public class EBomImportService { child.setCreatedBy(SessionUtil.getUserCode()); child.setRemark(data.getRemark()); child.setSource(EBomSourceEnum.FROM_EXCE.getValue()); + child.setVirtualPartType(VirtualPackageTypeEnum.UN_VIRTUAL_PACKAGE.getValue()); setVirtualPackageType(child); children.add(child); + //如果是虚拟包,且没有parent,则需要补上 + if (!Objects.equals(child.getVirtualPartType(), VirtualPackageTypeEnum.UN_VIRTUAL_PACKAGE.getValue()) + && parents.stream().noneMatch(pt -> Objects.equals(pt.getMaterialNo(), child.getMaterialNo()))) { + BomNewEbomParentEntity cp = buildParent(materialBaseInfos, data); + cp.setMaterialNo(child.getMaterialNo()); + cp.setMaterialDesc(child.getMaterialDesc()); + parents.add(cp); + } } private BomNewEbomParentEntity buildParent(List materialBaseInfos, EbomExcelDTO data) { diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/SapOpUtilService.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/SapOpUtilService.java index 17f74e0a..253be3d7 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/SapOpUtilService.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/SapOpUtilService.java @@ -36,7 +36,7 @@ public class SapOpUtilService { @Resource SapService sapService; - private final static Pattern PATTERN = Pattern.compile("\\b\\d{10}\\b"); + private final static Pattern PATTERN = Pattern.compile("\\d{10}"); /** * sap 创建 @@ -203,7 +203,7 @@ public class SapOpUtilService { errorMsgVOS.add(OperationErrorMsgVO.create(matcher.group(), it.getSTATUS())); } } else { - OperationErrorMsgVO.create(buildErrCol1(it), it.getSTATUS()); + errorMsgVOS.add(OperationErrorMsgVO.create(buildErrCol1(it), it.getSTATUS())); } });