From 6b5f7c66fc40d7f6099d561e31a34fbd50dd20d3 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期三, 01 七月 2026 15:54:57 +0800
Subject: [PATCH] 初始化项目

---
 yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/service/md/item/WmsItemServiceImpl.java |  100 +++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 82 insertions(+), 18 deletions(-)

diff --git a/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/service/md/item/WmsItemServiceImpl.java b/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/service/md/item/WmsItemServiceImpl.java
index 191ca86..5ded7db 100644
--- a/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/service/md/item/WmsItemServiceImpl.java
+++ b/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/service/md/item/WmsItemServiceImpl.java
@@ -4,6 +4,9 @@
 import cn.hutool.core.util.ObjectUtil;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
+import cn.iocoder.yudao.module.mdm.api.item.MdmItemApi;
+import cn.iocoder.yudao.module.mdm.api.item.dto.MdmItemRespDTO;
+import cn.iocoder.yudao.module.mdm.enums.MdmItemTypeEnum;
 import cn.iocoder.yudao.module.wms.controller.admin.md.item.vo.item.WmsItemListReqVO;
 import cn.iocoder.yudao.module.wms.controller.admin.md.item.vo.item.WmsItemPageReqVO;
 import cn.iocoder.yudao.module.wms.controller.admin.md.item.vo.item.WmsItemSaveReqVO;
@@ -15,6 +18,7 @@
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.validation.annotation.Validated;
 
+import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.List;
@@ -25,6 +29,9 @@
 /**
  * WMS 鍟嗗搧 Service 瀹炵幇绫�
  *
+ * 鏀归�犺鏄庯細鍟嗗搧鍩虹鏁版嵁浠� MDM 妯″潡鑾峰彇锛坕temType=1 鐗╂枡绫诲瀷锛�
+ * WMS 鐗规湁鍔熻兘锛圫KU銆佸簱瀛樼瓑锛変粛淇濈暀 WMS 绠$悊
+ *
  * @author 鑺嬮亾婧愮爜
  */
 @Service
@@ -33,6 +40,10 @@
 
     @Resource
     private WmsItemMapper itemMapper;
+
+    @Resource
+    private MdmItemApi mdmItemApi;
+
     @Resource
     @Lazy // 寤惰繜鍔犺浇锛岄伩鍏嶅惊鐜緷璧�
     private WmsItemCategoryService categoryService;
@@ -48,7 +59,7 @@
         // 鏍¢獙鏁版嵁
         validateItemSaveData(createReqVO);
 
-        // 鎻掑叆鍟嗗搧
+        // 鎻掑叆鍟嗗搧锛堟殏鏃朵繚鐣欏師閫昏緫锛屽悗缁彲瀹屽叏杩佺Щ鍒� MDM锛�
         WmsItemDO item = BeanUtils.toBean(createReqVO, WmsItemDO.class);
         itemMapper.insert(item);
         // 鎻掑叆 SKU
@@ -64,7 +75,7 @@
         // 鏍¢獙鏁版嵁
         validateItemSaveData(updateReqVO);
 
-        // 鏇存柊鍟嗗搧
+        // 鏇存柊鍟嗗搧锛堟殏鏃朵繚鐣欏師閫昏緫锛�
         WmsItemDO updateObj = BeanUtils.toBean(updateReqVO, WmsItemDO.class);
         itemMapper.updateById(updateObj);
         // 鏇存柊 SKU
