src/main/kotlin/cn/flightfeather/supervision/business/autooutput/dataanalysis/AopDataAnalysis.kt
@@ -74,8 +74,14 @@
            var tempAvg = TempResult()
            var tempMax = TempResult()
            var tempMin = TempResult()
            var deviceCode: String? = null
            dataList.forEach {
                // 监测点有多台设备时,每台设备单独统计,取均值最高的为统计结果
                // 监测点有多台设备时,每台设备单独记录
                deviceCode = if (it.isNotEmpty()) {
                    getDeviceCode(it[0])
                } else {
                    null
                }
                val _tempExceedTimes = TempResult()
                val _tempAvg = TempResult()
                val _tempMax = TempResult()
@@ -99,6 +105,7 @@
            val dustDataResult = DustDataResult().apply {
                drSceneId = evaluationScene.scene.value?.guid
                drSceneName = evaluationScene.scene.value?.name
                drDeviceCode = deviceCode
                drTime = source?.config?.startTime
                drExceedTimes = tempExceedTimes.count
                drAvg = tempAvg.avg
@@ -106,6 +113,8 @@
                drMin = tempMin.total
                drOverAvgPer = overAvgRate(drAvg, dAvg)
                drDataNum = count(dataList)
                // 当数据量为0时,超月度区均值百分比变为0
                if (drDataNum == 0) drOverAvgPer = .0
                drEffectiveRate = effectiveRate(dataList, evaluationScene)
            }
            //更新入库
@@ -118,6 +127,11 @@
     * 当前为范围内全部监测点的均值
     */
    abstract fun districtAvg(source: AopDataSource?): Double?
    /**
     * 获取设备编号
     */
    abstract fun getDeviceCode(data: T?): String?
    /**
     * 获取原始监测数据
@@ -147,7 +161,13 @@
    /**
     * 超月均值百分比
     */
    abstract fun overAvgRate(avg: Double, dAvg: Double?): Double?
    open fun overAvgRate(avg: Double, dAvg: Double?): Double? {
        return if (dAvg != null && dAvg != .0) {
            round(((avg - dAvg) / dAvg) * 1000) / 1000
        } else {
            .0
        }
    }
    /**
     * 数据个数