| | |
| | | package com.flightfeather.uav.lightshare.service |
| | | |
| | | import com.flightfeather.uav.biz.dataanalysis.BaseExceptionResult |
| | | import com.flightfeather.uav.biz.dataanalysis.model.ExceptionResult |
| | | import com.flightfeather.uav.biz.sourcetrace.model.BasePollutedMsg |
| | | import com.flightfeather.uav.biz.report.MissionGridFusion |
| | | import com.flightfeather.uav.biz.report.MissionInventory |
| | | import com.flightfeather.uav.biz.report.MissionInventory.MissionDetail |
| | | import com.flightfeather.uav.biz.report.MissionRiskArea |
| | | import com.flightfeather.uav.biz.report.MissionSummary |
| | | import com.flightfeather.uav.biz.sourcetrace.model.PollutedClue |
| | | import com.flightfeather.uav.domain.entity.BaseRealTimeData |
| | | import com.flightfeather.uav.domain.entity.GridCell |
| | | import com.flightfeather.uav.domain.entity.Mission |
| | | import com.flightfeather.uav.domain.entity.SceneInfo |
| | | import com.flightfeather.uav.lightshare.bean.AreaVo |
| | | import com.flightfeather.uav.lightshare.bean.GridDataDetailMixVo |
| | | import com.flightfeather.uav.lightshare.eunm.PollutionDegree |
| | | import com.flightfeather.uav.socket.eunm.FactorType |
| | | import java.util.* |
| | | |
| | | /** |
| | | * |
| | | * 数据分析服务接口 |
| | | * 提供走航任务数据的统计分析、污染溯源、任务清单生成等核心功能 |
| | | * 用于整合和处理无人机监测数据,生成各类分析报告和统计结果 |
| | | * @date 2025/5/8 |
| | | * @author feiyu02 |
| | | */ |
| | |
| | | |
| | | /** |
| | | * 污染溯源分析 |
| | | * @param missionCode 走航任务编号 |
| | | * 根据走航任务编号分析污染线索,识别异常数据点和潜在污染源 |
| | | * @param missionCode 走航任务编号,用于唯一标识特定的走航任务 |
| | | * @return 异常结果列表,每个元素包含异常类型、位置和详细信息 |
| | | */ |
| | | fun pollutionTrace(missionCode: String): List<ExceptionResult> |
| | | |
| | | /** |
| | | * 获取历史污染溯源结果 |
| | | * 根据任务编号查询并返回历史污染溯源结果 |
| | | * @param missionCode 走航任务编号 |
| | | * @return 历史污染溯源结果的字符串表示(具体格式需参考实现类) |
| | | */ |
| | | fun fetchHistory(missionCode: String): String |
| | | |
| | | /** |
| | | * 生成走航任务汇总统计 |
| | | * 按时间范围和区域统计走航任务的关键指标和总体情况 |
| | | * @param startTime 开始时间,用于筛选指定时间段内的任务 |
| | | * @param endTime 结束时间,用于筛选指定时间段内的任务 |
| | | * @param areaVo 区域参数,包含经纬度范围等地理信息 |
| | | * @return 汇总统计对象,包含任务总数、异常率、平均数据等指标 |
| | | */ |
| | | fun generateMissionSummary(startTime: Date, endTime: Date, areaVo: AreaVo): MissionSummary.Summary |
| | | |
| | | /** |
| | | * 生成走航任务清单(按时间和区域筛选) |
| | | * 根据时间范围和地理区域查询走航任务,并生成包含统计信息的任务列表 |
| | | * @param startTime 开始时间 |
| | | * @param endTime 结束时间 |
| | | * @param areaVo 区域参数 |
| | | * @return 走航任务信息列表,每个元素包含任务基本信息和统计数据 |
| | | */ |
| | | fun generateMissionList(startTime: Date, endTime: Date, areaVo: AreaVo): List<MissionInventory.MissionInfo> |
| | | |
| | | /** |
| | | * 生成走航任务清单(直接处理任务线索) |
| | | * 处理已有的走航任务和污染线索数据,生成任务清单 |
| | | * @param missionClues 包含走航任务和对应污染线索的Pair列表 |
| | | * @return 走航任务信息列表 |
| | | */ |
| | | 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> |
| | | |
| | | /** |
| | | * 获取走航任务详情(按时间和区域筛选) |
| | | * 根据时间范围和区域查询并生成详细的任务报告,包含关键场景和数据统计 |
| | | * @param startTime 开始时间 |
| | | * @param endTime 结束时间 |
| | | * @param areaVo 区域参数 |
| | | * @return 任务详情列表,每个元素包含任务完整信息、场景数据和统计结果 |
| | | */ |
| | | fun generateMissionDetail(startTime: Date, endTime: Date, areaVo: AreaVo): List<MissionDetail> |
| | | |
| | | /** |
| | | * 获取走航任务详情(直接处理任务数据) |
| | | * 处理已有的任务、污染线索和实时数据,生成详细任务报告 |
| | | * @param keyScenes 关键场景列表,用于分析走航是否经过该区域 |
| | | * @param missionCluesData 包含任务、污染线索和实时数据的Triple列表 |
| | | * @return 任务详情列表 |
| | | */ |
| | | fun generateMissionDetail(keyScenes: List<SceneInfo?>, missionCluesData: List<Triple<Mission, List<PollutedClue?>, List<BaseRealTimeData>>>): List<MissionDetail> |
| | | |
| | | fun generateClueByRiskArea(startTime: Date, endTime: Date, areaVo: AreaVo): 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>, |
| | | gridLen: Int, |
| | | gridCells: List<GridCell>, |
| | | dataList: List<Triple<PollutionDegree, List<MissionInventory.MissionInfo>, List<GridDataDetailMixVo>>>, |
| | | ): List<MissionGridFusion.GridFusionByAQI> |
| | | } |