| | |
| | | import com.flightfeather.uav.domain.entity.BaseRealTimeData |
| | | import com.flightfeather.uav.domain.entity.SceneInfo |
| | | import com.flightfeather.uav.domain.repository.SceneInfoRep |
| | | import com.flightfeather.uav.socket.sender.MsgType |
| | | |
| | | /** |
| | | * 污染线索 |
| | |
| | | class PollutedClue() : BaseExceptionResult() { |
| | | |
| | | // constructor( |
| | | // start: BaseRealTimeData, |
| | | // end: BaseRealTimeData?, |
| | | // factor: FactorFilter.SelectedFactor, |
| | | // exceptionData: List<BaseRealTimeData>, |
| | | // eType: ExceptionType, |
| | | // config: RTExcWindLevelConfig, |
| | | // tag: ExceptionTag, factor: FactorFilter.SelectedFactor, eType: ExceptionType, config: RTExcWindLevelConfig, |
| | | // windLevelCondition: RTExcWindLevelConfig.WindLevelCondition?, |
| | | // ) : this() { |
| | | // if (exceptionData.isEmpty()) return |
| | | // pollutedData = PollutedData(start, end, factor, exceptionData, eType, windLevelCondition) |
| | | // pollutedArea = PollutedArea(exceptionData, config, windLevelCondition) |
| | | // if (tag.exceptionData.isEmpty()) return |
| | | // deviceCode = tag.startData?.deviceCode |
| | | // pollutedData = PollutedData( |
| | | // tag.startData!!, tag.endData, factor, tag.exceptionData, tag.historyData, eType, windLevelCondition |
| | | // ) |
| | | // pollutedArea = PollutedArea(tag.historyData, tag.exceptionData, config, windLevelCondition) |
| | | // } |
| | | |
| | | constructor( |
| | | tag: ExceptionTag, factor: FactorFilter.SelectedFactor, eType: ExceptionType, config: RTExcWindLevelConfig, |
| | | exceptions: List<Pair<FactorFilter.SelectedFactor, ExceptionTag>>, |
| | | eType: ExceptionType, |
| | | config: RTExcWindLevelConfig, |
| | | windLevelCondition: RTExcWindLevelConfig.WindLevelCondition?, |
| | | ) :this() |
| | | // this( |
| | | // tag.startData!!, tag.endData, factor, tag.exceptionData, eType, config, |
| | | // windLevelCondition |
| | | // ) |
| | | { |
| | | if (tag.exceptionData.isEmpty()) return |
| | | ) : this() { |
| | | if (exceptions.isEmpty() || exceptions[0].second.exceptionData.isEmpty()) return |
| | | deviceCode = exceptions[0].second.startData?.deviceCode |
| | | var startData: BaseRealTimeData? = null |
| | | var endData: BaseRealTimeData? = null |
| | | var exceptionData = mutableListOf<BaseRealTimeData>() |
| | | var historyData = mutableListOf<BaseRealTimeData>() |
| | | exceptions.forEach { e -> |
| | | if (startData == null) { |
| | | startData = e.second.startData |
| | | } else { |
| | | if (e.second.startData?.dataTime!! < startData!!.dataTime) { |
| | | startData = e.second.startData |
| | | } |
| | | } |
| | | |
| | | if (endData == null) { |
| | | endData = e.second.endData |
| | | } else { |
| | | if (e.second.endData?.dataTime!! > endData!!.dataTime) { |
| | | endData = e.second.endData |
| | | } |
| | | } |
| | | |
| | | if (exceptionData.isEmpty()) { |
| | | exceptionData = e.second.exceptionData |
| | | } else { |
| | | e.second.exceptionData.forEach { |
| | | if (exceptionData.find { d -> d.dataTime == it.dataTime } == null) { |
| | | exceptionData.add(it) |
| | | } |
| | | } |
| | | } |
| | | |
| | | if (historyData.isEmpty()) { |
| | | historyData = e.second.historyData |
| | | } else { |
| | | e.second.historyData.forEach { |
| | | if (historyData.find { d -> d.dataTime == it.dataTime } == null) { |
| | | historyData.add(it) |
| | | } |
| | | } |
| | | } |
| | | } |
| | | exceptionData.sortBy { it.dataTime } |
| | | historyData.sortBy { it.dataTime } |
| | | |
| | | val factorList = exceptions.map { it.first } |
| | | pollutedData = PollutedData( |
| | | tag.startData!!, tag.endData, factor, tag.exceptionData, tag.historyData, eType, windLevelCondition |
| | | startData!!, endData, factorList, exceptionData, historyData, eType, windLevelCondition |
| | | ) |
| | | pollutedArea = PollutedArea(tag.historyData, tag.exceptionData, config, windLevelCondition) |
| | | pollutedArea = PollutedArea(historyData, exceptionData, config, windLevelCondition) |
| | | |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 6. 展示数据变化情况,上升速率等等 |
| | | */ |
| | | |
| | | /** |
| | | * @see [MsgType] |
| | | */ |
| | | var msgType: Int? = null |
| | | |
| | | var deviceCode: String? = null |
| | | |
| | | var pollutedData: PollutedData? = null |
| | | |
| | | var pollutedArea: PollutedArea? = null |