feiyu02
7 天以前 594de76ed51fd49fb79b912212bb0052a63e7671
src/main/kotlin/com/flightfeather/uav/lightshare/service/impl/SatelliteDataCalculateServiceImpl.kt
@@ -60,6 +60,7 @@
        return cellList
    }
    @Transactional
    override fun splitGrid(groupId: Int, scale: Int): List<GridCell?> {
        // 检查该网格属性是否合规
        val gridGroup =
@@ -134,33 +135,36 @@
    }
    @Transactional
    override fun dataFusion(missionCode: String, groupId: Int): List<GridDataDetail?> {
    override fun dataFusion(gridData: GridData): List<GridDataDetail?> {
        val missionCode = gridData.missionCode ?: throw BizException("缺少任务编号")
        val groupId = gridData.groupId ?: throw BizException("缺少网格组id")
        // 查询走航任务及对应走航监测数据
        val mission = missionRep.findOne(missionCode) ?: throw BizException("任务不存在")
        val data = realTimeDataRep.fetchData(mission)
        if (data.isEmpty()) throw BizException("没有走航数据,无法生成走航网格")
        // 查找是否已有走航融合记录
        val oldGridDataList = satelliteGridRep.fetchGridData(GridData().apply {
            this.groupId = groupId
            mixDataId = missionCode
            this.missionCode = missionCode
            this.type = SatelliteDataType.Monitor.value.toByte()
        })
        if (oldGridDataList.isEmpty()) {
            // 创建融合数据索引对象
            val newGridData = GridData().apply {
            val newGridData = gridData.apply {
                this.groupId = groupId
                dataTime = mission.startTime
                type = SatelliteDataType.Monitor.value.toByte()
                this.missionCode = mission.missionCode
                // Fixme 2025.3.27: 行政区划在走航任务添加对应字段后进行赋值
                provinceCode
                provinceName
                cityCode
                cityName
                districtCode
                provinceCode = mission.provinceCode
                provinceName = mission.provinceName
                cityCode = mission.cityCode
                cityName = mission.cityName
                districtCode = mission.districtCode
                districtName = mission.districtName
                // Fixme 2025.3.27: 所属监测点区域目前需要通过用户选择确定
                // 2025.3.27: 所属监测点区域需要通过用户选择确定
                zone
                pollutionDegreeIndex
                pollutionDegree
@@ -181,6 +185,7 @@
            return gridDataDetailList
        } else {
            satelliteGridRep.updateGridData(gridData)
            val oldGridData = oldGridDataList.first()
            val oldGridDataDetailList = satelliteGridRep.fetchGridDataDetail(oldGridData?.id, oldGridData?.groupId)
            // 查询网格单元格信息
@@ -199,7 +204,7 @@
        }
    }
    override fun mixGridData(groupId: Int, dataIdList: List<Int>): List<GridDataDetailMixVo> {
    override fun mixUnderwayGridData(groupId: Int, dataIdList: List<Int>): List<GridDataDetailMixVo> {
        // 获取所使用的网格组网格信息
        val gridCellList = satelliteGridRep.fetchGridCell(groupId)
@@ -248,10 +253,11 @@
        gridDataDetailList: List<GridDataDetail>,
        searchLength: Int,
    ): List<GridDataDetail> {
        val gridGroup =satelliteGridRep.fetchGridGroup(groupId)
        val gridCellList = satelliteGridRep.fetchGridCell(groupId)
        val originCellIdList = gridDataDetailList.map { it.cellId }
        // Fixme 2025.3.24: 此处根据现有的网格信息设计方式,使用临时的参数,后续将网格通过二维坐标形式表示,此处参数去除
        val option = GridGroupOption(120, 90, 10, 10)
        val option = GridGroupOption(gridGroup?.maxXaxis ?: 120, gridGroup?.maxYaxis ?: 90, 10, 10)
        val resMap = mutableMapOf<Int, MutableList<GridDataDetail>>()