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 07076664..b6100497 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 @@ -24,10 +24,7 @@ import com.nflg.product.base.core.exception.NflgBusinessException; import com.nflg.product.bomnew.constant.*; import com.nflg.product.bomnew.mapper.master.BomNewEbomParentMapper; import com.nflg.product.bomnew.pojo.dto.*; -import com.nflg.product.bomnew.pojo.entity.BomNewEbomChildEntity; -import com.nflg.product.bomnew.pojo.entity.BomNewEbomMaterialUseEntity; -import com.nflg.product.bomnew.pojo.entity.BomNewEbomParentEntity; -import com.nflg.product.bomnew.pojo.entity.MaterialMainEntity; +import com.nflg.product.bomnew.pojo.entity.*; import com.nflg.product.bomnew.pojo.query.BomNewEbomMaterialQuery; import com.nflg.product.bomnew.pojo.query.BomNewEbomParentQuery; import com.nflg.product.bomnew.pojo.vo.*; @@ -54,6 +51,8 @@ import java.util.*; import java.util.concurrent.ExecutionException; import java.util.concurrent.ForkJoinPool; import java.util.concurrent.ForkJoinTask; +import java.util.function.BinaryOperator; +import java.util.function.Function; import java.util.stream.Collectors; @@ -200,6 +199,8 @@ public class BomNewEbomParentService extends ServiceImpl relSkuList = bomNewEbomMaterialUseService.lambdaQuery().in(BomNewEbomMaterialUseEntity::getMaterialNo, relSkuNo).list(); @@ -300,9 +301,16 @@ public class BomNewEbomParentService extends ServiceImpl materialNos = parentChild.stream().filter(u -> StrUtil.isNotBlank(u.getMaterialNo())).map(u -> u.getMaterialNo()).collect(Collectors.toList()); if (CollUtil.isNotEmpty(materialNos)) { List list = this.lambdaQuery().in(BomNewEbomParentEntity::getMaterialNo, materialNos) - .eq(BomNewEbomParentEntity::getLastVersionIs, 1) + .eq(!EBomStatusEnum.PUBLISHED.equalsValue(parent.getStatus()) ,BomNewEbomParentEntity::getLastVersionIs, 1) .eq(EBomStatusEnum.PUBLISHED.equalsValue(parent.getStatus()), BomNewEbomParentEntity::getStatus, EBomStatusEnum.PUBLISHED.getValue()).list(); - Map bomListMap = ListCommonUtil.listToMap(list, BomNewEbomParentEntity::getMaterialNo); + + Map bomListMap= list.parallelStream() + .collect(Collectors.toMap( + BomNewEbomParentEntity::getMaterialNo, // key: DrawingNo + Function.identity(), + BinaryOperator.maxBy(Comparator.comparing(BomNewEbomParentEntity::getCurrentVersion)) + )); +// Map bomListMap = ListCommonUtil.listToMap(list, BomNewEbomParentEntity::getMaterialNo); for (BomNewEbomParentVO child : parentChild) { if (bomListMap.containsKey(child.getMaterialNo())) { BomNewEbomParentEntity parentEntity = bomListMap.get(child.getMaterialNo()); diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewOriginalParentService.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewOriginalParentService.java index 3b585fda..b45151e1 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewOriginalParentService.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewOriginalParentService.java @@ -43,6 +43,8 @@ import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutionException; import java.util.concurrent.ForkJoinPool; import java.util.concurrent.ForkJoinTask; +import java.util.function.BinaryOperator; +import java.util.function.Function; import java.util.stream.Collectors; @@ -253,9 +255,14 @@ public class BomNewOriginalParentService extends ServiceImpl list = this.lambdaQuery().in(BomNewOriginalParentEntity::getDrawingNo, drawingNos) .eq(OriginalStatusEnum.UN_CONVERT.equalsValue(parent.getStatus()),BomNewOriginalParentEntity::getLastVersionIs, 1) .eq(OriginalStatusEnum.OVER_CONVERT.equalsValue(parent.getStatus()) , BomNewOriginalParentEntity::getStatus, parent.getStatus()) - .last("order by current_version desc limit 1") .list(); - Map bomListMap = ListCommonUtil.listToMap(list, BomNewOriginalParentEntity::getDrawingNo); + Map bomListMap= list.parallelStream() + .collect(Collectors.toMap( + BomNewOriginalParentEntity::getDrawingNo, // key: DrawingNo + Function.identity(), + BinaryOperator.maxBy(Comparator.comparing(BomNewOriginalParentEntity::getCurrentVersion)) + )); + // Map bomListMap = ListCommonUtil.listToMap(list, BomNewOriginalParentEntity::getDrawingNo); for (BomOriginalListVO child : parentChild) { if (bomListMap.containsKey(child.getDrawingNo())) { BomNewOriginalParentEntity parentEntity = bomListMap.get(child.getDrawingNo()); 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 898af49b..93795834 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 @@ -44,6 +44,8 @@ import java.util.concurrent.ExecutionException; import java.util.concurrent.ForkJoinPool; import java.util.concurrent.ForkJoinTask; import java.util.concurrent.atomic.AtomicInteger; +import java.util.function.BinaryOperator; +import java.util.function.Function; import java.util.stream.Collectors; @@ -249,8 +251,18 @@ public class BomNewPbomParentService extends ServiceImpl materialNos = parentChild.stream().map(u -> u.getMaterialNo()).collect(Collectors.toList()); if (CollUtil.isNotEmpty(materialNos)) { - List list = this.lambdaQuery().in(BomNewPbomParentEntity::getMaterialNo, materialNos).eq(BomNewPbomParentEntity::getLastVersionIs, 1).list(); - Map bomListMap = ListCommonUtil.listToMap(list, BomNewPbomParentEntity::getMaterialNo); + List list = this.lambdaQuery().in(BomNewPbomParentEntity::getMaterialNo, materialNos) + .eq(!PBomStatusEnum.PUBLISH.equalsValue(parent.getStatus()), BomNewPbomParentEntity::getLastVersionIs, 1) + .eq(PBomStatusEnum.PUBLISH.equalsValue(parent.getStatus()),BomNewPbomParentEntity::getStatus, PBomStatusEnum.PUBLISH.getValue()) + .list(); + + Map bomListMap= list.parallelStream() + .collect(Collectors.toMap( + BomNewPbomParentEntity::getMaterialNo, // key: DrawingNo + Function.identity(), + BinaryOperator.maxBy(Comparator.comparing(BomNewPbomParentEntity::getCurrentVersion)) + )); + //Map bomListMap = ListCommonUtil.listToMap(list, BomNewPbomParentEntity::getMaterialNo); for (BomNewPbomParentVO child : parentChild) { if (bomListMap.containsKey(child.getMaterialNo())) { BomNewPbomParentEntity parentEntity = bomListMap.get(child.getMaterialNo());