package com.flightfeather.uav.lightshare.service
|
|
import com.flightfeather.uav.biz.dataanalysis.model.ExceptionResult
|
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
|
*/
|
interface DataAnalysisService {
|
|
/**
|
* 污染溯源分析
|
* 根据走航任务编号分析污染线索,识别异常数据点和潜在污染源
|
* @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>
|
}
|