From 25999c575dd42b4715e49d3fe57e73c2c3204ccb Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期日, 20 九月 2026 11:45:05 +0800
Subject: [PATCH] update

---
 admin-server/src/main/java/com/estate/expert/admin/stat/report/data/ReportDataBase.java |   30 ++++++++++++++++++++++--------
 1 files changed, 22 insertions(+), 8 deletions(-)

diff --git a/admin-server/src/main/java/com/estate/expert/admin/stat/report/data/ReportDataBase.java b/admin-server/src/main/java/com/estate/expert/admin/stat/report/data/ReportDataBase.java
index 8abb014..c9a1a37 100644
--- a/admin-server/src/main/java/com/estate/expert/admin/stat/report/data/ReportDataBase.java
+++ b/admin-server/src/main/java/com/estate/expert/admin/stat/report/data/ReportDataBase.java
@@ -150,26 +150,40 @@
      */
     protected JSONObject buildErrorLevel(TreeNode<FuzzyValue> node) {
         JSONObject result = new JSONObject();
-        if(node == null)
+        if(node == null || node.getData() == null)
             return result;
 
-        int totalErrors = Arrays.stream(node.getData().getTotalErrorCounts()).sum();
+        return buildErrorLevel(node.getData().getTotalErrorCounts());
+    }
+
+    /**
+     * 根据隐患等级计数构建汇总信息。
+     *
+     * @param errorCounts 按一级至四级隐患排列的数量
+     * @return 隐患等级汇总
+     */
+    protected JSONObject buildErrorLevel(int[] errorCounts) {
+        JSONObject result = new JSONObject();
+        if (errorCounts == null || errorCounts.length < ErrorLevel.values().length)
+            return result;
+
+        int totalErrors = Arrays.stream(errorCounts).sum();
         result.put("隐患数量", totalErrors);
         List<Object> errorInfos = new ArrayList<>();
         for (int i = 0; i<4 ; i++) {
             var level = ErrorLevel.values()[i];
-            var count = node.getData().getTotalErrorCounts()[i];
+            var count = errorCounts[i];
             var info = new JSONObject();
             info.put("隐患等级", level.getDesc());
             info.put("隐患程度", level.getDesc2());
             info.put("数量", count);
-            info.put("比例", formatPercent(count * 1.0 / totalErrors));
+            info.put("比例", formatPercent(totalErrors == 0 ? 0 : count * 1.0 / totalErrors));
             errorInfos.add(info);
         }
-        result.put("一级隐患数量", node.getData().getTotalErrorCounts()[0]);
-        result.put("二级隐患数量", node.getData().getTotalErrorCounts()[1]);
-        result.put("三级隐患数量", node.getData().getTotalErrorCounts()[2]);
-        result.put("四级隐患数量", node.getData().getTotalErrorCounts()[3]);
+        result.put("一级隐患数量", errorCounts[0]);
+        result.put("二级隐患数量", errorCounts[1]);
+        result.put("三级隐患数量", errorCounts[2]);
+        result.put("四级隐患数量", errorCounts[3]);
         result.put("分项", errorInfos);
         return result;
     }

--
Gitblit v1.7.1