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/biz/sourcetrace/config/RTExcWindLevelConfig.kt | 175 ++++++++++++++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 163 insertions(+), 12 deletions(-)
diff --git a/src/main/kotlin/com/flightfeather/uav/biz/sourcetrace/config/RTExcWindLevelConfig.kt b/src/main/kotlin/com/flightfeather/uav/biz/sourcetrace/config/RTExcWindLevelConfig.kt
index 9ca9419..9d69ca6 100644
--- a/src/main/kotlin/com/flightfeather/uav/biz/sourcetrace/config/RTExcWindLevelConfig.kt
+++ b/src/main/kotlin/com/flightfeather/uav/biz/sourcetrace/config/RTExcWindLevelConfig.kt
@@ -3,6 +3,7 @@
import com.flightfeather.uav.biz.FactorFilter
import com.flightfeather.uav.biz.dataanalysis.BaseAnalysisConfig
import com.flightfeather.uav.biz.sourcetrace.model.DistanceType
+import com.flightfeather.uav.socket.eunm.FactorType
/**
*
@@ -13,43 +14,193 @@
inner class WindLevelCondition(
val windSpeed: Pair<Double, Double>,
- val mutationRate: Pair<Double, DistanceType>,
+ val mutationRate: Pair<Double, Double>,
+ val distanceType: DistanceType,
val countLimit: Int,
- )
+ ){
+}
+ // 鏄惁鑱旂綉鏌ユ壘瀵瑰簲璺鍦板潃淇℃伅
+ var isSearchAddress = true
// 闄愬畾璺濈鍐咃紙鍗曚綅锛氱背锛�
- var distanceLimit = 1000
+ var distanceLimit = 3000
// 闄愬畾鏃堕棿鍐咃紙鍗曚綅锛氬垎閽燂級
- var timeLimit = 2
+ var timeLimit = 3
+ // 婧簮鎵╂暎鍋忕Щ瑙掑害锛堝崟浣嶏細搴︼級
+ var sourceTraceDegOffset = 120.0
+
+ // 瀹氭椂绾跨储鍒嗘瀽鏃堕棿闂撮殧(鍗曚綅锛氬垎閽�)
+ var analysisPeriod = 5
+ // 瀹氭椂鍒嗘瀽闂撮殧涓紝绔嬪嵆杩涜绾跨储鍒嗘瀽鐨勬渶灏忕嚎绱㈤噺(鍗曚綅锛氫釜)
+ var analysisCount = 4
+
+ /****鏁版嵁绐佸彉*****************************************************************************/
// 0 - 1绾ч
var windLevelCondition1 = WindLevelCondition(
.0 to 1.5,
- 0.5 to DistanceType.TYPE1,
+ 0.5 to Double.MAX_VALUE,
+ DistanceType.TYPE1,
1
)
// 0 - 1绾ч
var windLevelCondition1_1 = WindLevelCondition(
.0 to 1.5,
- 0.2 to DistanceType.TYPE2,
+ 0.2 to 0.5,
+ DistanceType.TYPE2,
1
)
// 2 - 4绾ч
var windLevelCondition2 = WindLevelCondition(
1.6 to 7.9,
- 0.2 to DistanceType.TYPE3,
- 3
+ 0.2 to Double.MAX_VALUE,
+ DistanceType.TYPE3,
+ 2
+// 1
)
// 5 - 6绾ч
var windLevelCondition3 = WindLevelCondition(
8.0 to 13.8,
- 0.1 to DistanceType.TYPE4,
- 3
+ 0.1 to Double.MAX_VALUE,
+ DistanceType.TYPE4,
+ 2
)
- // 婧簮鎵╂暎鍋忕Щ瑙掑害锛堝崟浣嶏細搴︼級
- var sourceTraceDegOffset = 120.0
+ /****鏁版嵁蹇�熶笂鍗�*****************************************************************************/
+ // 鍦ㄩ閫熷浜�0 - 1.5 m/s 涔嬮棿鏃�
+ var changeRateUp1 = mutableMapOf(
+ // PM2.5鍦ㄤ竴涓洃娴嬪懆鏈燂紙4绉掞級涓婂崌閲忕骇澶т簬绛変簬4渭g/m鲁锛岃繛缁彂鐢�2娆�
+ FactorType.PM25 to WindLevelCondition(
+ .0 to 1.5,
+ 4.0 to Double.MAX_VALUE,
+ DistanceType.TYPE1,
+// fixme: 2025.7.24 鍥犱负浣庨閫熶笅鏁版嵁鍙樺寲娆℃暟璁剧疆杩囧锛屽鑷撮仐婕忚瘑鍒�
+// 3
+ 2
+ ),
+ // PM10鍦ㄤ竴涓洃娴嬪懆鏈燂紙4绉掞級涓婂崌閲忕骇澶т簬绛変簬4渭g/m鲁锛岃繛缁彂鐢�2娆�
+ FactorType.PM10 to WindLevelCondition(
+ .0 to 1.5,
+ 4.0 to Double.MAX_VALUE,
+ DistanceType.TYPE1,
+ 2
+ ),
+ // VOC鍦ㄤ竴涓洃娴嬪懆鏈燂紙4绉掞級涓婂崌閲忕骇澶т簬绛変簬6渭g/m鲁锛岃繛缁彂鐢�1娆�
+ FactorType.VOC to WindLevelCondition(
+ .0 to 1.5,
+ 6.0 to Double.MAX_VALUE,
+ DistanceType.TYPE1,
+ 1
+ ),
+ )
+ // 鍦ㄩ閫熷浜�1.6 - 7.9 m/s 涔嬮棿鏃�
+ var changeRateUp2 = mutableMapOf(
+ // PM2.5鍦ㄤ竴涓洃娴嬪懆鏈燂紙4绉掞級涓婂崌閲忕骇澶т簬绛変簬4渭g/m鲁锛岃繛缁彂鐢�3娆�
+ FactorType.PM25 to WindLevelCondition(
+ 1.6 to 7.9,
+ 4.0 to Double.MAX_VALUE,
+ DistanceType.TYPE3,
+ 2
+ ),
+ // PM10鍦ㄤ竴涓洃娴嬪懆鏈燂紙4绉掞級涓婂崌閲忕骇澶т簬绛変簬4渭g/m鲁锛岃繛缁彂鐢�3娆�
+ FactorType.PM10 to WindLevelCondition(
+ 1.6 to 7.9,
+ 4.0 to Double.MAX_VALUE,
+ DistanceType.TYPE3,
+ 2
+ ),
+ // VOC鍦ㄤ竴涓洃娴嬪懆鏈燂紙4绉掞級涓婂崌閲忕骇澶т簬绛変簬6渭g/m鲁锛岃繛缁彂鐢�1娆�
+ FactorType.VOC to WindLevelCondition(
+ 1.6 to 7.9,
+ 6.0 to Double.MAX_VALUE,
+ DistanceType.TYPE3,
+ 1
+ ),
+ )
+ // 鍦ㄩ閫熷浜�8.0 - 13.8 m/s 涔嬮棿鏃�
+ var changeRateUp3 = mutableMapOf(
+ // PM2.5鍦ㄤ竴涓洃娴嬪懆鏈燂紙4绉掞級涓婂崌閲忕骇澶т簬绛変簬4渭g/m鲁锛岃繛缁彂鐢�3娆�
+ FactorType.PM25 to WindLevelCondition(
+ 8.0 to 13.8,
+ 4.0 to Double.MAX_VALUE,
+ DistanceType.TYPE4,
+ 2
+ ),
+ // PM10鍦ㄤ竴涓洃娴嬪懆鏈燂紙4绉掞級涓婂崌閲忕骇澶т簬绛変簬4渭g/m鲁锛岃繛缁彂鐢�3娆�
+ FactorType.PM10 to WindLevelCondition(
+ 8.0 to 13.8,
+ 4.0 to Double.MAX_VALUE,
+ DistanceType.TYPE4,
+ 2
+ ),
+ // VOC鍦ㄤ竴涓洃娴嬪懆鏈燂紙4绉掞級涓婂崌閲忕骇澶т簬绛変簬6渭g/m鲁锛岃繛缁彂鐢�1娆�
+ FactorType.VOC to WindLevelCondition(
+ 8.0 to 13.8,
+ 6.0 to Double.MAX_VALUE,
+ DistanceType.TYPE4,
+ 1
+ ),
+ )
+
+ /****鏁版嵁蹇�熶笅闄嶆彁閱�*****************************************************************************/
+ var changeRateWarnDown = mutableMapOf(
+ // PM2.5鍦ㄤ竴涓洃娴嬪懆鏈燂紙4绉掞級鍐呬笅闄嶉噺绾уぇ浜庣瓑浜�2渭g/m鲁锛岃繛缁彂鐢�3娆�
+ FactorType.PM25 to WindLevelCondition(
+ .0 to Double.MAX_VALUE,
+ -Double.MAX_VALUE to -2.0,
+ DistanceType.TYPE1,
+ 3
+ ),
+ // PM10鍦ㄤ竴涓洃娴嬪懆鏈燂紙4绉掞級鍐呬笅闄嶉噺绾уぇ浜庣瓑浜�2渭g/m鲁锛岃繛缁彂鐢�3娆�
+ FactorType.PM10 to WindLevelCondition(
+ .0 to Double.MAX_VALUE,
+ -Double.MAX_VALUE to -2.0,
+ DistanceType.TYPE1,
+ 3
+ ),
+ // VOC鍦ㄤ竴涓洃娴嬪懆鏈燂紙4绉掞級鍐呬笅闄嶉噺绾уぇ浜庣瓑浜�3渭g/m鲁锛岃繛缁彂鐢�3娆�
+ FactorType.VOC to WindLevelCondition(
+ .0 to Double.MAX_VALUE,
+ -Double.MAX_VALUE to -3.0,
+ DistanceType.TYPE1,
+ 3
+ ),
+ )
+
+ /****鏁版嵁鏈変笂鍗囪秼鍔挎彁閱�*****************************************************************************/
+ var changeRateWarnUp = mutableMapOf(
+ // PM2.5鍦ㄤ竴涓洃娴嬪懆鏈燂紙4绉掞級涓婂崌閲忕骇鍦�2 - 4渭g/m鲁涔嬮棿锛岃繛缁彂鐢�3娆�
+ FactorType.PM25 to WindLevelCondition(
+ .0 to Double.MAX_VALUE,
+ 2.0 to 4.0,
+ DistanceType.TYPE1,
+ 2
+ ),
+ // PM10鍦ㄤ竴涓洃娴嬪懆鏈燂紙4绉掞級涓婂崌閲忕骇鍦�2 - 4渭g/m鲁涔嬮棿锛岃繛缁彂鐢�3娆�
+ FactorType.PM10 to WindLevelCondition(
+ .0 to Double.MAX_VALUE,
+ 2.0 to 4.0,
+ DistanceType.TYPE1,
+ 2
+ ),
+ // VOC鍦ㄤ竴涓洃娴嬪懆鏈燂紙4绉掞級涓婂崌閲忕骇鍦�3 - 6渭g/m鲁涔嬮棿锛岃繛缁彂鐢�2娆�
+ FactorType.VOC to WindLevelCondition(
+ .0 to Double.MAX_VALUE,
+ 3.0 to 6.0,
+ DistanceType.TYPE1,
+ 2
+ ),
+ )
+
+ /****婊戝姩骞冲潎鍊煎紓甯�*****************************************************************************/
+ // 姹傛粦鍔ㄥ钩鍧囧�肩殑鏁版嵁缁勪釜鏁�
+ var changeTrendGroup = 12
+ // 婊戝姩骞冲潎鍊艰繛缁�
+ var changeTrendInterval = 12
+ var changeTrendRate = .2
+ // 婊戝姩骞冲潎鍊煎彉鍖栫巼寮傚父杩炵画娆℃暟
+ var changeTrendTimes = 3
}
\ No newline at end of file
--
Gitblit v1.9.3