From 34e11557129129e6fe2218d60efa729e9a660042 Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期二, 03 二月 2026 11:52:20 +0800
Subject: [PATCH] fix: 完工数量修改为报工数量减去报废数量

---
 src/main/java/com/ruoyi/home/service/impl/HomeServiceImpl.java |   33 ++++++++++++++++-----------------
 1 files changed, 16 insertions(+), 17 deletions(-)

diff --git a/src/main/java/com/ruoyi/home/service/impl/HomeServiceImpl.java b/src/main/java/com/ruoyi/home/service/impl/HomeServiceImpl.java
index 7e96c10..265cbec 100644
--- a/src/main/java/com/ruoyi/home/service/impl/HomeServiceImpl.java
+++ b/src/main/java/com/ruoyi/home/service/impl/HomeServiceImpl.java
@@ -1729,8 +1729,7 @@
                     BigDecimal finishQty = item.getQuantity() != null ? item.getQuantity() : BigDecimal.ZERO;
                     BigDecimal scrapQty = item.getScrapQty() != null ? item.getScrapQty() : BigDecimal.ZERO;
 
-                    dto.setFinishQuantity(
-                            dto.getFinishQuantity() != null ? dto.getFinishQuantity().add(finishQty) : finishQty);
+                    dto.setFinishQuantity(dto.getFinishQuantity() != null ? dto.getFinishQuantity().add(finishQty) : finishQty);
                 }
             }
 
@@ -1746,9 +1745,11 @@
                     .filter(i -> i.getCreateTime() != null)
                     .collect(Collectors.groupingBy(
                             i -> i.getCreateTime().toLocalDate().toString(),
-                            Collectors.reducing(BigDecimal.ZERO,
-                                    i -> i.getQuantity() != null ? i.getQuantity() : BigDecimal.ZERO,
-                                    BigDecimal::add)));
+                            Collectors.reducing(BigDecimal.ZERO, i -> {
+                                BigDecimal qty = (i.getQuantity() != null) ? i.getQuantity() : BigDecimal.ZERO;
+                                BigDecimal scrap = (i.getScrapQty() != null) ? i.getScrapQty() : BigDecimal.ZERO;
+                                return qty.subtract(scrap);
+                            }, BigDecimal::add)));
 
             finishMap.forEach((date, qty) -> {
                 WorkOrderEfficiencyDto dto = dateMap.getOrDefault(date, new WorkOrderEfficiencyDto());
@@ -1894,21 +1895,21 @@
 
 
     @Override
-    public List<QualityQualifiedAnalysisDto> rawMaterialDetection(Integer type) {
+    public QualityQualifiedAnalysisDto rawMaterialDetection(Integer type) {
         return commonDetection(type, 0);
     }
 
     @Override
-    public List<QualityQualifiedAnalysisDto> processDetection(Integer type) {
+    public QualityQualifiedAnalysisDto processDetection(Integer type) {
         return commonDetection(type, 1);
     }
 
     @Override
-    public List<QualityQualifiedAnalysisDto> factoryDetection(Integer type) {
+    public QualityQualifiedAnalysisDto factoryDetection(Integer type) {
         return commonDetection(type, 2);
     }
 
-    private List<QualityQualifiedAnalysisDto> commonDetection(Integer type, Integer inspectType) {
+    private QualityQualifiedAnalysisDto commonDetection(Integer type, Integer inspectType) {
 
         LocalDate[] range = calcDateRange(type);
         LocalDate startDate = range[0];
@@ -1958,7 +1959,7 @@
         return new LocalDate[]{startDate, endDate};
     }
 
-    private List<QualityQualifiedAnalysisDto> buildQualifiedAnalysis(List<QualityInspect> list) {
+    private QualityQualifiedAnalysisDto buildQualifiedAnalysis(List<QualityInspect> list) {
         List<QualityQualifiedAnalysisDto> result = new ArrayList<>();
         QualityQualifiedAnalysisDto dto = new QualityQualifiedAnalysisDto();
 
@@ -1967,8 +1968,7 @@
             dto.setUnqualifiedCount(0);
             dto.setQualifiedRate(BigDecimal.ZERO.setScale(2));
             dto.setUnqualifiedRate(BigDecimal.ZERO.setScale(2));
-            result.add(dto);
-            return result;
+            return dto;
         }
 
         BigDecimal qualifiedCount = BigDecimal.ZERO;
@@ -1990,8 +1990,7 @@
         if (totalCount.compareTo(BigDecimal.ZERO) == 0) {
             dto.setQualifiedRate(BigDecimal.ZERO.setScale(2));
             dto.setUnqualifiedRate(BigDecimal.ZERO.setScale(2));
-            result.add(dto);
-            return result;
+            return dto;
         }
 
         BigDecimal hundred = BigDecimal.valueOf(100);
@@ -2004,8 +2003,7 @@
                 .multiply(hundred)
                 .setScale(2, RoundingMode.HALF_UP));
 
-        result.add(dto);
-        return result;
+        return dto;
     }
 
     @Override
@@ -2173,7 +2171,8 @@
             // 缁勮鏄庣粏
             NonComplianceWarningDto.Item child = new NonComplianceWarningDto.Item();
             // child.setProductTitle(item.getProductName());
-            child.setProductTitle(parent.getProductName());
+            child.setParentProductTitle(parent.getProductName());
+            child.setProductTitle(item.getProductName());
             child.setDescription(item.getDefectivePhenomena());
             child.setDate(formatDate(item.getCheckTime()));
             children.add(child);

--
Gitblit v1.9.3