feiyu02
2025-05-08 9a9a27f185bc0cf9dc0001cfc6839e6d13dbccd9
src/main/kotlin/com/flightfeather/uav/biz/report/MissionReport.kt
@@ -6,12 +6,14 @@
import com.flightfeather.uav.biz.dataprocess.PreData
import com.flightfeather.uav.common.chart.DataToChartUtil
import com.flightfeather.uav.common.exception.BizException
import com.flightfeather.uav.common.location.LocationRoadNearby
import com.flightfeather.uav.common.pdf.GeneratePdfUtil
import com.flightfeather.uav.common.utils.DateUtil
import com.flightfeather.uav.common.utils.ImageUtil
import com.flightfeather.uav.domain.entity.Mission
import com.flightfeather.uav.domain.repository.MissionRep
import com.flightfeather.uav.domain.repository.RealTimeDataRep
import com.flightfeather.uav.domain.repository.SegmentInfoRep
import org.springframework.beans.BeanUtils
import org.springframework.beans.factory.annotation.Value
import org.springframework.stereotype.Component
@@ -24,12 +26,17 @@
 */
@Component
class MissionReport(
    private val exceptionAnalysisController: ExceptionAnalysisController,
    private val missionRep: MissionRep,
    private val realTimeDataRep: RealTimeDataRep,
    private val locationRoadNearby: LocationRoadNearby,
    private val segmentInfoRep: SegmentInfoRep,
    @Value("\${filePath}")
    private val filePath: String,
) {
    private val exceptionAnalysisController =
        ExceptionAnalysisController(realTimeDataRep, locationRoadNearby, segmentInfoRep)
    data class Param(
        val district: String,
        val town: String,
@@ -105,7 +112,7 @@
    // 获取异常分析结果
    fun exceptionAnalysis(mission: Mission, factorFilter: FactorFilter): List<ExceptionResult> {
        return exceptionAnalysisController.run(mission, factorFilter)
        return exceptionAnalysisController.execute(mission, factorFilter)
    }
    // 计算均值和数据范围
@@ -149,12 +156,12 @@
        // 4. 生成报告
        val fileName = "report/" + "${mission.districtName}走航监测报告-${
            DateUtil.instance.dateToString(mission.startTime, DateUtil.DateStyle.YYYY_MM_DD)
        }.doc"
        }(${mission.missionCode}).doc"
        val reportTemplate = ReportTemplate(templateName, filePath, fileName)
        val param = getParam(mission, exceptions, summaries)
        val params = reportTemplate.getParam(param)
        GeneratePdfUtil.generateWord(params)
        return fileName
        return filePath + fileName
    }
    private fun getParam(mission: Mission, exceptions: List<ExceptionResult>, summaries: List<Summary>): Param {