From 176d7d8283e66ccf63878c9ab823e900df94b748 Mon Sep 17 00:00:00 2001 From: feiyu02 <risaku@163.com> Date: 星期二, 05 八月 2025 17:20:58 +0800 Subject: [PATCH] 2025.8.5 1. 动态溯源模块添加延迟数据周期异常合并功能 --- src/main/kotlin/com/flightfeather/uav/biz/sourcetrace/exceptiontype/BaseRTExcWindLevel.kt | 41 +++++++++++++++++++++++++++++------------ 1 files changed, 29 insertions(+), 12 deletions(-) diff --git a/src/main/kotlin/com/flightfeather/uav/biz/sourcetrace/exceptiontype/BaseRTExcWindLevel.kt b/src/main/kotlin/com/flightfeather/uav/biz/sourcetrace/exceptiontype/BaseRTExcWindLevel.kt index 84933af..13b0f3d 100644 --- a/src/main/kotlin/com/flightfeather/uav/biz/sourcetrace/exceptiontype/BaseRTExcWindLevel.kt +++ b/src/main/kotlin/com/flightfeather/uav/biz/sourcetrace/exceptiontype/BaseRTExcWindLevel.kt @@ -29,9 +29,13 @@ this.callback = callback } + override var excludedFactor: List<FactorType> = listOf(FactorType.NO2) + private var callback: NewPolluteClueCallback? = null abstract var windLevelCondition: RTExcWindLevelConfig.WindLevelCondition + + override var judgeMethod: JudgeMethod = JudgeMethod.M1 override fun getExceptionType(): ExceptionType { return ExceptionType.TYPE4 @@ -83,12 +87,12 @@ return tag.exceptionData.size >= windLevelCondition.countLimit } - override fun needCut(tag: ExceptionTag, hasException: Boolean?): Boolean { + override fun needCut(tag: ExceptionTag, hasException: Boolean?, data: BaseRealTimeData): Boolean { // 鎸夌収鏃堕暱鍜岃窛绂婚檺鍒跺皢寮傚父鎴彇 if (tag.exceptionData.isEmpty()) return false val se = tag.exceptionData.first() - val ee = tag.exceptionData.last() + val ee = data val sTime = LocalDateTime.ofInstant(se.dataTime?.toInstant(), ZoneId.systemDefault()) val eTime = LocalDateTime.ofInstant(ee.dataTime?.toInstant(), ZoneId.systemDefault()) @@ -116,10 +120,17 @@ } override fun newResult(tag: ExceptionTag, factor: FactorFilter.SelectedFactor): PollutedClue { - return PollutedClue(tag, factor, getExceptionType(), config, windLevelCondition) + return PollutedClue() } -// override fun newResult( + override fun newResult(exceptions: List<Pair<FactorFilter.SelectedFactor, ExceptionTag>>): PollutedClue { + return if (exceptions.isEmpty()) + PollutedClue() + else + PollutedClue(exceptions, getExceptionType(), config, windLevelCondition) + } + + // override fun newResult( // start: BaseRealTimeData, // end: BaseRealTimeData?, // factor: FactorFilter.SelectedFactor, @@ -128,15 +139,21 @@ // return PollutedClue(start, end, factor, exceptionData, getExceptionType(), config, windLevelCondition) // } - override fun onNewException( - tag: ExceptionTag, - factor: FactorFilter.SelectedFactor, - exceptionStatus: ExceptionStatusType, - ) { - super.onNewException(tag, factor, exceptionStatus) + +// override fun mergeExceptionResult() { +// super.mergeExceptionResult() +// callback?.let { func -> +// result.forEach { +// func.invoke(it) +// } +// } +// } + + override fun onNewResult(result: List<PollutedClue>) { callback?.let { func -> - val exc = tag.exceptionResult.last() - func.invoke(exc as PollutedClue) + result.forEach { + func.invoke(it) + } } } } \ No newline at end of file -- Gitblit v1.9.3