package com.flightfeather.uav.biz.dataanalysis.exceptiontype
|
|
import com.flightfeather.uav.biz.FactorFilter
|
import com.flightfeather.uav.biz.dataanalysis.BaseExceptionContinuousSingle
|
import com.flightfeather.uav.biz.dataanalysis.model.DataAnalysisConfig
|
import com.flightfeather.uav.biz.dataanalysis.model.ExceptionResult
|
import com.flightfeather.uav.biz.dataanalysis.model.ExceptionTag
|
import com.flightfeather.uav.biz.dataanalysis.model.ExceptionType
|
import com.flightfeather.uav.domain.entity.BaseRealTimeData
|
import com.flightfeather.uav.socket.eunm.FactorType
|
|
/**
|
* 数据超标异常分析
|
*/
|
@Deprecated("原超标判定逻辑设定的超标值有漏洞,")
|
class ExceptionDataExceed(config: DataAnalysisConfig) :
|
BaseExceptionContinuousSingle<ExceptionTag, DataAnalysisConfig, ExceptionResult>(config, ExceptionTag::class.java) {
|
|
override var judgeMethod: JudgeMethod = JudgeMethod.M2
|
|
override fun getExceptionType(): ExceptionType = ExceptionType.TYPE2
|
|
override fun judgeException(p: BaseRealTimeData?, n: BaseRealTimeData): MutableMap<FactorType, Boolean> {
|
val res = mutableMapOf<FactorType, Boolean>()
|
config.factorFilter.mainList().forEach { f ->
|
val data = n.getByFactorType(f)
|
val limit = config.exceptionSetting.getByFactorType(f)
|
val bool = if (data != null && limit != null) {
|
data >= limit
|
} else {
|
false
|
}
|
res[f] = bool
|
}
|
return res
|
}
|
|
override fun judgeExceptionCount(tag: ExceptionTag, factorType: FactorType?): Boolean {
|
return true
|
}
|
|
override fun newResult(tag: ExceptionTag, factor: FactorFilter.SelectedFactor): ExceptionResult {
|
val eType = getExceptionType()
|
return ExceptionResult(tag.startData!!, tag.endData, factor, tag.exceptionData, config.mission.missionCode,
|
eType)
|
}
|
|
override fun newResult(exceptions: List<Pair<FactorFilter.SelectedFactor, ExceptionTag>>): ExceptionResult {
|
return ExceptionResult()
|
}
|
}
|