于紫祥_1901
2020-12-24 f28149d8183a62f87fa9c8df9ae589070d83f612
src/main/java/com/moral/service/impl/HistoryHourlyServiceImpl.java
@@ -325,14 +325,14 @@
                    int time1 = Integer.parseInt(mapList1.get(j).get("time").toString()) ;
                    if (time==time1){
                        Double O3_8h = Double.parseDouble(mapList1.get(j).get("O3_8h").toString());
                        dataAvbByMIdAndTime.get(i).put("O3_8h",new BigDecimal(O3_8h).setScale(4,BigDecimal.ROUND_HALF_UP).doubleValue());
                        dataAvbByMIdAndTime.get(i).put("O3_8h",new BigDecimal(O3_8h).setScale(0,BigDecimal.ROUND_HALF_UP).doubleValue());
                    }
                }
            }
        }
      Map<String, Object> dailyAvgData = historyMapper.getDailyAvgData(mId, startTime);
          if (dailyAvgData!=null){
            dailyAvgData.put("maxO3_8h",new BigDecimal(maxO3).setScale(4,BigDecimal.ROUND_HALF_UP).doubleValue());
            dailyAvgData.put("maxO3_8h",new BigDecimal(maxO3).setScale(0,BigDecimal.ROUND_HALF_UP).doubleValue());
        }
        List<Map<String,Object>> finalList = new ArrayList<>();
        for (int i = 0; i <dataAvbByMIdAndTime.size() ; i++) {
@@ -346,13 +346,12 @@
        Map<String,Object> timeAndDate = new HashMap();
        String time = startTime.substring(0,11);
        timeAndDate.put("time",time);
        if (dailyAvgData==null){
        if (dailyAvgData!=null){
            //List<Map<String, Object>> dailyData = historyHourlyMapper.getDataAvbByMIdAndT;
            timeAndDate.put("data","");
        }else {
            timeAndDate.put("data",dailyAvgData);
        }else {
            timeAndDate.put("data","");
        }
        finalList.add(timeAndDate);
        Map<String,Object> map = new HashMap<>();
        map.put("maxO3",maxO3);
@@ -427,7 +426,7 @@
                    int time1 = Integer.parseInt(mapList1.get(j).get("time").toString()) ;
                    if (time==time1){
                        Double O3_8h = Double.parseDouble(mapList1.get(j).get("O3_8h").toString());
                        dataByMonitorPoints.get(i).put("O3_8h",new BigDecimal(O3_8h).setScale(4,BigDecimal.ROUND_HALF_UP).doubleValue());
                        dataByMonitorPoints.get(i).put("O3_8h",new BigDecimal(O3_8h).setScale(0,BigDecimal.ROUND_HALF_UP).doubleValue());
                    }
                }
            }
