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