From 38d72198bfcced01ed9513b978163e5cd1d84625 Mon Sep 17 00:00:00 2001 From: feiyu02 <risaku@163.com> Date: 星期一, 21 七月 2025 15:31:41 +0800 Subject: [PATCH] 2025.7.21 1. 修改动态溯源异常判断逻辑 --- src/main/kotlin/com/flightfeather/uav/biz/sourcetrace/exceptiontype/BaseRTExcChangeRate.kt | 34 +++++++++++++++++++++++++++++----- 1 files changed, 29 insertions(+), 5 deletions(-) diff --git a/src/main/kotlin/com/flightfeather/uav/biz/sourcetrace/exceptiontype/BaseRTExcChangeRate.kt b/src/main/kotlin/com/flightfeather/uav/biz/sourcetrace/exceptiontype/BaseRTExcChangeRate.kt index e36031e..28d1591 100644 --- a/src/main/kotlin/com/flightfeather/uav/biz/sourcetrace/exceptiontype/BaseRTExcChangeRate.kt +++ b/src/main/kotlin/com/flightfeather/uav/biz/sourcetrace/exceptiontype/BaseRTExcChangeRate.kt @@ -30,6 +30,8 @@ abstract var changeRate: MutableMap<FactorType, RTExcWindLevelConfig.WindLevelCondition> + override var judgeMethod: JudgeMethod = JudgeMethod.M2 + override fun getExceptionType(): ExceptionType { return ExceptionType.TYPE9 } @@ -77,12 +79,12 @@ return tag.exceptionData.size >= (changeRate[factorType]?.countLimit ?: 1) } - 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()) @@ -110,7 +112,14 @@ } override fun newResult(tag: ExceptionTag, factor: FactorFilter.SelectedFactor): PollutedClue { - return PollutedClue(tag, factor, getExceptionType(), config, changeRate[factor.main]) + return PollutedClue() + } + + override fun newResult(exceptions: List<Pair<FactorFilter.SelectedFactor, ExceptionTag>>): PollutedClue { + return if (exceptions.isEmpty()) + PollutedClue() + else + PollutedClue(exceptions, getExceptionType(), config, changeRate[exceptions[0].first.main]) } override fun onNewException( @@ -119,9 +128,24 @@ exceptionStatus: ExceptionStatusType, ) { super.onNewException(tag, factor, exceptionStatus) +// callback?.let { func -> +// val exc = tag.exceptionResult.last() +// func.invoke(exc as PollutedClue) +// } + } + + override fun mergeExceptionResult() { + super.mergeExceptionResult() callback?.let { func -> - val exc = tag.exceptionResult.last() - func.invoke(exc as PollutedClue) + result.forEach { + func.invoke(it) + } +// latestExceptions.forEach { +// func.invoke(listOf(it as PollutedClue)) +// } +// latestCombinedExc.forEach { +// func.invoke(it as List<PollutedClue>) +// } } } } \ No newline at end of file -- Gitblit v1.9.3