From 36680087df02080833c319a7a70f083585fad295 Mon Sep 17 00:00:00 2001 From: feiyu02 <risaku@163.com> Date: 星期五, 09 五月 2025 12:27:33 +0800 Subject: [PATCH] 1. 添加了动态污染溯源相关功能逻辑 --- src/main/kotlin/com/flightfeather/uav/biz/dataanalysis/BaseExceptionContinuous.kt | 41 ++++++++++------------------------------- 1 files changed, 10 insertions(+), 31 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..63cd9af 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) } @@ -119,32 +124,6 @@ } } } -// repeat(config.factorCount) { i -> -// eIndex[i]++ -// // 璧峰鏁版嵁 -// if (lastData == null) { -// refreshAfterCheckResult(i, data) -// } -// // 鍒ゆ柇鐩搁偦鏁版嵁鏄惁杩炵画骞朵笖鏄惁婊¤冻寮傚父鍒ゆ柇 -// if (!isContinue) { -// checkResult() -// // 鏁版嵁涓嶈繛缁椂锛岃褰曞紓甯告儏鍐� -// if (eIndex[i] - sIndex[i] >= durationCount) { -// refreshAfterCheckResult(i, data) -// } -// } else { -// if (hasException[i]) { -// existException[i] = true -// exceptionData[i].add(data) -// } else { -// // 寮傚父涓嶅啀閲嶅鍑虹幇鏃讹紝璁板綍寮傚父鎯呭喌 -// checkResult() -// if (eIndex[i] - sIndex[i] >= durationCount) { -// refreshAfterCheckResult(i, data) -// } -// } -// } -// } lastData = data } @@ -165,7 +144,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 +153,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