feiyu02
2025-02-21 dacef58ee7c44dffdd40cb646435c2993ad7a217
src/main/kotlin/com/flightfeather/uav/lightshare/service/impl/SatelliteDataCalculateServiceImpl.kt
@@ -6,6 +6,8 @@
import com.flightfeather.uav.domain.entity.GridData
import com.flightfeather.uav.domain.entity.GridDataDetail
import com.flightfeather.uav.domain.entity.GridGroup
import com.flightfeather.uav.domain.repository.MissionRep
import com.flightfeather.uav.domain.repository.RealTimeDataRep
import com.flightfeather.uav.domain.repository.SatelliteGridRep
import com.flightfeather.uav.lightshare.eunm.GridType
import com.flightfeather.uav.lightshare.eunm.SatelliteDataType
@@ -22,7 +24,11 @@
 * @author feiyu02
 */
@Service
class SatelliteDataCalculateServiceImpl(private val satelliteGridRep: SatelliteGridRep) : SatelliteDataCalculateService {
class SatelliteDataCalculateServiceImpl(
    private val satelliteGridRep: SatelliteGridRep,
    private val realTimeDataRep: RealTimeDataRep,
    private val missionRep: MissionRep,
) : SatelliteDataCalculateService {
    override fun calGridVertex(groupId: Int): List<GridCell?> {
@@ -125,4 +131,28 @@
        return subGridDataDetailList
    }
    @Transactional
    override fun dataFusion(missionCode: String, groupId: Int): List<GridDataDetail?> {
        // 查询走航任务及对应走航监测数据
        val mission = missionRep.findOne(missionCode) ?: throw BizException("任务不存在")
        val data = realTimeDataRep.fetchData(mission)
        // 创建融合数据索引对象
        val newGridData = GridData().apply {
            this.groupId = groupId
            dataTime = mission.startTime
            type = SatelliteDataType.Monitor.value.toByte()
        }
        satelliteGridRep.insertGridData(newGridData)
        // 查询网格单元格信息
        val gridCellList = satelliteGridRep.fetchGridCell(groupId)
        // 将走航数据和卫星网格进行融合计算
        val gridDataDetailList = SatelliteGridManage.dataFusion(data, newGridData, gridCellList)
        satelliteGridRep.insertGridDataDetail(gridDataDetailList)
        return gridDataDetailList
    }
}