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