kaiyu
2021-11-03 30c76f1f25ddf6437014ea47bdc206cf0e288ec7
screen-api/src/main/java/com/moral/api/service/impl/GovMonitorPointServiceImpl.java
@@ -14,6 +14,7 @@
import com.moral.api.service.OrganizationService;
import com.moral.constant.Constants;
import com.moral.constant.RedisConstants;
import com.moral.pojo.AQI;
import com.moral.util.AQIUtils;
import com.moral.util.RegionCodeUtils;
import org.springframework.beans.factory.annotation.Autowired;
@@ -105,7 +106,6 @@
            govMonitorPoint_avg.setId(0);
            govMonitorPoint_avg.setName("");
            govMonitorPoint_avg.setGuid("");
            govMonitorPointList.add(govMonitorPoint_avg);
            List<Map<String,Object>> data = new ArrayList<>();
            Map<String,Object> hour_1 = new HashMap<>();
            Map<String,Object> hour_2 = new HashMap<>();
@@ -200,12 +200,30 @@
                            }
                        }
                    }
                    Double PM2_5Avg = (double)Math.round(PM2_5List.stream().mapToDouble(aDouble -> aDouble).summaryStatistics().getAverage());
                    Double PM10Avg = (double)Math.round(PM10List.stream().mapToDouble(aDouble -> aDouble).summaryStatistics().getAverage());
                    Double SO2Avg = (double)Math.round(SO2List.stream().mapToDouble(aDouble -> aDouble).summaryStatistics().getAverage());
                    Double NO2Avg = (double)Math.round(NO2List.stream().mapToDouble(aDouble -> aDouble).summaryStatistics().getAverage());
                    Double COAvg = new BigDecimal(COList.stream().mapToDouble(aDouble -> aDouble).summaryStatistics().getAverage()).setScale(1, BigDecimal.ROUND_HALF_UP).doubleValue();
                    Double O3_1hAvg = (double)Math.round(O3_1hList.stream().mapToDouble(aDouble -> aDouble).summaryStatistics().getAverage());
                    Double PM2_5Avg = null;
                    Double PM10Avg = null;
                    Double SO2Avg = null;
                    Double NO2Avg = null;
                    Double COAvg = null;
                    Double O3_1hAvg = null;
                    if (PM2_5List.size()>0){
                        PM2_5Avg = (double)Math.round(PM2_5List.stream().mapToDouble(aDouble -> aDouble).summaryStatistics().getAverage());
                    }
                    if (PM10List.size()>0){
                        PM10Avg = (double)Math.round(PM10List.stream().mapToDouble(aDouble -> aDouble).summaryStatistics().getAverage());
                    }
                    if (SO2List.size()>0){
                        SO2Avg = (double)Math.round(SO2List.stream().mapToDouble(aDouble -> aDouble).summaryStatistics().getAverage());
                    }
                    if (NO2List.size()>0){
                        NO2Avg = (double)Math.round(NO2List.stream().mapToDouble(aDouble -> aDouble).summaryStatistics().getAverage());
                    }
                    if (COList.size()>0){
                        COAvg = new BigDecimal(COList.stream().mapToDouble(aDouble -> aDouble).summaryStatistics().getAverage()).setScale(1, BigDecimal.ROUND_HALF_UP).doubleValue();
                    }
                    if (O3_1hList.size()>0){
                        O3_1hAvg = (double)Math.round(O3_1hList.stream().mapToDouble(aDouble -> aDouble).summaryStatistics().getAverage());
                    }
                    if (!ObjectUtils.isEmpty(PM2_5Avg)){
                        PM2_5List_daliy.add(PM2_5Avg);
                        oneGovMonitorPointOneHourData.put("a34004_"+govMonitorPointId,PM2_5Avg);
@@ -244,6 +262,18 @@
                        oneGovMonitorPointOneHourData.put("a05024_"+govMonitorPointId,null);
                    }
                    Double O3_8h = null;
                    //当前时间
                    Date now = new Date();
                    SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");
                    //获取今天的日期
                    String nowDay = sf.format(now);
                    //对比的时间
                    //String day = sf.format(date);
                    int curHour24 = 25;
                    if (date.equals(nowDay)){
                        Calendar calendar = Calendar.getInstance();
                        curHour24 = calendar.get(calendar.HOUR_OF_DAY);
                    }
                    if (i>=7){
                        List<Double> O3_8hList = new ArrayList<>();
                        for (Integer key:O3_1hMap.keySet()){
@@ -252,7 +282,11 @@
                                O3_8hList_daliy.add(O3_1hMap.get(key));
                            }
                        }
                        O3_8h = (double)Math.round(O3_8hList.stream().mapToDouble(aDouble ->aDouble).summaryStatistics().getAverage());
                        if (i<curHour24){
                            if (O3_8hList.size()>0){
                                O3_8h = (double)Math.round(O3_8hList.stream().mapToDouble(aDouble ->aDouble).summaryStatistics().getAverage());
                            }
                        }
                    }
                    oneGovMonitorPointOneHourData.put("O3_8h_"+govMonitorPointId,O3_8h);
                    switch (i){
@@ -308,13 +342,34 @@
                            break;
                    }
                }
                Double PM2_5Avg_daliy = (double)Math.round(PM2_5List_daliy.stream().mapToDouble(aDouble -> aDouble).summaryStatistics().getAverage());
                Double PM10Avg_daliy = (double)Math.round(PM10List_daliy.stream().mapToDouble(aDouble -> aDouble).summaryStatistics().getAverage());
                Double SO2Avg_daliy = (double)Math.round(SO2List_daliy.stream().mapToDouble(aDouble -> aDouble).summaryStatistics().getAverage());
                Double NO2Avg_daliy = (double)Math.round(NO2List_daliy.stream().mapToDouble(aDouble -> aDouble).summaryStatistics().getAverage());
                Double COAvg_daliy = new BigDecimal(COList_daliy.stream().mapToDouble(aDouble -> aDouble).summaryStatistics().getAverage()).setScale(1, BigDecimal.ROUND_HALF_UP).doubleValue();
                Double O3_1hAvg_daliy = (double)Math.round(O3_1hList_daliy.stream().mapToDouble(aDouble -> aDouble).summaryStatistics().getAverage());
                Double O3_8hAvg_daliy = (double)Math.round(O3_8hList_daliy.stream().mapToDouble(aDouble -> aDouble).summaryStatistics().getAverage());
                Double PM2_5Avg_daliy = null;
                Double PM10Avg_daliy = null;
                Double SO2Avg_daliy = null;
                Double NO2Avg_daliy = null;
                Double COAvg_daliy = null;
                Double O3_1hAvg_daliy = null;
                Double O3_8hAvg_daliy = null;
                if (PM2_5List_daliy.size()>0){
                    PM2_5Avg_daliy = (double)Math.round(PM2_5List_daliy.stream().mapToDouble(aDouble -> aDouble).summaryStatistics().getAverage());
                }
                if (PM10List_daliy.size()>0){
                    PM10Avg_daliy = (double)Math.round(PM10List_daliy.stream().mapToDouble(aDouble -> aDouble).summaryStatistics().getAverage());
                }
                if (SO2List_daliy.size()>0){
                    SO2Avg_daliy = (double)Math.round(SO2List_daliy.stream().mapToDouble(aDouble -> aDouble).summaryStatistics().getAverage());
                }
                if (NO2List_daliy.size()>0){
                    NO2Avg_daliy = (double)Math.round(NO2List_daliy.stream().mapToDouble(aDouble -> aDouble).summaryStatistics().getAverage());
                }
                if (COList_daliy.size()>0){
                    COAvg_daliy = new BigDecimal(COList_daliy.stream().mapToDouble(aDouble -> aDouble).summaryStatistics().getAverage()).setScale(1, BigDecimal.ROUND_HALF_UP).doubleValue();
                }
                if (O3_1hList_daliy.size()>0){
                    O3_1hAvg_daliy = (double)Math.round(O3_1hList_daliy.stream().mapToDouble(aDouble -> aDouble).summaryStatistics().getAverage());
                }
                if (O3_8hList_daliy.size()>0){
                    O3_8hAvg_daliy = (double)Math.round(O3_8hList_daliy.stream().mapToDouble(aDouble -> aDouble).summaryStatistics().getAverage());
                }
                hour_AVG.put("a34004_"+govMonitorPointId,PM2_5Avg_daliy);
                hour_AVG.put("a34002_"+govMonitorPointId,PM10Avg_daliy);
                hour_AVG.put("a21026_"+govMonitorPointId,SO2Avg_daliy);
