From 3bb4fb15c664d29d179083698fdad35a661b1d7f Mon Sep 17 00:00:00 2001
From: riku <risaku@163.com>
Date: 星期四, 28 八月 2025 14:57:40 +0800
Subject: [PATCH] 2025.8.28 1. 添加走航季度报告相关统计功能(待完成)

---
 src/main/kotlin/com/flightfeather/uav/lightshare/service/impl/MissionServiceImpl.kt |   36 +++++++++++++++++++++++++++++-------
 1 files changed, 29 insertions(+), 7 deletions(-)

diff --git a/src/main/kotlin/com/flightfeather/uav/lightshare/service/impl/MissionServiceImpl.kt b/src/main/kotlin/com/flightfeather/uav/lightshare/service/impl/MissionServiceImpl.kt
index a1b05e1..c8ace2f 100644
--- a/src/main/kotlin/com/flightfeather/uav/lightshare/service/impl/MissionServiceImpl.kt
+++ b/src/main/kotlin/com/flightfeather/uav/lightshare/service/impl/MissionServiceImpl.kt
@@ -1,12 +1,15 @@
 package com.flightfeather.uav.lightshare.service.impl
 
 import com.flightfeather.uav.biz.FactorFilter
+import com.flightfeather.uav.biz.mission.MissionUtil
 import com.flightfeather.uav.biz.report.MissionReport
 import com.flightfeather.uav.common.exception.BizException
 import com.flightfeather.uav.domain.entity.Mission
 import com.flightfeather.uav.domain.entity.RealTimeDataVehicle
 import com.flightfeather.uav.domain.mapper.MissionMapper
 import com.flightfeather.uav.domain.mapper.RealTimeDataVehicleMapper
+import com.flightfeather.uav.domain.repository.MissionRep
+import com.flightfeather.uav.domain.repository.RealTimeDataRep
 import com.flightfeather.uav.lightshare.bean.BaseResponse
 import com.flightfeather.uav.lightshare.bean.DataHead
 import com.flightfeather.uav.lightshare.service.MissionService
@@ -22,8 +25,10 @@
     private val missionMapper: MissionMapper,
     private val realTimeDataVehicleMapper: RealTimeDataVehicleMapper,
     private val missionReport: MissionReport,
+    private val missionRep: MissionRep,
+    private val realTimeDataRep: RealTimeDataRep
 ) : MissionService {
-    override fun getMission(type: String?, page: Int?, perPage: Int?): BaseResponse<List<Mission>> {
+    override fun getMission(type: String?, page: Int?, perPage: Int?): Pair<DataHead, List<Mission>> {
         val _perPage = perPage ?: 60
         val _page = page ?: 1
         val pageInfo = PageHelper.startPage<Mission>(_page, _perPage)
@@ -34,22 +39,30 @@
             }
             orderBy("startTime").desc()
         }).forEach { it?.let { result.add(it) } }
-        return BaseResponse(true, head = DataHead(pageInfo.pageNum, pageInfo.pages),data = result)
+//        return BaseResponse(true, head = DataHead(pageInfo.pageNum, pageInfo.pages),data = result)
+        return DataHead(pageInfo.pageNum, pageInfo.pages) to result
     }
 
     @Synchronized
-    override fun createMission(mission: Mission): BaseResponse<Boolean> {
+    override fun createMission(mission: Mission): Boolean {
         missionMapper.selectByPrimaryKey(mission.missionCode)?.run {
-            return BaseResponse(false, "浠诲姟缂栧彿宸插瓨鍦�")
+//            return BaseResponse(false, "浠诲姟缂栧彿宸插瓨鍦�")
+            throw BizException("浠诲姟缂栧彿宸插瓨鍦�")
         }
         missionMapper.insert(mission).let {
-            return BaseResponse(it == 1)
+            return it == 1
         }
     }
 
-    override fun deleteMission(missionCode: String): BaseResponse<Boolean> {
+    override fun updateMission(mission: Mission): Boolean {
+        missionMapper.updateByPrimaryKey(mission).let {
+            return it == 1
+        }
+    }
+
+    override fun deleteMission(missionCode: String): Boolean {
         missionMapper.deleteByPrimaryKey(missionCode).let {
-            return BaseResponse(it == 1)
+            return it == 1
         }
     }
 
@@ -75,4 +88,13 @@
         }
         return
     }
+
+    override fun calMissionInfo(missionCode: String): Boolean {
+        val mission = missionRep.findOne(missionCode) ?: throw BizException("璧拌埅浠诲姟涓嶅瓨鍦�")
+        val data = realTimeDataRep.fetchData(mission)
+        mission.kilometres = MissionUtil.calKilometres(data).toFloat()
+        // todo: 璁$畻璧拌埅浠诲姟鎵�鍦ㄤ腑蹇冨尯鍩�
+        mission.region = MissionUtil.calRegion(data)
+        return updateMission(mission)
+    }
 }
\ No newline at end of file

--
Gitblit v1.9.3