From c2053d7017625f270577bc0f6c523d04f52db6ea Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期五, 24 七月 2026 14:20:29 +0800
Subject: [PATCH] refactor(crm): 重构文件上传功能,替换原有的fileUrls字段为统一的StorageAttachmentApi

---
 yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/workorder/MesProWorkOrderProcessServiceImpl.java |   27 +++++++++++----------------
 1 files changed, 11 insertions(+), 16 deletions(-)

diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/workorder/MesProWorkOrderProcessServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/workorder/MesProWorkOrderProcessServiceImpl.java
index e626b2e..9ee4e74 100644
--- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/workorder/MesProWorkOrderProcessServiceImpl.java
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/workorder/MesProWorkOrderProcessServiceImpl.java
@@ -191,32 +191,27 @@
     }
 
     /**
-     * 浠庡伐搴忓垪琛ㄤ腑鎻愬彇 BOM 鎶曟枡锛屽悎骞跺幓閲嶅悗淇濆瓨鍒板伐鍗� BOM 琛�
+     * 浠庡伐搴忓垪琛ㄤ腑鎻愬彇 BOM 鎶曟枡锛屾寜宸ュ簭鍒嗗埆淇濆瓨鍒板伐鍗� BOM 琛�
      */
     private void saveWorkOrderBomFromProcesses(Long workOrderId, List<MesProWorkOrderProcessSaveReqVO> list) {
-        // 鏀堕泦鎵�鏈夊伐搴忕殑 bomItems锛屾寜 itemId 鍘婚噸锛堜繚鐣欑涓�涓嚭鐜扮殑 quantity锛�
-        java.util.Map<Long, MesProWorkOrderProcessSaveReqVO.BomItem> merged = new java.util.LinkedHashMap<>();
+        workOrderBomService.deleteWorkOrderBomByWorkOrderId(workOrderId);
+        List<MesProWorkOrderBomDO> bomList = new ArrayList<>();
         for (MesProWorkOrderProcessSaveReqVO item : list) {
             if (CollUtil.isNotEmpty(item.getBomItems())) {
                 for (MesProWorkOrderProcessSaveReqVO.BomItem bomItem : item.getBomItems()) {
                     if (bomItem.getItemId() != null) {
-                        merged.putIfAbsent(bomItem.getItemId(), bomItem);
+                        bomList.add(MesProWorkOrderBomDO.builder()
+                                .workOrderId(workOrderId)
+                                .processId(item.getProcessId())
+                                .itemId(bomItem.getItemId())
+                                .quantity(bomItem.getQuantity())
+                                .remark(bomItem.getRemark())
+                                .build());
                     }
                 }
             }
         }
-        // 鍒犻櫎鏃� BOM锛屾壒閲忔彃鍏ユ柊 BOM
-        workOrderBomService.deleteWorkOrderBomByWorkOrderId(workOrderId);
-        if (CollUtil.isNotEmpty(merged)) {
-            List<MesProWorkOrderBomDO> bomList = new ArrayList<>(merged.size());
-            for (MesProWorkOrderProcessSaveReqVO.BomItem bomItem : merged.values()) {
-                bomList.add(MesProWorkOrderBomDO.builder()
-                        .workOrderId(workOrderId)
-                        .itemId(bomItem.getItemId())
-                        .quantity(bomItem.getQuantity())
-                        .remark(bomItem.getRemark())
-                        .build());
-            }
+        if (CollUtil.isNotEmpty(bomList)) {
             workOrderBomMapper.insertBatch(bomList);
         }
     }

--
Gitblit v1.9.3