From ed0b34e7377749befc33465318285bcc52128770 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期一, 17 八月 2026 11:42:01 +0800
Subject: [PATCH] feat(mdm): 添加物料同步状态开关功能

---
 yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/route/MesProRouteProcessServiceImpl.java |   34 +++++++++++++++++++++++++++++++++-
 1 files changed, 33 insertions(+), 1 deletions(-)

diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/route/MesProRouteProcessServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/route/MesProRouteProcessServiceImpl.java
index ec5aae1..f88d950 100644
--- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/route/MesProRouteProcessServiceImpl.java
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/route/MesProRouteProcessServiceImpl.java
@@ -4,6 +4,7 @@
 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
 import cn.iocoder.yudao.module.mes.controller.admin.pro.route.vo.process.MesProRouteProcessSaveReqVO;
 import cn.iocoder.yudao.module.mes.dal.dataobject.pro.route.MesProRouteProcessDO;
+import cn.iocoder.yudao.module.mes.dal.dataobject.pro.route.MesProRouteProductBomDO;
 import cn.iocoder.yudao.module.mes.dal.dataobject.pro.route.MesProRouteProductDO;
 import cn.iocoder.yudao.module.mes.dal.mysql.pro.route.MesProRouteProcessMapper;
 import cn.iocoder.yudao.module.mes.service.pro.process.MesProProcessService;
@@ -17,6 +18,8 @@
 import java.util.Collections;
 import java.util.Comparator;
 import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
 
 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
 import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.*;
@@ -24,7 +27,7 @@
 /**
  * MES 宸ヨ壓璺嚎宸ュ簭 Service 瀹炵幇绫�
  *
- * @author 鑺嬮亾婧愮爜
+ * @author 瓒呯骇绠$悊鍛�
  */
 @Service
 @Validated
@@ -42,6 +45,9 @@
     @Resource
     @Lazy
     private MesProRouteService routeService;
+    @Resource
+    @Lazy
+    private MesProRouteProductBomService routeProductBomService;
 
     @Override
     @Transactional(rollbackFor = Exception.class)
@@ -57,6 +63,12 @@
 
         // 2. 鎻掑叆
         MesProRouteProcessDO routeProcess = BeanUtils.toBean(createReqVO, MesProRouteProcessDO.class);
+        if (CollUtil.isNotEmpty(createReqVO.getOutputItemIds())) {
+            routeProcess.setOutputItemId(
+                createReqVO.getOutputItemIds().stream()
+                    .map(String::valueOf)
+                    .collect(Collectors.joining(",")));
+        }
         routeProcessMapper.insert(routeProcess);
 
         // 3. 鏇存柊宸ュ簭閾�
@@ -80,6 +92,12 @@
 
         // 2. 鏇存柊
         MesProRouteProcessDO updateObj = BeanUtils.toBean(updateReqVO, MesProRouteProcessDO.class);
+        if (CollUtil.isNotEmpty(updateReqVO.getOutputItemIds())) {
+            updateObj.setOutputItemId(
+                updateReqVO.getOutputItemIds().stream()
+                    .map(String::valueOf)
+                    .collect(Collectors.joining(",")));
+        }
         routeProcessMapper.updateById(updateObj);
 
         // 3. 閲嶅缓宸ュ簭閾�
@@ -198,6 +216,20 @@
     }
 
     @Override
+    public Map<Long, List<MesProRouteProductBomDO>> getRouteProcessBomMapByProductId(Long productId) {
+        MesProRouteProductDO routeProduct = routeProductService.getRouteProductByItemId(productId);
+        if (routeProduct == null) {
+            return Collections.emptyMap();
+        }
+        List<MesProRouteProductBomDO> bomList = routeProductBomService
+                .getRouteProductBomListByRouteIdAndProductId(routeProduct.getRouteId(), productId);
+        if (CollUtil.isEmpty(bomList)) {
+            return Collections.emptyMap();
+        }
+        return bomList.stream().collect(Collectors.groupingBy(MesProRouteProductBomDO::getProcessId));
+    }
+
+    @Override
     public List<MesProRouteProcessDO> getRouteProcessListByProcessId(Long processId) {
         return routeProcessMapper.selectListByProcessId(processId);
     }

--
Gitblit v1.9.3