From eb3dd00b0b7fcda477229d518d250f9c842b790b Mon Sep 17 00:00:00 2001
From: feiyu02 <risaku@163.com>
Date: 星期二, 21 十月 2025 17:45:44 +0800
Subject: [PATCH] 2025.10.21 1. 走航季度报告相关数据计算逻辑调整

---
 src/main/kotlin/com/flightfeather/uav/socket/eunm/FactorType.kt |   76 +++++++++++++++++++++++++++++++++++---
 1 files changed, 70 insertions(+), 6 deletions(-)

diff --git a/src/main/kotlin/com/flightfeather/uav/socket/eunm/FactorType.kt b/src/main/kotlin/com/flightfeather/uav/socket/eunm/FactorType.kt
index 81c0d6f..e99a0b7 100644
--- a/src/main/kotlin/com/flightfeather/uav/socket/eunm/FactorType.kt
+++ b/src/main/kotlin/com/flightfeather/uav/socket/eunm/FactorType.kt
@@ -1,5 +1,7 @@
 package com.flightfeather.uav.socket.eunm
 
+import com.flightfeather.uav.biz.dataanalysis.BaseExceptionAnalysis
+
 /**
  * @author riku
  * Date: 2020/6/10
@@ -22,11 +24,53 @@
     TIME(15, "TIME", 6),//鏃堕棿
     WIND_SPEED(16, "WIND_SPEED", 3),
     WIND_DIRECTION(17, "WIND_DIRECTION", 2),
-    HEIGHT(18, "HEIGHT", 3);
+    HEIGHT(18, "HEIGHT", 3),
+    NO(19, "NO", 6);
+
+    fun getTxt(): String {
+        return when (this) {
+            NO2 -> "NO2"
+            CO -> "CO"
+            H2S -> "H2S"
+            SO2 -> "SO2"
+            O3 -> "O3"
+            PM25 -> "PM2.5"
+            PM10 -> "PM10"
+            TEMPERATURE -> "娓╁害"
+            HUMIDITY -> "婀垮害"
+            VOC -> "VOC"
+            NOI -> "NOI"
+            LNG -> "缁忓害"
+            LAT -> "绾害"
+            VELOCITY -> "杞﹂��"
+            TIME -> "鏃堕棿"
+            WIND_SPEED -> "椋庨��"
+            WIND_DIRECTION -> "椋庡悜"
+            HEIGHT -> "楂樺害"
+            NO -> "NO"
+        }
+    }
 
     companion object {
 
+        /**
+         * 閫氳繃绱㈠紩鑾峰彇鏋氫妇绫诲瀷锛岀敤浜庢暟鎹垎鏋�
+         * @see [BaseExceptionAnalysis]
+         */
         fun getByIndex(index: Int): FactorType? = when (index) {
+            0 -> NO2
+            1 -> CO
+            2 -> H2S
+            3 -> SO2
+            4 -> O3
+            5 -> PM25
+            6 -> PM10
+            7 -> VOC
+            19 -> NO
+            else -> null
+        }
+
+        fun getByValue(value: Int): FactorType? = when (value) {
             NO2.value -> NO2
             CO.value -> CO
             H2S.value -> H2S
@@ -45,6 +89,7 @@
             WIND_SPEED.value -> WIND_SPEED
             WIND_DIRECTION.value -> WIND_DIRECTION
             HEIGHT.value -> HEIGHT
+            NO.value -> NO
             else -> null
         }
 
@@ -67,6 +112,7 @@
             WIND_SPEED.des -> WIND_SPEED
             WIND_DIRECTION.des -> WIND_DIRECTION
             HEIGHT.des -> HEIGHT
+            NO.des -> NO
             else -> null
         }
 
@@ -81,6 +127,7 @@
          * 鑾峰彇鐩戞祴鍥犲瓙鐨勫悎鐞嗚寖鍥�
          */
         fun getRange(type: FactorType): Pair<Double, Double>? = when (type) {
+            NO -> Pair(0.1, 1000.0)
             NO2 -> Pair(0.1, 1000.0)
             CO -> Pair(1.0, 5000.0)
             H2S -> Pair(0.1, 1000.0)
@@ -102,9 +149,9 @@
             else -> null
         }
 
-        fun getVMax(name: String?): Double? {
+        fun getVMin(name: String?): Double? {
             getByName(name)?.let {
-                return getVMax(it)
+                return getVMin(it)
             }
             return null
         }
@@ -112,7 +159,8 @@
         /**
          * 涓嶅鐞嗕綆浜庢鍊肩殑鍊�
          */
-        fun getVMax(type: FactorType): Double? = when (type) {
+        fun getVMin(type: FactorType): Double = when (type) {
+            NO -> 1.0
             NO2 -> 10.0
             CO -> 100.0
             H2S -> 10.0
@@ -131,10 +179,26 @@
             WIND_SPEED -> 2.0
             WIND_DIRECTION -> 0.0
             HEIGHT -> 0.0
-            else -> null
         }
 
-        fun outputFactor(factorName: String?): Boolean {
+        /**
+         * 鍥犲瓙杩炵画鏁版嵁涓婂崌鍚堢悊骞呭害锛堝�嶆暟锛�
+         */
+        fun getMultiplier(name: String?): Double {
+            getByName(name)?.let {
+                return getMultiplier(it)
+            }
+            return 10.0
+        }
+
+        fun getMultiplier(type: FactorType): Double = when (type) {
+            PM25 -> 20.0
+            PM10 -> 20.0
+            VOC -> 10.0
+            else -> 10.0
+        }
+
+        fun isOutputFactor(factorName: String?): Boolean {
             return when (factorName) {
                 NO2.des,
                 CO.des,

--
Gitblit v1.9.3