cjl
2025-01-06 27e6bc3df3e39e0d0b147b155a89ad6837ea972b
screen-common/src/main/java/com/moral/util/ComprehensiveIndexUtils.java
@@ -1,5 +1,7 @@
package com.moral.util;
import org.springframework.util.ObjectUtils;
import java.util.*;
/**
@@ -170,12 +172,17 @@
    public static Double dailyData(Map<String, Object> data) {
        if (data == null)
            return null;
        Double CPM25 = (Double) data.get("pm2_5");
        Double CPM10 = (Double) data.get("pm10");
        Double CSO2 = (Double) data.get("so2");
        Double CNO2 = (Double) data.get("no2");
        Double CCO = (Double) data.get("co");
        Double CO3 = (Double) data.get("o3");
        Double CPM25 = Double.parseDouble(data.get("PM2_5").toString());
        Double CPM10 = Double.parseDouble(data.get("PM10").toString());
        Double CSO2 = Double.parseDouble(data.get("SO2").toString());
        Double CNO2 = Double.parseDouble(data.get("NO2").toString());
        Double CCO = Double.parseDouble(data.get("CO").toString());
        Object o3 = data.get("O3");
        Double CO3 = null;
        if (!ObjectUtils.isEmpty(o3)) {
            CO3 = Double.parseDouble(o3.toString());
        }
        //S开头为污染物年均值二级标准(当污染物是CO时,采用日均值二级标准。当污染是O3时,采用八小时均值二级标准)
        //数据来源GB 3095-2012
        Double SSO2 = 60d;
@@ -190,15 +197,22 @@
        Double IPM25 = CPM25 / SPM25;
        Double IPM10 = CPM10 / SPM10;
        Double ICO = CCO / SCO;
        Double IO3 = CO3 / SO3;
        Double IO3 = null;
        if (!ObjectUtils.isEmpty(CO3)) {
            IO3 = CO3 / SO3;
        }
        //计算综合指数
        Double comprehensiveIndex = MathUtils.add(ISO2, INO2);
        comprehensiveIndex = MathUtils.add(comprehensiveIndex, IPM25);
        comprehensiveIndex = MathUtils.add(comprehensiveIndex, IPM10);
        comprehensiveIndex = MathUtils.add(comprehensiveIndex, ICO);
        comprehensiveIndex = MathUtils.add(comprehensiveIndex, IO3);
        if (!ObjectUtils.isEmpty(IO3)) {
            comprehensiveIndex = MathUtils.add(comprehensiveIndex, IO3);
        }
        comprehensiveIndex = AmendUtils.sciCal(comprehensiveIndex, 2);
        return comprehensiveIndex;
    }
}