| | |
| | | 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 |
| | |
| | | * @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?> { |
| | |
| | | |
| | | 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 |
| | | } |
| | | } |