From 3e0c9de01542edcb3de2c16d261e880a9889ed5d Mon Sep 17 00:00:00 2001 From: Ledo Date: Fri, 27 Jun 2025 09:46:54 +0800 Subject: [PATCH 1/6] =?UTF-8?q?BOM=E6=98=8E=E7=BB=86=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../processbom/ProcessBomDetailMapper.java | 6 +---- .../mysql/storagelog/StorageLogNowMapper.java | 3 ++- .../processbom/ProcessBomServiceImpl.java | 27 +++++++++++++++++++ .../mapper/storagelog/StorageLogNowMapper.xml | 8 +++++- 4 files changed, 37 insertions(+), 7 deletions(-) diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/processbom/ProcessBomDetailMapper.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/processbom/ProcessBomDetailMapper.java index b10232f..a60612a 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/processbom/ProcessBomDetailMapper.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/processbom/ProcessBomDetailMapper.java @@ -67,11 +67,7 @@ public interface ProcessBomDetailMapper extends BaseMapperX List selectStandardListByBomId(@Param("bomId") Long bomId); - @Select("SELECT p.*, IFNULL(SUM(s.storage_ok_qty), 0) AS storage_ok_qty " + - "FROM pro_process_bom_detail p " + - "LEFT JOIN v_storage_material_now s ON p.material_name = s.mat_name " + - "WHERE p.bom_id = #{bomId} and p.type = 1 AND p.deleted IN (0, 1) " + - "GROUP BY p.material_name") + @Select("SELECT p.* FROM pro_process_bom_detail p WHERE p.bom_id = #{bomId} and p.type = 1 AND p.deleted IN (0, 1) ") //2025 0601 因为bom明细页查询到结果 由 group by materialcode转换为 group by id List selectStandardListByBomId20250609(@Param("bomId") Long bomId); default Long getBomDetailByBluePrintNoAndBomId(String bomCode,String bluePrintNo){ diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/storagelog/StorageLogNowMapper.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/storagelog/StorageLogNowMapper.java index 78586c3..5321bb5 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/storagelog/StorageLogNowMapper.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/storagelog/StorageLogNowMapper.java @@ -16,6 +16,7 @@ import org.apache.poi.hpsf.Decimal; import java.math.BigDecimal; import java.util.HashMap; +import java.util.HashSet; import java.util.List; import java.util.stream.Collectors; @@ -106,7 +107,7 @@ public interface StorageLogNowMapper extends BaseMapperX { List selectNowList(StorageNowAllReqVO reqVO); - + List selectAllByMatNames(@Param("matNames") List matNames); List selectNowByMatPnId(@Param("matId")Long matId,@Param("pnId")Long pnId); default PageResult getStorageNowPricePage(StorageLogPageReqVO reqVO) { diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/processbom/ProcessBomServiceImpl.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/processbom/ProcessBomServiceImpl.java index 9fdd3ae..330a51a 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/processbom/ProcessBomServiceImpl.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/processbom/ProcessBomServiceImpl.java @@ -33,6 +33,7 @@ import com.chanko.yunxi.mes.module.heli.dal.dataobject.processbom.ProcessBomDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.processbom.ProcessBomDetailDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.serialnumber.SerialNumberDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.shenhe.ShenheDO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.storagelogNow.StorageLogNowDO; import com.chanko.yunxi.mes.module.heli.dal.mysql.attentiontodo.AttentiontodoMapper; import com.chanko.yunxi.mes.module.heli.dal.mysql.bdgzsomthing.bdgzsomthingMapper; import com.chanko.yunxi.mes.module.heli.dal.mysql.materialplan.MaterialPlanMapper; @@ -42,6 +43,7 @@ import com.chanko.yunxi.mes.module.heli.dal.mysql.plantask.PlanTaskMapper; import com.chanko.yunxi.mes.module.heli.dal.mysql.processbom.ProcessBomDetailMapper; import com.chanko.yunxi.mes.module.heli.dal.mysql.processbom.ProcessBomMapper; import com.chanko.yunxi.mes.module.heli.dal.mysql.shenhe.ShenheMapper; +import com.chanko.yunxi.mes.module.heli.dal.mysql.storagelog.StorageLogNowMapper; import com.chanko.yunxi.mes.module.heli.enums.ProcessBomStatusEnum; import com.chanko.yunxi.mes.module.heli.service.attentiontodo.AttentiontodoService; import com.chanko.yunxi.mes.module.heli.service.composition.CompositionService; @@ -123,6 +125,8 @@ public class ProcessBomServiceImpl implements ProcessBomService { private MaterialPlanMapper materialPlanMapper; @Resource private MaterialPlanBoomMapper materialPlanBoomMapper; + @Resource + private StorageLogNowMapper storageLogNowMapper; @Override @Transactional(rollbackFor = Exception.class) public Long createProcessBom(ProcessBomSaveReqVO createReqVO) { @@ -808,6 +812,29 @@ public class ProcessBomServiceImpl implements ProcessBomService { list.addAll(processBomDetailMapper.selectStandardListByBomId20250609(bomId)); // Map> standardGroupByMatId = processBomDetailDOS.stream().collect(Collectors.groupingBy(vo -> vo.getMaterialId() == null ? -1 : vo.getMaterialId())); //查非标准件的 + if (CollUtil.isNotEmpty(list)){ + HashSet materialNameSet = new HashSet<>(); + for (ProcessBomDetailDO processBomDetailDO : list) { + processBomDetailDO.setStorageOkQty(BigDecimal.ZERO); + if (processBomDetailDO.getMaterialName() != null) { + materialNameSet.add(processBomDetailDO.getMaterialName()); + } + + } + if (CollUtil.isNotEmpty(materialNameSet)){ + List storageLogNowDOS = storageLogNowMapper.selectAllByMatNames(new ArrayList<>(materialNameSet)); + for (ProcessBomDetailDO processBomDetailDO : list) { + for (StorageLogNowDO storageLogNowDO : storageLogNowDOS) { + if (processBomDetailDO.getMaterialName()!= null && storageLogNowDO.getMatName().equals(processBomDetailDO.getMaterialName())) { + processBomDetailDO.setStorageOkQty(storageLogNowDO.getStorageOkQty()); + break; + } + } + } + } + + } + List processBomDetailNoStandardDOS = processBomDetailMapper.selectListNoStandardList(bomId); List noStandardList = processBomDetailNoStandardDOS.stream() diff --git a/mes-module-heli/mes-module-heli-biz/src/main/resources/mapper/storagelog/StorageLogNowMapper.xml b/mes-module-heli/mes-module-heli-biz/src/main/resources/mapper/storagelog/StorageLogNowMapper.xml index 7a94641..653a4cb 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/resources/mapper/storagelog/StorageLogNowMapper.xml +++ b/mes-module-heli/mes-module-heli-biz/src/main/resources/mapper/storagelog/StorageLogNowMapper.xml @@ -71,10 +71,16 @@ order by t.mat_code - +