From 9daeb6eac6e46710055e625bbbd56331b8890e21 Mon Sep 17 00:00:00 2001
From: xiaoyi <908147524@qq.com>
Date: 星期三, 04 十一月 2026 10:10:20 +0800
Subject: [PATCH] revert(energy): 撤销 energy 模块移植(与新高原有 em 模块重复)

---
 yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/item/MesMdItemServiceImpl.java |   30 +++++++++++++++++++++---------
 1 files changed, 21 insertions(+), 9 deletions(-)

diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/item/MesMdItemServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/item/MesMdItemServiceImpl.java
index 0899d3a..b43e40f 100644
--- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/item/MesMdItemServiceImpl.java
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/item/MesMdItemServiceImpl.java
@@ -37,7 +37,7 @@
  *
  * 鏀寔 MES 鍜� MDM 鐗╂枡鏁版嵁鍙屽悜鍚屾
  *
- * @author 鑺嬮亾婧愮爜
+ * @author 瓒呯骇绠$悊鍛�
  */
 @Service
 @Validated
@@ -80,11 +80,19 @@
                 updateItem(createReqVO);
                 return createReqVO.getId();
             }
+            // 瀛樺湪閫昏緫鍒犻櫎璁板綍锛堝彇娑堝悓姝ュ悗閲嶆柊鍚屾锛夛細鎭㈠璇ヨ褰曞悗璧版洿鏂帮紝閬垮厤涓婚敭鍐茬獊
+            if (itemMapper.selectAnyById(createReqVO.getId()) != null) {
+                itemMapper.restoreById(createReqVO.getId());
+                updateItem(createReqVO);
+                return createReqVO.getId();
+            }
         }
 
         // 鎻掑叆
         MesMdItemDO item = BeanUtils.toBean(createReqVO, MesMdItemDO.class);
-        item.setStatus(CommonStatusEnum.DISABLE.getStatus()); // 榛樿绂佺敤銆備俊鎭畬鎴愬悗锛屽啀鍚敤
+        // 鐘舵�佸彧鑳界敱鍩虹鏁版嵁锛圡DM锛夋帶鍒讹細MDM 鍚屾鏃舵部鐢ㄥ叾鐘舵�侊紱MES 鏈湴鏂板榛樿绂佺敤
+        item.setStatus(createReqVO.getMdmItemId() != null && createReqVO.getStatus() != null
+                ? createReqVO.getStatus() : CommonStatusEnum.DISABLE.getStatus());
         clearStockIfNotSafe(item); // 濡傛灉鏈惎鐢ㄥ畨鍏ㄥ簱瀛橈紝娓呴浂搴撳瓨涓婁笅闄�
         itemMapper.insert(item);
 
@@ -111,6 +119,10 @@
         // 鏇存柊
         MesMdItemDO updateObj = BeanUtils.toBean(updateReqVO, MesMdItemDO.class);
         clearStockIfNotSafe(updateObj); // 濡傛灉鏈惎鐢ㄥ畨鍏ㄥ簱瀛橈紝娓呴浂搴撳瓨涓婁笅闄�
+        // 鐘舵�佸彧鑳界敱鍩虹鏁版嵁锛圡DM锛夋帶鍒讹紝MES 鏈湴鏇存柊涓嶅厑璁镐慨鏀圭姸鎬�
+        if (updateReqVO.getMdmItemId() == null) {
+            updateObj.setStatus(null);
+        }
         itemMapper.updateById(updateObj);
 
         // 鍚屾鍒� MDM锛堝嬀閫� syncMdm 鏃讹級
@@ -123,8 +135,10 @@
     private void validateItemSaveData(MesMdItemSaveReqVO reqVO) {
         // 鏍¢獙鐗╂枡缂栫爜鐨勫敮涓�鎬�
         validateItemCodeUnique(reqVO.getId(), reqVO.getCode());
-        // 鏍¢獙鐗╂枡鍚嶇О鐨勫敮涓�鎬�
-        validateItemNameUnique(reqVO.getId(), reqVO.getName());
+        // 鏍¢獙鐗╂枡鍚嶇О鐨勫敮涓�鎬э細MDM 涓绘暟鎹互缂栫爜涓哄敮涓�鏍囪瘑锛屽厑璁稿悓鍚嶄笉鍚岃鏍�
+        if (reqVO.getMdmItemId() == null) {
+            validateItemNameUnique(reqVO.getId(), reqVO.getName());
+        }
         // 鏍¢獙鐗╂枡鍒嗙被瀛樺湪
         validateItemTypeExists(reqVO.getItemTypeId());
         // 鏍¢獙璁¢噺鍗曚綅瀛樺湪
@@ -200,11 +214,9 @@
     }
 
     private void validateItemNameUnique(Long id, String name) {
-        MesMdItemDO item = itemMapper.selectByName(name);
-        if (item == null) {
-            return;
-        }
-        if (ObjUtil.notEqual(item.getId(), id)) {
+        // 浣跨敤鍒楄〃鏌ヨ锛氬瓨閲忔暟鎹彲鑳藉瓨鍦ㄥ悓鍚嶇墿鏂欙紝閬垮厤 selectOne 鐩存帴鎶涘紓甯�
+        List<MesMdItemDO> items = itemMapper.selectList(MesMdItemDO::getName, name);
+        if (items.stream().anyMatch(item -> ObjUtil.notEqual(item.getId(), id))) {
             throw exception(MD_ITEM_NAME_DUPLICATE);
         }
     }

--
Gitblit v1.9.3