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/sourcetrace/exceptiontype/BaseRealTimeException.kt | 82 ++++++++++++++++++++--------------------- 1 files changed, 40 insertions(+), 42 deletions(-) diff --git a/src/main/kotlin/com/flightfeather/uav/biz/sourcetrace/exceptiontype/BaseRealTimeException.kt b/src/main/kotlin/com/flightfeather/uav/biz/sourcetrace/exceptiontype/BaseRealTimeException.kt index c464995..962969f 100644 --- a/src/main/kotlin/com/flightfeather/uav/biz/sourcetrace/exceptiontype/BaseRealTimeException.kt +++ b/src/main/kotlin/com/flightfeather/uav/biz/sourcetrace/exceptiontype/BaseRealTimeException.kt @@ -2,9 +2,11 @@ import com.flightfeather.uav.biz.FactorFilter import com.flightfeather.uav.biz.dataanalysis.BaseExceptionContinuous +import com.flightfeather.uav.biz.dataanalysis.model.ExceptionTag import com.flightfeather.uav.biz.sourcetrace.RealTimeAnalysisConfig import com.flightfeather.uav.biz.sourcetrace.model.RealTimeExceptionResult import com.flightfeather.uav.domain.entity.BaseRealTimeData +import com.flightfeather.uav.lightshare.eunm.ExceptionStatusType // 寮傚父鏁版嵁鐢熸垚鍥炶皟绫� typealias NewExceptionCallback = (ex: RealTimeExceptionResult) -> Unit @@ -15,59 +17,55 @@ * @date 2025/5/13 * @author feiyu02 */ -abstract class BaseRealTimeException(config: RealTimeAnalysisConfig) : - BaseExceptionContinuous<RealTimeAnalysisConfig, RealTimeExceptionResult>(config) { +@Deprecated("2025.5.29, 閫昏緫涓庝笟鍔′笉鍖归厤锛屽悗缁垹闄�") +abstract class BaseRealTimeException<T : ExceptionTag>(config: RealTimeAnalysisConfig, tagClz: Class<T>) : + BaseExceptionContinuous<T, RealTimeAnalysisConfig, RealTimeExceptionResult>(config, tagClz) { - constructor(config: RealTimeAnalysisConfig, callback: NewExceptionCallback) : this(config){ + constructor(config: RealTimeAnalysisConfig, callback: NewExceptionCallback, tagClz: Class<T>) : this(config, tagClz){ this.callback = callback } var callback: NewExceptionCallback? = null - override fun onNextData(data: BaseRealTimeData) { - val isContinue = isContinuous(lastData, data) - val hasException = judgeException(lastData, data) - config.factorFilter.selectedList.forEach { s -> - val f = s.main - tagMap[f]?.let { - it.eIndex++ - // 璧峰鏁版嵁 - it.endData = data - if (it.startData == null) { - it.refreshAfterCheckResult(data) - } - // 鍒ゆ柇鐩搁偦鏁版嵁鏄惁杩炵画鎴栬�呮槸鍚︽弧瓒宠嚜瀹氫箟鎴彇鏉′欢 - if (!isContinue || needCut(it)) { - // 璁板綍寮傚父锛岀粨鏉熷紓甯哥殑瀹炴椂鐘舵�佹挱鎶� - recordException(s, it, data) - } else { - if (hasException[f] == true) { - it.existException = true - it.exceptionData.add(data) - } - // 绉婚櫎浜嗙埗绫诲師鏈夐�昏緫锛屾敼涓哄綋婊¤冻寮傚父鏉′欢鏃讹紝闇�瑕佸疄鏃舵帹閫佹挱鎶ュ紓甯哥殑鐘舵�佸彉鍖栵紝浣嗕笉鎴彇寮傚父 - checkResult(s) - } - } - } - lastData = data - } +// override fun onNextData(data: BaseRealTimeData) { +// val isContinue = isContinuous(lastData, data) +// val hasException = judgeException(lastData, data) +// config.factorFilter.selectedList.forEach { s -> +// val f = s.main +// tagMap[f]?.let { +// it.eIndex++ +// // 璧峰鏁版嵁 +// it.endData = data +// if (it.startData == null) { +// it.refreshWithNextException(data) +// } +// // 鍒ゆ柇鐩搁偦鏁版嵁鏄惁杩炵画鎴栬�呮槸鍚︽弧瓒宠嚜瀹氫箟鎴彇鏉′欢 +// if (!isContinue || needCut(it)) { +// // 璁板綍寮傚父锛岀粨鏉熷紓甯哥殑瀹炴椂鐘舵�佹挱鎶� +// recordException(s, it, data) +// } else { +// // 绉婚櫎浜嗙埗绫诲師鏈夐�昏緫锛屾敼涓哄綋婊¤冻寮傚父鏉′欢鏃讹紝闇�瑕佸疄鏃舵帹閫佹挱鎶ュ紓甯哥殑鐘舵�佸彉鍖栵紝浣嗕笉鎴彇寮傚父 +// if (hasException[f] == true) { +// it.addExceptionData(data) +// checkResult(s) +// } +// } +// } +// } +// lastData = data +// } - override fun newResult( - start: BaseRealTimeData, - end: BaseRealTimeData?, - factor: FactorFilter.SelectedFactor, - exceptionData: List<BaseRealTimeData>, - ): RealTimeExceptionResult { + + override fun newResult(tag:T, factor: FactorFilter.SelectedFactor): RealTimeExceptionResult { val eType = getExceptionType() - return RealTimeExceptionResult(start, end, factor, exceptionData, eType) + return RealTimeExceptionResult(tag.startData!!, tag.endData, factor, tag.exceptionData, eType) } - override fun onNewException(tag: Tag, factor: FactorFilter.SelectedFactor) { - super.onNewException(tag, factor) + override fun onNewException(tag: T, factor: FactorFilter.SelectedFactor, exceptionStatus: ExceptionStatusType) { + super.onNewException(tag, factor, exceptionStatus) callback?.let { func -> - val exc = resultList.last() - func.invoke(exc) + val exc = tag.exceptionResult.last() + func.invoke(exc as RealTimeExceptionResult) } } } \ No newline at end of file -- Gitblit v1.9.3