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/SourceTraceController.kt | 58 +++++++++++++++++++++++++++++++--------------------------- 1 files changed, 31 insertions(+), 27 deletions(-) diff --git a/src/main/kotlin/com/flightfeather/uav/biz/sourcetrace/SourceTraceController.kt b/src/main/kotlin/com/flightfeather/uav/biz/sourcetrace/SourceTraceController.kt index d721f59..83bb5c7 100644 --- a/src/main/kotlin/com/flightfeather/uav/biz/sourcetrace/SourceTraceController.kt +++ b/src/main/kotlin/com/flightfeather/uav/biz/sourcetrace/SourceTraceController.kt @@ -32,7 +32,7 @@ this.sceneInfoRep = sceneInfoRep this.sourceTraceRep = sourceTraceRep this.config = if (factorFilter != null) { - RTExcWindLevelConfig(factorFilter, emptyList()) + RTExcWindLevelConfig(factorFilter) } else { RTExcWindLevelConfig( FactorFilter.builder() @@ -43,12 +43,14 @@ .withMain(FactorType.O3) .withMain(FactorType.PM25) .withMain(FactorType.PM10) - .withMain(FactorType.VOC) - .create(), - listOf( - listOf(FactorType.PM25, FactorType.PM10), - listOf(FactorType.VOC, FactorType.CO), - ) +// .withMain(FactorType.VOC) + .withCombination( + listOf( + listOf(FactorType.PM25, FactorType.PM10), + listOf(FactorType.VOC, FactorType.CO), + ) + ) + .create() ) } pollutedSummary = PollutedSummary(config) { summaryCallback(it) } @@ -61,6 +63,8 @@ private val sceneInfoRep: SceneInfoRep private val sourceTraceRep: SourceTraceRep private val config: RTExcWindLevelConfig + private val timer = Timer() + private var timerTask: TimerTask? = null private val taskList = mutableListOf<BaseExceptionAnalysis<RTExcWindLevelConfig, PollutedClue>>() @@ -90,52 +94,52 @@ * 璁$畻鏂扮殑涓�鏉″疄鏃惰蛋鑸暟鎹� */ fun addOneData(data: BaseRealTimeData) { +// println("====================>") // 璁$畻寮傚父 taskList.forEach { it.onNextData(data) } pollutedSummary.refreshLatestMonitorData(data) // 闄愬畾鏃堕棿鍐呮病鏈夋柊鏁版嵁浼犲叆锛屽垯缁撴潫褰撳墠鐨勮绠� + dealOnTimeout() } /** * 瓒呮椂澶勭悊锛岃緝闀挎椂闂存病鏈夋柊鏁版嵁杩涘叆锛岃繘琛屽垵濮嬪寲鎿嶄綔 */ private fun dealOnTimeout() { - val timer = Timer(true) - timer.schedule(object : TimerTask() { +// val timer = Timer() + timerTask?.cancel() + timer.purge() + timerTask = object : TimerTask() { override fun run() { - TODO("Not yet implemented") + initTask() } - }, 60 * 1000) - timer.cancel() + } + timer.schedule(timerTask, 2 * 60 * 60 * 1000) } // 鏁版嵁绐佸彉寮傚父鍥炶皟 - private fun exceptionCallback(ex: List<PollutedClue>) { - ex.forEach { - // 婧簮姹℃煋婧愪俊鎭� - it.searchScenes(sceneInfoRep) - it.msgType = MsgType.PolClue.value - } + private fun exceptionCallback(ex: PollutedClue) { + // 婧簮姹℃煋婧愪俊鎭� + ex.searchScenes(sceneInfoRep) + ex.msgType = MsgType.PolClue.value // 骞挎挱姹℃煋婧簮寮傚父缁撴灉 UnderwayWebSocketSender.broadcast(MsgType.PolClue.value, ex) - sourceTraceRep.insertList(MsgType.PolClue, ex) + sourceTraceRep.insert(MsgType.PolClue, ex) // 璁板綍姹℃煋绾跨储 - pollutedSummary.addClueList(ex) + pollutedSummary.addClue(ex) } // 鏁版嵁鍙樺寲鎻愰啋鍥炶皟 - private fun dataChangeCallback(ex: List<PollutedClue>) { - ex.forEach { - // 婧簮姹℃煋婧愪俊鎭� - it.searchScenes(sceneInfoRep) - it.msgType = MsgType.DataChange.value - } + private fun dataChangeCallback(ex: PollutedClue) { + // 婧簮姹℃煋婧愪俊鎭� + ex.searchScenes(sceneInfoRep) + ex.msgType = MsgType.DataChange.value // 骞挎挱鏁版嵁鍙樺寲鎻愰啋 UnderwayWebSocketSender.broadcast(MsgType.DataChange.value, ex) - sourceTraceRep.insertList(MsgType.DataChange, ex) + sourceTraceRep.insert(MsgType.DataChange, ex) } private fun summaryCallback(ex: AnalysisResult) { -- Gitblit v1.9.3