From f7bdafb7cddd049bbb1bbf265fa006683b4ac693 Mon Sep 17 00:00:00 2001 From: feiyu02 <risaku@163.com> Date: 星期三, 11 六月 2025 17:08:35 +0800 Subject: [PATCH] 1. 新增动态污染溯源新的判定逻辑(待完成) --- src/main/kotlin/com/flightfeather/uav/biz/dataanalysis/exceptiontype/ExceptionSlideAverage.kt | 38 ++++++++++++++++++++++++++------------ 1 files changed, 26 insertions(+), 12 deletions(-) diff --git a/src/main/kotlin/com/flightfeather/uav/biz/dataanalysis/exceptiontype/ExceptionSlideAverage.kt b/src/main/kotlin/com/flightfeather/uav/biz/dataanalysis/exceptiontype/ExceptionSlideAverage.kt index 391e20d..21bede2 100644 --- a/src/main/kotlin/com/flightfeather/uav/biz/dataanalysis/exceptiontype/ExceptionSlideAverage.kt +++ b/src/main/kotlin/com/flightfeather/uav/biz/dataanalysis/exceptiontype/ExceptionSlideAverage.kt @@ -3,6 +3,7 @@ import com.flightfeather.uav.biz.FactorFilter import com.flightfeather.uav.biz.dataanalysis.BaseExceptionAnalysis import com.flightfeather.uav.biz.dataanalysis.model.DataAnalysisConfig +import com.flightfeather.uav.biz.dataanalysis.model.ExceptionResult import com.flightfeather.uav.biz.dataanalysis.model.ExceptionType import com.flightfeather.uav.domain.entity.BaseRealTimeData import com.flightfeather.uav.socket.eunm.FactorType @@ -11,7 +12,8 @@ /** * 婊戝姩骞冲潎鍊肩獊鍙樺紓甯� */ -class ExceptionSlideAverage(config: DataAnalysisConfig) : BaseExceptionAnalysis(config) { +class ExceptionSlideAverage(config: DataAnalysisConfig) : + BaseExceptionAnalysis<DataAnalysisConfig, ExceptionResult>(config) { private val historyDataList = mutableListOf<BaseRealTimeData>() private val tempDataList = mutableListOf<BaseRealTimeData>() @@ -27,7 +29,7 @@ var sIndex = 0 // 璧峰鏁版嵁瀵硅薄 - var startData :BaseRealTimeData? = null + var startData: BaseRealTimeData? = null // 鏈熬鏁版嵁涓嬫爣 var eIndex = -1 @@ -42,7 +44,7 @@ var exceptionData = mutableListOf<BaseRealTimeData>() // 鏄惁瀛樺湪寮傚父 - var existException = false + var exceptionExisted = false fun refreshAfterCheckResult(data: BaseRealTimeData) { // 鍒ゆ柇骞舵洿鏂拌捣濮嬬偣浣嶇疆 @@ -66,7 +68,7 @@ lastData = null tagMap.clear() - config.factorFilter.mainList().forEach {f-> + config.factorFilter.mainList().forEach { f -> tagMap[f] = Tag() } // avgListReverse.clear() @@ -86,7 +88,7 @@ if (tempDataList.size > config.changeTrendGroup) { tempDataList.removeAt(0) } - config.factorFilter.selectedList.forEach {s-> + config.factorFilter.selectedList.forEach { s -> val f = s.main tagMap[f]?.let { it.eIndex++ @@ -98,7 +100,7 @@ if (tempDataList.size == config.changeTrendGroup) { calAvg(f, tempDataList) if (checkSlideAvg(f)) { - it.existException = true + it.exceptionExisted = true it.exceptionData.add(data) } else { checkResult(s) @@ -179,23 +181,35 @@ private fun checkResult(factor: FactorFilter.SelectedFactor? = null) { val tag = tagMap[factor?.main] if (factor != null && tag != null) { - if (tag.existException) { + if (tag.exceptionExisted) { tag.startData?.let { - resultList.add(newResult(it, lastData, factor, tag.exceptionData)) + resultList.add(newResult(it, tag.endData, factor, tag.exceptionData)) } - tag.existException = false + tag.exceptionExisted = false } } else { config.factorFilter.selectedList.forEach { f -> val tag1 = tagMap[f.main] ?: return@forEach - if (tag1.existException) { + if (tag1.exceptionExisted) { tag1.startData?.let { - resultList.add(newResult(it, lastData, f, tag1.exceptionData)) + resultList.add(newResult(it, tag1.endData, f, tag1.exceptionData)) } - tag1.existException = false + tag1.exceptionExisted = false } } } } + + + + fun newResult( + start: BaseRealTimeData, + end: BaseRealTimeData?, + factor: FactorFilter.SelectedFactor, + exceptionData: List<BaseRealTimeData>, + ): ExceptionResult { + val eType = getExceptionType() + return ExceptionResult(start, end, factor, exceptionData, config.mission.missionCode, eType) + } } \ No newline at end of file -- Gitblit v1.9.3