From b315032d126a640758d4a6fccf297acbab057772 Mon Sep 17 00:00:00 2001
From: feiyu02 <risaku@163.com>
Date: 星期五, 22 八月 2025 17:30:44 +0800
Subject: [PATCH] 2025.8.21 1. 新增走航任务统计功能(待完成)

---
 src/main/kotlin/com/flightfeather/uav/biz/sourcetrace/exceptiontype/BaseRTExcChangeRate.kt |   36 +++++++++++++++++++++++++-----------
 1 files changed, 25 insertions(+), 11 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..81cb8a6 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
@@ -30,6 +30,8 @@
 
     abstract var changeRate: MutableMap<FactorType, RTExcWindLevelConfig.WindLevelCondition>
 
+    override var judgeMethod: JudgeMethod = JudgeMethod.M2
+
     override fun getExceptionType(): ExceptionType {
         return ExceptionType.TYPE9
     }
@@ -77,12 +79,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())
@@ -110,18 +112,30 @@
     }
 
     override fun newResult(tag: ExceptionTag, factor: FactorFilter.SelectedFactor): PollutedClue {
-        return PollutedClue(tag, factor, getExceptionType(), config, changeRate[factor.main])
+        return PollutedClue()
     }
 
-    override fun onNewException(
-        tag: ExceptionTag,
-        factor: FactorFilter.SelectedFactor,
-        exceptionStatus: ExceptionStatusType,
-    ) {
-        super.onNewException(tag, factor, exceptionStatus)
+    override fun newResult(exceptions: List<Pair<FactorFilter.SelectedFactor, ExceptionTag>>): PollutedClue {
+        return if (exceptions.isEmpty())
+            PollutedClue()
+        else
+            PollutedClue(exceptions, getExceptionType(), config, changeRate[exceptions[0].first.main])
+    }
+
+//    override fun mergeExceptionResult() {
+//        super.mergeExceptionResult()
+//        callback?.let { func ->
+//            result.forEach {
+//                func.invoke(it)
+//            }
+//        }
+//    }
+
+    override fun onNewResult(result: List<PollutedClue>) {
         callback?.let { func ->
-            val exc = tag.exceptionResult.last()
-            func.invoke(exc as PollutedClue)
+            result.forEach {
+                func.invoke(it)
+            }
         }
     }
 }
\ No newline at end of file

--
Gitblit v1.9.3