diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/BatchBomApi.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/BatchBomApi.java index dbfca896..d8a9dcac 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/BatchBomApi.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/BatchBomApi.java @@ -69,7 +69,7 @@ public class BatchBomApi extends BaseApi { if (CollUtil.isNotEmpty(addRowIds)) { addRowIds.forEach(rootRowId -> { BomNewEbomExportToSAP exportToSAP = new BomNewEbomExportToSAP(); - errorMsgVOS.addAll(exportToSAP.export(rootRowId)); + errorMsgVOS.addAll(exportToSAP.export(rootRowId, true)); }); } return ResultVO.success(errorMsgVOS); @@ -86,7 +86,7 @@ public class BatchBomApi extends BaseApi { PbomImportToSAPQuery query = new PbomImportToSAPQuery(); query.setRootBomRowId(rootRowId); query.setIsForSale(false); - errorMsgVOS.addAll(bomNewPbomParentService.importToSAP2(query)); + errorMsgVOS.addAll(bomNewPbomParentService.importToSAP2(query, true)); }); } return ResultVO.success(errorMsgVOS); diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/EbomApi.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/EbomApi.java index 0841bdf5..15d275e2 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/EbomApi.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/EbomApi.java @@ -180,7 +180,7 @@ public class EbomApi extends BaseApi { errorMsgVOS.addAll(bomNewEbomParentService.convertToPBom(paramDto)); paramDto.getBomRowIds().forEach(rootRowId -> { BomNewEbomExportToSAP exportToSAP = new BomNewEbomExportToSAP(); - errorMsgVOS.addAll(exportToSAP.export(rootRowId)); + errorMsgVOS.addAll(exportToSAP.export(rootRowId, false)); }); return ResultVO.success(errorMsgVOS); @@ -469,7 +469,7 @@ public class EbomApi extends BaseApi { VUtils.isTure(rootBomRowIds.size() > 1).throwMessage("每次只能导入1条"); // return ResultVO.success(bomNewEbomParentService.importToSAP(rootBomRowIds.get(0))); BomNewEbomExportToSAP exportToSAP = new BomNewEbomExportToSAP(); - return ResultVO.success(exportToSAP.export(rootBomRowIds.get(0))); + return ResultVO.success(exportToSAP.export(rootBomRowIds.get(0), false)); } /** 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 89ed62e8..d4b1490e 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 @@ -336,7 +336,7 @@ public class PBomApi extends BaseApi { .last(" order by current_version desc limit 1").one(); query.setRootBomRowId(parentEnt.getRowId()); } - return ResultVO.success(bomNewPbomParentService.importToSAP2(query)); + return ResultVO.success(bomNewPbomParentService.importToSAP2(query, false)); } @@ -389,7 +389,7 @@ public class PBomApi extends BaseApi { @PostMapping("importToSAP") @ApiOperation("导入到SAP") public ResultVO> importToSAP(@Valid @RequestBody @NotNull PbomImportToSAPQuery query) { - return ResultVO.success(bomNewPbomParentService.importToSAP2(query)); + return ResultVO.success(bomNewPbomParentService.importToSAP2(query, false)); } /** diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewEbomExportToSAP.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewEbomExportToSAP.java index cd7c39c9..4180ec84 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewEbomExportToSAP.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewEbomExportToSAP.java @@ -50,7 +50,7 @@ public class BomNewEbomExportToSAP { private final BomNewSapErrorMsgService bomNewSapErrorMsgService = SpringUtil.getBean(BomNewSapErrorMsgService.class); private final SapErrorMsgUtil sapErrorMsgUtil = SpringUtil.getBean(SapErrorMsgUtil.class); - public List export(Long rootBomRowId) { + public List export(Long rootBomRowId, boolean singleLevel) { BomNewEbomParentEntity root = bomNewEbomParentService.getById(rootBomRowId); // VUtils.isTure(Objects.isNull(root)).throwMessage("数据不存在"); if (Objects.isNull(root)) return Collections.emptyList(); @@ -78,6 +78,9 @@ public class BomNewEbomExportToSAP { sapDto.setI_STLAN("2"); sapDto.setI_EMPNO(root.getCreatedBy()); sapDto.setT1(Convert.toList(T1DTO.class, this.children.stream().filter(c -> !c.isIgnore()).collect(Collectors.toList()))); + if (singleLevel) { + filterSingleLevelData(root.getMaterialNo(), sapDto); + } liErrMsg = SpringUtil.getBean(SapOpUtilService.class).importToSapV2(sapDto, null); if (CollUtil.isEmpty(liErrMsg)) { state = SapStatusEnum.PUB_SUCCESS; @@ -102,6 +105,15 @@ public class BomNewEbomExportToSAP { return liErrMsg; } + /** + * 单层导入,过滤出指定父级物料号的子级即可 + * @param materialNo 父级物料号 + */ + private void filterSingleLevelData(String materialNo, ImportSapParamDTO sapDto) { + List t1 = sapDto.getT1(); + sapDto.setT1(t1.stream().filter(item -> item.getMATNR().equals(materialNo)).collect(Collectors.toList())); + } + /** * 构建child数据发包编号 * @param p 上级节点的parent 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 d4e8d7c5..cad3d9b1 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 @@ -62,7 +62,7 @@ public class BomNewPbomExportToSAPImpl implements IBomNewPbomExportToSAP { } @Override - public List export(Long rootBomRowId) { + public List export(Long rootBomRowId, boolean singleLevel) { BomNewPbomParentEntity root = bomNewPbomParentService.getById(rootBomRowId); is21 = root.getMaterialNo().startsWith("21"); is31 = root.getMaterialNo().startsWith("31"); @@ -114,6 +114,9 @@ public class BomNewPbomExportToSAPImpl implements IBomNewPbomExportToSAP { sapDto.setI_STLAN("1"); sapDto.setI_EMPNO(root.getCreatedBy()); sapDto.setT1(Convert.toList(T1DTO.class, this.children.stream().filter(c -> !c.isIgnore()).collect(Collectors.toList()))); + if (singleLevel) { + filterSingleLevelData(root.getMaterialNo(), sapDto); + } liErrMsg = SpringUtil.getBean(SapOpUtilService.class).importToSapV2(sapDto, null); LOGGER.debug("本次导入到sap数量共{}个,其中{}个有错误", sapDto.getT1().size(), liErrMsg.size()); if (CollUtil.isEmpty(liErrMsg)) { @@ -139,6 +142,15 @@ public class BomNewPbomExportToSAPImpl implements IBomNewPbomExportToSAP { return liErrMsg; } + /** + * 单层导入,过滤出指定父级物料号的子级即可 + * @param materialNo 父级物料号 + */ + private void filterSingleLevelData(String materialNo, ImportSapParamDTO sapDto) { + List t1 = sapDto.getT1(); + sapDto.setT1(t1.stream().filter(item -> item.getMATNR().equals(materialNo)).collect(Collectors.toList())); + } + private Long getZFBBomRowId(List children) { Long ddpRowId = null; //电控系统的无须增加 直发包parent记录 by 10002327 240918 @@ -378,7 +390,7 @@ public class BomNewPbomExportToSAPImpl implements IBomNewPbomExportToSAP { .one(); VUtils.isTure(Objects.isNull(pfhb)).throwMessage("没有需要导入的数据"); - List errorMsgVOS = export(pfhb.getRowId()); + List errorMsgVOS = export(pfhb.getRowId(), false); if (CollUtil.isNotEmpty(errorMsgVOS)) { //如果导入SAP出错了,得将该bom提升为用户根节点,以便用户手动尝试导入到SAP去 pfhb.setUserRootIs(1); 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 143d715c..efde0e27 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 @@ -1433,13 +1433,13 @@ public class BomNewPbomParentService extends ServiceImpl importToSAP2(PbomImportToSAPQuery query) { + public List importToSAP2(PbomImportToSAPQuery query, boolean singleLevel) { BomNewPbomParentEntity root = getById(query.getRootBomRowId()); VUtils.isTure(Objects.isNull(root)).throwMessage("数据不存在"); // VUtils.isTure(root.getUserRootIs() != 1 && root.getRootIs() != 1).throwMessage("请选择根节点"); IBomNewPbomExportToSAP service = new BomNewPbomExportToSAPImpl(query.getIsForSale()); - return service.export(root.getRowId()); + return service.export(root.getRowId(), singleLevel); } /** diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/IBomNewPbomExportToSAP.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/IBomNewPbomExportToSAP.java index e2d0ee00..d3a8b247 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/IBomNewPbomExportToSAP.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/IBomNewPbomExportToSAP.java @@ -21,7 +21,7 @@ public interface IBomNewPbomExportToSAP { // // String dateYMD = DateUtil.format(new Date(), "yyyyMMdd"); - List export(Long rootBomRowId); + List export(Long rootBomRowId, boolean singleLevel); /** * 根据直发包编号导入上级物料到SAP