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