diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/EbomV2Api.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/EbomV2Api.java index d5b3f4c7..58e8d8f5 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/EbomV2Api.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/EbomV2Api.java @@ -3,9 +3,9 @@ package com.nflg.product.bomnew.api.user; import cn.hutool.core.collection.CollUtil; import com.nflg.product.base.core.api.BaseApi; import com.nflg.product.base.core.conmon.util.SessionUtil; -import com.nflg.product.bomnew.mapper.master.BomNewEbomChildMapper; import com.nflg.product.bomnew.pojo.entity.BomOriginalCadParentEntity; import com.nflg.product.bomnew.pojo.vo.ImportOriginalBomVO; +import com.nflg.product.bomnew.service.BomNewEbomChildService; import com.nflg.product.bomnew.service.BomNewEbomParentService; import com.nflg.product.bomnew.service.BomNewOriginalParentV2Service; import com.nflg.product.bomnew.service.BomOriginalCadParentService; @@ -38,7 +38,7 @@ public class EbomV2Api extends BaseApi { @Resource BomNewOriginalParentV2Service originalParentV2Service; @Resource - BomNewEbomChildMapper bomNewEbomChildMapper; + BomNewEbomChildService ebomChildService; @Resource BomNewEbomParentService ebomParentService; @@ -56,7 +56,7 @@ public class EbomV2Api extends BaseApi { result = originalParentV2Service.pullFromCadAndToEBom(parents); //更新物料使用 - bomNewEbomChildMapper.updateEBomMaterialUse(); + ebomChildService.updateEBomMaterialUse(parents.stream().map(BomOriginalCadParentEntity::getMaterialNo).collect(Collectors.toSet())); //跟新EBom 根节点 ebomParentService.getBaseMapper().updateRootState(); diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/OriginalBomApi.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/OriginalBomApi.java index 4d243fac..bdbac7e8 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/OriginalBomApi.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/OriginalBomApi.java @@ -162,8 +162,6 @@ public class OriginalBomApi extends BaseApi { VUtils.isTure(CollUtil.isEmpty(bomRowIds)).throwMessage("请选择要转换的BOM"); VUtils.isTure(bomRowIds.size() > 20).throwMessage("你选择的BOM数据大于20"); List result = originalParentService.convertToEBom(bomRowIds); - //更新物料使用 - bomNewEbomChildMapper.updateEBomMaterialUse(); //更新-原始BOM跟节点 CompletableFuture.runAsync(() -> { diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/mapper/master/BomNewEbomChildMapper.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/mapper/master/BomNewEbomChildMapper.java index fca209eb..3fcacd4d 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/mapper/master/BomNewEbomChildMapper.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/mapper/master/BomNewEbomChildMapper.java @@ -5,6 +5,7 @@ import com.nflg.product.bomnew.pojo.entity.BomNewEbomChildEntity; import com.nflg.product.bomnew.pojo.vo.ChildMaxExceptionStateVO; import org.apache.ibatis.annotations.Param; +import java.util.Collection; import java.util.List; /** @@ -21,7 +22,7 @@ public interface BomNewEbomChildMapper extends BaseMapper /** * 全量更新-EBOM物料use */ - void updateEBomMaterialUse(); + void updateEBomMaterialUse(Collection materialNos); List getChildMaxExceptionState(@Param("bomRowIds") List bomRowIds); diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewEbomChildService.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewEbomChildService.java index 4e6741ee..730bff26 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewEbomChildService.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewEbomChildService.java @@ -5,6 +5,9 @@ import com.nflg.product.bomnew.mapper.master.BomNewEbomChildMapper; import com.nflg.product.bomnew.pojo.entity.BomNewEbomChildEntity; import org.springframework.stereotype.Service; +import java.util.Collection; +import java.util.concurrent.CompletableFuture; + /** * t_bom_new_ebom_child 表服务实现类 @@ -16,4 +19,9 @@ import org.springframework.stereotype.Service; @Service public class BomNewEbomChildService extends ServiceImpl { + public CompletableFuture updateEBomMaterialUse(Collection materialNos) { + return CompletableFuture.runAsync(() -> { + baseMapper.updateEBomMaterialUse(materialNos); + }); + } } 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 75c27951..ef86e871 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 @@ -1147,12 +1147,12 @@ public class BomNewEbomParentService extends ServiceImpl materialNos) { //计算树的层级数 // CompletableFuture.runAsync(() -> { try { this.getBaseMapper().updateRootState(); - ebomChildService.getBaseMapper().updateEBomMaterialUse(); + ebomChildService.updateEBomMaterialUse(materialNos); //this.compucteLevelNum(); } catch (Exception e) { @@ -1275,7 +1275,7 @@ public class BomNewEbomParentService extends ServiceImpl computeLevelNumAndRootState()); - computeLevelNumAndRootState(); + computeLevelNumAndRootState(eBomDel.getDelEBom().stream().map(BomNewEbomParentVO::getMaterialNo).collect(Collectors.toSet())); } return true; @@ -1896,7 +1896,7 @@ public class BomNewEbomParentService extends ServiceImpl computeLevelNumAndRootState()); if (eBomEdit.isRootForWaitReview()) { 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 1a814db6..51d66d25 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 @@ -648,6 +648,8 @@ public class BomNewOriginalParentService extends ServiceImpl SET @@global.group_concat_max_len=804800; - TRUNCATE TABLE t_bom_new_ebom_material_use; - INSERT INTO `t_bom_new_ebom_material_use` (`row_id`, `material_no`, `parent_material_no`) + DELETE FROM t_bom_new_ebom_material_use + WHERE material_no IN + + #{materialNo} + ; + INSERT INTO `t_bom_new_ebom_material_use` (`row_id`, `material_no`, `parent_material_no`) select min(b.row_id) rowId, b.material_no, GROUP_CONCAt( distinct a.material_no) as value_list from t_bom_new_ebom_parent a join t_bom_new_ebom_child b on a.row_id=b.parent_row_id and a.last_version_is=1 - group by b.material_no ; + WHERE b.material_no IN + + #{materialNo} + + group by b.material_no;