From d2d71a6bc8e445ee60b7be2667676138e277d676 Mon Sep 17 00:00:00 2001
From: feiyu02 <risaku@163.com>
Date: 星期五, 28 六月 2024 17:41:08 +0800
Subject: [PATCH] 1. 修改走航报告自动输出模块

---
 src/main/kotlin/com/flightfeather/uav/biz/report/MissionReport.kt |   48 ++++++++++++++++++++++++++++++++----------------
 1 files changed, 32 insertions(+), 16 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 0a497c4..62bbcf6 100644
--- a/src/main/kotlin/com/flightfeather/uav/biz/report/MissionReport.kt
+++ b/src/main/kotlin/com/flightfeather/uav/biz/report/MissionReport.kt
@@ -1,9 +1,9 @@
 package com.flightfeather.uav.biz.report
 
+import com.flightfeather.uav.biz.FactorFilter
 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.pdf.GeneratePdfUtil
@@ -12,7 +12,6 @@
 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 org.springframework.beans.BeanUtils
 import org.springframework.beans.factory.annotation.Value
 import org.springframework.stereotype.Component
@@ -54,11 +53,22 @@
          */
         fun addExceptions(exceptions: List<ExceptionResult>) {
             this.exceptions = exceptions.map {
-                val byteArray = DataToChartUtil.lineToByteArray(FactorType.getByValue(it.factorId!!), 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
             }
         }
@@ -82,8 +92,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"
@@ -91,13 +104,16 @@
     private val dateFormatter = DateTimeFormatter.ofPattern("HH:mm")
 
     // 鑾峰彇寮傚父鍒嗘瀽缁撴灉
-    fun exceptionAnalysis(mission: Mission): List<ExceptionResult> {
-        return exceptionAnalysisController.run(mission)
+    fun exceptionAnalysis(mission: Mission, factorFilter: FactorFilter): List<ExceptionResult> {
+        return exceptionAnalysisController.run(mission, factorFilter)
     }
 
     // 璁$畻鍧囧�煎拰鏁版嵁鑼冨洿
-    fun dataSummary(mission: Mission): List<Summary> {
-        val preData = PreData(DateUtil.instance.dateToString(mission.startTime, DateUtil.DateStyle.YYYY_MM_DD))
+    fun dataSummary(mission: Mission, factorFilter: FactorFilter): List<Summary> {
+        val preData = PreData(
+            DateUtil.instance.dateToString(mission.startTime, DateUtil.DateStyle.YYYY_MM_DD),
+            factorFilter.mainList()
+        )
         val realTimeData = realTimeDataRep.fetchData(mission)
         realTimeData.forEach {
             preData.add(it.toDataVo())
@@ -114,7 +130,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
             })
         }
@@ -123,13 +139,13 @@
 
     // 鐢熸垚鍙傛暟
     // 鏍规嵁鎶ュ憡妯℃澘鐢熸垚瀵瑰簲鎶ュ憡
-    fun execute(missionCode: String): String {
+    fun execute(missionCode: String, factorFilter: FactorFilter): String {
         // 1. 浠诲姟鍚堟硶鎬ф鏌�
         val mission = missionRep.findOne(missionCode) ?: throw  BizException("璇ヤ换鍔$紪鍙蜂笉瀛樺湪")
-        // 2. 鑾峰彇鏁版嵁寮傚父缁熻缁撴灉
-        val exceptions = exceptionAnalysis(mission)
+        // 2. 鑾峰彇鏁版嵁寮傚父缁熻缁撴灉锛屾牴鎹�
+        val exceptions = exceptionAnalysis(mission, factorFilter)
         // 3. 鑾峰彇鍧囧�笺�佽寖鍥寸瓑缁熻鏁版嵁
-        val summaries = dataSummary(mission)
+        val summaries = dataSummary(mission, factorFilter)
         // 4. 鐢熸垚鎶ュ憡
         val fileName = "report/" + "${mission.districtName}璧拌埅鐩戞祴鎶ュ憡-${
             DateUtil.instance.dateToString(mission.startTime, DateUtil.DateStyle.YYYY_MM_DD)

--
Gitblit v1.9.3