From c56e1e74426238939f229f0005828d05089715ff Mon Sep 17 00:00:00 2001 From: feiyu02 <risaku@163.com> Date: 星期四, 03 七月 2025 17:30:58 +0800 Subject: [PATCH] 2025.7.3 1. 新增动态污染溯源新的判定逻辑 --- src/main/kotlin/com/flightfeather/uav/biz/sourcetrace/model/PollutedData.kt | 27 ++++++++++++++++++++++++--- 1 files changed, 24 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 56190ed..5661859 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 @@ -28,8 +28,9 @@ end: BaseRealTimeData?, factor: FactorFilter.SelectedFactor, exceptionData: List<BaseRealTimeData>, + historyData: List<BaseRealTimeData>, eType: ExceptionType, - windLevelCondition: RTExcWindLevelConfig.WindLevelCondition, + windLevelCondition: RTExcWindLevelConfig.WindLevelCondition?, ) : this() { exception = eType.des exceptionType = eType.value @@ -47,16 +48,18 @@ endData = end windSpeed = exceptionData.first().windSpeed?.toDouble() - percentage = windLevelCondition.mutationRate.first - times = windLevelCondition.countLimit + percentage = windLevelCondition?.mutationRate?.first + times = windLevelCondition?.countLimit dataList.add(start) exceptionData.forEach { dataList.add(it) } dataVoList.addAll(dataList.map { it.toDataVo() }) + historyDataList.addAll(historyData.map { it.toDataVo() }) calPer() + calRate() } var deviceCode: String? = null @@ -83,10 +86,13 @@ var percentage: Double? = null // 鍥犲瓙閲忕骇骞冲潎鍙樺寲骞呭害 var avgPer: Double? = null + // 鍥犲瓙閲忕骇骞冲潎鍙樺寲閫熺巼 + var avgRate: Double? = null // 鍙戠敓娆℃暟 var times: Int? = null + var historyDataList = mutableListOf<DataVo>() // 寮傚父鐩戞祴鏁版嵁 var dataList: MutableList<BaseRealTimeData> = mutableListOf() var dataVoList: MutableList<DataVo> = mutableListOf() @@ -105,4 +111,19 @@ } avgPer = total / (list.size - 1) } + + private fun calRate() { + val list = dataList +// list.add(startData) +// list.addAll(dataList) + if (list.size < 2) return + + var total = .0 + for (i in 0 until list.size - 1) { + val p = list[i]?.getByFactorType(selectedFactor!!.main)!! + val n = list[i + 1]?.getByFactorType(selectedFactor!!.main)!! + total += (n - p) / 4 + } + avgRate = total / (list.size - 1) + } } \ No newline at end of file -- Gitblit v1.9.3