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); }