feiyu02
2025-12-25 d649f734c44541641158aec2d6b10d630f5a0827
src/main/kotlin/com/flightfeather/uav/lightshare/service/DataAnalysisService.kt
@@ -32,15 +32,17 @@
     * @param missionCode 走航任务编号,用于唯一标识特定的走航任务
     * @return 异常结果列表,每个元素包含异常类型、位置和详细信息
     */
    @Deprecated("该接口已废弃,使用/report/missionSummary/one接口")
    fun pollutionTrace(missionCode: String): List<ExceptionResult>
    /**
     * 获取历史污染溯源结果
     * 根据任务编号查询并返回历史污染溯源结果
     * @param missionCode 走航任务编号
     * @param minPer 最小污染百分比,用于筛选异常数据点(可选)
     * @return 历史污染溯源结果的字符串表示(具体格式需参考实现类)
     */
    fun fetchHistory(missionCode: String): String
    fun fetchHistory(missionCode: String, minPer: Double?): String
    /**
     * 生成走航任务汇总统计
@@ -50,7 +52,14 @@
     * @param areaVo 区域参数,包含经纬度范围等地理信息
     * @return 汇总统计对象,包含任务总数、异常率、平均数据等指标
     */
    fun generateMissionSummary(startTime: Date, endTime: Date, areaVo: AreaVo): MissionSummary.Summary
    fun generateMissionSummary(
        startTime: Date, endTime: Date, areaVo: AreaVo, removeOtherDistrict: Boolean = false,
        removeNoPollutedSource: Boolean = false, minPer: Double? = 0.5,
    ): MissionSummary.Summary
    fun generateMissionSummary(
        missionCode: String, minPer: Double? = 0.5,
    ): MissionSummary.Summary
    /**
     * 生成走航任务清单(按时间和区域筛选)
@@ -60,7 +69,10 @@
     * @param areaVo 区域参数
     * @return 走航任务信息列表,每个元素包含任务基本信息和统计数据
     */
    fun generateMissionList(startTime: Date, endTime: Date, areaVo: AreaVo): List<MissionInventory.MissionInfo>
    fun generateMissionList(
        startTime: Date, endTime: Date, areaVo: AreaVo, removeOtherDistrict: Boolean = false,
        removeNoPollutedSource: Boolean = false, minPer: Double? = 0.5,
    ): List<MissionInventory.MissionInfo>
    /**
     * 生成走航任务清单(直接处理任务线索)
@@ -70,6 +82,11 @@
     */
    fun generateMissionList(missionClues: List<Pair<Mission, List<PollutedClue?>>>): List<MissionInventory.MissionInfo>
    fun generateMissionInfo(
        keyScenes: List<SceneInfo?>,
        missionCluesData: List<Triple<Mission, List<PollutedClue?>, List<BaseRealTimeData>>>,
    ): List<MissionInventory.MissionInfo>
    /**
     * 获取走航任务详情(按时间和区域筛选)
     * 根据时间范围和区域查询并生成详细的任务报告,包含关键场景和数据统计
@@ -78,28 +95,65 @@
     * @param areaVo 区域参数
     * @return 任务详情列表,每个元素包含任务完整信息、场景数据和统计结果
     */
    fun generateMissionDetail(startTime: Date, endTime: Date, areaVo: AreaVo): List<MissionDetail>
    fun generateMissionDetail(
        startTime: Date, endTime: Date, areaVo: AreaVo, granularity: String?,
        removeOtherDistrict: Boolean = false,
        removeNoPollutedSource: Boolean = false,
        minPer: Double? = 0.5,
    ): List<MissionDetail>
    /**
     * 生成走航任务详情(按任务编号筛选)
     * 根据任务编号查询并生成详细的任务报告,包含任务完整信息、场景数据和统计结果
     * @param missionCode 任务编号,用于唯一标识特定的走航任务
     * @param granularity 数据颗粒度,可选值为SECOND, MINUTE, HOUR, 默认MINUTE
     * @return 任务详情对象,包含任务完整信息、场景数据和统计结果
     */
    fun generateMissionDetail(
        missionCode: String, granularity: String?, minPer: Double? = 0.5,
    ): MissionDetail
    /**
     * 获取走航任务详情(直接处理任务数据)
     * 处理已有的任务、污染线索和实时数据,生成详细任务报告
     * @param keyScenes 关键场景列表,用于分析走航是否经过该区域
     * @param missionCluesData 包含任务、污染线索和实时数据的Triple列表
     * @param granularity 数据颗粒度,可选值为SECOND, MINUTE, HOUR, 默认MINUTE
     * @return 任务详情列表
     */
    fun generateMissionDetail(keyScenes: List<SceneInfo?>, missionCluesData: List<Triple<Mission, List<PollutedClue?>, List<BaseRealTimeData>>>): List<MissionDetail>
    fun generateMissionDetail(
        keyScenes: List<SceneInfo?>,
        missionCluesData: List<Triple<Mission, List<PollutedClue?>, List<BaseRealTimeData>>>,
        granularity: String,
    ): List<MissionDetail>
    fun generateClueByRiskArea(startTime: Date, endTime: Date, areaVo: AreaVo): List<MissionRiskArea.ClueByArea>
    fun generateClueByRiskArea(
        startTime: Date,
        endTime: Date,
        areaVo: AreaVo,
        removeOtherDistrict: Boolean = false,
        removeNoPollutedSource: Boolean = false,
        minPer: Double? = 0.5,
    ): List<MissionRiskArea.ClassifyClue>
    fun generateClueByRiskArea(missionCode: String, minPer: Double? = 0.5): List<MissionRiskArea.ClueByArea>
    fun generateClueByRiskArea(keyScenes: List<SceneInfo?>, pollutedClues: List<PollutedClue?>): List<MissionRiskArea.ClueByArea>
    fun generateGridFusion(factorTypes: List<FactorType>, startTime: Date, endTime: Date, areaVo: AreaVo):
            List<MissionGridFusion.GridFusionByAQI>
    fun generateGridFusion(
        factorTypes: List<FactorType>,
        startTime: Date,
        endTime: Date,
        areaVo: AreaVo,
        removeOtherDistrict: Boolean = false,
        removeNoPollutedSource: Boolean = false,
        minPer: Double? = 0.5,
    ): List<MissionGridFusion.GridFusionByAQI>
    fun generateGridFusion(
        factorTypes: List<FactorType>,
        gridLen: Int,
        gridCells: List<GridCell>,
        dataList: List<Triple<PollutionDegree, List<MissionInventory.MissionDetail>, List<GridDataDetailMixVo>>>,
        dataList: List<Triple<PollutionDegree, List<MissionInventory.MissionInfo>, List<GridDataDetailMixVo>>>,
    ): List<MissionGridFusion.GridFusionByAQI>
}