From 4bec63c802692a402039f0d99eae068d26d63c55 Mon Sep 17 00:00:00 2001
From: xiaoyi <908147524@qq.com>
Date: 星期六, 07 十一月 2026 16:11:44 +0800
Subject: [PATCH] 完善物料颜色同步并保护数据

---
 yudao-module-mdm/src/main/java/cn/iocoder/yudao/module/mdm/service/item/MdmItemServiceImpl.java |   13 ++++++++++---
 1 files changed, 10 insertions(+), 3 deletions(-)

diff --git a/yudao-module-mdm/src/main/java/cn/iocoder/yudao/module/mdm/service/item/MdmItemServiceImpl.java b/yudao-module-mdm/src/main/java/cn/iocoder/yudao/module/mdm/service/item/MdmItemServiceImpl.java
index cfbc790..fa4ba2f 100644
--- a/yudao-module-mdm/src/main/java/cn/iocoder/yudao/module/mdm/service/item/MdmItemServiceImpl.java
+++ b/yudao-module-mdm/src/main/java/cn/iocoder/yudao/module/mdm/service/item/MdmItemServiceImpl.java
@@ -107,7 +107,7 @@
     @Transactional(rollbackFor = Exception.class)
     public void updateItem(MdmItemSaveReqVO updateReqVO) {
         // 鏍¢獙瀛樺湪
-        validateItemExists(updateReqVO.getId());
+        MdmItemDO previousItem = validateItemExists(updateReqVO.getId());
         // 鏍¢獙鏁版嵁
         validateItemSaveData(updateReqVO);
 
@@ -120,7 +120,7 @@
 
         // 鏍规嵁鍚屾寮�鍏冲喅瀹氾細鎵撳紑鍒欏悓姝ュ埌 MES锛屽叧闂垯鍙栨秷鍚屾锛堜粠 MES 鍒犻櫎锛�
         if (Boolean.TRUE.equals(updateReqVO.getSyncMes())) {
-            syncItemToMes(updateReqVO);
+            syncItemToMes(updateReqVO, previousItem.getCode());
         } else {
             mesMdItemApi.deleteItem(updateReqVO.getId());
         }
@@ -139,6 +139,10 @@
      * 鍚屾澶辫触灏嗘姏鍑哄紓甯革紝鍥炴粴鏈浜嬪姟锛堟湰琛岀殑 MDM 鎿嶄綔涓�骞跺洖婊氾紝涓嶅奖鍝嶅叾瀹冭锛夈��
      */
     private void syncItemToMes(MdmItemSaveReqVO reqVO) {
+        syncItemToMes(reqVO, null);
+    }
+
+    private void syncItemToMes(MdmItemSaveReqVO reqVO, String previousCode) {
         // 瑙f瀽璁¢噺鍗曚綅 id -> code
         String unitCode = null;
         if (reqVO.getUnitMeasureId() != null) {
@@ -157,9 +161,11 @@
         // 缁勮鍚屾 DTO
         MesMdItemSyncReqDTO syncReqDTO = new MesMdItemSyncReqDTO();
         syncReqDTO.setCode(reqVO.getCode());
+        syncReqDTO.setPreviousCode(previousCode);
         syncReqDTO.setMdmItemId(reqVO.getId());
         syncReqDTO.setName(reqVO.getName());
         syncReqDTO.setSpecification(reqVO.getSpecification());
+        syncReqDTO.setColor(reqVO.getColor());
         syncReqDTO.setUnitCode(unitCode);
         syncReqDTO.setItemTypeCode(itemTypeCode);
         syncReqDTO.setSafeStockFlag(Boolean.TRUE); // 淇濈暀 MDM 鐨� minStock/maxStock锛岄伩鍏嶈 MES 娓呴浂
@@ -515,6 +521,7 @@
             saveReqVO.setName(importVO.getName());
             saveReqVO.setBarCode(importVO.getBarCode());
             saveReqVO.setSpecification(importVO.getSpecification());
+            saveReqVO.setColor(importVO.getColor());
             saveReqVO.setCategoryId(categoryId);
             saveReqVO.setUnitMeasureId(unitMeasureId);
             saveReqVO.setUnitMeasureId2(unitMeasureId2);
@@ -587,4 +594,4 @@
                 StrUtil.blankToDefault(importVO.getName(), "锛堝悕绉板拰缂栫爜涓虹┖鐨勮锛�"));
     }
 
-}
\ No newline at end of file
+}

--
Gitblit v1.9.3