From d2d71a6bc8e445ee60b7be2667676138e277d676 Mon Sep 17 00:00:00 2001
From: feiyu02 <risaku@163.com>
Date: 星期五, 28 六月 2024 17:41:08 +0800
Subject: [PATCH] 1. 修改走航报告自动输出模块

---
 src/main/kotlin/com/flightfeather/uav/biz/dataanalysis/BaseExceptionContinuous.kt |   15 ++++++++++-----
 1 files changed, 10 insertions(+), 5 deletions(-)

diff --git a/src/main/kotlin/com/flightfeather/uav/biz/dataanalysis/BaseExceptionContinuous.kt b/src/main/kotlin/com/flightfeather/uav/biz/dataanalysis/BaseExceptionContinuous.kt
index 2ea3314..c5ab169 100644
--- a/src/main/kotlin/com/flightfeather/uav/biz/dataanalysis/BaseExceptionContinuous.kt
+++ b/src/main/kotlin/com/flightfeather/uav/biz/dataanalysis/BaseExceptionContinuous.kt
@@ -70,6 +70,8 @@
 
     /**
      * 鍒ゆ柇寮傚父鍑虹幇鐨勮繛缁椂闀挎槸鍚︽弧瓒虫潯浠�
+     * @param sIndex
+     * @param eIndex
      */
     abstract fun judgeDuration(sIndex: Int, eIndex: Int): Boolean
 
@@ -83,6 +85,7 @@
 //            existException.add(false)
 //            exceptionData.add(mutableListOf())
 //        }
+        tagMap.clear()
         config.factorFilter.mainList().forEach {f->
             tagMap[f] = Tag()
         }
@@ -91,16 +94,18 @@
     override fun onNextData(data: BaseRealTimeData) {
         val isContinue = isContinuous(lastData, data)
         val hasException = judgeException(lastData, data)
-        config.factorFilter.mainList().forEach {f->
+        config.factorFilter.selectedList.forEach {s->
+            val f = s.main
             tagMap[f]?.let {
                 it.eIndex++
                 // 璧峰鏁版嵁
+                it.endData = lastData
                 if (it.endData == null) {
                     it.refreshAfterCheckResult(data)
                 }
                 // 鍒ゆ柇鐩搁偦鏁版嵁鏄惁杩炵画骞朵笖鏄惁婊¤冻寮傚父鍒ゆ柇
                 if (!isContinue) {
-                    checkResult()
+                    checkResult(s)
                     // 鏁版嵁涓嶈繛缁椂锛岃褰曞紓甯告儏鍐�
                     if (it.eIndex - it.sIndex >= durationCount) {
                         it.refreshAfterCheckResult(data)
@@ -111,7 +116,7 @@
                         it.exceptionData.add(data)
                     } else {
                         // 寮傚父涓嶅啀閲嶅鍑虹幇鏃讹紝璁板綍寮傚父鎯呭喌
-                        checkResult()
+                        checkResult(s)
                         if (it.eIndex - it.sIndex >= durationCount) {
                             it.refreshAfterCheckResult(data)
                         }
@@ -165,7 +170,7 @@
     open fun checkResult(factor: FactorFilter.SelectedFactor? = null) {
         val tag = tagMap[factor?.main]
         if (factor != null && tag != null) {
-            if (tag.existException && judgeDuration(tag.sIndex, tag.eIndex)) {
+            if (tag.existException && judgeDuration(tag.sIndex, tag.eIndex - 1)) {
                 tag.startData?.let {
                     resultList.add(newResult(it, lastData, factor, tag.exceptionData))
                 }
@@ -174,7 +179,7 @@
         } else {
             config.factorFilter.selectedList.forEach { f ->
                 val tag1 = tagMap[f.main] ?: return@forEach
-                if (tag1.existException && judgeDuration(tag1.sIndex, tag1.eIndex)) {
+                if (tag1.existException && judgeDuration(tag1.sIndex, tag1.eIndex - 1)) {
                     tag1.startData?.let {
                         resultList.add(newResult(it, lastData, f, tag1.exceptionData))
                     }

--
Gitblit v1.9.3