Riku
2025-06-02 e731486b50c4ea6e2d28f302df449b4bd0b2be57
src/main/kotlin/com/flightfeather/uav/biz/sourcetrace/model/PollutedData.kt
@@ -15,16 +15,6 @@
class PollutedData() {
    /**
     *
     * 1. 软风1.5m/s及以下,
     *    前后值上升幅度在50%以上1次,认为是临近发生(50米)
     *    前后值上升幅度在20%以上1次,认为是远距离发生(50米 - 500米)
     *    1.5 m/s及以下,静稳天气,临近发生(50米)
     * 2. 1.6 - 7.9 m/s,前后值上升幅度在20%以上3次,认为是远距离发生(50米 - 1公里)
     * 3. 8 - 13.8 m/s 以上,前后值上升幅度在10%以上3次,认为是远距离发生(50米 - 2公里)
     */
    /**
     * 9. 关联因子
     *    a) pm2.5、pm10特别高,两者在各情况下同步展示,pm2.5占pm10的比重变化,比重越高,越有可能是餐饮
     *    b) pm10特别高、pm2.5较高,大颗粒扬尘污染,只展示pm10,pm2.5占pm10的比重变化,工地为主
@@ -62,6 +52,8 @@
            dataList.add(it)
            dataVoList.add(it.toDataVo())
        }
        calPer()
    }
    var deviceCode: String? = null
@@ -86,6 +78,8 @@
    // 因子量级变化幅度
    var percentage: Double? = null
    // 因子量级平均变化幅度
    var avgPer: Double? = null
    // 发生次数
    var times: Int? = null
@@ -93,4 +87,14 @@
    // 异常监测数据
    var dataList: MutableList<BaseRealTimeData> = mutableListOf()
    var dataVoList: MutableList<DataVo> = mutableListOf()
    private fun calPer() {
        if (dataList.size < 2) return
        var total = .0
        for (i in 0 until dataList.size - 1) {
            total += dataList[i].getByFactorType(selectedFactor!!.main)!!
        }
        avgPer = total / (dataList.size - 1)
    }
}