From 9c797fa0d704ef8ffb65cd1716b8eb694b4c46c3 Mon Sep 17 00:00:00 2001
From: feiyu02 <risaku@163.com>
Date: 星期五, 04 七月 2025 17:28:00 +0800
Subject: [PATCH] 2025.7.4 1. 新增动态污染溯源新的判定逻辑

---
 src/main/kotlin/com/flightfeather/uav/socket/processor/UnderwayProcessor.kt |   42 +++++++++++-------------------------------
 1 files changed, 11 insertions(+), 31 deletions(-)

diff --git a/src/main/kotlin/com/flightfeather/uav/socket/processor/UnderwayProcessor.kt b/src/main/kotlin/com/flightfeather/uav/socket/processor/UnderwayProcessor.kt
index a649598..8d7f42f 100644
--- a/src/main/kotlin/com/flightfeather/uav/socket/processor/UnderwayProcessor.kt
+++ b/src/main/kotlin/com/flightfeather/uav/socket/processor/UnderwayProcessor.kt
@@ -1,26 +1,20 @@
 package com.flightfeather.uav.socket.processor
 
-import com.flightfeather.uav.biz.FactorFilter
-import com.flightfeather.uav.biz.sourcetrace.RealTimeExceptionAnalysisController
-import com.flightfeather.uav.common.location.LocationRoadNearby
+import com.flightfeather.uav.biz.sourcetrace.SourceTraceController
 import com.flightfeather.uav.domain.entity.BaseRealTimeData
 import com.flightfeather.uav.model.epw.EPWDataPrep
 import com.flightfeather.uav.domain.repository.AirDataRep
-import com.flightfeather.uav.domain.repository.RealTimeDataRep
-import com.flightfeather.uav.domain.repository.SegmentInfoRep
+import com.flightfeather.uav.domain.repository.SceneInfoRep
+import com.flightfeather.uav.domain.repository.SourceTraceRep
 import com.flightfeather.uav.socket.bean.AirDataPackage
 import com.flightfeather.uav.socket.decoder.AirDataDecoder
 import com.flightfeather.uav.socket.decoder.DataPackageDecoder
 import com.flightfeather.uav.socket.eunm.AirCommandUnit
-import com.flightfeather.uav.socket.eunm.FactorType
 import com.flightfeather.uav.socket.eunm.UWDeviceType
-import com.flightfeather.uav.socket.handler.UnderwayWebSocketServerHandler
 import io.netty.channel.ChannelHandlerContext
-import org.springframework.beans.factory.annotation.Autowired
 import org.springframework.stereotype.Component
 import java.text.SimpleDateFormat
 import java.util.*
-import javax.annotation.PostConstruct
 
 /**
  * 澶勭悊socket鎺ユ敹鐨勬秷鎭�
@@ -31,10 +25,8 @@
 @Component
 class UnderwayProcessor(
     private val airDataRep: AirDataRep,
-    private val realTimeDataRep: RealTimeDataRep,
-    private val locationRoadNearby: LocationRoadNearby,
-    private val segmentInfoRep: SegmentInfoRep,
-    private val underwayWebSocketServerHandler: UnderwayWebSocketServerHandler,
+    private val sceneInfoRep: SceneInfoRep,
+    private val sourceTraceRep: SourceTraceRep
 ) : BaseProcessor() {
 
     companion object {
@@ -48,23 +40,7 @@
     private val dataProcessMap = mutableMapOf<String?, EPWDataPrep>()
 
     // 瀹炴椂璧拌埅姹℃煋婧簮澶勭悊鍣�
-    private val realTimeExceptionAnalysisController =
-        RealTimeExceptionAnalysisController(
-            realTimeDataRep,
-            locationRoadNearby,
-            segmentInfoRep,
-            underwayWebSocketServerHandler,
-            FactorFilter.builder()
-//                .withMain(FactorType.NO2)
-                .withMain(FactorType.CO)
-//                .withMain(FactorType.H2S)
-//                .withMain(FactorType.SO2)
-//                .withMain(FactorType.O3)
-                .withMain(FactorType.PM25)
-                .withMain(FactorType.PM10)
-                .withMain(FactorType.VOC)
-                .create()
-        )
+    private val sourceTraceMap = mutableMapOf<String?, SourceTraceController>()
 
     override var tag: String = "璧拌埅鐩戞祴"
 
@@ -77,8 +53,12 @@
             deviceSession.saveDevice(packageData.deviceCode, ctx)
             saveToTxt(msg)
             saveToDataBase(packageData)?.takeIf { it.isNotEmpty() }?.get(0)?.let {
+                // 姣忓彴璁惧鏈夊悇鑷崟鐙殑寮傚父鏁版嵁澶勭悊鍣�
+                if (!sourceTraceMap.containsKey(it.deviceCode)) {
+                    sourceTraceMap[it.deviceCode] = SourceTraceController(sceneInfoRep, sourceTraceRep)
+                }
                 // 灏嗚蛋鑸暟鎹紶鍏ュ紓甯稿鐞嗗櫒
-                realTimeExceptionAnalysisController.addOneData(it)
+                sourceTraceMap[it.deviceCode]?.addOneData(it)
             }
 
         } else {

--
Gitblit v1.9.3