| | |
| | | |
| | | @Resource |
| | | private MonitorPointMapper monitorPointMapper; |
| | | @Resource |
| | | HistoryFiveMinutelyMapper historyFiveMinutelyMapper; |
| | | |
| | | @Override |
| | | public List<Map<String, Object>> getFiveMinutesDataByMacsAndTime(Map<String, Object> parameters) { |
| | | ValidateUtil.notNull(parameters,"查询五分钟数据参数为空"); |
| | | return historyFiveMinutelyMapper.getFiveMinutesDataByMacsAndTime(parameters); |
| | | } |
| | | |
| | | @Override |
| | | public Map<String, Object> getDayAQIByDevice(Map<String, Object> parameters) { |
| | |
| | | } |
| | | parameters.put("timeList", timeList); |
| | | } else if ("day".equals(parameters.get("type"))) { |
| | | String time = parameters.get("time") + "T00:00:00"; |
| | | String time = parameters.get("time") + "T01:00:00"; |
| | | LocalDateTime value = LocalDateTime.parse(time); |
| | | LocalDateTime end = value.plusHours(23); |
| | | parameters.put("timeUnits", "hourly"); |
| | |
| | | } |
| | | |
| | | @Override |
| | | public List<Map<String, Object>> getDevicesSensorsToExcel(Map<String, Object> parameters) { |
| | | public List<Map<String, Object>> getAllDeviceDataToExcel(Map<String, Object> parameters) throws Exception { |
| | | Calendar cal = Calendar.getInstance(); |
| | | int length = ((String) parameters.get("startTime")).split("-").length; |
| | | String time = parameters.remove("startTime").toString(); |
| | | String timeb; |
| | | if (parameters.get("endTime") == null) { |
| | | timeb = time; |
| | | } else { |
| | | timeb = parameters.remove("endTime").toString(); |
| | | } |
| | | String dateFormat = ""; |
| | | String typeFormat = ""; |
| | | String timeUnits = "daily"; |
| | | int i = 0; |
| | | if (length == 1) { |
| | | dateFormat = "yyyy"; |
| | | typeFormat = "%Y"; |
| | | i = Calendar.YEAR; |
| | | } else if (length == 2) { |
| | | dateFormat = "yyyy-MM"; |
| | | typeFormat = "%Y-%m"; |
| | | i = Calendar.MONTH; |
| | | } else if (length == 3) { |
| | | dateFormat = "yyyy-MM-dd"; |
| | | typeFormat = "%Y-%m-%d"; |
| | | i = Calendar.DAY_OF_MONTH; |
| | | } else if (length == 4) { |
| | | dateFormat = "yyyy-MM-dd HH"; |
| | | typeFormat = "%Y-%m-%d %H"; |
| | | timeUnits = "hourly"; |
| | | i = Calendar.HOUR_OF_DAY; |
| | | time = time.substring(0, 10) + " " + time.substring(11, 13); |
| | | timeb = timeb.substring(0, 10) + " " + timeb.substring(11, 13); |
| | | } |
| | | parameters.put("time", time); |
| | | parameters.put("timeb", timeb); |
| | | |
| | | SimpleDateFormat sdf = new SimpleDateFormat(dateFormat); |
| | | cal.setTime(sdf.parse(timeb)); |
| | | cal.add(i, 1); |
| | | Date endTime = cal.getTime(); |
| | | parameters.put("format", dateFormat); |
| | | parameters.put("typeFormat", typeFormat); |
| | | parameters.put("timeUnits", timeUnits); |
| | | parameters.put("field", i); |
| | | cal.setTime(sdf.parse(time)); |
| | | List<String> times = new ArrayList<>(); |
| | | for (long d = cal.getTimeInMillis(); d < endTime.getTime(); cal.set(i, cal.get(i) + 1), d = cal.getTimeInMillis()) { |
| | | String format = sdf.format(d); |
| | | times.add(format); |
| | | } |
| | | String[] sensorKeys = parameters.get("sensorKey").toString().split(","); |
| | | parameters.put("sensorKeys", Arrays.asList(sensorKeys)); |
| | | return null; |
| | | List<String> keys = Arrays.asList(sensorKeys); |
| | | parameters.put("sensors", keys); |
| | | parameters.put("sensorKeys", keys); |
| | | parameters.put("timeb", sdf.format(endTime)); |
| | | int mpId = Integer.valueOf(parameters.get("monitorPoint").toString()); |
| | | String monitorPointName = monitorPointMapper.getMonitorName(mpId); |
| | | List<Map<String, Object>> devices = deviceMapper.getDevicesByMpId(mpId); |
| | | List<Map<String, Object>> resultList = new ArrayList<>(); |
| | | for (Map<String, Object> map : devices) { |
| | | String mac = map.get("mac").toString(); |
| | | parameters.put("mac", mac); |
| | | String name = map.get("name").toString(); |
| | | List<Map<String, Object>> data = getMonitorPointOrDeviceAvgData(parameters); |
| | | for (String sensorKey : keys) { |
| | | Map<String, Object> sensor = sensorMapper.getSensorBySensorKey(sensorKey); |
| | | if (sensor == null) { |
| | | continue; |
| | | } |
| | | String description = sensor.get("description").toString(); |
| | | String unit = sensor.get("unit").toString(); |
| | | Map<String, Object> hashMap = new LinkedHashMap<>(); |
| | | for (String t : times) { |
| | | hashMap.put("monitorPointName", monitorPointName); |
| | | hashMap.put("name", name); |
| | | hashMap.put("sensor", description + "(" + unit + ")"); |
| | | hashMap.put(t, ""); |
| | | } |
| | | if (data.size() != 0) { |
| | | for (Map<String, Object> dataMap : data) { |
| | | String t = dataMap.get("time").toString(); |
| | | if (dataMap.get(sensorKey) != null) { |
| | | String value = dataMap.get(sensorKey).toString(); |
| | | hashMap.put(t, value); |
| | | } |
| | | } |
| | | } |
| | | resultList.add(hashMap); |
| | | } |
| | | } |
| | | return resultList; |
| | | } |
| | | } |