package com.flightfeather.uav.biz.sourcetrace.model
|
|
import com.flightfeather.uav.biz.FactorFilter
|
import com.flightfeather.uav.biz.dataanalysis.BaseExceptionResult
|
import com.flightfeather.uav.biz.dataanalysis.model.ExceptionType
|
import com.flightfeather.uav.biz.sourcetrace.config.RTExcWindLevelConfig
|
import com.flightfeather.uav.common.utils.DateUtil
|
import com.flightfeather.uav.common.utils.MapUtil
|
import com.flightfeather.uav.domain.entity.BaseRealTimeData
|
import com.flightfeather.uav.domain.entity.SceneInfo
|
import com.flightfeather.uav.domain.repository.SceneInfoRep
|
|
/**
|
* 污染线索
|
* 通过污染数据[PollutedData],污染区域[PollutedArea],污染来源[PollutedSource],形成一条污染溯源线索
|
* @date 2025/5/27
|
* @author feiyu02
|
*/
|
class PollutedClue() : BaseExceptionResult() {
|
|
constructor(
|
start: BaseRealTimeData,
|
end: BaseRealTimeData?,
|
factor: FactorFilter.SelectedFactor,
|
exceptionData: List<BaseRealTimeData>,
|
eType: ExceptionType,
|
config: RTExcWindLevelConfig,
|
windLevelCondition: RTExcWindLevelConfig.WindLevelCondition
|
) : this() {
|
this.factor = factor
|
if (exceptionData.isEmpty()) return
|
pollutedData = PollutedData(start, end, factor, exceptionData, eType, windLevelCondition)
|
pollutedArea = PollutedArea(exceptionData, config, windLevelCondition)
|
}
|
|
/**
|
* 6. 展示数据变化情况,上升速率等等
|
*/
|
|
var pollutedData: PollutedData? = null
|
|
var pollutedArea: PollutedArea? = null
|
|
var pollutedSource: PollutedSource? = null
|
|
private var factor: FactorFilter.SelectedFactor? = null
|
|
/**
|
* 查找系统内部溯源范围内的污染企业
|
*/
|
fun searchScenes(sceneInfoRep: SceneInfoRep) {
|
if (pollutedArea == null || factor == null) return
|
pollutedSource = PollutedSource().also { it.searchScenes(pollutedArea!!, sceneInfoRep, factor!!) }
|
}
|
}
|