From 14938e9e3fcf770b1472e6c8db1c59dbad27b5ad Mon Sep 17 00:00:00 2001
From: zhizhijie <zhizhijie@users.noreply.gitee.com>
Date: 星期日, 27 九月 2026 15:29:54 +0800
Subject: [PATCH] docs(交接): 精确定位累计列缺月公式——公交/出租/网约车 U5:U76 各72格 + 城市客运 U4:U39(36) + 班线包车 DU4:DU57(54),共 306 格;生成件与母版逐格相同

---
 traffic-audit-server/src/main/java/com/trafficaudit/auditengine/service/AuditEngineService.java |   15 +++++++++++----
 1 files changed, 11 insertions(+), 4 deletions(-)

diff --git a/traffic-audit-server/src/main/java/com/trafficaudit/auditengine/service/AuditEngineService.java b/traffic-audit-server/src/main/java/com/trafficaudit/auditengine/service/AuditEngineService.java
index 63dfe69..c2dba2b 100644
--- a/traffic-audit-server/src/main/java/com/trafficaudit/auditengine/service/AuditEngineService.java
+++ b/traffic-audit-server/src/main/java/com/trafficaudit/auditengine/service/AuditEngineService.java
@@ -690,23 +690,30 @@
         if (sys == null) return null; // 缂哄け鐢� EXISTENCE_SYS 瑙勫垯鎻愮ず
         String field = rule.getCheckField();
         double actual;
-        double reference;
+        Double referenceObj;
         String fieldName;
         if ("startCum".equals(field)) {
             actual = nvl(monthly.getStartCum());
-            reference = nvl(sys.getStartCum());
+            referenceObj = sys.getStartCum();
             fieldName = "鑷紑濮嬪缓璁剧疮璁�";
         } else if ("yearCum".equals(field)) {
             actual = nvl(monthly.getYearCum());
-            reference = nvl(sys.getYearCum());
+            referenceObj = sys.getYearCum();
             fieldName = "鑷勾鍒濈疮璁�";
         } else if ("monthDone".equals(field)) {
             actual = nvl(monthly.getMonthDone());
-            reference = nvl(sys.getMonthDone());
+            referenceObj = sys.getMonthDone();
             fieldName = "鏈湀瀹屾垚";
         } else {
             return null;
         }
+        // 鍩哄噯缂哄け锛堝鏂版ā鏉裤��2026骞碭鏈堟姇璧勭郴缁熼」鐩槑缁嗐�嬫病鏈夈�岃嚜骞村垵绱銆嶅垪锛夆啋 涓嶅叿澶囧彲姣旀�э紝璺宠繃骞惰鏃ュ織锛�
+        // 涓嶈兘鎶� null 褰撴垚 0 鍘绘瘮瀵癸紝鍚﹀垯浼氭垚鐗囪鎶ャ��
+        if (referenceObj == null) {
+            log.warn("鎶曡祫姣斿璺宠繃锛堟姇璧勭郴缁熷熀鍑嗙己澶憋級锛歳ule={} project={} field={}", rule.getRuleCode(), projectName, fieldName);
+            return null;
+        }
+        double reference = referenceObj;
         String[] parts = rule.getThreshold().split("\\|");
         double absThreshold = parts.length > 0 ? parseDoubleSafe(parts[0], 50) : 50;
         double pctThreshold = parts.length > 1 ? parseDoubleSafe(parts[1], 5) : 5;

--
Gitblit v1.9.1