From bde043c8fd1a076f44c402dd56c62d401afbfb16 Mon Sep 17 00:00:00 2001
From: feiyu02 <risaku@163.com>
Date: 星期四, 27 三月 2025 17:29:48 +0800
Subject: [PATCH] 1. 新增卫星遥测网格热力图计算逻辑

---
 src/main/kotlin/com/flightfeather/uav/socket/processor/UnderwayProcessor.kt |   27 ++++++++++++++++++++++-----
 1 files changed, 22 insertions(+), 5 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 33a5861..201bfe4 100644
--- a/src/main/kotlin/com/flightfeather/uav/socket/processor/UnderwayProcessor.kt
+++ b/src/main/kotlin/com/flightfeather/uav/socket/processor/UnderwayProcessor.kt
@@ -1,10 +1,12 @@
 package com.flightfeather.uav.socket.processor
 
-import com.flightfeather.uav.repository.AirDataRepository
+import com.flightfeather.uav.model.epw.EPWDataPrep
+import com.flightfeather.uav.domain.repository.AirDataRep
 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.UWDeviceType
 import io.netty.channel.ChannelHandlerContext
 import org.springframework.beans.factory.annotation.Autowired
 import org.springframework.stereotype.Component
@@ -28,10 +30,13 @@
     }
 
     @Autowired
-    lateinit var airDataRepository: AirDataRepository
+    lateinit var airDataRep: AirDataRep
 
-    val airDataDecoder = AirDataDecoder.instance
-    val dataPackageDecoder = DataPackageDecoder()
+    private val airDataDecoder = AirDataDecoder.instance
+    private val dataPackageDecoder = DataPackageDecoder()
+
+    // 鏁版嵁棰勫鐞嗗嚱鏁�
+    private val dataProcessMap = mutableMapOf<String?, EPWDataPrep>()
 
     @PostConstruct
     fun init() {
@@ -59,7 +64,19 @@
      */
     fun saveToDataBase(dataPackage: AirDataPackage) {
         when (dataPackage.commandUnit) {
-            AirCommandUnit.AirData.value -> instance.airDataRepository.saveAirData(dataPackage)
+            AirCommandUnit.AirData.value -> {
+                // 浠son鏍煎紡瀛樺偍鍘熷鏁版嵁
+                instance.airDataRep.saveAirData(dataPackage)
+                // 杩涜棰勫鐞嗗悗锛屽瓨鍌ㄨ嚦瀵瑰簲鏁版嵁琛�
+                if (!dataProcessMap.containsKey(dataPackage.deviceCode)) {
+                    // 姣忓彴璁惧鏈夊崟鐙殑鏁版嵁棰勫鐞嗗璞�
+                    dataProcessMap[dataPackage.deviceCode] = EPWDataPrep(UWDeviceType.getType(dataPackage.deviceCode))
+                }
+                dataProcessMap[dataPackage.deviceCode]?.run {
+                    val list = this.mDataPrep2(dataPackage)// 鏁版嵁骞虫粦澶勭悊
+                    instance.airDataRep.savePrepData2(list)// 鎸夌収璁惧绫诲瀷瀛樺偍鑷冲搴旀暟鎹〃
+                }
+            }
         }
     }
 

--
Gitblit v1.9.3