From eb3dd00b0b7fcda477229d518d250f9c842b790b Mon Sep 17 00:00:00 2001
From: feiyu02 <risaku@163.com>
Date: 星期二, 21 十月 2025 17:45:44 +0800
Subject: [PATCH] 2025.10.21 1. 走航季度报告相关数据计算逻辑调整
---
src/main/kotlin/com/flightfeather/uav/biz/sourcetrace/SourceTraceController.kt | 47 +++++++++++++++++++++++++++++++++++++----------
1 files changed, 37 insertions(+), 10 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 0e4c5ef..eb0f7eb 100644
--- a/src/main/kotlin/com/flightfeather/uav/biz/sourcetrace/SourceTraceController.kt
+++ b/src/main/kotlin/com/flightfeather/uav/biz/sourcetrace/SourceTraceController.kt
@@ -28,7 +28,12 @@
* 姣忎竴鍒婚挓瀵瑰巻鍙茬嚎绱㈣繘琛岀粺璁★紝鎻愬嚭浼氬晢寤鸿锛堢姹℃煋婧愯緝杩溿�佹薄鏌撴簮鏁伴噺銆佸嚭鐜版鏁帮級銆佽蛋鑸矾绾胯皟鏁村缓璁紙绂绘薄鏌撴簮杈冭繎銆佽蛋鑸建杩规湭鎺ヨ繎婧簮鍦烘櫙锛�
*/
- constructor(sceneInfoRep: SceneInfoRep, sourceTraceRep: SourceTraceRep, factorFilter: FactorFilter?) {
+ constructor(
+ sceneInfoRep: SceneInfoRep,
+ sourceTraceRep: SourceTraceRep,
+ factorFilter: FactorFilter?,
+ isSearchAddress: Boolean,
+ ) {
this.sceneInfoRep = sceneInfoRep
this.sourceTraceRep = sourceTraceRep
this.config = if (factorFilter != null) {
@@ -40,29 +45,36 @@
.withMain(FactorType.CO)
// .withMain(FactorType.H2S)
// .withMain(FactorType.SO2)
- .withMain(FactorType.O3)
+// .withMain(FactorType.O3)
.withMain(FactorType.PM25)
.withMain(FactorType.PM10)
- .withMain(FactorType.VOC)
+// .withMain(FactorType.VOC)
+ .withMain(FactorType.NO)
.withCombination(
listOf(
listOf(FactorType.PM25, FactorType.PM10),
- listOf(FactorType.VOC, FactorType.CO),
+// listOf(FactorType.VOC, FactorType.CO),
+ listOf(FactorType.NO, FactorType.NO2),
)
)
.create()
)
}
+ this.config.isSearchAddress = isSearchAddress
+
pollutedSummary = PollutedSummary(config) { summaryCallback(it) }
newTask()
}
- constructor(sceneInfoRep: SceneInfoRep, sourceTraceRep: SourceTraceRep) : this(sceneInfoRep, sourceTraceRep, null)
+ constructor(sceneInfoRep: SceneInfoRep, sourceTraceRep: SourceTraceRep, isSearchAddress: Boolean = true)
+ : this(sceneInfoRep, sourceTraceRep, null, isSearchAddress)
private val pollutedSummary: PollutedSummary
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>>()
@@ -74,6 +86,7 @@
private fun newTask() {
taskList.apply {
+// add(RTExcSlideAverage(config) { dataChangeCallback(it) }.also { it.init() })
add(RTExcWindLevel1(config) { exceptionCallback(it) }.also { it.init() })
add(RTExcWindLevel1_1(config) { exceptionCallback(it) }.also { it.init() })
add(RTExcWindLevel4(config) { exceptionCallback(it) }.also { it.init() })
@@ -92,23 +105,37 @@
* 璁$畻鏂扮殑涓�鏉″疄鏃惰蛋鑸暟鎹�
*/
fun addOneData(data: BaseRealTimeData) {
+// println("====================>")
// 璁$畻寮傚父
taskList.forEach { it.onNextData(data) }
pollutedSummary.refreshLatestMonitorData(data)
// 闄愬畾鏃堕棿鍐呮病鏈夋柊鏁版嵁浼犲叆锛屽垯缁撴潫褰撳墠鐨勮绠�
+ dealOnTimeout()
+ }
+
+ fun addDataList(dataList: List<BaseRealTimeData>) {
+ // 璁$畻寮傚父
+ dataList.forEach { data ->
+ 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)
}
// 鏁版嵁绐佸彉寮傚父鍥炶皟
--
Gitblit v1.9.3