| | |
| | | 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; |
| | |
| | | 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<>(); |
| | |
| | | } |
| | | } |
| | | } |
| | | 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); |
| | |
| | | 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()){ |
| | |
| | | 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){ |
| | |
| | | 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); |
| | |
| | | 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); |
| | |
| | | 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",""); |
| | |
| | | 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); |
| | |
| | | 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){ |