From 7d33080998a2c5b38e8a74dbed2b0f40d39bbe47 Mon Sep 17 00:00:00 2001
From: Riku <risaku@163.com>
Date: 星期三, 04 六月 2025 23:27:26 +0800
Subject: [PATCH] 1. 新增动态污染溯源新的判定逻辑(待完成)

---
 src/main/kotlin/com/flightfeather/uav/biz/sourcetrace/model/PollutedSummary.kt |   26 ++++++++++++++++++++++++++
 1 files changed, 26 insertions(+), 0 deletions(-)

diff --git a/src/main/kotlin/com/flightfeather/uav/biz/sourcetrace/model/PollutedSummary.kt b/src/main/kotlin/com/flightfeather/uav/biz/sourcetrace/model/PollutedSummary.kt
index c2c651f..5b3c06a 100644
--- a/src/main/kotlin/com/flightfeather/uav/biz/sourcetrace/model/PollutedSummary.kt
+++ b/src/main/kotlin/com/flightfeather/uav/biz/sourcetrace/model/PollutedSummary.kt
@@ -1,9 +1,13 @@
 package com.flightfeather.uav.biz.sourcetrace.model
 
 import com.flightfeather.uav.biz.sourcetrace.config.RTExcWindLevelConfig
+import com.flightfeather.uav.common.net.AMapService
+import com.flightfeather.uav.common.utils.MapUtil
 import com.flightfeather.uav.domain.entity.BaseRealTimeData
 import com.flightfeather.uav.domain.entity.SceneInfo
+import java.math.BigDecimal
 import java.time.LocalDateTime
+import java.util.Date
 import java.util.Timer
 import java.util.TimerTask
 
@@ -30,6 +34,9 @@
     inner class AnalysisResult{
         // 鎸夌収琚壂鎻忔鏁伴檷搴忔帓鍒楃殑姹℃煋婧愬垪琛�
         var sortedSceneList: List<Pair<SceneInfo?, Int>>? = null
+        var time: Date? = null
+        var advice:String?= null
+        var direction: AMapService.AMapDirection? = null
     }
 
     /**
@@ -154,8 +161,27 @@
         result.sortedSceneList = res.map { it.value }
 
         // 褰撳墠鐨勮蛋鑸暟鎹殑瀹氫綅鍜屾薄鏌撴簮璺濈鏄惁鏄�愭笎鎺ヨ繎锛岃嫢璧拌埅杩滅浜嗕富瑕佹薄鏌撴簮锛屾彁绀虹敤鎴疯皟鏁磋蛋鑸矾绾�
+        if (!result.sortedSceneList.isNullOrEmpty()) {
+            val sT = clueList.first().pollutedData?.startTime
+            val closetScene = result.sortedSceneList?.first()
+            result.advice = "鏍规嵁${sT}璧风殑${clueList.size}鏉℃渶鏂版薄鏌撶嚎绱紝姹℃煋婧怺${closetScene?.first?.name}]琚娆℃函婧愶紝鍏锋湁杈冮珮姹℃煋椋庨櫓锛岀幇鎻愪緵鏂扮殑璧拌埅鎺ㄨ崘璺嚎锛屽彲缁忚繃璇ユ薄鏌撴簮銆�"
 
 
+            val lastP = realTimeDataList.last()
+            if (lastP.longitude != null && lastP.latitude != null &&
+                lastP.longitude!! > BigDecimal.ZERO && lastP.latitude!! > BigDecimal.ZERO
+                && closetScene?.first?.longitude != null && closetScene.first?.latitude != null &&
+                closetScene.first?.longitude!! > BigDecimal.ZERO && closetScene.first?.latitude!! > BigDecimal.ZERO) {
+
+                val origin = MapUtil.wgs84ToGcj02(lastP.longitude!!.toDouble() to lastP.latitude!!.toDouble())
+                val destination = closetScene.first!!.longitude.toDouble() to closetScene.first!!.latitude.toDouble()
+
+                result.direction = AMapService.directionDriving(origin, destination)
+            }
+        }
+
+
+        result.time = realTimeDataList.last().dataTime
         // 绾跨储鍒嗘瀽瀹屾垚鍚庯紝绉诲姩鑷冲巻鍙茬嚎绱㈠垪琛�
         historyClueList.addAll(clueList)
         clueList.clear()

--
Gitblit v1.9.3