From 7a681887e5a8e1aab49acc886974d354c69a280e Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期四, 17 九月 2026 13:10:38 +0800
Subject: [PATCH] feat(mes): 新增质检指标分组树和平行测量功能

---
 yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/qc/indicator/MesQcIndicatorController.java |   38 ++++++++++++++++++++++++++++++++++++--
 1 files changed, 36 insertions(+), 2 deletions(-)

diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/qc/indicator/MesQcIndicatorController.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/qc/indicator/MesQcIndicatorController.java
index 14f49fe..d3a2db7 100644
--- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/qc/indicator/MesQcIndicatorController.java
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/qc/indicator/MesQcIndicatorController.java
@@ -1,5 +1,6 @@
 package cn.iocoder.yudao.module.mes.controller.admin.qc.indicator;
 
+import cn.hutool.core.collection.CollUtil;
 import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
 import cn.iocoder.yudao.framework.common.pojo.PageParam;
@@ -22,7 +23,11 @@
 import org.springframework.web.bind.annotation.*;
 
 import java.io.IOException;
+import java.util.Collections;
 import java.util.List;
+import java.util.Map;
+import java.util.Set;
+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;
@@ -66,7 +71,7 @@
     @PreAuthorize("@ss.hasPermission('mes:qc-indicator:query')")
     public CommonResult<MesQcIndicatorRespVO> getIndicator(@RequestParam("id") Long id) {
         MesQcIndicatorDO indicator = indicatorService.getIndicator(id);
-        return success(BeanUtils.toBean(indicator, MesQcIndicatorRespVO.class));
+        return success(buildRespVOList(Collections.singletonList(indicator)).get(0));
     }
 
     @GetMapping("/page")
@@ -74,7 +79,14 @@
     @PreAuthorize("@ss.hasPermission('mes:qc-indicator:query')")
     public CommonResult<PageResult<MesQcIndicatorRespVO>> getIndicatorPage(@Valid MesQcIndicatorPageReqVO pageReqVO) {
         PageResult<MesQcIndicatorDO> pageResult = indicatorService.getIndicatorPage(pageReqVO);
-        return success(BeanUtils.toBean(pageResult, MesQcIndicatorRespVO.class));
+        return success(new PageResult<>(buildRespVOList(pageResult.getList()), pageResult.getTotal()));
+    }
+
+    @GetMapping("/list")
+    @Operation(summary = "鑾峰緱璐ㄦ鎸囨爣鍏ㄩ噺鍒楄〃锛堝惈鍒嗙粍灞傜骇锛屼緵鏍戣〃/涓嬫媺浣跨敤锛�")
+    @PreAuthorize("@ss.hasPermission('mes:qc-indicator:query')")
+    public CommonResult<List<MesQcIndicatorRespVO>> getIndicatorList() {
+        return success(buildRespVOList(indicatorService.getIndicatorList()));
     }
 
     @GetMapping("/export-excel")
@@ -90,4 +102,26 @@
                 BeanUtils.toBean(list, MesQcIndicatorRespVO.class));
     }
 
+    // ==================== 鎷兼帴 VO ====================
+
+    private List<MesQcIndicatorRespVO> buildRespVOList(List<MesQcIndicatorDO> list) {
+        List<MesQcIndicatorRespVO> voList = BeanUtils.toBean(list, MesQcIndicatorRespVO.class);
+        if (CollUtil.isEmpty(list)) {
+            return voList;
+        }
+        // 濉厖鐖舵寚鏍囧悕绉�
+        Set<Long> parentIds = list.stream().map(MesQcIndicatorDO::getParentId)
+                .filter(pid -> pid != null && pid > 0).collect(Collectors.toSet());
+        if (CollUtil.isNotEmpty(parentIds)) {
+            Map<Long, String> parentNameMap = indicatorService.getIndicatorList(parentIds).stream()
+                    .collect(Collectors.toMap(MesQcIndicatorDO::getId, MesQcIndicatorDO::getName));
+            voList.forEach(vo -> {
+                if (vo.getParentId() != null && vo.getParentId() > 0) {
+                    vo.setParentName(parentNameMap.get(vo.getParentId()));
+                }
+            });
+        }
+        return voList;
+    }
+
 }

--
Gitblit v1.9.3