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