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-mes/src/main/java/cn/iocoder/yudao/module/mes/api/item/MesMdItemApiImpl.java |   15 +++++++++++++++
 1 files changed, 15 insertions(+), 0 deletions(-)

diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/api/item/MesMdItemApiImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/api/item/MesMdItemApiImpl.java
index 3376239..1218c78 100644
--- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/api/item/MesMdItemApiImpl.java
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/api/item/MesMdItemApiImpl.java
@@ -18,9 +18,11 @@
 import org.springframework.validation.annotation.Validated;
 
 import java.util.Collection;
+import java.util.Objects;
 import java.util.Set;
 
 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
+import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.invalidParamException;
 import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.*;
 
 /**
@@ -50,6 +52,7 @@
     @Override
     public Long createItem(MesMdItemSyncReqDTO syncReqDTO) {
         log.info("[createItem] 鍚屾鍒涘缓 MES 鐗╂枡浜у搧锛宑ode={}, mdmItemId={}", syncReqDTO.getCode(), syncReqDTO.getMdmItemId());
+        validateSharedId(syncReqDTO);
         MesMdItemSaveReqVO saveReqVO = buildSaveReqVO(syncReqDTO);
         // 浣跨敤 MDM 鐗╂枡 ID 浣滀负 MES 鐗╂枡 ID
         if (syncReqDTO.getMdmItemId() != null) {
@@ -64,6 +67,7 @@
     @Override
     public void updateItem(MesMdItemSyncReqDTO syncReqDTO) {
         log.info("[updateItem] 鍚屾鏇存柊 MES 鐗╂枡浜у搧锛宑ode={}, mdmItemId={}", syncReqDTO.getCode(), syncReqDTO.getMdmItemId());
+        validateSharedId(syncReqDTO);
         MesMdItemSaveReqVO saveReqVO = buildSaveReqVO(syncReqDTO);
         // 浣跨敤 MDM 鐗╂枡 ID 浣滀负 MES 鐗╂枡 ID
         if (syncReqDTO.getMdmItemId() != null) {
@@ -91,6 +95,17 @@
 //        saveBatchConfig(itemId, syncReqDTO);
     }
 
+    private void validateSharedId(MesMdItemSyncReqDTO syncReqDTO) {
+        if (syncReqDTO.getMdmItemId() == null) {
+            return;
+        }
+        MesMdItemDO existing = itemMapper.selectAnyById(syncReqDTO.getMdmItemId());
+        if (existing != null && !Objects.equals(existing.getCode(), syncReqDTO.getCode())
+                && !Objects.equals(existing.getCode(), syncReqDTO.getPreviousCode())) {
+            throw invalidParamException("鍚屾澶辫触锛氱敓浜х墿鏂欑紪鍙峰凡琚叾浠栫紪鐮佸崰鐢紝璇锋牳瀵逛袱濂楃墿鏂欐暟鎹悗鍐嶆搷浣�");
+        }
+    }
+
     /**
      * 灏嗗悓姝� DTO 杞崲涓� MES 鐗╂枡浜у搧 SaveReqVO锛屽苟鎸� code 瑙f瀽鍗曚綅/鍒嗙被 id
      */

--
Gitblit v1.9.3