feiyu02
2025-08-22 b315032d126a640758d4a6fccf297acbab057772
2025.8.21
1. 新增走航任务统计功能(待完成)
已添加3个文件
85 ■■■■■ 文件已修改
src/main/kotlin/com/flightfeather/uav/biz/mission/MissionUtil.kt 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/kotlin/com/flightfeather/uav/biz/report/MissionSummary.kt 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/test/kotlin/com/flightfeather/uav/biz/mission/MissionUtilTest.kt 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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
    }
}
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>,
    )
}
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)
    }
}