From 31168ec141483a6d74bb0413d01c6aaecbc5fb9d Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期一, 12 十月 2026 11:53:47 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev_海西州_惠牧' into dev_海西州_惠牧

---
 yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/item/MesMdItemServiceImpl.java |   34 +++++++++++++++-------------------
 1 files changed, 15 insertions(+), 19 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 fcefee0..26de072 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,7 @@
     private void validateItemSaveData(MesMdItemSaveReqVO reqVO) {
         // 鏍¢獙鐗╂枡缂栫爜鐨勫敮涓�鎬�
         validateItemCodeUnique(reqVO.getId(), reqVO.getCode());
-        // 鏍¢獙鐗╂枡鍚嶇О鐨勫敮涓�鎬�
-        validateItemNameUnique(reqVO.getId(), reqVO.getName());
+        // 涓嶅啀鏍¢獙鐗╂枡鍚嶇О鐨勫敮涓�鎬э細鍏佽鍚屽悕涓嶅悓缂栫爜鐨勭墿鏂欙紙涓� MDM 鐗╂枡瑙勫垯淇濇寔涓�鑷达級
         // 鏍¢獙鐗╂枡鍒嗙被瀛樺湪
         validateItemTypeExists(reqVO.getItemTypeId());
         // 鏍¢獙璁¢噺鍗曚綅瀛樺湪
@@ -199,24 +210,9 @@
         }
     }
 
-    private void validateItemNameUnique(Long id, String name) {
-        MesMdItemDO item = itemMapper.selectByName(name);
-        if (item == null) {
-            return;
-        }
-        if (ObjUtil.notEqual(item.getId(), id)) {
-            throw exception(MD_ITEM_NAME_DUPLICATE);
-        }
-    }
-
     private void validateItemTypeExists(Long itemTypeId) {
         if (itemTypeService.getItemType(itemTypeId) == null) {
             throw exception(MD_ITEM_TYPE_NOT_EXISTS);
-        }
-        // 鏍¢獙蹇呴』鏄彾瀛愬垎绫伙紙娌℃湁瀛愬垎绫伙級
-        List<MesMdItemTypeDO> children = itemTypeService.getItemTypeChildrenList(itemTypeId);
-        if (CollUtil.isNotEmpty(children)) {
-            throw exception(MD_ITEM_TYPE_NOT_LEAF);
         }
     }
 

--
Gitblit v1.9.3