| | |
| | | val probByFactor = clueRes.third |
| | | |
| | | // 7. 从异常所在地区和溯源的场景中统计聚焦区域 |
| | | val focusRegion = calFocusRegion(clues) |
| | | val focusRegion = calFocusRegion(clues, area) |
| | | |
| | | // 8. 构建并返回统计结果 |
| | | return Summary( |
| | |
| | | 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>() |
| | |
| | | } |
| | | } |
| | | } |
| | | 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) |
| | | } |
| | | } |