feiyu02
2025-08-28 ddaa44400aa478058ffe9349d59904a130b7ce9c
src/main/kotlin/com/flightfeather/uav/biz/report/MissionInventory.kt
@@ -1,9 +1,11 @@
package com.flightfeather.uav.biz.report
import com.flightfeather.uav.biz.sourcetrace.model.PollutedClue
import com.flightfeather.uav.domain.entity.Mission
import com.flightfeather.uav.domain.entity.SceneInfo
import com.flightfeather.uav.lightshare.bean.FactorStatistics
import com.flightfeather.uav.socket.eunm.FactorType
import com.flightfeather.uav.socket.sender.MsgType
/**
 * 走航溯源清单
@@ -29,6 +31,37 @@
    class MissionDetail : Mission() {
        var keyScene: List<SceneInfo>? = null
        var dataStatistics: List<FactorStatistics>? = null
    }
    /**
     * 输出走航清单
     */
    fun missionList(missionClues: List<Pair<Mission?, List<PollutedClue?>>>): List<MissionInfo> {
        val missionMap = mutableMapOf<String, MissionInfo>()
        missionClues.forEach { (mission, clue) ->
            mission ?: return@forEach
            clue ?: return@forEach
            val missionInfo = missionMap[mission.missionCode] ?: MissionInfo().apply {
                missionMap[mission.missionCode] = this
            }
            val abnormalFactors = mutableListOf<FactorType>()
            var sceneCount = 0
            clue.forEach {
                if (it?.msgType == MsgType.PolClue.value) {
                    it.pollutedData?.statisticMap?.keys?.forEach { k->
                        if (!abnormalFactors.contains(k)) {
                            abnormalFactors.add(k)
                        }
                    }
                }
            }
            // 计算每个走航任务的所有异常因子
            // 计算每个走航任务的首要污染物
            // 计算每个走航任务的溯源场景数量
        }
        return mutableListOf()
    }
}