diff --git a/nflg_project_dev/nflg-technology/src/main/java/com/nflg/product/technology/service/BomCostCalculateService.java b/nflg_project_dev/nflg-technology/src/main/java/com/nflg/product/technology/service/BomCostCalculateService.java index 4a8f31c8..6372a406 100644 --- a/nflg_project_dev/nflg-technology/src/main/java/com/nflg/product/technology/service/BomCostCalculateService.java +++ b/nflg_project_dev/nflg-technology/src/main/java/com/nflg/product/technology/service/BomCostCalculateService.java @@ -68,7 +68,10 @@ public class BomCostCalculateService { VUtils.isTure(StrUtil.isBlank(materialNo)).throwMessage("物料编号不能为空"); List datas = new ArrayList<>(); EBomParentEntity parent = ebomService.getParent(materialNo); - VUtils.isTure(Objects.isNull(parent)).throwMessage("未找到BOM: " + materialNo); + // VUtils.isTure(Objects.isNull(parent)).throwMessage("未找到BOM: " + materialNo); + if (Objects.isNull(parent)) { + return Collections.emptyList(); + } log.debug(StrUtil.format("BOM成本计算 {} 起始节点", materialNo)); EBomDTO pDto = convert(parent); datas.add(pDto); diff --git a/nflg_project_dev/nflg-technology/src/main/java/com/nflg/product/technology/service/ProductCostAnalysisService.java b/nflg_project_dev/nflg-technology/src/main/java/com/nflg/product/technology/service/ProductCostAnalysisService.java index b18ded04..a3eb93a3 100644 --- a/nflg_project_dev/nflg-technology/src/main/java/com/nflg/product/technology/service/ProductCostAnalysisService.java +++ b/nflg_project_dev/nflg-technology/src/main/java/com/nflg/product/technology/service/ProductCostAnalysisService.java @@ -1,5 +1,6 @@ package com.nflg.product.technology.service; +import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.StrUtil; import com.nflg.product.technology.constant.BomConstant; import com.nflg.product.technology.pojo.dto.EBomCostCacheDTO; @@ -19,10 +20,7 @@ import javax.validation.constraints.NotBlank; import java.math.BigDecimal; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; -import java.util.ArrayList; -import java.util.List; -import java.util.Objects; -import java.util.Set; +import java.util.*; import java.util.stream.Collectors; /** @@ -53,6 +51,9 @@ public class ProductCostAnalysisService { public List getBomCostSingleLayer(String materialNo) { List datas = bomCostCalculateService.calculate(materialNo); + if (CollectionUtil.isEmpty(datas)) { + return Collections.emptyList(); + } EBomParentEntity parent = ebomService.getParent(materialNo); return buildSingleLayerChildren(parent.getRowId(), datas); } @@ -95,6 +96,9 @@ public class ProductCostAnalysisService { public BomCostMultilayerVO getBomCostMultilayer(String materialNo) { List datas = bomCostCalculateService.calculate(materialNo); + if (CollectionUtil.isEmpty(datas)) { + return new BomCostMultilayerVO(); + } List materials = materialMainService.getInfos(datas.stream().map(EBomCostCacheDTO::getMaterialNo).collect(Collectors.toSet())); EBomParentEntity parent = ebomService.getParent(materialNo); BomCostMultilayerVO vo = new BomCostMultilayerVO(); @@ -291,7 +295,9 @@ public class ProductCostAnalysisService { public void saveCost(String materialNo) { List datas = bomCostCalculateService.calculate(materialNo); - bomCostService.save(datas); + if (CollectionUtil.isNotEmpty(datas)) { + bomCostService.save(datas); + } } public List getCostVersion(@Valid @NotBlank String materialNo) {