From 9a9a27f185bc0cf9dc0001cfc6839e6d13dbccd9 Mon Sep 17 00:00:00 2001 From: feiyu02 <risaku@163.com> Date: 星期四, 08 五月 2025 17:38:30 +0800 Subject: [PATCH] 1. 添加了动态污染溯源相关功能逻辑 --- src/main/kotlin/com/flightfeather/uav/biz/report/MissionReport.kt | 43 +++++++++++++++++++++++++++++++------------ 1 files changed, 31 insertions(+), 12 deletions(-) diff --git a/src/main/kotlin/com/flightfeather/uav/biz/report/MissionReport.kt b/src/main/kotlin/com/flightfeather/uav/biz/report/MissionReport.kt index ccc8b72..e898e97 100644 --- a/src/main/kotlin/com/flightfeather/uav/biz/report/MissionReport.kt +++ b/src/main/kotlin/com/flightfeather/uav/biz/report/MissionReport.kt @@ -4,16 +4,16 @@ import com.flightfeather.uav.biz.dataanalysis.ExceptionAnalysisController import com.flightfeather.uav.biz.dataanalysis.model.ExceptionResult import com.flightfeather.uav.biz.dataprocess.PreData -import com.flightfeather.uav.common.chart.ChartUtil 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.socket.eunm.FactorType +import com.flightfeather.uav.domain.repository.SegmentInfoRep import org.springframework.beans.BeanUtils import org.springframework.beans.factory.annotation.Value import org.springframework.stereotype.Component @@ -26,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, @@ -55,11 +60,22 @@ */ fun addExceptions(exceptions: List<ExceptionResult>) { this.exceptions = exceptions.map { - val byteArray = DataToChartUtil.lineToByteArray(it.selectedFactor, it.dataList) - val base64Str = ImageUtil.compressImage2(byteArray, 400, needPrefix = false) val c = ExceptionChart() BeanUtils.copyProperties(it, c) - c.pict = base64Str + // 鍒涘缓涓绘薄鏌撳洜瀛愮殑鏁版嵁鎶樼嚎鍥� + val byteArray = DataToChartUtil.lineToByteArray(it.selectedFactor?.main, it.dataList) + val base64Str = ImageUtil.compressImage2(byteArray, 800, needPrefix = false) + c.mainPict = base64Str + // 鍒涘缓鍏宠仈鍥犲瓙鐨勬暟鎹姌绾垮浘 + if (it.selectedFactor?.subs?.isNotEmpty() == true) { + val subList = mutableListOf<String>() + it.selectedFactor!!.subs.forEach { type -> + val byteArray1 = DataToChartUtil.lineToByteArray(type, it.dataList) + val base64Str1 = ImageUtil.compressImage2(byteArray1, 800, needPrefix = false) + subList.add(base64Str1) + } + c.subPictList = subList + } return@map c } } @@ -83,8 +99,11 @@ * 鏁版嵁寮傚父鎵�鍦ㄦ椂娈电殑鎶樼嚎鍥� */ class ExceptionChart : ExceptionResult() { - // 鏁版嵁鎶樼嚎鍥綛ase64缂栫爜 - var pict: String? = null + // 姹℃煋鍥犲瓙鐨勫紓甯告暟鎹姌绾垮浘Base64缂栫爜 + var mainPict: String? = null + + // 鍏宠仈鍥犲瓙鐨勫紓甯告暟鎹姌绾垮浘Base64缂栫爜 + var subPictList: List<String>? = null } private val templateName = "report-underway.ftl" @@ -93,7 +112,7 @@ // 鑾峰彇寮傚父鍒嗘瀽缁撴灉 fun exceptionAnalysis(mission: Mission, factorFilter: FactorFilter): List<ExceptionResult> { - return exceptionAnalysisController.run(mission, factorFilter) + return exceptionAnalysisController.execute(mission, factorFilter) } // 璁$畻鍧囧�煎拰鏁版嵁鑼冨洿 @@ -118,7 +137,7 @@ max = u.max val byteArray = DataToChartUtil.lineToByteArray(t, realTimeData) - val base64Str = ImageUtil.compressImage2(byteArray, 400, needPrefix = false) + val base64Str = ImageUtil.compressImage2(byteArray, 800, needPrefix = false) pict = base64Str }) } @@ -137,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 { -- Gitblit v1.9.3