riku
6 天以前 20b8d870efbbb89564b599561fc69202ba41223f
src/main/kotlin/com/flightfeather/uav/biz/sourcetrace/exceptiontype/BaseRTExcWindLevel.kt
@@ -29,9 +29,13 @@
        this.callback = callback
    }
    override var excludedFactor: List<FactorType> = listOf(FactorType.NO2)
    private var callback: NewPolluteClueCallback? = null
    abstract var windLevelCondition: RTExcWindLevelConfig.WindLevelCondition
    override var judgeMethod: JudgeMethod = JudgeMethod.M1
    override fun getExceptionType(): ExceptionType {
        return ExceptionType.TYPE4
@@ -62,13 +66,13 @@
            val con = windLevelCondition
            if (n.windSpeed!! in con.windSpeed.first..con.windSpeed.second) {
                println("风速:${n.windSpeed},[${con.windSpeed.first} - ${con.windSpeed.second}]")
//                println("风速:${n.windSpeed},[${con.windSpeed.first} - ${con.windSpeed.second}]")
                val pValue = p.getByFactorType(f)!!
                val nValue = n.getByFactorType(f)!!
                // 计算后一个数据相比于前一个数据的变化率
                val r = (nValue - pValue) / pValue
                val b1 = r >= con.mutationRate.first && r < con.mutationRate.second
                println("因子:${f.des},幅度:${r},限定:${con.mutationRate.first},${b1}")
//                println("因子:${f.des},幅度:${r},限定:${con.mutationRate.first},${b1}")
                res[f] = b1
            } else {
                res[f] = false
@@ -135,30 +139,21 @@
//        return PollutedClue(start, end, factor, exceptionData, getExceptionType(), config, windLevelCondition)
//    }
    override fun onNewException(
        tag: ExceptionTag,
        factor: FactorFilter.SelectedFactor,
        exceptionStatus: ExceptionStatusType,
    ) {
        super.onNewException(tag, factor, exceptionStatus)
//        callback?.let { func ->
//            val exc = tag.exceptionResult.last()
//            func.invoke(exc as PollutedClue)
//        }
    }
    override fun mergeExceptionResult() {
        super.mergeExceptionResult()
//    override fun mergeExceptionResult() {
//        super.mergeExceptionResult()
//        callback?.let { func ->
//            result.forEach {
//                func.invoke(it)
//            }
//        }
//    }
    override fun onNewResult(result: List<PollutedClue>) {
        callback?.let { func ->
            result.forEach {
                func.invoke(it)
            }
//            latestExceptions.forEach {
//                func.invoke(listOf(it as PollutedClue))
//            }
//            latestCombinedExc.forEach {
//                func.invoke(it as List<PollutedClue>)
//            }
        }
    }
}