From eccad5a129106377a275be4f7cdc58e99e9b95d4 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期二, 21 七月 2026 13:45:14 +0800
Subject: [PATCH] feat(mes): 实现库存移库功能

---
 yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/item/MesMdItemServiceImpl.java |   32 ++++++++++++++++++++++++++++++--
 1 files changed, 30 insertions(+), 2 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 1102aef..c8f85a6 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
@@ -77,6 +77,16 @@
         // 鏍¢獙鏁版嵁
         validateItemSaveData(createReqVO);
 
+        // 濡傛灉鎸囧畾浜� ID锛屾鏌ヨ ID 鏄惁宸插瓨鍦紙鐢ㄤ簬 MDM 鍚屾鏃朵繚鎸� ID 涓�鑷达級
+        if (createReqVO.getId() != null) {
+            MesMdItemDO existItem = itemMapper.selectById(createReqVO.getId());
+            if (existItem != null) {
+                // ID 宸插瓨鍦紝杞负鏇存柊
+                updateItem(createReqVO);
+                return createReqVO.getId();
+            }
+        }
+
         // 鎻掑叆
         MesMdItemDO item = BeanUtils.toBean(createReqVO, MesMdItemDO.class);
         item.setStatus(CommonStatusEnum.DISABLE.getStatus()); // 榛樿绂佺敤銆備俊鎭畬鎴愬悗锛屽啀鍚敤
@@ -396,12 +406,13 @@
      */
     private void syncItemToMdm(MesMdItemDO item, MesMdItemSaveReqVO saveReqVO) {
         // 1. 鑾峰彇鐗╂枡绫诲瀷瀵瑰簲鐨� itemType
-        Integer itemType = null;
+        Long itemType = null;
         if (item.getItemTypeId() != null) {
             MesMdItemTypeDO itemTypeDO = itemTypeService.getItemType(item.getItemTypeId());
             if (itemTypeDO != null) {
                 // MES: ITEM=鐗╂枡, PRODUCT=浜у搧 -> MDM: 1=鍘熸枡, 2=鍗婃垚鍝�, 3=鎴愬搧, 4=杈呮枡
-                itemType = convertMesItemTypeToMdm(itemTypeDO.getItemOrProduct(), itemTypeDO.getName());
+//                itemType = convertMesItemTypeToMdm(itemTypeDO.getItemOrProduct(), itemTypeDO.getName());
+                itemType = itemTypeDO.getId();
             }
         }
 
@@ -477,4 +488,21 @@
         return 1; // 榛樿鍘熸枡
     }
 
+    @Override
+    public MesMdItemDO getItemByMdmItemId(Long mdmItemId) {
+        if (mdmItemId == null) {
+            return null;
+        }
+        return itemMapper.selectByMdmItemId(mdmItemId);
+    }
+
+    @Override
+    public MesMdItemDO validateItemExistsByMdmItemId(Long mdmItemId) {
+        MesMdItemDO item = getItemByMdmItemId(mdmItemId);
+        if (item == null) {
+            throw exception(MD_ITEM_NOT_EXISTS);
+        }
+        return item;
+    }
+
 }
\ No newline at end of file

--
Gitblit v1.9.3