diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EBomToPbomBase.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EBomToPbomBase.java index 1bdc70c8..02d979e5 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EBomToPbomBase.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EBomToPbomBase.java @@ -368,7 +368,7 @@ public abstract class EBomToPbomBase { packageCompositionEntity.setFromLiftingLayerState(1); } packageCompositionEntity.setCurrentVersion(lastVirtualPackage.getCurrentVersion()); - List vParentM = allBomDetail.stream().filter(u -> lastVirtualPackage.getBomRowId().equals(u.getParentRowId())).collect(Collectors.toList()); + List vParentM = allBomDetail.stream().filter(u -> lastVirtualPackage.getParentRowId().equals(u.getBomRowId())).collect(Collectors.toList()); if (CollUtil.isNotEmpty(vParentM)) { packageCompositionEntity.setVirtualMaterialParentMaterialNo(vParentM.get(0).getMaterialNo()); } @@ -380,7 +380,7 @@ public abstract class EBomToPbomBase { */ protected void changeImpact() { // Set vmaterialNo = allBomDetail.stream().filter(u -> VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE.equalsValue(u.getVirtualPartType()) || VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE.equalsValue(u.getVirtualPartType())).map(u -> u.getMaterialNo()).collect(Collectors.toSet()); - List firstParent = allBomDetail.stream().filter(u -> u.getParentRowId().equals(parent.getRowId())).collect(Collectors.toList()); + List firstParent = allBomDetail.stream().filter(u -> u.getParentRowId().equals(parent.getBomRowId())).collect(Collectors.toList()); for (BomNewEbomParentVO vo : firstParent) { changeImpactDo(vo); } @@ -390,8 +390,7 @@ public abstract class EBomToPbomBase { private void changeImpactDo(BomNewEbomParentVO parentVO) { List subVos = getAllSubInListIncludeSelf(parentVO,allBomDetail); -// allBomDetail.stream().filter(u -> u.getLevelNumber().compareTo(parentVO.getLevelNumber()) >= 0 && u.getLevelNumber().compareTo(NumberUtil.add(parentVO.getLevelNumber(), BigDecimal.valueOf(0.01))) < 0) -// .sorted(Comparator.comparing(BomNewEbomParentVO::getLevelNumber)).collect(Collectors.toList()); + List subVosParent = subVos.stream().filter(u -> u.getBomRowId() > 0).collect(Collectors.toList()); for (BomNewEbomParentVO vo : subVosParent) { if (compareVirtualPackage(vo)) { diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/PBom/PBomDetailTask.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/PBom/PBomDetailTask.java index 1e79fa11..ad9b2a21 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/PBom/PBomDetailTask.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/PBom/PBomDetailTask.java @@ -12,9 +12,7 @@ import com.nflg.product.bomnew.service.BomNewPbomParentService; import com.nflg.product.bomnew.util.ListCommonUtil; import java.time.LocalDateTime; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.concurrent.RecursiveTask; import java.util.concurrent.atomic.AtomicInteger; import java.util.stream.Collectors; @@ -59,9 +57,17 @@ public class PBomDetailTask extends RecursiveTask> { List childBomlist = SpringUtil.getBean(BomNewPbomParentService.class).lambdaQuery() .in(BomNewPbomParentEntity::getMaterialNo, materialNos) - .eq(BomNewPbomParentEntity::getLastVersionIs, 1) .eq(BomNewPbomParentEntity::getFacCode,facCode).list(); - Map parentMap = ListCommonUtil.listToMap(childBomlist, BomNewPbomParentEntity::getMaterialNo); +// Map parentMap = ListCommonUtil.listToMap(childBomlist, BomNewPbomParentEntity::getMaterialNo); + Map parentMap = childBomlist.stream() + .collect(Collectors.groupingBy( + BomNewPbomParentEntity::getMaterialNo, + Collectors.collectingAndThen( + Collectors.maxBy(Comparator.comparing(BomNewPbomParentEntity::getCurrentVersion)), + Optional::get + ) + )); + for (BomNewPbomParentVO detailVO : bomDetail) { if (parentMap.containsKey(detailVO.getMaterialNo())) { BomNewPbomParentEntity ebomParentEntity = parentMap.get(detailVO.getMaterialNo()); @@ -76,7 +82,7 @@ public class PBomDetailTask extends RecursiveTask> { detailVO.setDeviseUserCode(ebomParentEntity.getDeviseUserCode()); detailVO.setCreatedTime(ebomParentEntity.getCreatedTime()); - + detailVO.setCreatedBy(ebomParentEntity.getCreatedBy()); detailVO.setLevelNum(ebomParentEntity.getLevelNum()); detailVO.setDeptName(ebomParentEntity.getDeptName()); detailVO.setChangeDesc(ebomParentEntity.getChangeDesc()); diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/PBom/PBomUpgrade.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/PBom/PBomUpgrade.java index 86b333da..7695b9ef 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/PBom/PBomUpgrade.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/PBom/PBomUpgrade.java @@ -76,7 +76,8 @@ public class PBomUpgrade { private void buildParent(BomNewPbomParentVO parentVO, boolean rootIs) { //判断有无未发布版本-有则直接跳过 List waitPublishBomList = SpringUtil.getBean(BomNewPbomParentService.class).lambdaQuery().eq(BomNewPbomParentEntity::getMaterialNo, parentVO.getMaterialNo()) - .eq(BomNewPbomParentEntity::getStatus, PBomStatusEnum.WAIT_PUBLISH.getValue()).list(); + .eq(BomNewPbomParentEntity::getFacCode, parentVO.getFacCode()) + .lt(BomNewPbomParentEntity::getStatus, PBomStatusEnum.WAIT_PUBLISH.getValue()).list(); if(CollUtil.isNotEmpty(waitPublishBomList)){ return; }