| | |
| | | * 污染源影响程度权重分析模型 |
| | | * 基类 |
| | | */ |
| | | abstract class BaseModel<M : BaseMData, S : BaseSOP> { |
| | | abstract class BaseModel<M : BaseMData> { |
| | | |
| | | data class ResultCell( |
| | | var total: Double = 0.0, |
| | |
| | | } |
| | | } |
| | | |
| | | abstract var dataPrep: BaseDataPrep<M, S> |
| | | abstract var dataPrep: BaseDataPrep<M, BaseSOP> |
| | | |
| | | // 权重因子,在进行计算分析时使用的监测因子 |
| | | abstract var factorTypes: List<FactorType> |
| | | |
| | | // 权重值,多种权重进行乘积计算 |
| | | abstract var weights: List<BaseWeight<M, S>> |
| | | abstract var weights: List<BaseWeight<M, BaseSOP>> |
| | | |
| | | // 计算结果 |
| | | private val rMap = mutableMapOf<String, MutableMap<String, MutableMap<String, ResultCell>>>() |
| | | |
| | | // 结果筛选方式 |
| | | abstract var sections: List<BaseSection<M, S>> |
| | | abstract var sections: List<BaseSection<M, BaseSOP>> |
| | | |
| | | /** |
| | | * 污染源影响程度计算 |
| | | * @param mDataList 监测数据集合 |
| | | * @param sopList 污染源集合 |
| | | */ |
| | | fun execute(mDataList: List<M>, sopList: List<S>, hasNext: Boolean = false) { |
| | | fun execute(mDataList: List<M>, sopList: List<BaseSOP>, hasNext: Boolean = false) { |
| | | if (!hasNext) rMap.clear() |
| | | |
| | | //1. 数据预处理 |
| | |
| | | * @param mData 监测数据 |
| | | * @param sop 污染源 |
| | | */ |
| | | private fun weightCompute(mData: M, sop: S) { |
| | | private fun weightCompute(mData: M, sop: BaseSOP) { |
| | | val effect = BaseEffect(sop.sourceId, sop.sourceName, sop.index) |
| | | |
| | | // 将原监测数据按照权重计算出结果值 |
| | |
| | | /** |
| | | * 污染源数据合法性检查 |
| | | */ |
| | | abstract fun sopCheck(s: S): Boolean |
| | | abstract fun sopCheck(s: BaseSOP): Boolean |
| | | } |