feiyu02
2025-08-28 ddaa44400aa478058ffe9349d59904a130b7ce9c
src/main/kotlin/com/flightfeather/uav/model/BaseModel.kt
@@ -3,7 +3,6 @@
import com.flightfeather.uav.common.utils.DateUtil
import com.flightfeather.uav.common.utils.ExcelUtil
import com.flightfeather.uav.socket.eunm.FactorType
import org.apache.poi.hssf.usermodel.HSSFWorkbook
import org.apache.poi.xssf.streaming.SXSSFWorkbook
import java.io.File
import java.io.FileOutputStream
@@ -14,7 +13,7 @@
 * 污染源影响程度权重分析模型
 * 基类
 */
abstract class BaseModel<M : BaseMData, S : BaseSOP> {
abstract class BaseModel<M : BaseMData, S: BaseSOP> {
    data class ResultCell(
        var total: Double = 0.0,
@@ -46,7 +45,7 @@
     * @param mDataList 监测数据集合
     * @param sopList 污染源集合
     */
    fun execute(mDataList: List<M>, sopList: List<S>, hasNext: Boolean = false) {
    open fun execute(mDataList: List<M>, sopList: List<S>, hasNext: Boolean = false) {
        if (!hasNext) rMap.clear()
        //1. 数据预处理
@@ -132,7 +131,7 @@
                        val lKey = "$se($factorType)"
                        if (lMap.containsKey(lKey)) {
                            val resultCell = lMap[lKey] ?: return@type
                            val size = resultCell.count
//                            val size = resultCell.count
                            // 添加该分类作为表头
                            val h = lKey
//                            val h = "$lKey($size)"
@@ -199,6 +198,12 @@
        return rMap
    }
    /**
     * 将计算结果格式化为多层级的键对值结构
     * 第一层按照不同污染源的索引值进行分类
     * 第二层按照监测因子类型进行分类
     * 第三层按照自定义的标签进行分类
     */
    private fun formatConversion2(e: BaseEffect) {
        val rKey = "${e.sourceName};${e.index}"
        if (!rMap.containsKey(rKey)) {