@@ -445,14 +444,28 @@
        Map<String, Object> dailyAvgData = historyMapper.getDailyAvgDataByMIds(mIds, startTime);
        if (dailyAvgData!=null){
            Map<String,Object> timeAndDate = new HashMap();
            dailyAvgData.put("maxO3_8h",new BigDecimal(maxO3).setScale(4,BigDecimal.ROUND_HALF_UP).doubleValue());
            dailyAvgData.put("maxO3_8h",new BigDecimal(maxO3).setScale(0,BigDecimal.ROUND_HALF_UP).doubleValue());
            timeAndDate.put("data",dailyAvgData);
            timeAndDate.put("time",startTime.substring(0,11));
            finalList.add(timeAndDate);
        }else {
            Map<String, Object> avgDataByMIds = historyHourlyMapper.getAvgDataByMIds(mIds, startTime, endTime);
            Map<String,Object> timeAndDate = new HashMap();
            avgDataByMIds.put("maxO3_8h",new BigDecimal(maxO3).setScale(4,BigDecimal.ROUND_HALF_UP).doubleValue());
            if (avgDataByMIds == null){
                avgDataByMIds = new HashMap<>();
                avgDataByMIds.put("PM2_5","");
                avgDataByMIds.put("NO2","");
                avgDataByMIds.put("primary_pollutants","-");
                avgDataByMIds.put("SO2","");
                avgDataByMIds.put("O3","");
                avgDataByMIds.put("PM10","");
                avgDataByMIds.put("O3_8h","");
                avgDataByMIds.put("CO","");
                avgDataByMIds.put("AQI","");
            }else {
                avgDataByMIds.put("maxO3_8h",maxO3);
            }
            timeAndDate.put("data",avgDataByMIds);
            timeAndDate.put("time",startTime.substring(0,11));
            finalList.add(timeAndDate);
@@ -460,7 +473,7 @@
        for (int i=0;i<finalList.size();i++) {
            if (i!=finalList.size()-1){
                Map<String, Object> map1 = AQICalculation2.hourlyAQI((Map<String, Object>) finalList.get(i).get("data"));
                if (Double.parseDouble(map1.get("AQI").toString())>=50.0){
                if (Double.parseDouble(map1.get("AQI").toString())>50.0){
                    ((Map<String, Object>) finalList.get(i).get("data")).put("primary_pollutants",map1.get("maxSensor"));
                    ((Map<String, Object>) finalList.get(i).get("data")).put("AQI",map1.get("AQI"));
                }else {
@@ -469,6 +482,9 @@
                }
            }else {
                Map<String, Object> map1 = AQICalculation2.dayAQI((Map<String, Object>) finalList.get(i).get("data"));
                if (map1.get("AQI").toString().equals("")){
                    break;
                }
                if (Double.parseDouble(map1.get("AQI").toString())>=50.0){
                    ((Map<String, Object>) finalList.get(i).get("data")).put("primary_pollutants",map1.get("maxSensor"));
                    ((Map<String, Object>) finalList.get(i).get("data")).put("AQI",map1.get("AQI"));
@@ -481,10 +497,74 @@
        Map<String,Object> timeAndDate = new HashMap();
        String time = startTime.substring(0,11);
        timeAndDate.put("time",time);
        if (dailyAvgData==null){
            timeAndDate.put("data","");
        }else {
        if (dailyAvgData!=null){
            timeAndDate.put("data",dailyAvgData);
        }else {
            Map map = new HashMap<>();
            Map map1 = new HashMap();
            map1.put("PM2_5","");
            map1.put("NO2","");
            map1.put("primary_pollutants","-");
            map1.put("SO2","");
            map1.put("O3","");
            map1.put("PM10","");
            map1.put("O3_8h","");
            map1.put("CO","");
            map1.put("AQI","");
            map.put("data",map1);
            timeAndDate.put("data",map);
        }
        List timeList = new ArrayList();
        for (int q = 0; q < finalList.size(); q++) {
            timeList.add(finalList.get(q).get("time"));
        }
        if (finalList.size()<25){
            for (int j = 1; j < 25; j++) {
                Map<String,Object> map = null;
                for (int q = 0; q < finalList.size(); q++) {
                    if (finalList.get(q).get("time").toString().length() > 2){
                        continue;
                    }else {
                        String sj="";
                        if (j<10){
                            sj="0"+j;
                        }else {
                            if (j==24){
                                sj="00";
                            }else {
                                sj=""+j;
                            }
                        }
                        if (!timeList.contains(sj)){
                            map = new HashMap<>();
                            Map map1 = new HashMap();
                            map1.put("PM2_5","");
                            map1.put("NO2","");
                            map1.put("primary_pollutants","");
                            map1.put("SO2","");
                            map1.put("O3","");
                            map1.put("PM10","");
                            map1.put("O3_8h","");
                            map1.put("CO","");
                            map1.put("AQI","");
                            map.put("time",sj);
                            map.put("data",map1);
                            finalList.add(map);
                            break;
                        }else {
                            break;
                        }
                    }
                }
            }
        }
        for (int j = 0; j <finalList.size() ; j++) {
            if (finalList.get(j).get("time").toString().length()>2){
                Map map2 = finalList.get(j);
                finalList.remove(j);
                finalList.add(map2);
            }
        }
        return finalList;
    }