From b5a5e43e2ea7af773dba1ee99c2194be61515df8 Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期四, 05 二月 2026 18:21:59 +0800
Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/smart_screen

---
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/ClientServiceImpl.java |   51 +++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 39 insertions(+), 12 deletions(-)

diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/ClientServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/ClientServiceImpl.java
index d941643..ae472cb 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/ClientServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/ClientServiceImpl.java
@@ -47,6 +47,7 @@
     private final ProjectCategoryCalculator projectCategoryCalculator;
     private final ClientParamMapper clientParamMapper;
     private final DeviceMapper deviceMapper;
+    private final ErrorReviewMapper errorReviewMapper;
 
     @Override
     public ClientDashboardVO getClientDashboard(ClientDashboardQuery query) {
@@ -542,12 +543,25 @@
         vo.setMajorHazardTotal(majorHazards.size());
 
         // 统计已整改和未整改数量
-        long rectifiedCount = majorHazards.stream()
-                .filter(r -> r.getReformed() != null && r.getReformed())
-                .count();
-        long unrectifiedCount = majorHazards.stream()
-                .filter(r -> r.getReformed() == null || !r.getReformed())
-                .count();
+        // 1. 收集所有非空的 errorReviewId
+        List<Integer> errorReviewIds = majorHazards.stream()
+                .map(Record::getErrorReviewId)
+                .filter(Objects::nonNull)
+                .distinct()
+                .collect(Collectors.toList());
+
+        // 2. 查询 ErrorReview 中 state=2 的记录
+        long rectifiedCount = 0;
+        if (!errorReviewIds.isEmpty()) {
+            LambdaQueryWrapper<ErrorReview> reviewWrapper = new LambdaQueryWrapper<>();
+            reviewWrapper.in(ErrorReview::getId, errorReviewIds)
+                    .eq(ErrorReview::getState, 2)  // state=2 表示已整改
+                    .eq(ErrorReview::getDeleted, false);
+            rectifiedCount = errorReviewMapper.selectCount(reviewWrapper);
+        }
+
+        // 3. 未整改数量 = 总数 - 已整改数量
+        long unrectifiedCount = majorHazards.size() - rectifiedCount;
 
         vo.setRectifiedHazardCount((int) rectifiedCount);
         vo.setUnrectifiedHazardCount((int) unrectifiedCount);
@@ -588,12 +602,25 @@
         vo.setMajorHazardTotal(majorHazards.size());
 
         // 统计已整改和未整改数量
-        long rectifiedCount = majorHazards.stream()
-                .filter(r -> r.getReformed() != null && r.getReformed())
-                .count();
-        long unrectifiedCount = majorHazards.stream()
-                .filter(r -> r.getReformed() == null || !r.getReformed())
-                .count();
+        // 1. 收集所有非空的 errorReviewId
+        List<Integer> errorReviewIds = majorHazards.stream()
+                .map(Record::getErrorReviewId)
+                .filter(Objects::nonNull)
+                .distinct()
+                .collect(Collectors.toList());
+
+        // 2. 查询 ErrorReview 中 state=2 的记录
+        long rectifiedCount = 0;
+        if (!errorReviewIds.isEmpty()) {
+            LambdaQueryWrapper<ErrorReview> reviewWrapper = new LambdaQueryWrapper<>();
+            reviewWrapper.in(ErrorReview::getId, errorReviewIds)
+                    .eq(ErrorReview::getState, 2)  // state=2 表示已整改
+                    .eq(ErrorReview::getDeleted, false);
+            rectifiedCount = errorReviewMapper.selectCount(reviewWrapper);
+        }
+
+        // 3. 未整改数量 = 总数 - 已整改数量
+        long unrectifiedCount = majorHazards.size() - rectifiedCount;
 
         vo.setRectifiedHazardCount((int) rectifiedCount);
         vo.setUnrectifiedHazardCount((int) unrectifiedCount);

--
Gitblit v1.7.1