From 4d065a305b997bfb66f41b33a31d59de63b1958d Mon Sep 17 00:00:00 2001
From: feiyu02 <risaku@163.com>
Date: 星期四, 29 五月 2025 17:43:21 +0800
Subject: [PATCH] 1. 新增动态污染溯源新的判定逻辑(待完成)

---
 src/main/kotlin/com/flightfeather/uav/biz/sourcetrace/model/PollutedData.kt |   67 ++++++++++++++++++++++++++++++++-
 1 files changed, 64 insertions(+), 3 deletions(-)

diff --git a/src/main/kotlin/com/flightfeather/uav/biz/sourcetrace/model/PollutedData.kt b/src/main/kotlin/com/flightfeather/uav/biz/sourcetrace/model/PollutedData.kt
index 8ae7734..aa722b8 100644
--- a/src/main/kotlin/com/flightfeather/uav/biz/sourcetrace/model/PollutedData.kt
+++ b/src/main/kotlin/com/flightfeather/uav/biz/sourcetrace/model/PollutedData.kt
@@ -1,5 +1,9 @@
 package com.flightfeather.uav.biz.sourcetrace.model
 
+import com.flightfeather.uav.biz.FactorFilter
+import com.flightfeather.uav.biz.dataanalysis.model.ExceptionType
+import com.flightfeather.uav.biz.sourcetrace.config.RTExcWindLevelConfig
+import com.flightfeather.uav.common.utils.DateUtil
 import com.flightfeather.uav.domain.entity.BaseRealTimeData
 import com.flightfeather.uav.lightshare.bean.DataVo
 
@@ -8,7 +12,7 @@
  * @date 2025/5/27
  * @author feiyu02
  */
-class PollutedData {
+class PollutedData() {
 
     /**
      *
@@ -20,11 +24,68 @@
      * 3. 8 - 13.8 m/s 浠ヤ笂锛屽墠鍚庡�间笂鍗囧箙搴﹀湪10%浠ヤ笂3娆★紝璁や负鏄繙璺濈鍙戠敓(50绫� - 2鍏噷)
      */
 
+    /**
+     * 9. 鍏宠仈鍥犲瓙
+     * 	a) pm2.5銆乸m10鐗瑰埆楂橈紝涓よ�呭湪鍚勬儏鍐典笅鍚屾灞曠ず锛宲m2.5鍗爌m10鐨勬瘮閲嶅彉鍖栵紝姣旈噸瓒婇珮锛岃秺鏈夊彲鑳芥槸椁愰ギ
+     * 	b) pm10鐗瑰埆楂樸�乸m2.5杈冮珮锛屽ぇ棰楃矑鎵皹姹℃煋锛屽彧灞曠ずpm10锛宲m2.5鍗爌m10鐨勬瘮閲嶅彉鍖栵紝宸ュ湴涓轰富
+     * 	c) VOC杈冮珮锛屽悓姣旇绠梡m2.5鐨勯噺绾э紝鍙兘瀛樺湪鍚屾鍋忛珮锛堟苯淇�佸姞娌圭珯锛�, 鍚屾璁$畻O3鏄惁鏈夐珮鍊�
+     * 	d) VOC杈冮珮锛屽浜庡姞娌圭珯锛堣溅杈嗘嫢鍫垫儏鍐碉級锛孋O涓�鑸緝楂�, 鍚屾璁$畻O3鏄惁鏈夐珮鍊�
+     * 	e) 姘哀鍖栧悎鐗╋紝涓�鑸敱浜庢満鍔ㄨ溅灏炬皵锛屽悓姝ヨ绠桟O
+     */
+
+    constructor(
+        start: BaseRealTimeData,
+        end: BaseRealTimeData?,
+        factor: FactorFilter.SelectedFactor,
+        exceptionData: List<BaseRealTimeData>,
+        eType: ExceptionType,
+        windLevelCondition: RTExcWindLevelConfig.WindLevelCondition,
+    ) : this() {
+        exception = eType.des
+        exceptionType = eType.value
+        factorId = factor.main.value
+        factorName = factor.main.des
+        subFactorId = factor.subs.map { it.value }
+        subFactorName = factor.subs.map { it.des }
+        selectedFactor = factor
+
+        startTime = DateUtil.instance.dateToString(start.dataTime, DateUtil.DateStyle.HH_MM_SS)
+        endTime = DateUtil.instance.dateToString(end?.dataTime, DateUtil.DateStyle.HH_MM_SS) ?: startTime
+        startData = start.getByFactorType(factor.main)
+        endData = end?.getByFactorType(factor.main) ?: startData
+
+        windSpeed = exceptionData.first().windSpeed?.toDouble()
+        percentage = windLevelCondition.mutationRate.first
+        times = windLevelCondition.countLimit
+
+        exceptionData.forEach {
+            dataList.add(it)
+            dataVoList.add(it.toDataVo())
+        }
+    }
+
+    var deviceCode: String? = null
+
+    var exception: String? = null
+    var exceptionType: Int? = null
+
+    var factorId: Int? = null
+    var factorName: String? = null
+    var subFactorId: List<Int>? = null
+    var subFactorName: List<String>? = null
+    var selectedFactor: FactorFilter.SelectedFactor? = null
+
+    var startTime: String? = null
+    var endTime: String? = null
+
+    var startData: Float? = null
+    var endData: Float? = null
+
     // 椋庨��
-    var windSpeed: Float? = null
+    var windSpeed: Double? = null
 
     // 鍥犲瓙閲忕骇鍙樺寲骞呭害
-    var percentage: Float? = null
+    var percentage: Double? = null
 
     // 鍙戠敓娆℃暟
     var times: Int? = null

--
Gitblit v1.9.3