From 87733eb3623593da247c051593d64b8ff9e1d3a4 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期五, 06 十一月 2026 19:00:39 +0800
Subject: [PATCH] feat(crm,mes): 扩展客户字段与重构批次号生成逻辑

---
 yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/trace/MesProTracePublicServiceImpl.java |   14 ++++++++++----
 1 files changed, 10 insertions(+), 4 deletions(-)

diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/trace/MesProTracePublicServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/trace/MesProTracePublicServiceImpl.java
index c02c100..62969d0 100644
--- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/trace/MesProTracePublicServiceImpl.java
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/trace/MesProTracePublicServiceImpl.java
@@ -372,16 +372,22 @@
     }
 
     private MesProTracePublicRespVO.QualityVO buildQuality(MesProBatchDO batch) {
-        List<MesQcSeedQualityDO> list = qcSeedQualityService.getQualityByBatchCode(batch.getCode());
+        // 鍙岀嚎璐ㄦ锛氬悓涓�琚嬪瓨鍦ㄥ姞宸ラ儴銆侀攢鍞儴涓ゆ潯璁板綍锛屽叏閮ㄦ斁琛屾墠绠楀悎鏍硷紝浠讳竴鏉℃姤搴熷嵆涓嶅悎鏍�
+        List<MesQcSeedQualityDO> list = qcSeedQualityService.getQualityByBatchCode(batch.getCode()).stream()
+                .filter(quality -> quality.getBizType() == null || Integer.valueOf(1).equals(quality.getBizType()))
+                .toList();
         if (CollUtil.isEmpty(list)) {
             return null;
         }
         MesQcSeedQualityDO quality = list.get(0);
+        boolean released = list.stream().allMatch(item -> Integer.valueOf(40).equals(item.getWorkflowStatus()));
+        boolean scrapped = list.stream().anyMatch(item -> Integer.valueOf(70).equals(item.getWorkflowStatus()));
         MesProTracePublicRespVO.QualityVO vo = new MesProTracePublicRespVO.QualityVO();
-        Integer finalResult = Integer.valueOf(40).equals(quality.getWorkflowStatus()) ? 1
-                : Integer.valueOf(70).equals(quality.getWorkflowStatus()) ? 2 : 0;
+        Integer finalResult = scrapped ? 2 : released ? 1 : 0;
+        String reason = list.stream().map(MesQcSeedQualityDO::getReason)
+                .filter(StrUtil::isNotBlank).findFirst().orElse(quality.getReason());
         vo.setResult(finalResult).setResultName(finalResult == 0 ? "澶嶆鎴栧鎵逛腑" : qualityResultName(finalResult))
-                .setReason(quality.getReason()).setInspectorName(userName(quality.getInspectorId()))
+                .setReason(reason).setInspectorName(userName(quality.getInspectorId()))
                 .setInspectedAt(quality.getInspectedAt());
         List<MesQcSeedQualityIndicatorDO> indicators = qcSeedQualityService.getIndicatorsByQualityId(quality.getId());
         vo.setIndicators(convertList(indicators, ind -> {

--
Gitblit v1.9.3