From 538ba7a3bbc682f4537f1dd34f93feb2cf56b08e Mon Sep 17 00:00:00 2001 From: feiyu02 <risaku@163.com> Date: 星期二, 14 十月 2025 17:32:04 +0800 Subject: [PATCH] 2025.10.14 1. 新增数据统计颗粒度选项,可选秒级数据、分钟数据进行数据统计 2. 典型隐患区域统计新增按照污染溯源区域进行分类统计的功能 --- src/main/kotlin/com/flightfeather/uav/biz/report/MissionSummary.kt | 25 ++++++++++++++++++------- 1 files changed, 18 insertions(+), 7 deletions(-) diff --git a/src/main/kotlin/com/flightfeather/uav/biz/report/MissionSummary.kt b/src/main/kotlin/com/flightfeather/uav/biz/report/MissionSummary.kt index ff1ab18..28101c9 100644 --- a/src/main/kotlin/com/flightfeather/uav/biz/report/MissionSummary.kt +++ b/src/main/kotlin/com/flightfeather/uav/biz/report/MissionSummary.kt @@ -106,7 +106,7 @@ val probByFactor = clueRes.third // 7. 浠庡紓甯告墍鍦ㄥ湴鍖哄拰婧簮鐨勫満鏅腑缁熻鑱氱劍鍖哄煙 - val focusRegion = calFocusRegion(clues) + val focusRegion = calFocusRegion(clues, area) // 8. 鏋勫缓骞惰繑鍥炵粺璁$粨鏋� return Summary( @@ -141,17 +141,17 @@ } } val probByFactor = probByFactorMap.entries.map { - val per = if(probCount == 0) .0 else round(it.value.toDouble() / probCount * 100) / 100 + val per = if (probCount == 0) .0 else round(it.value.toDouble() / probCount * 100) / 100 Triple(it.key.des, it.value, per) } return Triple(probCount, highRiskSceneCount, probByFactor) } - private fun calFocusRegion(clues: List<PollutedClue?>): List<String> { + private fun calFocusRegion(clues: List<PollutedClue?>, area: AreaVo): List<String> { // 缁熻姣忎釜鍖哄煙鎴栧満鏅嚭鐜扮殑娆℃暟 val focusArea = mutableMapOf<String, Int>() val focusScene = mutableMapOf<String, Int>() - clues.forEach { c-> + clues.forEach { c -> if (c?.msgType == MsgType.PolClue.value) { if (!c.pollutedArea?.address.isNullOrBlank()) { if (focusArea.containsKey(c.pollutedArea?.address)) { @@ -160,7 +160,7 @@ focusArea[c.pollutedArea?.address!!] = 1 } } - c.pollutedSource?.sceneList?.forEach { s-> + c.pollutedSource?.sceneList?.forEach { s -> if (s.name != null) { if (focusScene.containsKey(s.name!!)) { focusScene[s.name!!] = focusScene[s.name!!]!! + 1 @@ -171,7 +171,18 @@ } } } - return focusArea.entries.sortedByDescending { it.value }.map { it.key }.take(FOCUS_AREA_COUNT) + - focusScene.entries.sortedByDescending { it.value }.map { it.key }.take(FOCUS_AREA_COUNT) + return focusArea.entries.sortedByDescending { it.value } + .filter { + // 浠呯粺璁″寘鍚尯鍘垮悕绉扮殑鍖哄煙 + area.districtName ?: return@filter true + return@filter it.key.contains(area.districtName!!) + } + .map { it.key }.take(FOCUS_AREA_COUNT) + + focusScene.entries.sortedByDescending { it.value } + .filter { + // 浠呯粺璁″寘鍚尯鍘垮悕绉扮殑鍖哄煙 + area.districtName ?: return@filter true + return@filter it.key.contains(area.districtName!!) + }.map { it.key }.take(FOCUS_AREA_COUNT) } } \ No newline at end of file -- Gitblit v1.9.3