From 85909f9a78a328de2bc3efc0d1d184320cb8970b Mon Sep 17 00:00:00 2001
From: feiyu02 <risaku@163.com>
Date: 星期五, 11 七月 2025 17:22:54 +0800
Subject: [PATCH] 2025.7.11 1. 修改动态溯源异常判断逻辑

---
 src/main/kotlin/com/flightfeather/uav/biz/sourcetrace/exceptiontype/BaseRTExcChangeRate.kt |   22 ++++++++++++++++++----
 1 files changed, 18 insertions(+), 4 deletions(-)

diff --git a/src/main/kotlin/com/flightfeather/uav/biz/sourcetrace/exceptiontype/BaseRTExcChangeRate.kt b/src/main/kotlin/com/flightfeather/uav/biz/sourcetrace/exceptiontype/BaseRTExcChangeRate.kt
index e36031e..91f783a 100644
--- a/src/main/kotlin/com/flightfeather/uav/biz/sourcetrace/exceptiontype/BaseRTExcChangeRate.kt
+++ b/src/main/kotlin/com/flightfeather/uav/biz/sourcetrace/exceptiontype/BaseRTExcChangeRate.kt
@@ -77,12 +77,12 @@
         return tag.exceptionData.size >= (changeRate[factorType]?.countLimit ?: 1)
     }
 
-    override fun needCut(tag: ExceptionTag, hasException: Boolean?): Boolean {
+    override fun needCut(tag: ExceptionTag, hasException: Boolean?, data: BaseRealTimeData): Boolean {
         // 鎸夌収鏃堕暱鍜岃窛绂婚檺鍒跺皢寮傚父鎴彇
         if (tag.exceptionData.isEmpty()) return false
 
         val se = tag.exceptionData.first()
-        val ee = tag.exceptionData.last()
+        val ee = data
 
         val sTime = LocalDateTime.ofInstant(se.dataTime?.toInstant(), ZoneId.systemDefault())
         val eTime = LocalDateTime.ofInstant(ee.dataTime?.toInstant(), ZoneId.systemDefault())
@@ -119,9 +119,23 @@
         exceptionStatus: ExceptionStatusType,
     ) {
         super.onNewException(tag, factor, exceptionStatus)
+//        callback?.let { func ->
+//            val exc = tag.exceptionResult.last()
+//            func.invoke(exc as PollutedClue)
+//        }
+    }
+
+    override fun mergeExceptionResult() {
+        super.mergeExceptionResult()
+        latestExceptionResult
+        latestCombinedResult
         callback?.let { func ->
-            val exc = tag.exceptionResult.last()
-            func.invoke(exc as PollutedClue)
+            latestExceptionResult.forEach {
+                func.invoke(it as PollutedClue)
+            }
+            latestCombinedResult.forEach {
+                func.invoke(it as PollutedClue)
+            }
         }
     }
 }
\ No newline at end of file

--
Gitblit v1.9.3