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/service/qc/indicatorresult/MesQcIndicatorResultServiceImpl.java |   37 ++++++++++++++++++++++++++++++++++++-
 1 files changed, 36 insertions(+), 1 deletions(-)

diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/indicatorresult/MesQcIndicatorResultServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/indicatorresult/MesQcIndicatorResultServiceImpl.java
index 860ac64..fd74f59 100644
--- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/indicatorresult/MesQcIndicatorResultServiceImpl.java
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/indicatorresult/MesQcIndicatorResultServiceImpl.java
@@ -14,6 +14,7 @@
 import cn.iocoder.yudao.module.mes.dal.dataobject.qc.oqc.MesQcOqcDO;
 import cn.iocoder.yudao.module.mes.dal.dataobject.qc.rqc.MesQcRqcDO;
 import cn.iocoder.yudao.module.mes.dal.mysql.qc.indicatorresult.MesQcIndicatorResultMapper;
+import cn.iocoder.yudao.module.mes.enums.qc.MesQcIndicatorItemTypeEnum;
 import cn.iocoder.yudao.module.mes.enums.qc.MesQcResultValueTypeEnum;
 import cn.iocoder.yudao.module.mes.enums.qc.MesQcTypeEnum;
 import cn.iocoder.yudao.module.mes.service.qc.indicator.MesQcIndicatorService;
@@ -82,7 +83,8 @@
         // 2.2 鎵归噺鎻掑叆鏄庣粏
         List<MesQcIndicatorResultDetailDO> details = BeanUtils.toBean(createReqVO.getItems(),
                 MesQcIndicatorResultDetailDO.class);
-        details.forEach(detail -> detail.setResultId(result.getId()));
+        details.forEach(detail -> detail.setResultId(result.getId())
+                .setMeasureNo(Objects.requireNonNullElse(detail.getMeasureNo(), 1)));
         resultDetailService.createDetailList(details);
         return result.getId();
     }
@@ -102,6 +104,7 @@
         // 2.2 鎵归噺鏇存柊鏄庣粏
         List<MesQcIndicatorResultDetailDO> details = BeanUtils.toBean(updateReqVO.getItems(),
                 MesQcIndicatorResultDetailDO.class);
+        details.forEach(detail -> detail.setMeasureNo(Objects.requireNonNullElse(detail.getMeasureNo(), 1)));
         resultDetailService.createOrUpdateDetailList(details);
     }
 
@@ -135,6 +138,34 @@
     @Override
     public Long getIndicatorResultCountByQcIdAndType(Long qcId, Integer qcType) {
         return resultMapper.selectCountByQcIdAndType(qcId, qcType);
+    }
+
+    /**
+     * 鑾峰彇鎸囧畾璐ㄦ鍗曚笅鐨勬楠岀粨鏋滃垪琛�
+     *
+     * @param qcId   璐ㄦ鍗� ID
+     * @param qcType 璐ㄦ绫诲瀷
+     * @return 缁撴灉鍒楄〃
+     */
+    @Override
+    public List<MesQcIndicatorResultDO> getIndicatorResultListByQcIdAndType(Long qcId, Integer qcType) {
+        return resultMapper.selectListByQcIdAndType(qcId, qcType);
+    }
+
+    @Override
+    public List<MesQcIndicatorResultDO> getIndicatorResultListByQcIdsAndType(List<Long> qcIds, Integer qcType) {
+        if (CollUtil.isEmpty(qcIds)) {
+            return Collections.emptyList();
+        }
+        return resultMapper.selectListByQcIdsAndType(qcIds, qcType);
+    }
+
+    @Override
+    public List<MesQcIndicatorResultDetailDO> getIndicatorResultDetailListByResultIds(List<Long> resultIds) {
+        if (CollUtil.isEmpty(resultIds)) {
+            return Collections.emptyList();
+        }
+        return resultDetailService.getDetailListByResultIds(resultIds);
     }
 
     @Override
@@ -197,6 +228,10 @@
             if (indicator == null || indicator.getResultType() == null) {
                 continue;
             }
+            // 鍒嗙粍椤癸紙GROUP锛変粎鎵胯浇灞傜骇/鍏紡鏂囨湰锛屼笉褰曞叆鍊硷紝璺宠繃鏍煎紡鏍¢獙
+            if (Objects.equals(indicator.getItemType(), MesQcIndicatorItemTypeEnum.GROUP.getType())) {
+                continue;
+            }
             Integer resultType = indicator.getResultType();
             if (Objects.equals(resultType, MesQcResultValueTypeEnum.FLOAT.getType())) {
                 try {

--
Gitblit v1.9.3