From 757c7e03bee3560bb4d7766fddd03673e2c2e611 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期四, 23 七月 2026 17:46:34 +0800
Subject: [PATCH] feat(mes): 完善MES模块功能并优化日志配置

---
 yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/itemconsume/MesWmItemConsumeServiceImpl.java |   30 +++++++++++++++++-------------
 1 files changed, 17 insertions(+), 13 deletions(-)

diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/itemconsume/MesWmItemConsumeServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/itemconsume/MesWmItemConsumeServiceImpl.java
index 5cccfd3..84452a3 100644
--- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/itemconsume/MesWmItemConsumeServiceImpl.java
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/itemconsume/MesWmItemConsumeServiceImpl.java
@@ -2,8 +2,10 @@
 
 import cn.hutool.core.collection.CollUtil;
 import cn.iocoder.yudao.module.mes.controller.admin.wm.materialstock.vo.MesWmMaterialStockListReqVO;
+import cn.iocoder.yudao.module.mes.dal.dataobject.md.item.MesMdItemDO;
+import cn.iocoder.yudao.module.mes.dal.dataobject.mdm.MesMdmItemDO;
 import cn.iocoder.yudao.module.mes.dal.dataobject.pro.feedback.MesProFeedbackDO;
-import cn.iocoder.yudao.module.mes.dal.dataobject.pro.route.MesProRouteProductBomDO;
+import cn.iocoder.yudao.module.mes.dal.dataobject.pro.workorder.MesProWorkOrderBomDO;
 import cn.iocoder.yudao.module.mes.dal.dataobject.wm.itemconsume.MesWmItemConsumeDO;
 import cn.iocoder.yudao.module.mes.dal.dataobject.wm.itemconsume.MesWmItemConsumeDetailDO;
 import cn.iocoder.yudao.module.mes.dal.dataobject.wm.itemconsume.MesWmItemConsumeLineDO;
@@ -15,8 +17,9 @@
 import cn.iocoder.yudao.module.mes.enums.MesBizTypeConstants;
 import cn.iocoder.yudao.module.mes.enums.wm.MesWmItemConsumeStatusEnum;
 import cn.iocoder.yudao.module.mes.enums.wm.MesWmTransactionTypeEnum;
-import cn.iocoder.yudao.module.mes.service.pro.route.MesProRouteProductBomService;
-import cn.iocoder.yudao.module.mes.service.pro.route.MesProRouteService;
+import cn.iocoder.yudao.module.mes.service.md.item.MesMdItemService;
+import cn.iocoder.yudao.module.mes.service.mdm.MesMdmItemService;
+import cn.iocoder.yudao.module.mes.service.pro.workorder.MesProWorkOrderBomService;
 import cn.iocoder.yudao.module.mes.service.wm.materialstock.MesWmMaterialStockService;
 import cn.iocoder.yudao.module.mes.service.wm.transaction.MesWmTransactionService;
 import cn.iocoder.yudao.module.mes.service.wm.transaction.dto.MesWmTransactionSaveReqDTO;
@@ -24,6 +27,7 @@
 import cn.iocoder.yudao.module.mes.service.wm.warehouse.MesWmWarehouseLocationService;
 import cn.iocoder.yudao.module.mes.service.wm.warehouse.MesWmWarehouseService;
 import jakarta.annotation.Resource;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.validation.annotation.Validated;
 
@@ -54,9 +58,7 @@
     @Resource
     private MesWmItemConsumeDetailService itemConsumeDetailService;
     @Resource
-    private MesProRouteProductBomService routeProductBomService;
-    @Resource
-    private MesProRouteService routeService;
+    private MesProWorkOrderBomService workOrderBomService;
     @Resource
     private MesWmTransactionService wmTransactionService;
     @Resource
@@ -67,17 +69,18 @@
     private MesWmWarehouseAreaService areaService;
     @Resource
     private MesWmMaterialStockService materialStockService;
+    @Autowired
+    private MesMdItemService mesMdItemService;
 
     @Override
     public MesWmItemConsumeDO generateItemConsume(MesProFeedbackDO feedback) {
-        // 1.1 閬垮厤 routeId 绛変负 null 鏃� getRouteProductBomList 鍥� eqIfPresent 鏀惧鏉′欢瀵艰嚧璇煡
-        if (feedback.getRouteId() == null || feedback.getProcessId() == null || feedback.getItemId() == null) {
+        // 1.1 鏍¢獙宸ュ崟缂栧彿鏈夋晥
+        if (feedback.getWorkOrderId() == null) {
             throw exception(PRO_FEEDBACK_ROUTE_PROCESS_INVALID);
         }
-        routeService.validateRouteExists(feedback.getRouteId());
-        // 1.2 鏌ヨ褰撳墠宸ュ簭鐨� BOM 鐗╂枡閰嶇疆
-        List<MesProRouteProductBomDO> boms = routeProductBomService.getRouteProductBomList(
-                feedback.getRouteId(), feedback.getProcessId(), feedback.getItemId());
+        // 1.2 鏌ヨ宸ュ崟 BOM 鐗╂枡鍒楄〃锛堝�掑啿鎸夊伐鍗曟姇鏂欙紝闈炲伐鑹鸿矾绾匡級
+        List<MesProWorkOrderBomDO> boms = workOrderBomService.getWorkOrderBomListByWorkOrderId(
+                feedback.getWorkOrderId());
         if (CollUtil.isEmpty(boms)) {
             return null;
         }
@@ -177,9 +180,10 @@
 
         // 2. 閬嶅巻鏄庣粏锛屽垱寤哄簱瀛樹簨鍔★紙鎸夋壒娆$簿纭墸鍑忕嚎杈瑰簱锛�
         for (MesWmItemConsumeDetailDO detail : details) {
+            MesMdItemDO item = mesMdItemService.getItem(detail.getItemId());
             wmTransactionService.createTransaction(new MesWmTransactionSaveReqDTO()
                     .setType(MesWmTransactionTypeEnum.OUT.getType())
-                    .setItemId(detail.getItemId())
+                    .setItemId(item.getMdmItemId())
                     .setQuantity(detail.getQuantity().negate())
                     .setBatchId(detail.getBatchId()).setBatchCode(detail.getBatchCode())
                     .setWarehouseId(detail.getWarehouseId())

--
Gitblit v1.9.3