From 7d33080998a2c5b38e8a74dbed2b0f40d39bbe47 Mon Sep 17 00:00:00 2001
From: Riku <risaku@163.com>
Date: 星期三, 04 六月 2025 23:27:26 +0800
Subject: [PATCH] 1. 新增动态污染溯源新的判定逻辑(待完成)
---
src/main/kotlin/com/flightfeather/uav/biz/dataanalysis/ExceptionAnalysisController.kt | 26 ++++++++++++++++----------
1 files changed, 16 insertions(+), 10 deletions(-)
diff --git a/src/main/kotlin/com/flightfeather/uav/biz/dataanalysis/ExceptionAnalysisController.kt b/src/main/kotlin/com/flightfeather/uav/biz/dataanalysis/ExceptionAnalysisController.kt
index ed6c540..556353a 100644
--- a/src/main/kotlin/com/flightfeather/uav/biz/dataanalysis/ExceptionAnalysisController.kt
+++ b/src/main/kotlin/com/flightfeather/uav/biz/dataanalysis/ExceptionAnalysisController.kt
@@ -1,7 +1,6 @@
package com.flightfeather.uav.biz.dataanalysis
import com.flightfeather.uav.biz.FactorFilter
-import com.flightfeather.uav.biz.dataanalysis.exceptiontype.ExceptionDataExceed
import com.flightfeather.uav.biz.dataanalysis.exceptiontype.ExceptionSlideAverage
import com.flightfeather.uav.biz.dataanalysis.exceptiontype.ExceptionValueMutation
import com.flightfeather.uav.biz.dataanalysis.model.DataAnalysisConfig
@@ -11,15 +10,13 @@
import com.flightfeather.uav.domain.entity.Mission
import com.flightfeather.uav.domain.repository.RealTimeDataRep
import com.flightfeather.uav.domain.repository.SegmentInfoRep
-import org.springframework.stereotype.Component
+import com.flightfeather.uav.socket.eunm.UWDeviceType
import java.time.LocalDateTime
import java.time.ZoneId
-import java.time.format.DateTimeFormatter
/**
* 鏁版嵁寮傚父鍒嗘瀽鎺у埗鍣�
*/
-@Component
class ExceptionAnalysisController(
private val realTimeDataRep: RealTimeDataRep,
private val locationRoadNearby: LocationRoadNearby,
@@ -28,18 +25,18 @@
var running = false
- private val taskList = mutableListOf<BaseExceptionAnalysis>()
+ private val taskList = mutableListOf<BaseExceptionAnalysis<DataAnalysisConfig, ExceptionResult>>()
private fun initTask(config: DataAnalysisConfig) {
taskList.clear()
taskList.apply {
- add(ExceptionDataExceed(config))
+// add(ExceptionDataExceed(config))
add(ExceptionValueMutation(config))
add(ExceptionSlideAverage(config))
}
}
- fun run(mission: Mission, factorFilter: FactorFilter): List<ExceptionResult> {
+ fun execute(mission: Mission, factorFilter: FactorFilter): List<ExceptionResult> {
running = true
val config = DataAnalysisConfig(mission, ExceptionSetting(), factorFilter)
initTask(config)
@@ -47,7 +44,11 @@
val result = mutableListOf<ExceptionResult>()
taskList.forEach { it.init() }
// 杞鏁版嵁锛岃绠楀悇涓紓甯�
- realTimeDataRep.fetchData(mission.deviceCode, mission.startTime, mission.endTime).forEach { d ->
+ realTimeDataRep.fetchData(UWDeviceType.fromValue(mission.deviceType),
+ mission.deviceCode,
+ mission.startTime,
+ mission.endTime
+ ).forEach { d ->
taskList.forEach { it.onNextData(d) }
}
// 鍚勪釜寮傚父鍒嗘瀽鍒嗗埆缁撴潫
@@ -58,7 +59,9 @@
// 鏌ヨ寮傚父鍛ㄨ竟鍙兘姹℃煋婧�
nearBy(r, config)
// 鏌ヨ鏃舵鎵�鍦ㄨ矾娈�
- road(r)
+// road(r)
+ // 灏嗘暟鎹浆鎹负閫氱敤鏍煎紡
+ r.dataVoList = r.dataList.map { e-> e.toDataVo() }
}
// 瀛樺偍鍒嗘瀽缁撴灉
result.addAll(it.resultList)
@@ -66,6 +69,8 @@
running = false
return result
}
+
+// private fun
private fun nearBy(r: ExceptionResult, config: DataAnalysisConfig) {
if (r.longitude != null && r.latitude != null) {
@@ -80,6 +85,7 @@
}
r.relatedSceneId = idList
r.relatedSceneName = nameList
+ r.relatedSceneList = sceneList
}
}
}
@@ -87,7 +93,7 @@
private fun road(r: ExceptionResult) {
val sT = LocalDateTime.ofInstant(r.startDate?.toInstant(), ZoneId.systemDefault())
val eT = LocalDateTime.ofInstant(r.endDate?.toInstant(), ZoneId.systemDefault())
- val segments = segmentInfoRep.findPeriod(sT, eT)
+ val segments = segmentInfoRep.findPeriod(r.missionCode, sT, eT)
var txt = ""
val size = segments.size
segments.forEachIndexed { i, s ->
--
Gitblit v1.9.3