From 4a976d3763be8a7bed743faf24abf2718ae18e31 Mon Sep 17 00:00:00 2001 From: feiyu02 <risaku@163.com> Date: 星期三, 15 十月 2025 17:34:14 +0800 Subject: [PATCH] 2025.10.15 1. 走航季度报告相关数据计算逻辑调整 --- src/main/kotlin/com/flightfeather/uav/lightshare/service/impl/DataAnalysisServiceImpl.kt | 40 ++++++++++++++++++++++++++++++++++------ 1 files changed, 34 insertions(+), 6 deletions(-) diff --git a/src/main/kotlin/com/flightfeather/uav/lightshare/service/impl/DataAnalysisServiceImpl.kt b/src/main/kotlin/com/flightfeather/uav/lightshare/service/impl/DataAnalysisServiceImpl.kt index 52efc03..31c44cd 100644 --- a/src/main/kotlin/com/flightfeather/uav/lightshare/service/impl/DataAnalysisServiceImpl.kt +++ b/src/main/kotlin/com/flightfeather/uav/lightshare/service/impl/DataAnalysisServiceImpl.kt @@ -42,7 +42,7 @@ private val sourceTraceRep: SourceTraceRep, private val sceneInfoRep: SceneInfoRep, private val satelliteGridRep: SatelliteGridRep, - private val satelliteDataCalculateService: SatelliteDataCalculateService + private val satelliteDataCalculateService: SatelliteDataCalculateService, ) : DataAnalysisService { /** @@ -109,7 +109,12 @@ override fun generateMissionSummary(missionCode: String): MissionSummary.Summary { val mission = missionRep.findOne(missionCode) ?: throw BizException("璧拌埅浠诲姟涓嶅瓨鍦�") - val clues = sourceTraceRep.fetchList(mission.deviceCode, mission.startTime, mission.endTime, MsgType.PolClue) as List<PollutedClue?> + val clues = sourceTraceRep.fetchList( + mission.deviceCode, + mission.startTime, + mission.endTime, + MsgType.PolClue + ) as List<PollutedClue?> val summary = MissionSummary().execute(mission.startTime, mission.endTime, listOf(mission), clues) return summary } @@ -202,7 +207,12 @@ override fun generateMissionDetail(missionCode: String, granularity: String?): MissionInventory.MissionDetail { val mission = missionRep.findOne(missionCode) ?: throw BizException("浠诲姟涓嶅瓨鍦�") - val missionClues = sourceTraceRep.fetchList(mission.deviceCode, mission.startTime, mission.endTime, MsgType.PolClue) as List<PollutedClue?> + val missionClues = sourceTraceRep.fetchList( + mission.deviceCode, + mission.startTime, + mission.endTime, + MsgType.PolClue + ) as List<PollutedClue?> val realTimeData = realTimeDataRep.fetchData(mission) val keyScenes = sceneInfoRep.findBySceneTypes( listOf( @@ -236,12 +246,24 @@ startTime: Date, endTime: Date, areaVo: AreaVo, + removeOtherDistrict: Boolean, + removeNoPollutedSource: Boolean, ): List<MissionRiskArea.ClueByArea> { val clues = mutableListOf<PollutedClue?>() missionRep.findByAreaAndTime(areaVo, startTime, endTime).onEach { it ?: return@onEach val clue = sourceTraceRep.fetchList(it.deviceCode, it.startTime, it.endTime, MsgType.PolClue) as List<PollutedClue?> clues.addAll(clue) + } + if (removeOtherDistrict) { + clues.removeIf { + !areaVo.districtName.isNullOrBlank() && + (it?.pollutedArea?.address.isNullOrBlank() + || !it!!.pollutedArea!!.address!!.contains(areaVo.districtName!!)) + } + } + if (removeNoPollutedSource) { + clues.removeIf { it?.pollutedSource?.sceneList.isNullOrEmpty() } } // val keyScenes = sceneInfoRep.findBySceneTypes( // listOf( @@ -255,7 +277,12 @@ override fun generateClueByRiskArea(missionCode: String): List<MissionRiskArea.ClueByArea> { val mission = missionRep.findOne(missionCode) ?: throw BizException("浠诲姟涓嶅瓨鍦�") - val pollutedClues = sourceTraceRep.fetchList(mission.deviceCode, mission.startTime, mission.endTime, MsgType.PolClue) as List<PollutedClue?> + val pollutedClues = sourceTraceRep.fetchList( + mission.deviceCode, + mission.startTime, + mission.endTime, + MsgType.PolClue + ) as List<PollutedClue?> val keyScenes = sceneInfoRep.findBySceneTypes( listOf( SceneType.TYPE19.value, @@ -297,8 +324,9 @@ val gridDataDetailList = missionGroups.mapNotNull { (degree, missionList) -> // 绛涢�夊嚭鏈夌綉鏍艰瀺鍚堟暟鎹殑璧拌埅浠诲姟(鍚屾椂鑾峰彇瀵瑰簲鐨勮瀺鍚堟暟鎹甶d鍒楄〃) val gridDataIds = mutableListOf<Int>() - val validMissions = missionList.filter {mission -> - val gridData = satelliteGridRep.fetchGridData(GridData().apply { missionCode = mission?.missionCode }).firstOrNull() + val validMissions = missionList.filter { mission -> + val gridData = + satelliteGridRep.fetchGridData(GridData().apply { missionCode = mission?.missionCode }).firstOrNull() val res = gridData != null if (res) gridDataIds.add(gridData?.id ?: 0) res -- Gitblit v1.9.3