From b315032d126a640758d4a6fccf297acbab057772 Mon Sep 17 00:00:00 2001
From: feiyu02 <risaku@163.com>
Date: 星期五, 22 八月 2025 17:30:44 +0800
Subject: [PATCH] 2025.8.21 1. 新增走航任务统计功能(待完成)

---
 src/main/kotlin/com/flightfeather/uav/biz/mission/MissionUtil.kt     |   32 ++++++++++++++++
 src/test/kotlin/com/flightfeather/uav/biz/mission/MissionUtilTest.kt |   32 ++++++++++++++++
 src/main/kotlin/com/flightfeather/uav/biz/report/MissionSummary.kt   |   21 ++++++++++
 3 files changed, 85 insertions(+), 0 deletions(-)

diff --git a/src/main/kotlin/com/flightfeather/uav/biz/mission/MissionUtil.kt b/src/main/kotlin/com/flightfeather/uav/biz/mission/MissionUtil.kt
new file mode 100644
index 0000000..b5017c7
--- /dev/null
+++ b/src/main/kotlin/com/flightfeather/uav/biz/mission/MissionUtil.kt
@@ -0,0 +1,32 @@
+package com.flightfeather.uav.biz.mission
+
+import com.flightfeather.uav.common.utils.MapUtil
+import com.flightfeather.uav.domain.entity.BaseRealTimeData
+
+/**
+ * 璧拌埅浠诲姟璁$畻宸ュ叿
+ * @date 2025/8/21
+ * @author feiyu02
+ */
+object MissionUtil {
+
+    /**
+     * 璁$畻閲岀▼鏁�
+     */
+    fun calKilometres(data: List<BaseRealTimeData>): Double {
+        var distance = .0
+        for (i in 1 until data.size) {
+            val a = data[i - 1]
+            val b = data[i]
+            if (a.longitude == null || a.latitude == null || b.longitude == null || b.latitude == null) continue
+
+            distance += MapUtil.getDistance(
+                a.longitude!!.toDouble(),
+                a.latitude!!.toDouble(),
+                b.longitude!!.toDouble(),
+                b.latitude!!.toDouble()
+            )
+        }
+        return distance
+    }
+}
\ No newline at end of file
diff --git a/src/main/kotlin/com/flightfeather/uav/biz/report/MissionSummary.kt b/src/main/kotlin/com/flightfeather/uav/biz/report/MissionSummary.kt
new file mode 100644
index 0000000..a3926fd
--- /dev/null
+++ b/src/main/kotlin/com/flightfeather/uav/biz/report/MissionSummary.kt
@@ -0,0 +1,21 @@
+package com.flightfeather.uav.biz.report
+
+/**
+ * 璧拌埅浠诲姟姹囨��
+ * @date 2025/8/22
+ * @author feiyu02
+ */
+class MissionSummary {
+
+    inner class Summary(
+        // 璧拌埅娆℃暟
+        val count: Int,
+        // 鎬婚噷绋嬫暟锛堝叕閲岋級
+        val kilometres: Double,
+        // 娑夊強鍖哄煙
+        val regionList: List<String>,
+        // 鍚勭瓑绾х┖姘旇川閲忚儗鏅蛋鑸鏁�
+        val countByDegree: MutableMap<String, Int>,
+
+    )
+}
\ No newline at end of file
diff --git a/src/test/kotlin/com/flightfeather/uav/biz/mission/MissionUtilTest.kt b/src/test/kotlin/com/flightfeather/uav/biz/mission/MissionUtilTest.kt
new file mode 100644
index 0000000..f7264a7
--- /dev/null
+++ b/src/test/kotlin/com/flightfeather/uav/biz/mission/MissionUtilTest.kt
@@ -0,0 +1,32 @@
+package com.flightfeather.uav.biz.mission
+
+import com.flightfeather.uav.common.utils.MapUtil
+import com.flightfeather.uav.domain.repository.MissionRep
+import com.flightfeather.uav.domain.repository.RealTimeDataRep
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.springframework.beans.factory.annotation.Autowired
+import org.springframework.boot.test.context.SpringBootTest
+import org.springframework.test.context.junit4.SpringRunner
+
+//@RunWith(SpringRunner::class)
+//@SpringBootTest
+class MissionUtilTest {
+
+//    @Autowired
+    lateinit var missionRep: MissionRep
+
+//    @Autowired
+    lateinit var realTimeDataRep: RealTimeDataRep
+
+    @Test
+    fun calKilometres() {
+//        val m = missionRep.findOne("20250819") ?: return
+//        val data = realTimeDataRep.fetchData(m)
+//        MissionUtil.calKilometres(data)
+        val d = MapUtil.getDistance(121.425187, 31.225907, 121.425196, 31.225892)
+        println(d)
+        val d1 = MapUtil.getDistance(121.425196, 31.225892, 121.425187, 31.225907)
+        println(d1)
+    }
+}
\ No newline at end of file

--
Gitblit v1.9.3