From 9ef37d9c1d839055de732fd28a23590b53653ab8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A4=A7=E7=B1=B3?= <470431449@qq.com> Date: Mon, 1 Apr 2024 13:00:03 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E8=8E=B7=E5=8F=96=E5=AD=90=E7=BA=A7?= =?UTF-8?q?=E9=80=BB=E8=BE=91=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/BomNewEbomParentService.java | 20 +++++++++++++------ .../service/BomNewOriginalParentService.java | 11 ++++++++-- .../service/BomNewPbomParentService.java | 16 +++++++++++++-- 3 files changed, 37 insertions(+), 10 deletions(-) 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());