@@ -438,9 +493,9 @@
                if (!ObjectUtils.isEmpty(PM2_5)){
                    AQIMap.put("a05024",O3_1h);
                }
                Map<String,Object> AQIResultMap = new HashMap<>();
                AQI aqi = new AQI();
                if (AQIMap.size()!=0){
                    AQIResultMap = AQIUtils.hourlyAqi_pollutant(AQIMap);
                    aqi = AQIUtils.hourlyAQI(AQIMap);
                }
                Map<String,Object> avgMap = new HashMap<>();
                avgMap.put("a34004_"+"0",PM2_5);
@@ -450,19 +505,19 @@
                avgMap.put("a21005_"+"0",CO);
                avgMap.put("a05024_"+"0",O3_1h);
                avgMap.put("O3_8h_"+"0",O3_8h);
                if (!ObjectUtils.isEmpty(AQIResultMap.get("aqi"))){
                    avgMap.put("aqi",AQIResultMap.get("aqi"));
                if (!ObjectUtils.isEmpty(aqi.getAQIValue())){
                    avgMap.put("aqi",aqi.getAQIValue());
                }else {
                    avgMap.put("aqi","");
                }
                if (!ObjectUtils.isEmpty(AQIResultMap.get("pollutant"))){
                    if (Integer.parseInt(AQIResultMap.get("aqi").toString())>50){
                        String pollutant = AQIResultMap.get("pollutant").toString();
                if (!ObjectUtils.isEmpty(aqi.getPrimaryPollutantNames())){
                    if (Integer.parseInt(aqi.getAQIValue().toString())>50){
                        String pollutant = aqi.getPrimaryPollutantNames().toString();
                        pollutant = pollutant.replace("[","");
                        pollutant = pollutant.replace("]","");
                        avgMap.put("pollutant",pollutant);
                    }else {
                        avgMap.put("pollutant","");
                        avgMap.put("pollutant","-");
                    }
                }else {
                    avgMap.put("aqi","");
@@ -546,7 +601,7 @@
            hour_22.put("time","22时");
            hour_23.put("time","23时");
            hour_24.put("time","0时");
            hour_AVG.put("time","avg");
            hour_AVG.put("time","均值");
            data.add(hour_1);
            data.add(hour_2);
            data.add(hour_3);
@@ -574,6 +629,7 @@
            data.add(hour_AVG);
            resultMap.put("title",date+"月报");
            resultMap.put("data",data);
            govMonitorPointList.add(govMonitorPoint_avg);
            resultMap.put("govMonitorPoint",govMonitorPointList);
            return resultMap;
        }catch (Exception e){