From 5b0d58c3f7f35f61c0a0437bac3ff708db57fe61 Mon Sep 17 00:00:00 2001 From: feiyu02 <risaku@163.com> Date: 星期四, 18 七月 2024 17:34:16 +0800 Subject: [PATCH] 1. 修正实时走航数据平滑处理算法,PM2.5、PM10、VOC采用新的修正算法 --- src/main/kotlin/com/flightfeather/uav/biz/dataanalysis/ExceptionAnalysisController.kt | 69 ++++++++++++++++++++++++++-------- 1 files changed, 53 insertions(+), 16 deletions(-) diff --git a/src/main/kotlin/com/flightfeather/uav/biz/dataanalysis/ExceptionAnalysisController.kt b/src/main/kotlin/com/flightfeather/uav/biz/dataanalysis/ExceptionAnalysisController.kt index 5080123..ed6c540 100644 --- a/src/main/kotlin/com/flightfeather/uav/biz/dataanalysis/ExceptionAnalysisController.kt +++ b/src/main/kotlin/com/flightfeather/uav/biz/dataanalysis/ExceptionAnalysisController.kt @@ -10,15 +10,20 @@ import com.flightfeather.uav.common.location.LocationRoadNearby import com.flightfeather.uav.domain.entity.Mission import com.flightfeather.uav.domain.repository.RealTimeDataRep +import com.flightfeather.uav.domain.repository.SegmentInfoRep import org.springframework.stereotype.Component +import java.time.LocalDateTime +import java.time.ZoneId +import java.time.format.DateTimeFormatter /** * 鏁版嵁寮傚父鍒嗘瀽鎺у埗鍣� */ @Component -class ExceptionAnalysisController( +class ExceptionAnalysisController( private val realTimeDataRep: RealTimeDataRep, private val locationRoadNearby: LocationRoadNearby, + private val segmentInfoRep: SegmentInfoRep, ) { var running = false @@ -49,22 +54,11 @@ taskList.forEach { it.onDone() } taskList.forEach { - // 鏌ヨ寮傚父鍛ㄨ竟鍙兘姹℃煋婧� it.resultList.forEach { r-> - if (r.longitude != null && r.latitude != null) { - val sceneList = locationRoadNearby.searchByRadius( - r.longitude!!.toDouble() to r.latitude!!.toDouble(), config.radius) - if (sceneList.isNotEmpty()) { - val idList = mutableListOf<String>() - val nameList = mutableListOf<String>() - sceneList.forEach { s-> - idList.add(s?.guid?:"") - nameList.add(s?.name ?: "") - } - r.relatedSceneId = idList - r.relatedSceneName = nameList - } - } + // 鏌ヨ寮傚父鍛ㄨ竟鍙兘姹℃煋婧� + nearBy(r, config) + // 鏌ヨ鏃舵鎵�鍦ㄨ矾娈� + road(r) } // 瀛樺偍鍒嗘瀽缁撴灉 result.addAll(it.resultList) @@ -72,4 +66,47 @@ running = false return result } + + private fun nearBy(r: ExceptionResult, config: DataAnalysisConfig) { + if (r.longitude != null && r.latitude != null) { + val sceneList = locationRoadNearby.searchByRadius( + r.longitude!!.toDouble() to r.latitude!!.toDouble(), config.radius) + if (sceneList.isNotEmpty()) { + val idList = mutableListOf<String>() + val nameList = mutableListOf<String>() + sceneList.forEach { s-> + idList.add(s?.guid?:"") + nameList.add(s?.name ?: "") + } + r.relatedSceneId = idList + r.relatedSceneName = nameList + } + } + } + + private fun road(r: ExceptionResult) { + val sT = LocalDateTime.ofInstant(r.startDate?.toInstant(), ZoneId.systemDefault()) + val eT = LocalDateTime.ofInstant(r.endDate?.toInstant(), ZoneId.systemDefault()) + val segments = segmentInfoRep.findPeriod(sT, eT) + var txt = "" + val size = segments.size + segments.forEachIndexed { i, s -> + txt += if (i == 0) { + if (size == 1) { + "鍦�${s?.street}" + } else { + "浠�${s?.street}" + } + } else if (i == size - 1 && i >= 2) { + "锛岃嚦${s?.street}" + } else { + if (i == 1) { + "锛岀粡${s?.street}" + } else { + "銆�${s?.street}" + } + } + } + r.road = txt + } } \ No newline at end of file -- Gitblit v1.9.3