From ddaa44400aa478058ffe9349d59904a130b7ce9c Mon Sep 17 00:00:00 2001
From: feiyu02 <risaku@163.com>
Date: 星期四, 28 八月 2025 17:33:11 +0800
Subject: [PATCH] 2025.8.28 1. 新增走航任务统计功能(待完成)

---
 src/main/kotlin/com/flightfeather/uav/lightshare/service/impl/DataAnalysisServiceImpl.kt |   28 ++++++++++++++++++++++++++++
 1 files changed, 28 insertions(+), 0 deletions(-)

diff --git a/src/main/kotlin/com/flightfeather/uav/lightshare/service/impl/DataAnalysisServiceImpl.kt b/src/main/kotlin/com/flightfeather/uav/lightshare/service/impl/DataAnalysisServiceImpl.kt
index f8ad2c7..3982b5c 100644
--- a/src/main/kotlin/com/flightfeather/uav/lightshare/service/impl/DataAnalysisServiceImpl.kt
+++ b/src/main/kotlin/com/flightfeather/uav/lightshare/service/impl/DataAnalysisServiceImpl.kt
@@ -4,17 +4,26 @@
 import com.flightfeather.uav.biz.dataanalysis.BaseExceptionResult
 import com.flightfeather.uav.biz.dataanalysis.ExceptionAnalysisController
 import com.flightfeather.uav.biz.dataanalysis.model.ExceptionResult
+import com.flightfeather.uav.biz.report.MissionSummary
 import com.flightfeather.uav.biz.sourcetrace.model.BasePollutedMsg
+import com.flightfeather.uav.biz.sourcetrace.model.PollutedClue
 import com.flightfeather.uav.common.exception.BizException
 import com.flightfeather.uav.common.location.LocationRoadNearby
 import com.flightfeather.uav.common.utils.GsonUtils
+import com.flightfeather.uav.domain.entity.Mission
+import com.flightfeather.uav.domain.mapper.MissionMapper
 import com.flightfeather.uav.domain.repository.MissionRep
 import com.flightfeather.uav.domain.repository.RealTimeDataRep
 import com.flightfeather.uav.domain.repository.SegmentInfoRep
 import com.flightfeather.uav.domain.repository.SourceTraceRep
+import com.flightfeather.uav.lightshare.bean.AreaVo
 import com.flightfeather.uav.lightshare.service.DataAnalysisService
 import com.flightfeather.uav.socket.eunm.FactorType
 import org.springframework.stereotype.Service
+import tk.mybatis.mapper.entity.Example
+import java.time.LocalDateTime
+import java.time.ZoneId
+import java.util.*
 
 /**
  *
@@ -24,6 +33,7 @@
 @Service
 class DataAnalysisServiceImpl(
     private val missionRep: MissionRep,
+    private val missionMapper: MissionMapper,
     private val realTimeDataRep: RealTimeDataRep,
     private val locationRoadNearby: LocationRoadNearby,
     private val segmentInfoRep: SegmentInfoRep,
@@ -56,4 +66,22 @@
         val res = sourceTraceRep.fetchList(mission.deviceCode, mission.startTime, mission.endTime)
         return GsonUtils.gson.toJson(res)
     }
+
+    override fun missionSummary(startTime: Date, endTime: Date, areaVo: AreaVo): MissionSummary.Summary {
+        val clues = mutableListOf<PollutedClue?>()
+        val missions = missionMapper.selectByExample(Example(Mission::class.java).apply {
+            createCriteria().andBetween("startTime", startTime, endTime)
+                .andEqualTo("provinceCode", areaVo.provinceCode)
+                .andEqualTo("cityCode", areaVo.cityCode)
+                .andEqualTo("districtCode", areaVo.districtCode)
+                .andIsNotNull("kilometres")
+                .andNotEqualTo("kilometres", 0)
+        }).onEach {
+            it ?: return@onEach
+            val clue = sourceTraceRep.fetchList(it.deviceCode, it.startTime, it.endTime).filterIsInstance<PollutedClue?>()
+            clues.addAll(clue)
+        }
+        val summary = MissionSummary().execute(startTime, endTime, missions, clues)
+        return summary
+    }
 }
\ No newline at end of file

--
Gitblit v1.9.3