From e5bdf2e02090357cbd580d54e6cd2406dd541760 Mon Sep 17 00:00:00 2001
From: feiyu02 <risaku@163.com>
Date: 星期五, 21 三月 2025 17:39:30 +0800
Subject: [PATCH] 1. 新增卫星遥测网格热力图计算逻辑(待完成)

---
 src/main/kotlin/com/flightfeather/uav/lightshare/service/impl/SatelliteDataCalculateServiceImpl.kt |   54 ++++++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 42 insertions(+), 12 deletions(-)

diff --git a/src/main/kotlin/com/flightfeather/uav/lightshare/service/impl/SatelliteDataCalculateServiceImpl.kt b/src/main/kotlin/com/flightfeather/uav/lightshare/service/impl/SatelliteDataCalculateServiceImpl.kt
index 7358603..a765aa6 100644
--- a/src/main/kotlin/com/flightfeather/uav/lightshare/service/impl/SatelliteDataCalculateServiceImpl.kt
+++ b/src/main/kotlin/com/flightfeather/uav/lightshare/service/impl/SatelliteDataCalculateServiceImpl.kt
@@ -138,21 +138,51 @@
         val mission = missionRep.findOne(missionCode) ?: throw BizException("浠诲姟涓嶅瓨鍦�")
         val data = realTimeDataRep.fetchData(mission)
 
-        // 鍒涘缓铻嶅悎鏁版嵁绱㈠紩瀵硅薄
-        val newGridData = GridData().apply {
+        val oldGridDataList = satelliteGridRep.fetchGridData(GridData().apply {
             this.groupId = groupId
-            dataTime = mission.startTime
-            type = SatelliteDataType.Monitor.value.toByte()
-        }
-        satelliteGridRep.insertGridData(newGridData)
+            mixDataId = missionCode
+        })
 
-        // 鏌ヨ缃戞牸鍗曞厓鏍间俊鎭�
+        if (oldGridDataList.isEmpty()) {
+            // 鍒涘缓铻嶅悎鏁版嵁绱㈠紩瀵硅薄
+            val newGridData = GridData().apply {
+                this.groupId = groupId
+                dataTime = mission.startTime
+                type = SatelliteDataType.Monitor.value.toByte()
+                mixDataId = mission.missionCode
+            }
+            satelliteGridRep.insertGridData(newGridData)
+
+            // 鏌ヨ缃戞牸鍗曞厓鏍间俊鎭�
+            val gridCellList = satelliteGridRep.fetchGridCell(groupId)
+
+            // 灏嗚蛋鑸暟鎹拰鍗槦缃戞牸杩涜铻嶅悎璁$畻
+            val gridDataDetailList = SatelliteGridManage.dataFusion(data, newGridData, gridCellList)
+            satelliteGridRep.insertGridDataDetail(gridDataDetailList)
+
+            return gridDataDetailList
+        } else {
+            val oldGridData = oldGridDataList.first()
+            val oldGridDataDetailList = satelliteGridRep.fetchGridDataDetail(oldGridData?.id, oldGridData?.groupId,
+                null)
+            // 鏌ヨ缃戞牸鍗曞厓鏍间俊鎭�
+            val gridCellList = satelliteGridRep.fetchGridCell(groupId)
+            // 灏嗚蛋鑸暟鎹拰鍗槦缃戞牸杩涜铻嶅悎璁$畻
+            val gridDataDetailList = SatelliteGridManage.dataFusion(data, oldGridData, gridCellList)
+
+            // 灏嗗凡鏈夌殑鏁版嵁id璧嬪�肩粰鏂扮殑铻嶅悎缁撴灉锛屼袱缁勭粨鏋滃潎浠ユ牴鎹甤ellId椤哄簭鎺掑垪锛屾墍浠ョ洿鎺ュ惊鐜祴鍊�
+            gridDataDetailList.forEachIndexed { index, gridDataDetail ->
+                gridDataDetail.id = oldGridDataDetailList[index]?.id
+            }
+
+            satelliteGridRep.updateGridDataDetail(gridDataDetailList)
+
+            return gridDataDetailList
+        }
+    }
+
+    override fun buildHeatmap(groupId: Int, gridDataDetail: List<GridDataDetail>): List<GridDataDetail> {
         val gridCellList = satelliteGridRep.fetchGridCell(groupId)
 
-        // 灏嗚蛋鑸暟鎹拰鍗槦缃戞牸杩涜铻嶅悎璁$畻
-        val gridDataDetailList = SatelliteGridManage.dataFusion(data, newGridData, gridCellList)
-        satelliteGridRep.insertGridDataDetail(gridDataDetailList)
-
-        return gridDataDetailList
     }
 }
\ No newline at end of file

--
Gitblit v1.9.3