|  |  |  | 
|---|
|  |  |  | ParameterUtils.getTimeType4Time(parameters); | 
|---|
|  |  |  | String time1 = (String) parameters.get("time"); | 
|---|
|  |  |  | time1 = time1.replaceAll(" ", ""); | 
|---|
|  |  |  | parameters.put("time",time1); | 
|---|
|  |  |  | parameters.put("time", time1); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | String mac1 = (String) parameters.get("mac"); | 
|---|
|  |  |  | List<Map<String, Object>> list = null; | 
|---|
|  |  |  | 
|---|
|  |  |  | parameters.put("sensors", Arrays.asList(sensorKey)); | 
|---|
|  |  |  | // monitorPointService.isCompensateCalculation(parameters); | 
|---|
|  |  |  | list = historyMinutelyService.getMonitorPointOrDeviceAvgData(parameters); | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /* 0点的数据是昨天11点到今天0点的,界面显示1-24点的,所以不需要0点的数据,但需要单独查询24点的数据 | 
|---|
|  |  |  | 因为改动以前24点的数据是23-24,现在24点的数据是第二天0点的数据, | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | /*改动范围start-------------------------------------------------------------------------*/ | 
|---|
|  |  |  | list.remove(0); | 
|---|
|  |  |  | //if (list.size() == 23) { | 
|---|
|  |  |  | SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); | 
|---|
|  |  |  | SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd"); | 
|---|
|  |  |  | //获取全格式时间yyyy-MM-dd HH:mm:ss | 
|---|
|  |  |  | time1 = time1 + " 00:00:00"; | 
|---|
|  |  |  | Date date = sdf.parse(time1); | 
|---|
|  |  |  | date = DateUtil.rollDay(date, 1); | 
|---|
|  |  |  | //将全格式时间截取 | 
|---|
|  |  |  | String time2 = sdf2.format(date); | 
|---|
|  |  |  | parameters.put("time", time2); | 
|---|
|  |  |  | /*查询第二天0点的数据,以24点的形式存进集合中*/ | 
|---|
|  |  |  | List<Map<String, Object>> nextDayList = historyMinutelyService.getMonitorPointOrDeviceAvgData(parameters); | 
|---|
|  |  |  | if(!ObjectUtils.isEmpty(nextDayList)){ | 
|---|
|  |  |  | time1=time1.replaceAll(" 00:00:00"," 24"); | 
|---|
|  |  |  | Map<String, Object> datas = nextDayList.get(0); | 
|---|
|  |  |  | datas.put("time",time1); | 
|---|
|  |  |  | list.add(datas); | 
|---|
|  |  |  | Iterator<Map<String, Object>> iterator = list.iterator(); | 
|---|
|  |  |  | while (iterator.hasNext()) { | 
|---|
|  |  |  | Map<String, Object> next = iterator.next(); | 
|---|
|  |  |  | String hour = next.get("time").toString().substring(11, 13); | 
|---|
|  |  |  | if ("00".equals(hour)) { | 
|---|
|  |  |  | iterator.remove(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //} | 
|---|
|  |  |  | } | 
|---|
|  |  |  | SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); | 
|---|
|  |  |  | SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd"); | 
|---|
|  |  |  | //获取全格式时间yyyy-MM-dd HH:mm:ss | 
|---|
|  |  |  | time1 = time1 + " 00:00:00"; | 
|---|
|  |  |  | Date date = sdf.parse(time1); | 
|---|
|  |  |  | date = DateUtil.rollDay(date, 1); | 
|---|
|  |  |  | //将全格式时间截取 | 
|---|
|  |  |  | String time2 = sdf2.format(date); | 
|---|
|  |  |  | parameters.put("time", time2); | 
|---|
|  |  |  | /*查询第二天0点的数据,以24点的形式存进集合中*/ | 
|---|
|  |  |  | List<Map<String, Object>> nextDayList = historyMinutelyService.getMonitorPointOrDeviceAvgData(parameters); | 
|---|
|  |  |  | if (!ObjectUtils.isEmpty(nextDayList)) { | 
|---|
|  |  |  | time1 = time1.replaceAll(" 00:00:00", " 24"); | 
|---|
|  |  |  | for (Map<String, Object> map : nextDayList) { | 
|---|
|  |  |  | String time = map.get("time").toString().substring(11, 13); | 
|---|
|  |  |  | if("00".equals(time)){ | 
|---|
|  |  |  | map.put("time", time1); | 
|---|
|  |  |  | list.add(map); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | /*改动范围end-------------------------------------------------------------------------*/ | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); | 
|---|
|  |  |  | LocalDateTime timeLocalDateTime = LocalDateTime.parse(time, dateTimeFormatter); | 
|---|
|  |  |  | int month = timeLocalDateTime.getMonth().getValue(); | 
|---|
|  |  |  | parameters.put("yearAndDay",yearAndDay); | 
|---|
|  |  |  | parameters.put("yearAndDay", yearAndDay); | 
|---|
|  |  |  | Point dirPoint = historyHourlyService.getDirPoint(parameters); | 
|---|
|  |  |  | Map<String, Object> getPollutionSourceData = historyHourlyService.getPollutionSourceDataByHour(parameters); | 
|---|
|  |  |  | if (MapUtils.isEmpty(getPollutionSourceData)) { | 
|---|
|  |  |  | 
|---|
|  |  |  | @ApiImplicitParam(name = "time", value = "时间(格式:2020-03-19)", required = true, paramType = "query", dataType = "String")}) | 
|---|
|  |  |  | public ResultBean<List<Map<String, Object>>> getWeatherNextDayDataByRegion(HttpServletRequest request) throws Exception { | 
|---|
|  |  |  | Map<String, Object> parameters = getParametersStartingWith(request, null); | 
|---|
|  |  |  | List<String> sensorKeys=new ArrayList<>(); | 
|---|
|  |  |  | List<String> sensorKeys = new ArrayList<>(); | 
|---|
|  |  |  | sensorKeys.add("e15"); | 
|---|
|  |  |  | parameters.put("sensorKeys",sensorKeys); | 
|---|
|  |  |  | parameters.put("sensorKeys", sensorKeys); | 
|---|
|  |  |  | List<Map<String, Object>> resultList = weatherService.getForecastAndReal(parameters); | 
|---|
|  |  |  | return new ResultBean<List<Map<String, Object>>>(resultList); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | @ApiImplicitParam(name = "time", value = "时间(格式:2020-03-19)", required = true, paramType = "query", dataType = "String")}) | 
|---|
|  |  |  | public ResultBean<List<Map<String, Object>>> getForecastAndRealPM(HttpServletRequest request) throws Exception { | 
|---|
|  |  |  | Map<String, Object> parameters = getParametersStartingWith(request, null); | 
|---|
|  |  |  | List<String> sensorKeys=new ArrayList<>(); | 
|---|
|  |  |  | List<String> sensorKeys = new ArrayList<>(); | 
|---|
|  |  |  | sensorKeys.add("e1"); | 
|---|
|  |  |  | sensorKeys.add("e2"); | 
|---|
|  |  |  | parameters.put("sensorKeys",sensorKeys); | 
|---|
|  |  |  | parameters.put("sensorKeys", sensorKeys); | 
|---|
|  |  |  | List<Map<String, Object>> resultList = weatherService.getForecastAndReal(parameters); | 
|---|
|  |  |  | return new ResultBean<List<Map<String, Object>>>(resultList); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | }*/ | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @PostMapping("insertAdjustValue") | 
|---|
|  |  |  | public  int insertAdjustValue(@RequestBody HashMap map){ | 
|---|
|  |  |  | try{ | 
|---|
|  |  |  | public int insertAdjustValue(@RequestBody HashMap map) { | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | int device_id = Integer.parseInt(map.get("id").toString()); | 
|---|
|  |  |  | String time = map.get("time").toString(); | 
|---|
|  |  |  | String[] arr = time.split(":"); | 
|---|
|  |  |  | int seconds = Integer.parseInt(arr[0])*3600+Integer.parseInt(arr[1])*60+Integer.parseInt(arr[2]); | 
|---|
|  |  |  | int seconds = Integer.parseInt(arr[0]) * 3600 + Integer.parseInt(arr[1]) * 60 + Integer.parseInt(arr[2]); | 
|---|
|  |  |  | //String t = URLEncoder.encode(参数,"UTF-8") | 
|---|
|  |  |  | List list = (List) map.get("dataArray"); | 
|---|
|  |  |  | String val=""; | 
|---|
|  |  |  | for (int i = 0; i <list.size() ; i++) { | 
|---|
|  |  |  | if (i==0){ | 
|---|
|  |  |  | val=val+list.get(i); | 
|---|
|  |  |  | }else { | 
|---|
|  |  |  | val=val+","+list.get(i); | 
|---|
|  |  |  | String val = ""; | 
|---|
|  |  |  | for (int i = 0; i < list.size(); i++) { | 
|---|
|  |  |  | if (i == 0) { | 
|---|
|  |  |  | val = val + list.get(i); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | val = val + "," + list.get(i); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | String value = "{"+val+"}"; | 
|---|
|  |  |  | deviceAdjustValueTimingService.insertData(device_id,seconds,value); | 
|---|
|  |  |  | String value = "{" + val + "}"; | 
|---|
|  |  |  | deviceAdjustValueTimingService.insertData(device_id, seconds, value); | 
|---|
|  |  |  | return 1; | 
|---|
|  |  |  | }catch (Exception e){ | 
|---|
|  |  |  | } catch (Exception e) { | 
|---|
|  |  |  | log.warn(e); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return 0; | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @RequestMapping("/biaozhun") | 
|---|
|  |  |  | @ResponseBody | 
|---|
|  |  |  | public List<Device> queryDevice(String macOrName){ | 
|---|
|  |  |  | public List<Device> queryDevice(String macOrName) { | 
|---|
|  |  |  | List<Device> deviceList = new ArrayList<>(); | 
|---|
|  |  |  | if (!macOrName.equals("")){ | 
|---|
|  |  |  | deviceList= deviceService.getDevice(macOrName); | 
|---|
|  |  |  | if (!macOrName.equals("")) { | 
|---|
|  |  |  | deviceList = deviceService.getDevice(macOrName); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return deviceList; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @RequestMapping("/getBiaoZhun") | 
|---|
|  |  |  | @ResponseBody | 
|---|
|  |  |  | public List<DeviceAdjustValueTiming> getBiaoZhun(String id){ | 
|---|
|  |  |  | public List<DeviceAdjustValueTiming> getBiaoZhun(String id) { | 
|---|
|  |  |  | List<DeviceAdjustValueTiming> dataByDeviceid = deviceAdjustValueTimingService.getDataByDeviceid(Integer.parseInt(id)); | 
|---|
|  |  |  | for (DeviceAdjustValueTiming deviceAdjustValueTiming : dataByDeviceid) { | 
|---|
|  |  |  | int seconds = Integer.parseInt(deviceAdjustValueTiming.getSeconds()); | 
|---|
|  |  |  | String hour = String.valueOf(seconds/3600); | 
|---|
|  |  |  | int millAndSeconds = seconds%3600; | 
|---|
|  |  |  | String mill = String.valueOf(millAndSeconds/60); | 
|---|
|  |  |  | String second = String.valueOf(millAndSeconds%60); | 
|---|
|  |  |  | if (hour.length()<2){ | 
|---|
|  |  |  | hour="0"+hour; | 
|---|
|  |  |  | String hour = String.valueOf(seconds / 3600); | 
|---|
|  |  |  | int millAndSeconds = seconds % 3600; | 
|---|
|  |  |  | String mill = String.valueOf(millAndSeconds / 60); | 
|---|
|  |  |  | String second = String.valueOf(millAndSeconds % 60); | 
|---|
|  |  |  | if (hour.length() < 2) { | 
|---|
|  |  |  | hour = "0" + hour; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (mill.length()<2){ | 
|---|
|  |  |  | mill="0"+mill; | 
|---|
|  |  |  | if (mill.length() < 2) { | 
|---|
|  |  |  | mill = "0" + mill; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (second.length()<2){ | 
|---|
|  |  |  | second="0"+second; | 
|---|
|  |  |  | if (second.length() < 2) { | 
|---|
|  |  |  | second = "0" + second; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | String time = hour+":"+mill+":"+second; | 
|---|
|  |  |  | String time = hour + ":" + mill + ":" + second; | 
|---|
|  |  |  | Map<String, String> value = deviceAdjustValueTiming.getValue(); | 
|---|
|  |  |  | Collection<String> values = value.values(); | 
|---|
|  |  |  | deviceAdjustValueTiming.setSeconds(time); | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @RequestMapping("/getSensor") | 
|---|
|  |  |  | @ResponseBody | 
|---|
|  |  |  | public  List<Map<String, Object>> getSensor(String id){ | 
|---|
|  |  |  | public List<Map<String, Object>> getSensor(String id) { | 
|---|
|  |  |  | List<Map<String, Object>> allSensors = sensorService.getSensorByDeviceId(id); | 
|---|
|  |  |  | return allSensors; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @RequestMapping("/deleteBiaoZhun") | 
|---|
|  |  |  | @ResponseBody | 
|---|
|  |  |  | public int deleteBiaoZhun(String id){ | 
|---|
|  |  |  | int i= deviceAdjustValueTimingService.delete(id); | 
|---|
|  |  |  | public int deleteBiaoZhun(String id) { | 
|---|
|  |  |  | int i = deviceAdjustValueTimingService.delete(id); | 
|---|
|  |  |  | return i; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | @ApiImplicitParams(value = { | 
|---|
|  |  |  | @ApiImplicitParam(name = "monitorPointIds", value = "多个monitorid", required = true, paramType = "query", dataType = "String"), | 
|---|
|  |  |  | @ApiImplicitParam(name = "time", value = "时间(格式:2020-03-19)", required = true, paramType = "query", dataType = "String")}) | 
|---|
|  |  |  | public ResultBean<List<Map<String,Object>>> monitorAVGData(HttpServletRequest request) throws Exception { | 
|---|
|  |  |  | public ResultBean<List<Map<String, Object>>> monitorAVGData(HttpServletRequest request) throws Exception { | 
|---|
|  |  |  | Map<String, Object> parameters = getParametersStartingWith(request, null); | 
|---|
|  |  |  | String monitorPointIds = (String) parameters.get("monitorPointIds"); | 
|---|
|  |  |  | String time = (String) parameters.get("time"); | 
|---|
|  |  |  | time = time+" 00:00:00"; | 
|---|
|  |  |  | time = time + " 00:00:00"; | 
|---|
|  |  |  | SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd mm:HH:ss");//注意月份是MM | 
|---|
|  |  |  | Date date = simpleDateFormat.parse(time); | 
|---|
|  |  |  | Calendar calendar = new GregorianCalendar(); | 
|---|
|  |  |  | calendar.setTime(date); | 
|---|
|  |  |  | calendar.add(calendar.DATE,+1); | 
|---|
|  |  |  | String date1= simpleDateFormat.format(date); | 
|---|
|  |  |  | String date2= simpleDateFormat.format(calendar.getTime()); | 
|---|
|  |  |  | calendar.add(calendar.DATE, +1); | 
|---|
|  |  |  | String date1 = simpleDateFormat.format(date); | 
|---|
|  |  |  | String date2 = simpleDateFormat.format(calendar.getTime()); | 
|---|
|  |  |  | String[] mIds = monitorPointIds.split(","); | 
|---|
|  |  |  | List<List<Map<String,Object>>> lists = new ArrayList<>(); | 
|---|
|  |  |  | if (mIds.length==1 && mIds.length!=0){ | 
|---|
|  |  |  | List<List<Map<String, Object>>> lists = new ArrayList<>(); | 
|---|
|  |  |  | if (mIds.length == 1 && mIds.length != 0) { | 
|---|
|  |  |  | String mId = mIds[0]; | 
|---|
|  |  |  | List<Map<String,Object>> dataAvbByMIdAndTime = historyHourlyService.getDataAvbByMIdAndTime(mId, date1, date2); | 
|---|
|  |  |  | List<Map<String, Object>> dataAvbByMIdAndTime = historyHourlyService.getDataAvbByMIdAndTime(mId, date1, date2); | 
|---|
|  |  |  | Double maxO3 = Double.parseDouble(dataAvbByMIdAndTime.get(dataAvbByMIdAndTime.size() - 1).get("maxO3").toString()); | 
|---|
|  |  |  | Map<String,Object> dailyAvgData =new HashMap<>(); | 
|---|
|  |  |  | if (dataAvbByMIdAndTime.get(dataAvbByMIdAndTime.size() - 2).get("data")!=""){ | 
|---|
|  |  |  | Map<String, Object> dailyAvgData = new HashMap<>(); | 
|---|
|  |  |  | if (dataAvbByMIdAndTime.get(dataAvbByMIdAndTime.size() - 2).get("data") != "") { | 
|---|
|  |  |  | dailyAvgData = (Map<String, Object>) dataAvbByMIdAndTime.get(dataAvbByMIdAndTime.size() - 2).get("data"); | 
|---|
|  |  |  | dailyAvgData.put("maxO3_8h",new BigDecimal(maxO3).setScale(0,BigDecimal.ROUND_HALF_UP).doubleValue()); | 
|---|
|  |  |  | }else { | 
|---|
|  |  |  | dailyAvgData= historyHourlyService.getAvgDataByMId(mId, date1, date2); | 
|---|
|  |  |  | if (dailyAvgData!=null){ | 
|---|
|  |  |  | dailyAvgData.put("maxO3_8h",new BigDecimal(maxO3).setScale(0,BigDecimal.ROUND_HALF_UP).doubleValue()); | 
|---|
|  |  |  | }else { | 
|---|
|  |  |  | dailyAvgData.put("maxO3_8h", new BigDecimal(maxO3).setScale(0, BigDecimal.ROUND_HALF_UP).doubleValue()); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | dailyAvgData = historyHourlyService.getAvgDataByMId(mId, date1, date2); | 
|---|
|  |  |  | if (dailyAvgData != null) { | 
|---|
|  |  |  | dailyAvgData.put("maxO3_8h", new BigDecimal(maxO3).setScale(0, BigDecimal.ROUND_HALF_UP).doubleValue()); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | dailyAvgData = new HashMap<>(); | 
|---|
|  |  |  | dailyAvgData.put("PM2_5",""); | 
|---|
|  |  |  | dailyAvgData.put("NO2",""); | 
|---|
|  |  |  | dailyAvgData.put("SO2",""); | 
|---|
|  |  |  | dailyAvgData.put("PM10",""); | 
|---|
|  |  |  | dailyAvgData.put("O3_day",""); | 
|---|
|  |  |  | dailyAvgData.put("CO",""); | 
|---|
|  |  |  | dailyAvgData.put("PM2_5", ""); | 
|---|
|  |  |  | dailyAvgData.put("NO2", ""); | 
|---|
|  |  |  | dailyAvgData.put("SO2", ""); | 
|---|
|  |  |  | dailyAvgData.put("PM10", ""); | 
|---|
|  |  |  | dailyAvgData.put("O3_day", ""); | 
|---|
|  |  |  | dailyAvgData.put("CO", ""); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | dataAvbByMIdAndTime.remove(dataAvbByMIdAndTime.size() - 1); | 
|---|
|  |  |  | dataAvbByMIdAndTime.remove(dataAvbByMIdAndTime.size() - 1); | 
|---|
|  |  |  | Map<String,Object> dayMap = new HashMap<>(); | 
|---|
|  |  |  | dayMap.put("data",dailyAvgData); | 
|---|
|  |  |  | dayMap.put("time",date1.substring(0,11)); | 
|---|
|  |  |  | Map<String, Object> dayMap = new HashMap<>(); | 
|---|
|  |  |  | dayMap.put("data", dailyAvgData); | 
|---|
|  |  |  | dayMap.put("time", date1.substring(0, 11)); | 
|---|
|  |  |  | dataAvbByMIdAndTime.add(dayMap); | 
|---|
|  |  |  | for (int i = 0; i <dataAvbByMIdAndTime.size() ; i++) { | 
|---|
|  |  |  | if (i!=dataAvbByMIdAndTime.size()-1){ | 
|---|
|  |  |  | for (int i = 0; i < dataAvbByMIdAndTime.size(); i++) { | 
|---|
|  |  |  | if (i != dataAvbByMIdAndTime.size() - 1) { | 
|---|
|  |  |  | Map<String, Object> map1 = AQICalculation2.hourlyAQI((Map<String, Object>) dataAvbByMIdAndTime.get(i).get("data")); | 
|---|
|  |  |  | if (Double.parseDouble(map1.get("AQI").toString())>50.0){ | 
|---|
|  |  |  | ((Map<String, Object>) dataAvbByMIdAndTime.get(i).get("data")).put("primary_pollutants",map1.get("maxSensor")); | 
|---|
|  |  |  | ((Map<String, Object>) dataAvbByMIdAndTime.get(i).get("data")).put("AQI",map1.get("AQI")); | 
|---|
|  |  |  | }else { | 
|---|
|  |  |  | ((Map<String, Object>) dataAvbByMIdAndTime.get(i).get("data")).put("primary_pollutants","-"); | 
|---|
|  |  |  | ((Map<String, Object>) dataAvbByMIdAndTime.get(i).get("data")).put("AQI",map1.get("AQI")); | 
|---|
|  |  |  | if (Double.parseDouble(map1.get("AQI").toString()) > 50.0) { | 
|---|
|  |  |  | ((Map<String, Object>) dataAvbByMIdAndTime.get(i).get("data")).put("primary_pollutants", map1.get("maxSensor")); | 
|---|
|  |  |  | ((Map<String, Object>) dataAvbByMIdAndTime.get(i).get("data")).put("AQI", map1.get("AQI")); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | ((Map<String, Object>) dataAvbByMIdAndTime.get(i).get("data")).put("primary_pollutants", "-"); | 
|---|
|  |  |  | ((Map<String, Object>) dataAvbByMIdAndTime.get(i).get("data")).put("AQI", map1.get("AQI")); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }else { | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | Map<String, Object> map1 = AQICalculation2.dayAQI((Map<String, Object>) dataAvbByMIdAndTime.get(i).get("data")); | 
|---|
|  |  |  | if (map1.get("AQI").toString().equals("")){ | 
|---|
|  |  |  | if (map1.get("AQI").toString().equals("")) { | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (Double.parseDouble(map1.get("AQI").toString())>50.0){ | 
|---|
|  |  |  | ((Map<String, Object>) dataAvbByMIdAndTime.get(i).get("data")).put("primary_pollutants",map1.get("maxSensor")); | 
|---|
|  |  |  | ((Map<String, Object>) dataAvbByMIdAndTime.get(i).get("data")).put("AQI",map1.get("AQI")); | 
|---|
|  |  |  | }else { | 
|---|
|  |  |  | ((Map<String, Object>) dataAvbByMIdAndTime.get(i).get("data")).put("primary_pollutants","-"); | 
|---|
|  |  |  | ((Map<String, Object>) dataAvbByMIdAndTime.get(i).get("data")).put("AQI",map1.get("AQI")); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (Double.parseDouble(map1.get("AQI").toString()) > 50.0) { | 
|---|
|  |  |  | ((Map<String, Object>) dataAvbByMIdAndTime.get(i).get("data")).put("primary_pollutants", map1.get("maxSensor")); | 
|---|
|  |  |  | ((Map<String, Object>) dataAvbByMIdAndTime.get(i).get("data")).put("AQI", map1.get("AQI")); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | ((Map<String, Object>) dataAvbByMIdAndTime.get(i).get("data")).put("primary_pollutants", "-"); | 
|---|
|  |  |  | ((Map<String, Object>) dataAvbByMIdAndTime.get(i).get("data")).put("AQI", map1.get("AQI")); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | List timeList = new ArrayList(); | 
|---|
|  |  |  | for (int q = 0; q < dataAvbByMIdAndTime.size(); q++) { | 
|---|
|  |  |  | timeList.add(dataAvbByMIdAndTime.get(q).get("time")); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (dataAvbByMIdAndTime.size()<25){ | 
|---|
|  |  |  | if (dataAvbByMIdAndTime.size() < 25) { | 
|---|
|  |  |  | for (int j = 1; j < 25; j++) { | 
|---|
|  |  |  | Map<String,Object> map = null; | 
|---|
|  |  |  | Map<String, Object> map = null; | 
|---|
|  |  |  | for (int q = 0; q < dataAvbByMIdAndTime.size(); q++) { | 
|---|
|  |  |  | if (dataAvbByMIdAndTime.get(q).get("time").toString().length() > 2){ | 
|---|
|  |  |  | if (dataAvbByMIdAndTime.get(q).get("time").toString().length() > 2) { | 
|---|
|  |  |  | continue; | 
|---|
|  |  |  | }else { | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | // System.out.println(Integer.parseInt(dataAvbByMIdAndTime.get(q).get("time").toString())+"==="+j); | 
|---|
|  |  |  | String sj=""; | 
|---|
|  |  |  | if (j<10){ | 
|---|
|  |  |  | sj="0"+j; | 
|---|
|  |  |  | }else { | 
|---|
|  |  |  | if (j==24){ | 
|---|
|  |  |  | sj="00"; | 
|---|
|  |  |  | }else { | 
|---|
|  |  |  | sj=""+j; | 
|---|
|  |  |  | String sj = ""; | 
|---|
|  |  |  | if (j < 10) { | 
|---|
|  |  |  | sj = "0" + j; | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | if (j == 24) { | 
|---|
|  |  |  | sj = "00"; | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | sj = "" + j; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (!timeList.contains(sj)){ | 
|---|
|  |  |  | if (!timeList.contains(sj)) { | 
|---|
|  |  |  | map = new HashMap<>(); | 
|---|
|  |  |  | map.put("time",sj); | 
|---|
|  |  |  | map.put("time", sj); | 
|---|
|  |  |  | 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); | 
|---|
|  |  |  | 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); | 
|---|
|  |  |  | dataAvbByMIdAndTime.add(map); | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | }else { | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | /* for (int i1 = 0; i1 < dataAvbByMIdAndTime.size(); i1++) { | 
|---|
|  |  |  | System.out.println(dataAvbByMIdAndTime.get(i1)); | 
|---|
|  |  |  | }*/ | 
|---|
|  |  |  | Collections.sort(dataAvbByMIdAndTime, new Comparator<Map<String, Object>>(){ | 
|---|
|  |  |  | Collections.sort(dataAvbByMIdAndTime, new Comparator<Map<String, Object>>() { | 
|---|
|  |  |  | public int compare(Map<String, Object> o1, Map<String, Object> o2) { | 
|---|
|  |  |  | String name1 =(String)o1.get("time");//name1是从你list里面拿出来的一个 | 
|---|
|  |  |  | String name2= (String)o2.get("time"); //name1是从你list里面拿出来的第二个name | 
|---|
|  |  |  | String name1 = (String) o1.get("time");//name1是从你list里面拿出来的一个 | 
|---|
|  |  |  | String name2 = (String) o2.get("time"); //name1是从你list里面拿出来的第二个name | 
|---|
|  |  |  | return name1.compareTo(name2); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | Map map1 = dataAvbByMIdAndTime.get(0); | 
|---|
|  |  |  | dataAvbByMIdAndTime.remove(0); | 
|---|
|  |  |  | dataAvbByMIdAndTime.add(map1); | 
|---|
|  |  |  | for (int j = 0; j <dataAvbByMIdAndTime.size() ; j++) { | 
|---|
|  |  |  | if (dataAvbByMIdAndTime.get(j).get("time").toString().length()>2){ | 
|---|
|  |  |  | for (int j = 0; j < dataAvbByMIdAndTime.size(); j++) { | 
|---|
|  |  |  | if (dataAvbByMIdAndTime.get(j).get("time").toString().length() > 2) { | 
|---|
|  |  |  | Map map2 = dataAvbByMIdAndTime.get(j); | 
|---|
|  |  |  | dataAvbByMIdAndTime.remove(j); | 
|---|
|  |  |  | dataAvbByMIdAndTime.add(map2); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (dataAvbByMIdAndTime.size()==1){ | 
|---|
|  |  |  | dataAvbByMIdAndTime=null; | 
|---|
|  |  |  | if (dataAvbByMIdAndTime.size() == 1) { | 
|---|
|  |  |  | dataAvbByMIdAndTime = null; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | lists.add(dataAvbByMIdAndTime); | 
|---|
|  |  |  | //List<Device> devicesByMonitorPointId = deviceService.getDevicesByMonitorPointId(Integer.valueOf(mId)); | 
|---|
|  |  |  | }else { | 
|---|
|  |  |  | for (int i = 0; i <mIds.length ; i++) { | 
|---|
|  |  |  | List<Map<String,Object>> dataAvbByMIdAndTime = historyHourlyService.getDataAvbByMIdAndTime(mIds[i], date1, date2); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | for (int i = 0; i < mIds.length; i++) { | 
|---|
|  |  |  | List<Map<String, Object>> dataAvbByMIdAndTime = historyHourlyService.getDataAvbByMIdAndTime(mIds[i], date1, date2); | 
|---|
|  |  |  | Double maxO3 = Double.parseDouble(dataAvbByMIdAndTime.get(dataAvbByMIdAndTime.size() - 1).get("maxO3").toString()); | 
|---|
|  |  |  | Map<String,Object> dailyAvgData =new HashMap<>(); | 
|---|
|  |  |  | if (dataAvbByMIdAndTime.get(dataAvbByMIdAndTime.size() - 2).get("data")!=""){ | 
|---|
|  |  |  | Map<String, Object> dailyAvgData = new HashMap<>(); | 
|---|
|  |  |  | if (dataAvbByMIdAndTime.get(dataAvbByMIdAndTime.size() - 2).get("data") != "") { | 
|---|
|  |  |  | dailyAvgData = (Map<String, Object>) dataAvbByMIdAndTime.get(dataAvbByMIdAndTime.size() - 2).get("data"); | 
|---|
|  |  |  | dailyAvgData.put("maxO3_8h",new BigDecimal(maxO3).setScale(0,BigDecimal.ROUND_HALF_UP).doubleValue()); | 
|---|
|  |  |  | }else { | 
|---|
|  |  |  | dailyAvgData= historyHourlyService.getAvgDataByMId(mIds[i], date1, date2); | 
|---|
|  |  |  | if (dailyAvgData!=null){ | 
|---|
|  |  |  | dailyAvgData.put("maxO3_8h",new BigDecimal(maxO3).setScale(0,BigDecimal.ROUND_HALF_UP).doubleValue()); | 
|---|
|  |  |  | }else { | 
|---|
|  |  |  | dailyAvgData.put("maxO3_8h", new BigDecimal(maxO3).setScale(0, BigDecimal.ROUND_HALF_UP).doubleValue()); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | dailyAvgData = historyHourlyService.getAvgDataByMId(mIds[i], date1, date2); | 
|---|
|  |  |  | if (dailyAvgData != null) { | 
|---|
|  |  |  | dailyAvgData.put("maxO3_8h", new BigDecimal(maxO3).setScale(0, BigDecimal.ROUND_HALF_UP).doubleValue()); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | dailyAvgData = new HashMap<>(); | 
|---|
|  |  |  | dailyAvgData.put("PM2_5",""); | 
|---|
|  |  |  | dailyAvgData.put("NO2",""); | 
|---|
|  |  |  | dailyAvgData.put("SO2",""); | 
|---|
|  |  |  | dailyAvgData.put("PM10",""); | 
|---|
|  |  |  | dailyAvgData.put("O3_day",""); | 
|---|
|  |  |  | dailyAvgData.put("CO",""); | 
|---|
|  |  |  | dailyAvgData.put("PM2_5", ""); | 
|---|
|  |  |  | dailyAvgData.put("NO2", ""); | 
|---|
|  |  |  | dailyAvgData.put("SO2", ""); | 
|---|
|  |  |  | dailyAvgData.put("PM10", ""); | 
|---|
|  |  |  | dailyAvgData.put("O3_day", ""); | 
|---|
|  |  |  | dailyAvgData.put("CO", ""); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | dataAvbByMIdAndTime.remove(dataAvbByMIdAndTime.size() - 1); | 
|---|
|  |  |  | dataAvbByMIdAndTime.remove(dataAvbByMIdAndTime.size() - 1); | 
|---|
|  |  |  | Map<String,Object> dayMap = new HashMap<>(); | 
|---|
|  |  |  | dayMap.put("data",dailyAvgData); | 
|---|
|  |  |  | dayMap.put("time",date1.substring(0,11)); | 
|---|
|  |  |  | Map<String, Object> dayMap = new HashMap<>(); | 
|---|
|  |  |  | dayMap.put("data", dailyAvgData); | 
|---|
|  |  |  | dayMap.put("time", date1.substring(0, 11)); | 
|---|
|  |  |  | dataAvbByMIdAndTime.add(dayMap); | 
|---|
|  |  |  | List timeList = new ArrayList(); | 
|---|
|  |  |  | for (int q = 0; q < dataAvbByMIdAndTime.size(); q++) { | 
|---|
|  |  |  | timeList.add(dataAvbByMIdAndTime.get(q).get("time")); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (dataAvbByMIdAndTime.size()<25){ | 
|---|
|  |  |  | if (dataAvbByMIdAndTime.size() < 25) { | 
|---|
|  |  |  | for (int j = 1; j < 25; j++) { | 
|---|
|  |  |  | Map<String,Object> map = null; | 
|---|
|  |  |  | Map<String, Object> map = null; | 
|---|
|  |  |  | for (int q = 0; q < dataAvbByMIdAndTime.size(); q++) { | 
|---|
|  |  |  | if (dataAvbByMIdAndTime.get(q).get("time").toString().length() > 2){ | 
|---|
|  |  |  | if (dataAvbByMIdAndTime.get(q).get("time").toString().length() > 2) { | 
|---|
|  |  |  | continue; | 
|---|
|  |  |  | }else { | 
|---|
|  |  |  | // System.out.println(Integer.parseInt(dataAvbByMIdAndTime.get(q).get("time").toString())+"==="+j); | 
|---|
|  |  |  | String sj=""; | 
|---|
|  |  |  | if (j<10){ | 
|---|
|  |  |  | sj="0"+j; | 
|---|
|  |  |  | }else { | 
|---|
|  |  |  | if (j==24){ | 
|---|
|  |  |  | sj="00"; | 
|---|
|  |  |  | }else { | 
|---|
|  |  |  | sj=""+j; | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | // System.out.println(Integer.parseInt(dataAvbByMIdAndTime.get(q).get("time").toString())+"==="+j); | 
|---|
|  |  |  | String sj = ""; | 
|---|
|  |  |  | if (j < 10) { | 
|---|
|  |  |  | sj = "0" + j; | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | if (j == 24) { | 
|---|
|  |  |  | sj = "00"; | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | sj = "" + j; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (!timeList.contains(sj)){ | 
|---|
|  |  |  | if (!timeList.contains(sj)) { | 
|---|
|  |  |  | map = new HashMap<>(); | 
|---|
|  |  |  | map.put("time",sj); | 
|---|
|  |  |  | map.put("time", sj); | 
|---|
|  |  |  | Map map1 = new HashMap(); | 
|---|
|  |  |  | map1.put("PM2_5",""); | 
|---|
|  |  |  | map1.put("NO2",""); | 
|---|
|  |  |  | map1.put("SO2",""); | 
|---|
|  |  |  | map1.put("O3",""); | 
|---|
|  |  |  | map1.put("PM10",""); | 
|---|
|  |  |  | map1.put("O3_8h",""); | 
|---|
|  |  |  | map1.put("CO",""); | 
|---|
|  |  |  | map.put("data",map1); | 
|---|
|  |  |  | map1.put("PM2_5", ""); | 
|---|
|  |  |  | map1.put("NO2", ""); | 
|---|
|  |  |  | map1.put("SO2", ""); | 
|---|
|  |  |  | map1.put("O3", ""); | 
|---|
|  |  |  | map1.put("PM10", ""); | 
|---|
|  |  |  | map1.put("O3_8h", ""); | 
|---|
|  |  |  | map1.put("CO", ""); | 
|---|
|  |  |  | map.put("data", map1); | 
|---|
|  |  |  | dataAvbByMIdAndTime.add(map); | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | }else { | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | Collections.sort(dataAvbByMIdAndTime, new Comparator<Map<String, Object>>(){ | 
|---|
|  |  |  | Collections.sort(dataAvbByMIdAndTime, new Comparator<Map<String, Object>>() { | 
|---|
|  |  |  | public int compare(Map<String, Object> o1, Map<String, Object> o2) { | 
|---|
|  |  |  | String name1 =(String)o1.get("time");//name1是从你list里面拿出来的一个 | 
|---|
|  |  |  | String name2= (String)o2.get("time"); //name1是从你list里面拿出来的第二个name | 
|---|
|  |  |  | String name1 = (String) o1.get("time");//name1是从你list里面拿出来的一个 | 
|---|
|  |  |  | String name2 = (String) o2.get("time"); //name1是从你list里面拿出来的第二个name | 
|---|
|  |  |  | return name1.compareTo(name2); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | Map map1 = dataAvbByMIdAndTime.get(0); | 
|---|
|  |  |  | dataAvbByMIdAndTime.remove(0); | 
|---|
|  |  |  | dataAvbByMIdAndTime.add(map1); | 
|---|
|  |  |  | for (int j = 0; j <dataAvbByMIdAndTime.size() ; j++) { | 
|---|
|  |  |  | if (dataAvbByMIdAndTime.get(j).get("time").toString().length()>2){ | 
|---|
|  |  |  | for (int j = 0; j < dataAvbByMIdAndTime.size(); j++) { | 
|---|
|  |  |  | if (dataAvbByMIdAndTime.get(j).get("time").toString().length() > 2) { | 
|---|
|  |  |  | Map map2 = dataAvbByMIdAndTime.get(j); | 
|---|
|  |  |  | dataAvbByMIdAndTime.remove(j); | 
|---|
|  |  |  | dataAvbByMIdAndTime.add(map2); | 
|---|
|  |  |  | 
|---|
|  |  |  | List<Map<String, Object>> dataByMonitorPoints = historyHourlyService.getDataByMonitorPoints(mIds, date1, date2); | 
|---|
|  |  |  | lists.add(dataByMonitorPoints); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | List<Map<String, Object>> rList =new ArrayList<>(); | 
|---|
|  |  |  | if (lists.size()==1 && lists.get(0)!=null){ | 
|---|
|  |  |  | List<Map<String, Object>> rList = new ArrayList<>(); | 
|---|
|  |  |  | if (lists.size() == 1 && lists.get(0) != null) { | 
|---|
|  |  |  | for (int i = 0; i < lists.get(0).size(); i++) { | 
|---|
|  |  |  | List list = new ArrayList(); | 
|---|
|  |  |  | list.add(lists.get(0).get(i).get("data")); | 
|---|
|  |  |  | Map map = new HashMap(); | 
|---|
|  |  |  | map.put("data",list); | 
|---|
|  |  |  | map.put("time",lists.get(0).get(i).get("time")); | 
|---|
|  |  |  | map.put("data", list); | 
|---|
|  |  |  | map.put("time", lists.get(0).get(i).get("time")); | 
|---|
|  |  |  | rList.add(map); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } else if (lists.size()==1 && lists.get(0)==null){ | 
|---|
|  |  |  | } else if (lists.size() == 1 && lists.get(0) == null) { | 
|---|
|  |  |  | rList.add(null); | 
|---|
|  |  |  | }else { | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | for (int j = 0; j < lists.get(0).size(); j++) { | 
|---|
|  |  |  | Map<String, Object> listMap = new HashMap(); | 
|---|
|  |  |  | List<Map> mapList = new ArrayList<>(); | 
|---|
|  |  |  | 
|---|
|  |  |  | rList.add(listMap); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return new ResultBean<List<Map<String,Object>>>(rList); | 
|---|
|  |  |  | return new ResultBean<List<Map<String, Object>>>(rList); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @PostMapping("byAccountGetDevices") | 
|---|