From db447bb757b51f8d03e62d6ae4f183b4608723ef Mon Sep 17 00:00:00 2001
From: feiyu02 <risaku@163.com>
Date: 星期五, 07 三月 2025 17:10:43 +0800
Subject: [PATCH] 卫星遥测系统相关接口新增及调整

---
 src/main/kotlin/com/flightfeather/uav/lightshare/service/impl/SatelliteDataCalculateServiceImpl.kt |   53 +++++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 39 insertions(+), 14 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..248b091 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,46 @@
         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()
+            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
         }
-        satelliteGridRep.insertGridData(newGridData)
-
-        // 鏌ヨ缃戞牸鍗曞厓鏍间俊鎭�
-        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