From 0857cf1830039d60ce73005f386f284cf575e511 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期一, 26 十月 2026 14:00:19 +0800
Subject: [PATCH] feat(mes): 新增ERP销售订单生产状态枚举及MES工艺路线优化
---
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/mps/MesProMpsServiceImpl.java | 17 +++++++++++++++--
1 files changed, 15 insertions(+), 2 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..848f5d2 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
@@ -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