From 17ce55a3b038ed61d332bb54916de4fa55ba19c6 Mon Sep 17 00:00:00 2001
From: liu <2021943741@qq.com>
Date: 星期二, 27 十月 2026 09:10:23 +0800
Subject: [PATCH] fix: 修复导出表头缺失、权限码不一致及生产链路断点

---
 yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/mps/MesProMpsServiceImpl.java |   19 ++++++++++++++++---
 1 files changed, 16 insertions(+), 3 deletions(-)

diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/mps/MesProMpsServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/mps/MesProMpsServiceImpl.java
index 81ce0e4..3c491d9 100644
--- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/mps/MesProMpsServiceImpl.java
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/mps/MesProMpsServiceImpl.java
@@ -10,6 +10,7 @@
 import cn.iocoder.yudao.module.mes.controller.admin.pro.mps.vo.MesProMpsImportRespVO;
 import cn.iocoder.yudao.module.mes.controller.admin.pro.mps.vo.MesProMpsPageReqVO;
 import cn.iocoder.yudao.module.mes.controller.admin.pro.mps.vo.MesProMpsSaveReqVO;
+import cn.iocoder.yudao.module.mes.api.event.ProductionCanceledEvent;
 import cn.iocoder.yudao.module.mes.controller.admin.pro.workorder.vo.MesProWorkOrderSaveReqVO;
 import cn.iocoder.yudao.module.mes.dal.dataobject.pro.mps.MesProMpsDO;
 import cn.iocoder.yudao.module.mes.dal.dataobject.pro.mps.MesProMpsMergeItemDO;
@@ -42,6 +43,7 @@
 import jakarta.annotation.Resource;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
+import org.springframework.context.ApplicationEventPublisher;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.validation.annotation.Validated;
 
@@ -95,6 +97,8 @@
     private MesProRouteProcessService routeProcessService;
     @Resource
     private MesProWorkOrderProcessService workOrderProcessService;
+    @Resource
+    private ApplicationEventPublisher eventPublisher;
 
     @Override
     @Transactional(rollbackFor = Exception.class)
@@ -308,6 +312,10 @@
         mpsMapper.updateById(new MesProMpsDO()
                 .setId(id)
                 .setStatus(MesProMpsStatusEnum.CANCELED.getStatus()));
+        // 鏉ユ簮浜庨攢鍞鍗曟椂锛屽悓姝ユ仮澶嶉攢鍞鍗曠敓浜х姸鎬侊紝鍏佽閲嶆柊鍒涘缓鐢熶骇璁″垝
+        if (mps.getSaleOrderId() != null) {
+            eventPublisher.publishEvent(new ProductionCanceledEvent(mps.getSaleOrderId()));
+        }
     }
 
     @Override
@@ -394,7 +402,7 @@
         if (workOrderId == null) {
             return null;
         }
-        return mpsMapper.selectOne(MesProMpsDO::getWorkOrderId, workOrderId);
+        return mpsMapper.selectByWorkOrderId(workOrderId);
     }
 
     @Override
@@ -609,8 +617,9 @@
         }
         Long routeId = routeProduct.getRouteId();
 
-        // 2. 鏍¢獙宸ヨ壓璺嚎鏄惁鏈夊伐搴�
-        List<MesProRouteProcessDO> routeProcesses = routeProcessService.getRouteProcessListByRouteId(routeId);
+        // 2. 鏍¢獙宸ヨ壓璺嚎鏄惁鏈夊伐搴忥紙鎸変骇鍝佽繃婊ゅ叾瀹冧骇鍝佺殑浜у嚭鐗╂枡锛�
+        List<MesProRouteProcessDO> routeProcesses = routeProcessService
+                .getRouteProcessListByProductId(mps.getProductId());
         if (CollUtil.isEmpty(routeProcesses)) {
             throw exception(PRO_ROUTE_ENABLE_NO_PROCESS);
         }
@@ -650,6 +659,10 @@
                         .map(Long::valueOf).collect(Collectors.toList()));
             }
             process.setColorCode(rp.getColorCode());
+            // 甯﹀叆宸ヨ壓璺嚎浜у搧閰嶇疆鐨勬姤宸ヤ粨搴�
+            process.setWarehouseId(routeProduct.getWarehouseId());
+            process.setLocationId(routeProduct.getLocationId());
+            process.setAreaId(routeProduct.getAreaId());
             // 甯﹀叆宸ュ簭鎶曟枡BOM
             List<MesProRouteProductBomDO> routeBomItems = bomMap != null ? bomMap.get(rp.getProcessId()) : null;
             if (CollUtil.isNotEmpty(routeBomItems)) {

--
Gitblit v1.9.3