From 69af9b4bd1cf6e75a848c70a0fe1964e08d91b7a Mon Sep 17 00:00:00 2001
From: maven <2163098428@qq.com>
Date: 星期五, 12 十二月 2025 17:05:20 +0800
Subject: [PATCH] yys  大屏分析修改

---
 src/main/java/com/ruoyi/home/service/impl/HomeServiceImpl.java |   48 ++++++++++++++++++++++++++++++------------------
 1 files changed, 30 insertions(+), 18 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 e4092ba..30e7893 100644
--- a/src/main/java/com/ruoyi/home/service/impl/HomeServiceImpl.java
+++ b/src/main/java/com/ruoyi/home/service/impl/HomeServiceImpl.java
@@ -274,7 +274,7 @@
         BigDecimal factoryNum = new BigDecimal(0);
         BigDecimal processNum = new BigDecimal(0);
         // 寰幆4娆★紝鍒嗗埆缁熻杩�4涓湀鐨勬暟鎹紙褰撳墠鏈堛�佸墠1涓湀銆佸墠2涓湀銆佸墠3涓湀锛�
-        for (int i = 0; i < 4; i++) {
+        for (int i = 3; i >= 0; i--) {
             // 璁$畻褰撳墠寰幆瀵瑰簲鐨勬湀浠斤紙i=0锛氬綋鍓嶆湀锛宨=1锛氬墠1涓湀锛屼互姝ょ被鎺級
             LocalDate currentMonth = today.minusMonths(i);
             // 褰撴湀鐨勫紑濮嬫棩鏈燂紙姣忔湀1鍙凤級
@@ -296,12 +296,12 @@
                     .filter(inspect -> inspect.getInspectType().equals(1))
                     .map(QualityInspect::getQuantity)
                     .reduce(BigDecimal.ZERO, BigDecimal::add);
-            factoryNum= factoryNum.add(reduce1);
+            processNum= processNum.add(reduce1);
             BigDecimal reduce2 = monthInspects.stream()
                     .filter(inspect -> inspect.getInspectType().equals(2))
                     .map(QualityInspect::getQuantity)
                     .reduce(BigDecimal.ZERO, BigDecimal::add);
-            processNum = processNum.add(reduce2);
+            factoryNum = factoryNum.add(reduce2);
 
             // 鏋勫缓褰撴湀缁熻椤�
             QualityStatisticsItem item = new QualityStatisticsItem();
@@ -445,27 +445,39 @@
         List<QualityInspect> qualityInspects = qualityStatisticsMapper.selectList(null);
         if(!CollectionUtils.isEmpty(qualityInspects)){
             // 鍘熸潗鏂欏悎鏍肩巼
-            long rawwMaterialCount = qualityInspects.stream().filter(qualityInspect -> qualityInspect.getInspectType() == 0).count();
-            long count = qualityInspects.stream().filter(qualityInspect -> "鍚堟牸".equals(qualityInspect.getCheckResult()) && qualityInspect.getInspectType() == 0).count();
-            if(count > 0){
-                qualityProductQualifiedRateDto.setRawMaterialQualifiedRate(new BigDecimal(rawwMaterialCount)
-                        .divide(new BigDecimal( count), 4, RoundingMode.HALF_UP)
+            BigDecimal rawwMaterialCount = qualityInspects.stream().filter(qualityInspect -> qualityInspect.getInspectType() == 0)
+                    .map(QualityInspect::getQuantity)
+                    .reduce(BigDecimal.ZERO, BigDecimal::add);
+            BigDecimal count = qualityInspects.stream().filter(qualityInspect -> "鍚堟牸".equals(qualityInspect.getCheckResult()) && qualityInspect.getInspectType() == 0)
+                    .map(QualityInspect::getQuantity)
+                    .reduce(BigDecimal.ZERO, BigDecimal::add);
+            if(count.compareTo(BigDecimal.ZERO) != 0){
+                qualityProductQualifiedRateDto.setRawMaterialQualifiedRate(rawwMaterialCount
+                        .divide(count, 4, RoundingMode.HALF_UP)
                         .multiply(BigDecimal.valueOf(100.0)));
             }
             // 杩囩▼鍚堟牸鐜�
-            long processCount = qualityInspects.stream().filter(qualityInspect -> qualityInspect.getInspectType() == 1).count();
-            long countOne = qualityInspects.stream().filter(qualityInspect -> "鍚堟牸".equals(qualityInspect.getCheckResult()) && qualityInspect.getInspectType() == 1).count();
-            if(countOne > 0){
-                qualityProductQualifiedRateDto.setProcessQualifiedRate(new BigDecimal(processCount)
-                        .divide(new BigDecimal( countOne), 4, RoundingMode.HALF_UP)
+            BigDecimal processCount = qualityInspects.stream().filter(qualityInspect -> qualityInspect.getInspectType() == 1)
+                    .map(QualityInspect::getQuantity)
+                    .reduce(BigDecimal.ZERO, BigDecimal::add);
+            BigDecimal countOne = qualityInspects.stream().filter(qualityInspect -> "鍚堟牸".equals(qualityInspect.getCheckResult()) && qualityInspect.getInspectType() == 1)
+                    .map(QualityInspect::getQuantity)
+                    .reduce(BigDecimal.ZERO, BigDecimal::add);
+            if(countOne.compareTo(BigDecimal.ZERO) != 0){
+                qualityProductQualifiedRateDto.setProcessQualifiedRate(processCount
+                        .divide(countOne, 4, RoundingMode.HALF_UP)
                         .multiply(BigDecimal.valueOf(100.0)));
             }
             // 鍑哄巶鍚堟牸鐜�
-            long factoryCount = qualityInspects.stream().filter(qualityInspect -> qualityInspect.getInspectType() == 2).count();
-            long countTwo = qualityInspects.stream().filter(qualityInspect -> "鍚堟牸".equals(qualityInspect.getCheckResult()) && qualityInspect.getInspectType() == 2).count();
-            if(countTwo > 0){
-                qualityProductQualifiedRateDto.setFactoryQualifiedRate(new BigDecimal(factoryCount)
-                        .divide(new BigDecimal( countTwo), 4, RoundingMode.HALF_UP)
+            BigDecimal factoryCount = qualityInspects.stream().filter(qualityInspect -> qualityInspect.getInspectType() == 2)
+                    .map(QualityInspect::getQuantity)
+                    .reduce(BigDecimal.ZERO, BigDecimal::add);
+            BigDecimal countTwo = qualityInspects.stream().filter(qualityInspect -> "鍚堟牸".equals(qualityInspect.getCheckResult()) && qualityInspect.getInspectType() == 2)
+                    .map(QualityInspect::getQuantity)
+                    .reduce(BigDecimal.ZERO, BigDecimal::add);
+            if(countTwo.compareTo(BigDecimal.ZERO) != 0){
+                qualityProductQualifiedRateDto.setFactoryQualifiedRate(factoryCount
+                        .divide(countTwo, 4, RoundingMode.HALF_UP)
                         .multiply(BigDecimal.valueOf(100.0)));
             }
         }

--
Gitblit v1.9.3