From 2756f7581ad6743ff796670a26787b85b8aaa2b2 Mon Sep 17 00:00:00 2001
From: xiaoyi <908147524@qq.com>
Date: 星期一, 02 十一月 2026 12:58:50 +0800
Subject: [PATCH] fix(mes): 修复工艺路线【本工序产出】保存不生效 - 后端补齐 outputs 字段与 JSON 存储/解析

---
 yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/pro/workorder/MesProWorkOrderProcessController.java |   16 ++++++++--------
 1 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/pro/workorder/MesProWorkOrderProcessController.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/pro/workorder/MesProWorkOrderProcessController.java
index 1cb8944..cfc2b18 100644
--- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/pro/workorder/MesProWorkOrderProcessController.java
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/pro/workorder/MesProWorkOrderProcessController.java
@@ -18,6 +18,7 @@
 import cn.iocoder.yudao.module.mes.service.pro.process.MesProProcessService;
 import cn.iocoder.yudao.module.mes.service.pro.workorder.MesProWorkOrderBomService;
 import cn.iocoder.yudao.module.mes.service.pro.workorder.MesProWorkOrderProcessService;
+import cn.iocoder.yudao.module.mes.util.MesOutputItemUtils;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.Parameter;
 import io.swagger.v3.oas.annotations.tags.Tag;
@@ -135,15 +136,12 @@
         processIds.addAll(nextProcessIds);
         Map<Long, MesProProcessDO> processMap = CollUtil.isNotEmpty(processIds)
                 ? processService.getProcessMap(processIds) : Collections.emptyMap();
-        // 鑾峰彇浜у嚭鐗╂枡锛堣В鏋愰�楀彿鍒嗛殧鐨勫瓧绗︿覆锛�
+        // 鑾峰彇浜у嚭鐗╂枡锛堝吋瀹� JSON 褰掑睘閰嶇疆涓庢棫閫楀彿鍒嗛殧鏍煎紡锛�
         Set<Long> allOutputItemIds = new HashSet<>();
         Map<Long, List<Long>> voOutputItemIdsMap = new HashMap<>();
         for (int i = 0; i < list.size(); i++) {
-            String outputItemIdStr = list.get(i).getOutputItemId();
-            if (outputItemIdStr != null && !outputItemIdStr.isBlank()) {
-                List<Long> ids = Arrays.stream(outputItemIdStr.split(","))
-                        .map(String::trim).filter(s -> !s.isEmpty())
-                        .map(Long::valueOf).collect(Collectors.toList());
+            List<Long> ids = MesOutputItemUtils.parseItemIds(list.get(i).getOutputItemId());
+            if (!ids.isEmpty()) {
                 voOutputItemIdsMap.put((long) i, ids);
                 allOutputItemIds.addAll(ids);
             }
@@ -175,8 +173,10 @@
             });
         }));
 
-        // 3. 鎷兼帴 VO
-        List<MesProWorkOrderProcessRespVO> result = BeanUtils.toBean(list, MesProWorkOrderProcessRespVO.class);
+        // 3. 鎷兼帴 VO锛堝厛缃┖ output_item_id锛岄伩鍏� String 杞� Long 寮傚父锛涗骇鍑轰笅闈㈠崟鐙~鍏咃級
+        List<MesProWorkOrderProcessDO> safeList = BeanUtils.toBean(list, MesProWorkOrderProcessDO.class);
+        safeList.forEach(row -> row.setOutputItemId(null));
+        List<MesProWorkOrderProcessRespVO> result = BeanUtils.toBean(safeList, MesProWorkOrderProcessRespVO.class);
         for (int i = 0; i < result.size(); i++) {
             MesProWorkOrderProcessRespVO vo = result.get(i);
             MapUtils.findAndThen(processMap, vo.getProcessId(), process -> {

--
Gitblit v1.9.3