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 | 40 ++++++++++++++++++++++++++++++++++++++++ 1 files changed, 40 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 d64872d..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 @@ -1,16 +1,29 @@ package com.flightfeather.uav.lightshare.service.impl import com.flightfeather.uav.biz.FactorFilter +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.* /** * @@ -20,9 +33,11 @@ @Service class DataAnalysisServiceImpl( private val missionRep: MissionRep, + private val missionMapper: MissionMapper, private val realTimeDataRep: RealTimeDataRep, private val locationRoadNearby: LocationRoadNearby, private val segmentInfoRep: SegmentInfoRep, + private val sourceTraceRep: SourceTraceRep ) : DataAnalysisService { override fun pollutionTrace(missionCode: String): List<ExceptionResult> { @@ -44,4 +59,29 @@ .create() ) } + + override fun fetchHistory(missionCode: String): String { + val mission = missionRep.findOne(missionCode) ?: throw BizException("璧拌埅浠诲姟涓嶅瓨鍦�") + + 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