From 707b00a0ca6604c249a110b376ac1e44e408e624 Mon Sep 17 00:00:00 2001 From: feiyu02 <risaku@163.com> Date: 星期四, 04 九月 2025 18:24:39 +0800 Subject: [PATCH] 2025.9.4 1. 新增走航任务统计功能(待完成) --- src/main/kotlin/com/flightfeather/uav/lightshare/service/DataAnalysisService.kt | 92 ++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 88 insertions(+), 4 deletions(-) diff --git a/src/main/kotlin/com/flightfeather/uav/lightshare/service/DataAnalysisService.kt b/src/main/kotlin/com/flightfeather/uav/lightshare/service/DataAnalysisService.kt index b84e115..5bd59a6 100644 --- a/src/main/kotlin/com/flightfeather/uav/lightshare/service/DataAnalysisService.kt +++ b/src/main/kotlin/com/flightfeather/uav/lightshare/service/DataAnalysisService.kt @@ -1,11 +1,26 @@ 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 */ @@ -13,9 +28,78 @@ /** * 姹℃煋婧簮鍒嗘瀽 - * @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> + + /** + * 鑾峰彇璧拌埅浠诲姟璇︽儏锛堟寜鏃堕棿鍜屽尯鍩熺瓫閫夛級 + * 鏍规嵁鏃堕棿鑼冨洿鍜屽尯鍩熸煡璇㈠苟鐢熸垚璇︾粏鐨勪换鍔℃姤鍛婏紝鍖呭惈鍏抽敭鍦烘櫙鍜屾暟鎹粺璁� + * @param startTime 寮�濮嬫椂闂� + * @param endTime 缁撴潫鏃堕棿 + * @param areaVo 鍖哄煙鍙傛暟 + * @return 浠诲姟璇︽儏鍒楄〃锛屾瘡涓厓绱犲寘鍚换鍔″畬鏁翠俊鎭�佸満鏅暟鎹拰缁熻缁撴灉 + */ + fun generateMissionDetail(startTime: Date, endTime: Date, areaVo: AreaVo): List<MissionDetail> + + /** + * 鑾峰彇璧拌埅浠诲姟璇︽儏锛堢洿鎺ュ鐞嗕换鍔℃暟鎹級 + * 澶勭悊宸叉湁鐨勪换鍔°�佹薄鏌撶嚎绱㈠拰瀹炴椂鏁版嵁锛岀敓鎴愯缁嗕换鍔℃姤鍛� + * @param keyScenes 鍏抽敭鍦烘櫙鍒楄〃锛岀敤浜庡垎鏋愯蛋鑸槸鍚︾粡杩囪鍖哄煙 + * @param missionCluesData 鍖呭惈浠诲姟銆佹薄鏌撶嚎绱㈠拰瀹炴椂鏁版嵁鐨凾riple鍒楄〃 + * @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.MissionDetail>, List<GridDataDetailMixVo>>>, + ): List<MissionGridFusion.GridFusionByAQI> } \ No newline at end of file -- Gitblit v1.9.3