From f2f62ac4dd0736865b173599179b9c252ea25642 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A4=A7=E7=B1=B3?= <470431449@qq.com> Date: Sat, 29 Jun 2024 16:42:12 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E8=BD=ACPBOM-ROWid=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/BomNewEbomParentService.java | 59 +++++++++++++++++++ .../BomNewEbomUpgradeChangeService.java | 2 +- 2 files changed, 60 insertions(+), 1 deletion(-) diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewEbomParentService.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewEbomParentService.java index 8a426533..4bc075b6 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewEbomParentService.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewEbomParentService.java @@ -559,6 +559,65 @@ public class BomNewEbomParentService extends ServiceImpl getAllEBomFormalChild(long rowId){ + List result=new ArrayList<>(); + List bomDetail = this.getBaseMapper().getParentChild(rowId); + while (CollUtil.isNotEmpty(bomDetail)){ + handlerChildBomVersionDetail(bomDetail); + result.addAll(bomDetail); + List childBowIds = bomDetail.stream().filter(u-> u.getChildBomRowId()!=null && u.getChildBomRowId() > 0).map(u->u.getChildBomRowId()).collect(Collectors.toList()); + if(CollUtil.isNotEmpty(childBowIds)) { + bomDetail = this.getBaseMapper().getParentChildBatch(childBowIds); + } + else { + bomDetail=Collections.EMPTY_LIST; + } + } + return result; + } + private void handlerChildBomVersionDetail(List bomDetail) { + List materialNos = bomDetail.stream().filter(u -> StrUtil.isNotBlank(u.getMaterialNo()) ).map(BomNewEbomParentVO::getMaterialNo).collect(Collectors.toList()); + + if (CollUtil.isNotEmpty(materialNos)) { + + List childBomlist = SpringUtil.getBean(BomNewEbomParentService.class).lambdaQuery().in(BomNewEbomParentEntity::getMaterialNo, materialNos) + .eq(BomNewEbomParentEntity::getStatus, EBomStatusEnum.PUBLISHED.getValue()).list(); + Map stringBomNewOriginalParentEntityMap = childBomlist.parallelStream() + .collect(Collectors.toMap( + BomNewEbomParentEntity::getMaterialNo, // key: DrawingNo + Function.identity(), + BinaryOperator.maxBy(Comparator.comparing(BomNewEbomParentEntity::getCurrentVersion)) + )); +// Map stringBomNewOriginalParentEntityMap = ListCommonUtil.listToMap(childBomlist, BomNewEbomParentEntity::getMaterialNo); + for (BomNewEbomParentVO detailVO : bomDetail) { + if (stringBomNewOriginalParentEntityMap.containsKey(detailVO.getMaterialNo())) { + BomNewEbomParentEntity ebomParentEntity = stringBomNewOriginalParentEntityMap.get(detailVO.getMaterialNo()); + detailVO.setChildBomRowId(ebomParentEntity.getRowId()); + detailVO.setBomRowId(ebomParentEntity.getRowId()); + detailVO.setSourceRowId(ebomParentEntity.getSourceRowId()); + detailVO.setCurrentVersion(ebomParentEntity.getCurrentVersion()); + detailVO.setDeviseUserCode(ebomParentEntity.getDeviseUserCode()); + detailVO.setDeptName(ebomParentEntity.getDeptName()); + detailVO.setDeviseName(ebomParentEntity.getDeviseName()); + detailVO.setBomExist(ebomParentEntity.getBomExist()); + detailVO.setStatus(ebomParentEntity.getStatus()); + detailVO.setBatchNo(ebomParentEntity.getBatchNo()); + detailVO.setCreatedBy(ebomParentEntity.getCreatedBy()); + } + } + + + } + + + } + + /** * 获取整个BOM树 * diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewEbomUpgradeChangeService.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewEbomUpgradeChangeService.java index 7faaa403..014c8fa2 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewEbomUpgradeChangeService.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewEbomUpgradeChangeService.java @@ -73,7 +73,7 @@ public class BomNewEbomUpgradeChangeService extends ServiceImpl bomTree = ebomParentService.getFormalBomTree(ebom.getRowId()); + List bomTree = ebomParentService.getAllEBomFormalChild(ebom.getRowId()); BomNewEbomParentVO parentBom = Convert.convert(BomNewEbomParentVO.class, ebom); parentBom.setBomRowId(ebom.getRowId()); parentBom.setChildBomRowId(ebom.getRowId());