From 85156554438bb13930c89072ee0b7fa93192a7fe Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期四, 16 七月 2026 17:43:30 +0800
Subject: [PATCH] 1.联调优化采购申请到入库的整个逻辑

---
 yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/sn/MesWmSnController.java |   50 +++++++++++++++++++++++++++++++++-----------------
 1 files changed, 33 insertions(+), 17 deletions(-)

diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/sn/MesWmSnController.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/sn/MesWmSnController.java
index 63d5afe..3b49cc7 100644
--- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/sn/MesWmSnController.java
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/sn/MesWmSnController.java
@@ -12,10 +12,12 @@
 import cn.iocoder.yudao.module.mes.controller.admin.wm.sn.vo.MesWmSnGroupRespVO;
 import cn.iocoder.yudao.module.mes.controller.admin.wm.sn.vo.MesWmSnPageReqVO;
 import cn.iocoder.yudao.module.mes.controller.admin.wm.sn.vo.MesWmSnRespVO;
-import cn.iocoder.yudao.module.mes.dal.dataobject.md.item.MesMdItemDO;
-import cn.iocoder.yudao.module.mes.dal.dataobject.md.unitmeasure.MesMdUnitMeasureDO;
-import cn.iocoder.yudao.module.mes.service.md.item.MesMdItemService;
-import cn.iocoder.yudao.module.mes.service.md.unitmeasure.MesMdUnitMeasureService;
+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.api.unit.MdmUnitMeasureApi;
+import cn.iocoder.yudao.module.mdm.api.unit.dto.MdmUnitMeasureRespDTO;
+
 import cn.iocoder.yudao.module.mes.service.wm.sn.MesWmSnService;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.Parameter;
@@ -31,6 +33,7 @@
 import java.io.IOException;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
 import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
@@ -45,9 +48,9 @@
     @Resource
     private MesWmSnService snService;
     @Resource
-    private MesMdItemService itemService;
+    private MdmItemApi mdmItemApi;
     @Resource
-    private MesMdUnitMeasureService unitMeasureService;
+    private MdmUnitMeasureApi mdmUnitMeasureApi;
 
     @PostMapping("/generate")
     @Operation(summary = "鐢熸垚 SN 鐮�")
@@ -65,8 +68,19 @@
         if (CollUtil.isEmpty(pageResult.getList())) {
             return success(PageResult.empty(pageResult.getTotal()));
         }
-        buildGroupItemInfo(pageResult.getList());
+        buildSnGroupItemVO(pageResult.getList());
         return success(pageResult);
+    }
+
+    @GetMapping("/list-by-uuid")
+    @Operation(summary = "鑾峰緱鎵规 SN 鐮佹槑缁嗗垪琛�")
+    @Parameter(name = "uuid", description = "鎵规 UUID", required = true)
+    @PreAuthorize("@ss.hasPermission('mes:wm-sn:query')")
+    public CommonResult<List<MesWmSnRespVO>> getSnListByUuid(
+            @RequestParam("uuid") @NotBlank(message = "鎵规 UUID 涓嶈兘涓虹┖") String uuid) {
+        List<MesWmSnRespVO> list = BeanUtils.toBean(snService.getSnListByUuid(uuid), MesWmSnRespVO.class);
+        buildSnItemVO(list);
+        return success(list);
     }
 
     @DeleteMapping("/delete-batch")
@@ -85,7 +99,7 @@
     public void exportSnGroupExcel(@Valid MesWmSnPageReqVO reqVO, HttpServletResponse response) throws IOException {
         reqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
         List<MesWmSnGroupRespVO> list = snService.getSnGroupPage(reqVO).getList();
-        buildGroupItemInfo(list);
+        buildSnGroupItemVO(list);
         ExcelUtils.write(response, "SN鐮佸垎缁�.xls", "鏁版嵁", MesWmSnGroupRespVO.class, list);
     }
 
@@ -96,32 +110,34 @@
     @ApiAccessLog(operateType = EXPORT)
     public void exportSnExcel(@RequestParam("uuid") String uuid, HttpServletResponse response) throws IOException {
         List<MesWmSnRespVO> list = BeanUtils.toBean(snService.getSnListByUuid(uuid), MesWmSnRespVO.class);
-        buildItemInfo(list);
+        buildSnItemVO(list);
         ExcelUtils.write(response, "SN鐮佹槑缁�.xls", "鏁版嵁", MesWmSnRespVO.class, list);
     }
 
     // ==================== 鎷兼帴 VO ====================
 
-    private void buildGroupItemInfo(List<MesWmSnGroupRespVO> list) {
+    private void buildSnGroupItemVO(List<MesWmSnGroupRespVO> list) {
         if (CollUtil.isEmpty(list)) {
             return;
         }
-        Map<Long, MesMdItemDO> itemMap = itemService.getItemMap(convertSet(list, MesWmSnGroupRespVO::getItemId));
-        Map<Long, MesMdUnitMeasureDO> unitMap = unitMeasureService.getUnitMeasureMap(
-                convertSet(itemMap.values(), MesMdItemDO::getUnitMeasureId));
+        Map<Long, MdmItemRespDTO> itemMap = mdmItemApi.getItemMap(convertSet(list, MesWmSnGroupRespVO::getItemId));
+        Map<Long, MdmUnitMeasureRespDTO> unitMap = mdmUnitMeasureApi.getUnitMeasureList(
+                convertSet(itemMap.values(), MdmItemRespDTO::getUnitMeasureId)).getCheckedData()
+                .stream().collect(Collectors.toMap(MdmUnitMeasureRespDTO::getId, e -> e));
         list.forEach(vo -> MapUtils.findAndThen(itemMap, vo.getItemId(), item -> {
             vo.setItemCode(item.getCode()).setItemName(item.getName()).setSpecification(item.getSpecification());
             MapUtils.findAndThen(unitMap, item.getUnitMeasureId(), unit -> vo.setUnitName(unit.getName()));
         }));
     }
 
-    private void buildItemInfo(List<MesWmSnRespVO> list) {
+    private void buildSnItemVO(List<MesWmSnRespVO> list) {
         if (CollUtil.isEmpty(list)) {
             return;
         }
-        Map<Long, MesMdItemDO> itemMap = itemService.getItemMap(convertSet(list, MesWmSnRespVO::getItemId));
-        Map<Long, MesMdUnitMeasureDO> unitMap = unitMeasureService.getUnitMeasureMap(
-                convertSet(itemMap.values(), MesMdItemDO::getUnitMeasureId));
+        Map<Long, MdmItemRespDTO> itemMap = mdmItemApi.getItemMap(convertSet(list, MesWmSnRespVO::getItemId));
+        Map<Long, MdmUnitMeasureRespDTO> unitMap = mdmUnitMeasureApi.getUnitMeasureList(
+                convertSet(itemMap.values(), MdmItemRespDTO::getUnitMeasureId)).getCheckedData()
+                .stream().collect(Collectors.toMap(MdmUnitMeasureRespDTO::getId, e -> e));
         list.forEach(vo -> MapUtils.findAndThen(itemMap, vo.getItemId(), item -> {
             vo.setItemCode(item.getCode()).setItemName(item.getName()).setSpecification(item.getSpecification());
             MapUtils.findAndThen(unitMap, item.getUnitMeasureId(), unit -> vo.setUnitName(unit.getName()));

--
Gitblit v1.9.3