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/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