From c56e1e74426238939f229f0005828d05089715ff Mon Sep 17 00:00:00 2001 From: feiyu02 <risaku@163.com> Date: 星期四, 03 七月 2025 17:30:58 +0800 Subject: [PATCH] 2025.7.3 1. 新增动态污染溯源新的判定逻辑 --- src/main/kotlin/com/flightfeather/uav/biz/dataanalysis/BaseExceptionContinuousSingle.kt | 47 ++++++++++++----------------------------------- 1 files changed, 12 insertions(+), 35 deletions(-) diff --git a/src/main/kotlin/com/flightfeather/uav/biz/dataanalysis/BaseExceptionContinuousSingle.kt b/src/main/kotlin/com/flightfeather/uav/biz/dataanalysis/BaseExceptionContinuousSingle.kt index e65d775..cd592ab 100644 --- a/src/main/kotlin/com/flightfeather/uav/biz/dataanalysis/BaseExceptionContinuousSingle.kt +++ b/src/main/kotlin/com/flightfeather/uav/biz/dataanalysis/BaseExceptionContinuousSingle.kt @@ -1,64 +1,41 @@ package com.flightfeather.uav.biz.dataanalysis -import com.flightfeather.uav.biz.dataanalysis.model.DataAnalysisConfig +import com.flightfeather.uav.biz.dataanalysis.model.ExceptionTag import com.flightfeather.uav.domain.entity.BaseRealTimeData /** * 杩炵画绫诲瀷鐨勫紓甯稿垎鏋愬熀绫�,鍖哄埆浜庣埗绫荤殑鍦版柟鍦ㄤ簬姝ょ寮傚父鍙拰鍗曚釜鏁版嵁鏈韩鏈夊叧,涓庣浉閭绘暟鎹棤鍏� */ -abstract class BaseExceptionContinuousSingle(config: DataAnalysisConfig) : BaseExceptionContinuous(config) { +abstract class BaseExceptionContinuousSingle<T : ExceptionTag, V : BaseAnalysisConfig, Y : BaseExceptionResult>(config: V, tagClz: Class<T>) : + BaseExceptionContinuous<T, V, Y>(config, tagClz) { override fun onNextData(data: BaseRealTimeData) { val isContinue = isContinuous(lastData, data) - val hasException = judgeException(lastData, data) - config.factorFilter.mainList().forEach {f-> + val hasException = judge(lastData, data) + config.factorFilter.selectedList.forEach { s -> + val f = s.main tagMap[f]?.let { it.eIndex++ if (lastData == null) { it.startData = data } // 鍒ゆ柇鐩搁偦鏁版嵁鏄惁杩炵画骞朵笖鏄惁婊¤冻寮傚父鍒ゆ柇 - if (!isContinue) { - checkResult() - it.sIndex = it.eIndex - it.startData = data + if (!isContinue || needCut(it, hasException[f])) { + recordException(s, it, data) } else { if (hasException[f] == true) { - // 淇敼浜嗚捣濮嬫暟鎹殑浣嶇疆,鍙樻洿涓哄嚭鐜板紓甯哥殑璇ュ��,鑰屼笉鏄師鏉ョ殑鍑虹幇寮傚父鐨勬暟鎹殑鍓嶄竴涓�� - if (!it.existException) { + // 淇敼浜嗚捣濮嬫暟鎹殑浣嶇疆,鍙樻洿涓哄嚭鐜板紓甯哥殑璇ュ��,鑰屼笉鏄師鏉ョ殑鍑虹幇寮傚父鏁版嵁鐨勫墠涓�涓�� + if (!it.exceptionExisted) { it.sIndex = it.eIndex it.startData = data } - it.existException = true + it.addExceptionData(data) } else { - checkResult() + recordException(s, it, data) } } } } -// repeat(config.factorCount) { i -> -// eIndex[i]++ -// if (lastData == null) { -// startData[i] = data -// } -// // 鍒ゆ柇鐩搁偦鏁版嵁鏄惁杩炵画骞朵笖鏄惁婊¤冻寮傚父鍒ゆ柇 -// if (!isContinue) { -// checkResult() -// sIndex[i] = eIndex[i] -// startData[i] = data -// } else { -// if (hasException[i]) { -// // 淇敼浜嗚捣濮嬫暟鎹殑浣嶇疆,鍙樻洿涓哄嚭鐜板紓甯哥殑璇ュ��,鑰屼笉鏄師鏉ョ殑鍑虹幇寮傚父鐨勬暟鎹殑鍓嶄竴涓�� -// if (!existException[i]) { -// sIndex[i] = eIndex[i] -// startData[i] = data -// } -// existException[i] = true -// } else { -// checkResult() -// } -// } -// } lastData = data } } \ No newline at end of file -- Gitblit v1.9.3