From 5bbf6b97525dd92c81fe91447953e7819f8a4e18 Mon Sep 17 00:00:00 2001
From: huminmin <mac@MacBook-Pro.local>
Date: 星期一, 17 八月 2026 16:49:46 +0800
Subject: [PATCH] 上级账户可以将下属账户添加的团队成员退出团队

---
 yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/item/MesMdItemServiceImpl.java |   21 ++++++++++++++-------
 1 files changed, 14 insertions(+), 7 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..319ea0f 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 鏃讹級
@@ -212,11 +224,6 @@
     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