From 635d762aef37b5de6cd2e34f4a076ab56d9a239d Mon Sep 17 00:00:00 2001
From: feiyu02 <risaku@163.com>
Date: 星期五, 11 四月 2025 17:35:11 +0800
Subject: [PATCH] 1. 添加自动输出接口API文档功能
---
src/main/kotlin/com/flightfeather/uav/biz/dataanalysis/ExceptionAnalysisController.kt | 72 ++++++++++++++++++++++++++++++++++--
1 files changed, 68 insertions(+), 4 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 45008af..a8c9d8e 100644
--- a/src/main/kotlin/com/flightfeather/uav/biz/dataanalysis/ExceptionAnalysisController.kt
+++ b/src/main/kotlin/com/flightfeather/uav/biz/dataanalysis/ExceptionAnalysisController.kt
@@ -2,20 +2,29 @@
import com.flightfeather.uav.biz.FactorFilter
import com.flightfeather.uav.biz.dataanalysis.exceptiontype.ExceptionDataExceed
+import com.flightfeather.uav.biz.dataanalysis.exceptiontype.ExceptionSlideAverage
import com.flightfeather.uav.biz.dataanalysis.exceptiontype.ExceptionValueMutation
import com.flightfeather.uav.biz.dataanalysis.model.DataAnalysisConfig
import com.flightfeather.uav.biz.dataanalysis.model.ExceptionResult
import com.flightfeather.uav.biz.dataanalysis.model.ExceptionSetting
+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 com.flightfeather.uav.socket.eunm.UWDeviceType
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
@@ -27,27 +36,82 @@
taskList.apply {
add(ExceptionDataExceed(config))
add(ExceptionValueMutation(config))
+ add(ExceptionSlideAverage(config))
}
}
fun run(mission: Mission, factorFilter: FactorFilter): List<ExceptionResult> {
running = true
- val config = DataAnalysisConfig(mission, ExceptionSetting(), 8, factorFilter)
+ val config = DataAnalysisConfig(mission, ExceptionSetting(), factorFilter)
initTask(config)
val result = mutableListOf<ExceptionResult>()
taskList.forEach { it.init() }
// 杞鏁版嵁锛岃绠楀悇涓紓甯�
- realTimeDataRep.fetchData(mission.deviceCode, mission.startTime, mission.endTime).forEach { d ->
+ realTimeDataRep.fetchData(UWDeviceType.fromValue(mission.deviceType),
+ mission.deviceCode,
+ mission.startTime,
+ mission.endTime
+ ).forEach { d ->
taskList.forEach { it.onNextData(d) }
}
// 鍚勪釜寮傚父鍒嗘瀽鍒嗗埆缁撴潫
taskList.forEach { it.onDone() }
- // 瀛樺偍鍒嗘瀽缁撴灉
+
taskList.forEach {
+ it.resultList.forEach { r->
+ // 鏌ヨ寮傚父鍛ㄨ竟鍙兘姹℃煋婧�
+ nearBy(r, config)
+ // 鏌ヨ鏃舵鎵�鍦ㄨ矾娈�
+ road(r)
+ }
+ // 瀛樺偍鍒嗘瀽缁撴灉
result.addAll(it.resultList)
}
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(r.missionCode, 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