From ab649baf58b577a98922318d8f7aafb0463bec03 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E9=B9=8F=E9=A3=9E?= Date: Tue, 2 Apr 2024 10:18:07 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E4=BC=98=E5=8C=96ebom=E6=9B=B4?= =?UTF-8?q?=E6=96=B0=E7=89=A9=E6=96=99=E8=A1=8C=E6=8E=A5=E5=8F=A3=EF=BC=8C?= =?UTF-8?q?=E9=87=8D=E7=94=A8=E6=A3=80=E6=9F=A5=E7=89=A9=E6=96=99=E7=9A=84?= =?UTF-8?q?=E7=BB=93=E6=9E=9C=EF=BC=8C=E9=81=BF=E5=85=8D=E8=B5=8B=E5=80=BC?= =?UTF-8?q?=E6=97=B6=E5=86=8D=E6=AC=A1=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../nflg/product/bomnew/api/user/EbomApi.java | 1 - .../service/BomNewEbomParentService.java | 19 ++++++++++--------- .../bomnew/service/MaterialMainService.java | 12 ++++++++---- .../domain/EBom/CheckEBomException.java | 11 ++++++----- 4 files changed, 24 insertions(+), 19 deletions(-) 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 fdd0572d..aec391c3 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 @@ -328,7 +328,6 @@ public class EbomApi extends BaseApi { } return ResultVO.success(bomNewEbomParentService.changeMaterial(dto)); - } 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 ecb9f269..3686b246 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 @@ -23,7 +23,10 @@ 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.*; +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.query.BomNewEbomMaterialQuery; import com.nflg.product.bomnew.pojo.query.BomNewEbomParentQuery; import com.nflg.product.bomnew.pojo.vo.*; @@ -49,7 +52,6 @@ import java.util.*; import java.util.concurrent.ExecutionException; import java.util.concurrent.ForkJoinPool; import java.util.concurrent.ForkJoinTask; -import java.util.concurrent.atomic.AtomicReference; import java.util.function.BinaryOperator; import java.util.function.Function; import java.util.stream.Collectors; @@ -1796,16 +1798,15 @@ public class BomNewEbomParentService extends ServiceImpl changeMaterial(BomNewEBomChangeDTO dto) { - CheckEBomException.checkMaterialNoInMain(dto.getDatas()); - SpringUtil.getBean(MaterialMainService.class).intiMaterialInfo(dto.getDatas(), EBomConstant.EBOM_IGNORED_FIELDS_INIT_MATERIAL_DEFAULT2); + List materialVOS = CheckEBomException.checkMaterialNoInMain(dto.getDatas()); + SpringUtil.getBean(MaterialMainService.class).intiMaterialInfo(dto.getDatas(), materialVOS, EBomConstant.EBOM_IGNORED_FIELDS_INIT_MATERIAL_DEFAULT2); - for (BomNewEbomParentVO vo : - dto.getDatas()) { - vo.setTotalWeight(NumberUtil.mul(vo.getUnitWeight(), vo.getNum())); - } + for (BomNewEbomParentVO vo : + dto.getDatas()) { + vo.setTotalWeight(NumberUtil.mul(vo.getUnitWeight(), vo.getNum())); + } return dto.getDatas(); - } diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/MaterialMainService.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/MaterialMainService.java index ad1fb2ff..2796ee78 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/MaterialMainService.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/MaterialMainService.java @@ -1,11 +1,8 @@ package com.nflg.product.bomnew.service; -import cn.hutool.cache.Cache; -import cn.hutool.cache.CacheUtil; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.convert.Convert; -import cn.hutool.core.lang.Pair; import cn.hutool.core.lang.TypeReference; import cn.hutool.core.util.StrUtil; import cn.hutool.extra.spring.SpringUtil; @@ -112,9 +109,16 @@ public class MaterialMainService extends ServiceImpl void intiMaterialInfo(List data , String ... ignorePropertyList) { - List materialNos = data.stream().filter(u -> StrUtil.isNotBlank(u.getMaterialNo())).map(u -> u.getMaterialNo()).collect(Collectors.toList()); + List materialNos = data.stream().map(BaseMaterialVO::getMaterialNo).filter(StrUtil::isNotBlank).collect(Collectors.toList()); if (CollUtil.isNotEmpty(materialNos)) { List materialBaseInfos = SpringUtil.getBean(MaterialMainService.class).getMaterialBaseInfo(materialNos); + intiMaterialInfo(data, materialBaseInfos, ignorePropertyList); + } + } + + public void intiMaterialInfo(List data ,List materialBaseInfos, String ... ignorePropertyList) { + List materialNos = data.stream().map(BaseMaterialVO::getMaterialNo).filter(StrUtil::isNotBlank).collect(Collectors.toList()); + if (CollUtil.isNotEmpty(materialNos)) { Map materialMp = ListCommonUtil.listToMap(materialBaseInfos, BaseMaterialVO::getMaterialNo); for (T t : data) { if (StrUtil.isNotBlank(t.getMaterialNo()) && materialMp.containsKey(t.getMaterialNo())) { diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/CheckEBomException.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/CheckEBomException.java index 1cc257f1..10e348c9 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/CheckEBomException.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/CheckEBomException.java @@ -40,18 +40,19 @@ public class CheckEBomException { private Boolean checkWaring=false; - public static void checkMaterialNoInMain1(List materialNos) { + public static List checkMaterialNoInMain1(List materialNos) { // List materialNos = dto.getDatas().stream().map(u -> u.getMaterialNo()).collect(Collectors.toList()); //检查物料编码是否在主数据中存在 List materialBaseInfo = SpringUtil.getBean(MaterialMainService.class).getMaterialBaseInfo(materialNos); - List effectiveMaterialNos = materialBaseInfo.stream().map(u -> u.getMaterialNo()).collect(Collectors.toList()); + List effectiveMaterialNos = materialBaseInfo.stream().map(BaseMaterialVO::getMaterialNo).collect(Collectors.toList()); Set difference = Sets.difference(new HashSet<>(materialNos), new HashSet<>(effectiveMaterialNos)); VUtils.isTure(CollUtil.isNotEmpty(difference)).throwMessage(StrUtil.join(",", difference) + "在物料档案中不存在"); + return materialBaseInfo; } - public static void checkMaterialNoInMain(List list) { - List materialNos = list.stream().map(u -> u.getMaterialNo()).collect(Collectors.toList()); - checkMaterialNoInMain1(materialNos); + public static List checkMaterialNoInMain(List list) { + List materialNos = list.stream().map(BaseMaterialVO::getMaterialNo).filter(StrUtil::isNotBlank).collect(Collectors.toList()); + return checkMaterialNoInMain1(materialNos); }