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