@@ -83,11 +94,9 @@
     }
 
     private void validateItemCodeUnique(Long id, String code) {
-        WmsItemDO item = itemMapper.selectByCode(code);
-        if (item == null) {
-            return;
-        }
-        if (id == null || ObjectUtil.notEqual(item.getId(), id)) {
+        // 妫�鏌� MDM 涓紪鐮佸敮涓�鎬�
+        MdmItemRespDTO item = mdmItemApi.getItemByCode(code).getCheckedData();
+        if (item != null && ObjectUtil.notEqual(item.getId(), id)) {
             throw exception(ITEM_CODE_DUPLICATE);
         }
     }
@@ -126,28 +135,58 @@
 
     @Override
     public WmsItemDO validateItemExists(Long id) {
-        WmsItemDO item = itemMapper.selectById(id);
+        // 浠� MDM 鏍¢獙鐗╂枡瀛樺湪
+        MdmItemRespDTO item = mdmItemApi.validateItemExists(id).getCheckedData();
         if (item == null) {
-            throw exception(ITEM_NOT_EXISTS);
+            // 濡傛灉 MDM 涓笉瀛樺湪锛屾鏌ユ湰鍦拌〃
+            WmsItemDO localItem = itemMapper.selectById(id);
+            if (localItem == null) {
+                throw exception(ITEM_NOT_EXISTS);
+            }
+            return localItem;
         }
-        return item;
+        return convertToWmsItem(item);
     }
 
     @Override
     public WmsItemDO getItem(Long id) {
-        return itemMapper.selectById(id);
+        // 浠� MDM 鑾峰彇鐗╂枡鏁版嵁锛堟敞鎰� WMS ID 鍋忕Щ 30000锛�
+        MdmItemRespDTO item = mdmItemApi.getItem(id).getCheckedData();
+        if (item == null) {
+            // 濡傛灉 MDM 涓笉瀛樺湪锛屾煡璇㈡湰鍦拌〃
+            return itemMapper.selectById(id);
+        }
+        return convertToWmsItem(item);
     }
 
     @Override
     public PageResult<WmsItemDO> getItemPage(WmsItemPageReqVO pageReqVO) {
-        return itemMapper.selectPage(pageReqVO,
-                categoryService.getSelfAndChildItemCategoryIdList(pageReqVO.getCategoryId()));
+        // 浠� MDM 鑾峰彇鐗╂枡鍒嗛〉鏁版嵁锛坕temType=1 鐗╂枡绫诲瀷锛�
+        cn.iocoder.yudao.framework.common.pojo.PageResult<MdmItemRespDTO> mdmPageResult =
+                mdmItemApi.getItemPage(MdmItemTypeEnum.MATERIAL.getType(), null,
+                        pageReqVO.getPageNo(), pageReqVO.getPageSize()).getCheckedData();
+
+        // 杞崲涓� WMS 鍟嗗搧 DO
+        List<WmsItemDO> list = new ArrayList<>();
+        for (MdmItemRespDTO item : mdmPageResult.getList()) {
+            list.add(convertToWmsItem(item));
+        }
+        return new PageResult<>(list, mdmPageResult.getTotal());
     }
 
     @Override
     public List<WmsItemDO> getItemList(WmsItemListReqVO listReqVO) {
-        return itemMapper.selectList(listReqVO,
-                categoryService.getSelfAndChildItemCategoryIdList(listReqVO.getCategoryId()));
+        // 浠� MDM 鑾峰彇鐗╂枡鍒楄〃锛坕temType=1 鐗╂枡绫诲瀷锛�
+        List<MdmItemRespDTO> items = mdmItemApi.getItemListByStatus(null).getCheckedData();
+
+        List<WmsItemDO> result = new ArrayList<>();
+        for (MdmItemRespDTO item : items) {
+            // 鍙繑鍥炵墿鏂欑被鍨�
+            if (MdmItemTypeEnum.MATERIAL.getType().equals(item.getItemType())) {
+                result.add(convertToWmsItem(item));
+            }
+        }
+        return result;
     }
 
     @Override
@@ -155,17 +194,42 @@
         if (CollUtil.isEmpty(ids)) {
             return Collections.emptyList();
         }
-        return itemMapper.selectByIds(ids);
+        // 浠� MDM 鑾峰彇鐗╂枡鍒楄〃
+        List<MdmItemRespDTO> items = mdmItemApi.getItemList(ids).getCheckedData();
+        List<WmsItemDO> result = new ArrayList<>();
+        for (MdmItemRespDTO item : items) {
+            result.add(convertToWmsItem(item));
+        }
+        return result;
+    }
+
+    /**
+     * 灏� MDM 鐗╂枡杞崲涓� WMS 鍟嗗搧 DO
+     */
+    private WmsItemDO convertToWmsItem(MdmItemRespDTO item) {
+        WmsItemDO wmsItem = new WmsItemDO();
+        wmsItem.setId(item.getId());
+        wmsItem.setCode(item.getCode());
+        wmsItem.setName(item.getName());
+        // MDM categoryId 鏄犲皠鍒� WMS categoryId锛堟敞鎰� ID 鍋忕Щ锛�
+        wmsItem.setCategoryId(item.getCategoryId() != null ? item.getCategoryId() - 20000 : null);
+        wmsItem.setBrandId(item.getBrandId());
+        // 鍗曚綅鍚嶇О闇�瑕佷粠 MDM 鍗曚綅琛ㄨ幏鍙栵紝杩欓噷鏆傛椂鐣欑┖
+        wmsItem.setRemark(item.getRemark());
+        return wmsItem;
     }
 
     @Override
     public long getItemCountByCategoryId(Long categoryId) {
-        return itemMapper.selectCountByCategoryId(categoryId);
+        // 浠� MDM 鑾峰彇鍒嗙被鐗╂枡鏁伴噺锛堟敞鎰� ID 鍋忕Щ锛�
+        return mdmItemApi.getItemCountByCategoryId(categoryId + 20000).getCheckedData();
     }
 
     @Override
     public long getItemCountByBrandId(Long brandId) {
+        // 浠� MDM 鑾峰彇鍝佺墝鐗╂枡鏁伴噺
+        // 娉ㄦ剰锛歁DM 鐩墠娌℃湁鎸夊搧鐗岀粺璁$殑 API锛屾殏鏃惰繑鍥炴湰鍦版暟鎹�
         return itemMapper.selectCountByBrandId(brandId);
     }
 
-}
+}
\ No newline at end of file

--
Gitblit v1.9.3