From 9bad721754fe8bbe2e5f459d0706e0fefac569f3 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期日, 20 九月 2026 09:05:41 +0800
Subject: [PATCH] feat(mes): 添加智能质检报告功能与AI导入能力

---
 yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/qc/indicator/MesQcIndicatorController.java |   37 ++++++++++++++++++++++++++++++++++---
 1 files changed, 34 insertions(+), 3 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..b7d2e0b 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;
@@ -23,9 +24,13 @@
 
 import java.io.IOException;
 import java.util.List;
+import java.util.Map;
+import java.util.Set;
 
 import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
 import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
+import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertMap;
+import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet;
 
 @Tag(name = "绠$悊鍚庡彴 - MES 璐ㄦ鎸囨爣")
 @RestController
@@ -74,7 +79,17 @@
     @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));
+        PageResult<MesQcIndicatorRespVO> voPageResult = BeanUtils.toBean(pageResult, MesQcIndicatorRespVO.class);
+        fillParentName(voPageResult.getList());
+        return success(voPageResult);
+    }
+
+    @GetMapping("/group-list")
+    @Operation(summary = "鑾峰緱鍒嗙粍椤圭簿绠�鍒楄〃", description = "鍙寘鍚垎缁勯」锛屼富瑕佺敤浜庛�屾墍灞炲垎缁勩�嶇殑涓嬫媺閫夐」")
+    @PreAuthorize("@ss.hasPermission('mes:qc-indicator:query')")
+    public CommonResult<List<MesQcIndicatorRespVO>> getIndicatorGroupList() {
+        List<MesQcIndicatorDO> list = indicatorService.getIndicatorGroupList();
+        return success(BeanUtils.toBean(list, MesQcIndicatorRespVO.class));
     }
 
     @GetMapping("/export-excel")
@@ -85,9 +100,25 @@
                                      HttpServletResponse response) throws IOException {
         pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
         List<MesQcIndicatorDO> list = indicatorService.getIndicatorPage(pageReqVO).getList();
+        // 缁勮瀵煎嚭 VO锛堣ˉ榻愭墍灞炲垎缁勫悕绉帮級
+        List<MesQcIndicatorRespVO> excelList = BeanUtils.toBean(list, MesQcIndicatorRespVO.class);
+        fillParentName(excelList);
         // 瀵煎嚭 Excel
-        ExcelUtils.write(response, "璐ㄦ鎸囨爣.xls", "鏁版嵁", MesQcIndicatorRespVO.class,
-                BeanUtils.toBean(list, MesQcIndicatorRespVO.class));
+        ExcelUtils.write(response, "璐ㄦ鎸囨爣.xls", "鏁版嵁", MesQcIndicatorRespVO.class, excelList);
+    }
+
+    /**
+     * 鍥炲~銆屾墍灞炲垎缁勩�嶅悕绉般�傜埗鎸囨爣鍙兘涓嶅湪褰撳墠椤碉紙鐢氳嚦涓嶅湪绛涢�夌粨鏋滃唴锛夛紝鎵�浠ュ崟鐙寜 id 鎵归噺鍙栦竴娆�
+     */
+    private void fillParentName(List<MesQcIndicatorRespVO> list) {
+        Set<Long> parentIds = convertSet(list, MesQcIndicatorRespVO::getParentId,
+                vo -> vo.getParentId() != null && !MesQcIndicatorDO.PARENT_ID_ROOT.equals(vo.getParentId()));
+        if (CollUtil.isEmpty(parentIds)) {
+            return;
+        }
+        Map<Long, String> parentNameMap = convertMap(indicatorService.getIndicatorList(parentIds),
+                MesQcIndicatorDO::getId, MesQcIndicatorDO::getName);
+        list.forEach(vo -> vo.setParentName(parentNameMap.get(vo.getParentId())));
     }
 
 }

--
Gitblit v1.9.3