From 481d8165f26fc7e37f0e87f6444ac0340bb563a3 Mon Sep 17 00:00:00 2001
From: xiaoyi <908147524@qq.com>
Date: 星期二, 03 十一月 2026 18:53:22 +0800
Subject: [PATCH] fix: 移植长辉已验证的四类接口 500/体验问题(不含物料颜色字段)

---
 yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/pro/route/MesProRouteProductController.java |   31 +++++++++++++++++++++++++++++--
 1 files changed, 29 insertions(+), 2 deletions(-)

diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/pro/route/MesProRouteProductController.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/pro/route/MesProRouteProductController.java
index b0eaf5c..6431d26 100644
--- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/pro/route/MesProRouteProductController.java
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/pro/route/MesProRouteProductController.java
@@ -10,9 +10,15 @@
 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.dal.dataobject.pro.route.MesProRouteProductDO;
+import cn.iocoder.yudao.module.mes.dal.dataobject.wm.warehouse.MesWmWarehouseAreaDO;
+import cn.iocoder.yudao.module.mes.dal.dataobject.wm.warehouse.MesWmWarehouseDO;
+import cn.iocoder.yudao.module.mes.dal.dataobject.wm.warehouse.MesWmWarehouseLocationDO;
 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.mes.service.pro.route.MesProRouteProductService;
+import cn.iocoder.yudao.module.mes.service.wm.warehouse.MesWmWarehouseAreaService;
+import cn.iocoder.yudao.module.mes.service.wm.warehouse.MesWmWarehouseLocationService;
+import cn.iocoder.yudao.module.mes.service.wm.warehouse.MesWmWarehouseService;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.Parameter;
 import io.swagger.v3.oas.annotations.tags.Tag;
@@ -42,6 +48,12 @@
     private MesMdItemService itemService;
     @Resource
     private MesMdUnitMeasureService unitMeasureService;
+    @Resource
+    private MesWmWarehouseService warehouseService;
+    @Resource
+    private MesWmWarehouseLocationService warehouseLocationService;
+    @Resource
+    private MesWmWarehouseAreaService warehouseAreaService;
 
     @PostMapping("/create")
     @Operation(summary = "鍒涘缓宸ヨ壓璺嚎浜у搧")
@@ -67,10 +79,17 @@
         return success(true);
     }
 
+    @PutMapping("/set-template-reference")
+    @Operation(summary = "璁剧疆璺嚎鐨勬ā鏉垮弬鑰冧骇鍝�")
+    @PreAuthorize("@ss.hasPermission('mes:pro-route:update')")
+    public CommonResult<Boolean> setTemplateReference(@RequestParam("id") Long id) {
+        routeProductService.setTemplateReference(id);
+        return success(true);
+    }
+
     @GetMapping("/get")
     @Operation(summary = "鑾峰緱宸ヨ壓璺嚎浜у搧")
     @Parameter(name = "id", description = "缂栧彿", required = true, example = "1024")
-    @PreAuthorize("@ss.hasPermission('mes:pro-route:query')")
     public CommonResult<MesProRouteProductRespVO> getRouteProduct(@RequestParam("id") Long id) {
         MesProRouteProductDO routeProduct = routeProductService.getRouteProduct(id);
         return success(buildRouteProductRespVO(routeProduct));
@@ -79,7 +98,6 @@
     @GetMapping("/list-by-route")
     @Operation(summary = "鎸夊伐鑹鸿矾绾胯幏寰椾骇鍝佸垪琛�")
     @Parameter(name = "routeId", description = "宸ヨ壓璺嚎缂栧彿", required = true, example = "1")
-    @PreAuthorize("@ss.hasPermission('mes:pro-route:query')")
     public CommonResult<List<MesProRouteProductRespVO>> getRouteProductListByRoute(@RequestParam("routeId") Long routeId) {
         List<MesProRouteProductDO> list = routeProductService.getRouteProductListByRouteId(routeId);
         return success(buildRouteProductRespVOList(list));
@@ -96,6 +114,12 @@
                 convertSet(list, MesProRouteProductDO::getItemId));
         Map<Long, MesMdUnitMeasureDO> unitMap = unitMeasureService.getUnitMeasureMap(
                 convertSet(itemMap.values(), MesMdItemDO::getUnitMeasureId));
+        Map<Long, MesWmWarehouseDO> warehouseMap = warehouseService.getWarehouseMap(
+                convertSet(list, MesProRouteProductDO::getWarehouseId));
+        Map<Long, MesWmWarehouseLocationDO> locationMap = warehouseLocationService.getWarehouseLocationMap(
+                convertSet(list, MesProRouteProductDO::getLocationId));
+        Map<Long, MesWmWarehouseAreaDO> areaMap = warehouseAreaService.getWarehouseAreaMap(
+                convertSet(list, MesProRouteProductDO::getAreaId));
         // 2. 鎷兼帴 VO
         return BeanUtils.toBean(list, MesProRouteProductRespVO.class, vo -> {
             MapUtils.findAndThen(itemMap, vo.getItemId(), item -> {
@@ -104,6 +128,9 @@
                 MapUtils.findAndThen(unitMap, item.getUnitMeasureId(),
                         unit -> vo.setUnitName(unit.getName()));
             });
+            MapUtils.findAndThen(warehouseMap, vo.getWarehouseId(), warehouse -> vo.setWarehouseName(warehouse.getName()));
+            MapUtils.findAndThen(locationMap, vo.getLocationId(), location -> vo.setLocationName(location.getName()));
+            MapUtils.findAndThen(areaMap, vo.getAreaId(), area -> vo.setAreaName(area.getName()));
         });
     }
 

--
Gitblit v1.9.3