| | |
| | | LocalDateTime time = LocalDateTime.now(); |
| | | int year = time.getYear(); |
| | | int month = time.getMonthValue(); |
| | | int day = time.getDayOfMonth(); |
| | | int hour = time.getHour(); |
| | | int minute = time.getMinute(); |
| | | if (day == 1) { |
| | | if (hour == 0 && minute == 0) { |
| | | if (month == 1) { |
| | | month = 12; |
| | | year = year - 1; |
| | | } else { |
| | | month = month - 1; |
| | | } |
| | | } |
| | | } |
| | | String monthStr = month < 10 ? ("0" + month) : month + ""; |
| | | String yearAndMonth = year + monthStr; |
| | | Map organizationIdMap = JSON.parseObject(params); |
| | |
| | | LocalDateTime time = LocalDateTime.now(); |
| | | int year = time.getYear(); |
| | | int month = time.getMonthValue(); |
| | | int day = time.getDayOfMonth(); |
| | | int hour = time.getHour(); |
| | | int minute = time.getMinute(); |
| | | if (day == 1) { |
| | | if (hour == 0 && minute == 0) { |
| | | if (month == 1) { |
| | | month = 12; |
| | | year = year - 1; |
| | | } else { |
| | | month = month - 1; |
| | | } |
| | | } |
| | | } |
| | | String monthStr = month < 10 ? ("0" + month) : month + ""; |
| | | String yearAndMonth = year + monthStr; |
| | | Map organizationIdMap = JSON.parseObject(params); |
| | |
| | | LocalDateTime time = LocalDateTime.now(); |
| | | int year = time.getYear(); |
| | | int month = time.getMonthValue(); |
| | | int day = time.getDayOfMonth(); |
| | | int hour = time.getHour(); |
| | | int minute = time.getMinute(); |
| | | if (day == 1) { |
| | | if (hour == 0 && minute == 0) { |
| | | if (month == 1) { |
| | | month = 12; |
| | | year = year - 1; |
| | | } else { |
| | | month = month - 1; |
| | | } |
| | | } |
| | | } |
| | | String monthStr = month < 10 ? ("0" + month) : month + ""; |
| | | String yearAndMonth = year + monthStr; |
| | | Map organizationIdMap = JSON.parseObject(params); |
| | |
| | | return returnT; |
| | | } |
| | | |
| | | @XxlJob("RabbitMQRealtimeMinutelySixHours") |
| | | public ReturnT insertRabbitMQRealtimeMinutelySixHours(String params) { |
| | | LocalDateTime time = LocalDateTime.now(); |
| | | int year = time.getYear(); |
| | | int month = time.getMonthValue(); |
| | | String monthStr = month < 10 ? ("0" + month) : month + ""; |
| | | String yearAndMonth = year + monthStr; |
| | | Map organizationIdMap = JSON.parseObject(params); |
| | | List<Integer> parentIdList = (List<Integer>) organizationIdMap.get("orgId"); |
| | | LocalDateTime value = time.truncatedTo(ChronoUnit.DAYS); |
| | | List<Object> organizationIdList = organizationRelationService.getChildIdByParentId(parentIdList); |
| | | try { |
| | | List<String> macList = deviceService.getMacByOrganizationid(organizationIdList); |
| | | List<String> sensorKeys = sensorService.getSensorKeyByMac(macList); |
| | | List<Map<String, Object>> macAndOrganizationIdMap = deviceService.macAndOrganizationIdMap(macList); |
| | | Map<String, Object> kv = new LinkedHashMap<>(); |
| | | for (Map<String, Object> map : macAndOrganizationIdMap) { |
| | | kv.put(map.get("mac").toString(), map.get("organizationId")); |
| | | } |
| | | for (int i = 0; i <= 358; i++) { |
| | | LocalDateTime startTime = value.plusMinutes(i); |
| | | LocalDateTime endTime = value.plusMinutes(i + 1); |
| | | Map<String, Object> devices = new HashMap<>(); |
| | | devices.put("sensorKeys", sensorKeys); |
| | | devices.put("start", startTime); |
| | | devices.put("end", endTime); |
| | | devices.put("macs", macList); |
| | | devices.put("yearAndMonth", yearAndMonth); |
| | | List<Map<String, Object>> realtimeData = historyMinutelyService.getMinutelySensorData(devices); |
| | | XxlJobLogger.log("RabbitMQRealtimeMinutelyData:" + realtimeData.size()); |
| | | if (!CollectionUtils.isEmpty(realtimeData)) { |
| | | for (Map<String, Object> deviceData : realtimeData) { |
| | | if (!ObjectUtils.isEmpty(deviceData)) { |
| | | Iterator<String> iterator = deviceData.keySet().iterator(); |
| | | while (iterator.hasNext()) { |
| | | String key = iterator.next(); |
| | | if (key.startsWith("M")) { |
| | | iterator.remove(); |
| | | } |
| | | } |
| | | deviceData.put("time", startTime.format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss"))); |
| | | deviceData.put("timeType", "realtime"); |
| | | String mac = deviceData.get("mac").toString(); |
| | | Object o1 = kv.get(mac); |
| | | List<Integer> parentIds = organizationRelationService.getParentIdListByChildId((Integer) o1); |
| | | Map organizationIdMapNew = JSON.parseObject(params); |
| | | List<Integer> parentIdListNew = (List<Integer>) organizationIdMapNew.get("orgId"); |
| | | List<Integer> intersection = parentIdListNew.stream().filter(item -> parentIds.contains(item)).collect(Collectors.toList()); |
| | | intersection.stream().forEach(parentId -> rabbitTemplate.convertAndSend(organization_data.getName(), parentId + "." + mac, JSON.toJSONString(deviceData))); |
| | | } |
| | | } |
| | | ReturnT returnT = new ReturnT(200, "RabbitMQ分钟实时数据存入成功"); |
| | | return returnT; |
| | | } |
| | | } |
| | | } catch (Exception e) { |
| | | XxlJobLogger.log("RabbitMQRealtimeMinutelyException:" + e.getMessage()); |
| | | logger.error(e.getMessage()); |
| | | e.printStackTrace(); |
| | | } |
| | | ReturnT returnT = new ReturnT(500, "RabbitMQ分钟实时数据存入失败"); |
| | | return returnT; |
| | | } |
| | | |
| | | @XxlJob("RabbitMQRealtimeMinutelyZero") |
| | | public ReturnT insertRabbitMQRealtimeMinutelyZero(String params) { |
| | | LocalDateTime time = LocalDateTime.now(); |
| | | int year = time.getYear(); |
| | | int month = time.getMonthValue(); |
| | | int day = time.getDayOfMonth(); |
| | | if (day == 1) { |
| | | if (month == 1) { |
| | | month = 12; |
| | | year = year - 1; |
| | | } else { |
| | | month = month - 1; |
| | | } |
| | | } |
| | | String monthStr = month < 10 ? ("0" + month) : month + ""; |
| | | String yearAndMonth = year + monthStr; |
| | | Map organizationIdMap = JSON.parseObject(params); |
| | | List<Integer> parentIdList = (List<Integer>) organizationIdMap.get("orgId"); |
| | | LocalDateTime endTime = time.truncatedTo(ChronoUnit.DAYS); |
| | | LocalDateTime startTime = endTime.minusMinutes(1); |
| | | List<Object> organizationIdList = organizationRelationService.getChildIdByParentId(parentIdList); |
| | | try { |
| | | List<String> macList = deviceService.getMacByOrganizationid(organizationIdList); |
| | | List<String> sensorKeys = sensorService.getSensorKeyByMac(macList); |
| | | List<Map<String, Object>> macAndOrganizationIdMap = deviceService.macAndOrganizationIdMap(macList); |
| | | Map<String, Object> kv = new LinkedHashMap<>(); |
| | | for (Map<String, Object> map : macAndOrganizationIdMap) { |
| | | kv.put(map.get("mac").toString(), map.get("organizationId")); |
| | | } |
| | | Map<String, Object> devices = new HashMap<>(); |
| | | devices.put("sensorKeys", sensorKeys); |
| | | devices.put("start", startTime); |
| | | devices.put("end", endTime); |
| | | devices.put("macs", macList); |
| | | devices.put("yearAndMonth", yearAndMonth); |
| | | List<Map<String, Object>> realtimeData = historyMinutelyService.getMinutelySensorData(devices); |
| | | XxlJobLogger.log("RabbitMQRealtimeMinutelyData:" + realtimeData.size()); |
| | | if (!CollectionUtils.isEmpty(realtimeData)) { |
| | | for (Map<String, Object> deviceData : realtimeData) { |
| | | if (!ObjectUtils.isEmpty(deviceData)) { |
| | | Iterator<String> iterator = deviceData.keySet().iterator(); |
| | | while (iterator.hasNext()) { |
| | | String key = iterator.next(); |
| | | if (key.startsWith("M")) { |
| | | iterator.remove(); |
| | | } |
| | | } |
| | | deviceData.put("time", startTime.format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss"))); |
| | | deviceData.put("timeType", "realtime"); |
| | | String mac = deviceData.get("mac").toString(); |
| | | Object o1 = kv.get(mac); |
| | | List<Integer> parentIds = organizationRelationService.getParentIdListByChildId((Integer) o1); |
| | | Map organizationIdMapNew = JSON.parseObject(params); |
| | | List<Integer> parentIdListNew = (List<Integer>) organizationIdMapNew.get("orgId"); |
| | | List<Integer> intersection = parentIdListNew.stream().filter(item -> parentIds.contains(item)).collect(Collectors.toList()); |
| | | intersection.stream().forEach(parentId -> rabbitTemplate.convertAndSend(organization_data.getName(), parentId + "." + mac, JSON.toJSONString(deviceData))); |
| | | } |
| | | } |
| | | ReturnT returnT = new ReturnT(200, "RabbitMQ分钟实时数据存入成功"); |
| | | return returnT; |
| | | } |
| | | } catch (Exception e) { |
| | | XxlJobLogger.log("RabbitMQRealtimeMinutelyException:" + e.getMessage()); |
| | | logger.error(e.getMessage()); |
| | | e.printStackTrace(); |
| | | } |
| | | ReturnT returnT = new ReturnT(500, "RabbitMQ分钟实时数据存入失败"); |
| | | return returnT; |
| | | } |
| | | |
| | | @XxlJob("RabbitMQRealtimeEveryFiveMinutesSixHours") |
| | | public ReturnT insertRabbitMQRealtimeEveryFiveMinutesSixHours(String params) { |
| | | LocalDateTime time = LocalDateTime.now(); |
| | | int year = time.getYear(); |
| | | int month = time.getMonthValue(); |
| | | String monthStr = month < 10 ? ("0" + month) : month + ""; |
| | | String yearAndMonth = year + monthStr; |
| | | Map organizationIdMap = JSON.parseObject(params); |
| | | List<Integer> parentIdList = (List<Integer>) organizationIdMap.get("orgId"); |
| | | LocalDateTime value = time.truncatedTo(ChronoUnit.DAYS); |
| | | List<Object> organizationIdList = organizationRelationService.getChildIdByParentId(parentIdList); |
| | | try { |
| | | List<String> macList = deviceService.getMacByOrganizationid(organizationIdList); |
| | | List<String> sensorKeys = sensorService.getSensorKeyByMac(macList); |
| | | List<Map<String, Object>> macAndOrganizationIdMap = deviceService.macAndOrganizationIdMap(macList); |
| | | Map<String, Object> kv = new LinkedHashMap<>(); |
| | | for (Map<String, Object> map : macAndOrganizationIdMap) { |
| | | kv.put(map.get("mac").toString(), map.get("organizationId")); |
| | | } |
| | | for (int i = 0; i <= 350; i = i + 5) { |
| | | LocalDateTime startTime = value.plusMinutes(i); |
| | | LocalDateTime endTime = value.plusMinutes(i + 5); |
| | | Map<String, Object> devices = new HashMap<>(); |
| | | devices.put("sensorKeys", sensorKeys); |
| | | devices.put("start", startTime); |
| | | devices.put("end", endTime); |
| | | devices.put("macs", macList); |
| | | devices.put("yearAndMonth", yearAndMonth); |
| | | List<Map<String, Object>> realtimeData = historyMinutelyService.getMinutelySensorData(devices); |
| | | XxlJobLogger.log("RabbitMQRealtimeEveryFiveMinutesData:" + realtimeData.size()); |
| | | if (!CollectionUtils.isEmpty(realtimeData)) { |
| | | for (Map<String, Object> deviceData : realtimeData) { |
| | | if (!ObjectUtils.isEmpty(deviceData)) { |
| | | Iterator<String> iterator = deviceData.keySet().iterator(); |
| | | while (iterator.hasNext()) { |
| | | String key = iterator.next(); |
| | | if (key.startsWith("M")) { |
| | | iterator.remove(); |
| | | } |
| | | } |
| | | deviceData.put("time", startTime.format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss"))); |
| | | deviceData.put("timeType", "realtime"); |
| | | String mac = deviceData.get("mac").toString(); |
| | | Object o1 = kv.get(mac); |
| | | List<Integer> parentIds = organizationRelationService.getParentIdListByChildId((Integer) o1); |
| | | Map organizationIdMapNew = JSON.parseObject(params); |
| | | List<Integer> parentIdListNew = (List<Integer>) organizationIdMapNew.get("orgId"); |
| | | List<Integer> intersection = parentIdListNew.stream().filter(item -> parentIds.contains(item)).collect(Collectors.toList()); |
| | | intersection.stream().forEach(parentId -> rabbitTemplate.convertAndSend(organization_data.getName(), parentId + "." + mac, JSON.toJSONString(deviceData))); |
| | | } |
| | | } |
| | | ReturnT returnT = new ReturnT(200, "RabbitMQ每5分钟实时数据存入成功"); |
| | | return returnT; |
| | | } |
| | | } |
| | | } catch (Exception e) { |
| | | XxlJobLogger.log("RabbitMQRealtimeEveryFiveMinutesException:" + e.getMessage()); |
| | | logger.error(e.getMessage()); |
| | | e.printStackTrace(); |
| | | } |
| | | ReturnT returnT = new ReturnT(500, "RabbitMQ每5分钟实时数据存入失败"); |
| | | return returnT; |
| | | } |
| | | |
| | | @XxlJob("RabbitMQRealtimeEveryFiveMinutesZero") |
| | | public ReturnT insertRabbitMQRealtimeEveryFiveMinutesZero(String params) { |
| | | LocalDateTime time = LocalDateTime.now(); |
| | | int year = time.getYear(); |
| | | int month = time.getMonthValue(); |
| | | int day = time.getDayOfMonth(); |
| | | if (day == 1) { |
| | | if (month == 1) { |
| | | month = 12; |
| | | year = year - 1; |
| | | } else { |
| | | month = month - 1; |
| | | } |
| | | } |
| | | String monthStr = month < 10 ? ("0" + month) : month + ""; |
| | | String yearAndMonth = year + monthStr; |
| | | Map organizationIdMap = JSON.parseObject(params); |
| | | List<Integer> parentIdList = (List<Integer>) organizationIdMap.get("orgId"); |
| | | LocalDateTime endTime = time.truncatedTo(ChronoUnit.DAYS); |
| | | LocalDateTime startTime = endTime.minusMinutes(5); |
| | | List<Object> organizationIdList = organizationRelationService.getChildIdByParentId(parentIdList); |
| | | try { |
| | | List<String> macList = deviceService.getMacByOrganizationid(organizationIdList); |
| | | List<String> sensorKeys = sensorService.getSensorKeyByMac(macList); |
| | | List<Map<String, Object>> macAndOrganizationIdMap = deviceService.macAndOrganizationIdMap(macList); |
| | | Map<String, Object> kv = new LinkedHashMap<>(); |
| | | for (Map<String, Object> map : macAndOrganizationIdMap) { |
| | | kv.put(map.get("mac").toString(), map.get("organizationId")); |
| | | } |
| | | Map<String, Object> devices = new HashMap<>(); |
| | | devices.put("sensorKeys", sensorKeys); |
| | | devices.put("start", startTime); |
| | | devices.put("end", endTime); |
| | | devices.put("macs", macList); |
| | | devices.put("yearAndMonth", yearAndMonth); |
| | | List<Map<String, Object>> realtimeData = historyMinutelyService.getMinutelySensorData(devices); |
| | | XxlJobLogger.log("RabbitMQRealtimeEveryFiveMinutesData:" + realtimeData.size()); |
| | | if (!CollectionUtils.isEmpty(realtimeData)) { |
| | | for (Map<String, Object> deviceData : realtimeData) { |
| | | if (!ObjectUtils.isEmpty(deviceData)) { |
| | | Iterator<String> iterator = deviceData.keySet().iterator(); |
| | | while (iterator.hasNext()) { |
| | | String key = iterator.next(); |
| | | if (key.startsWith("M")) { |
| | | iterator.remove(); |
| | | } |
| | | } |
| | | deviceData.put("time", startTime.format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss"))); |
| | | deviceData.put("timeType", "realtime"); |
| | | String mac = deviceData.get("mac").toString(); |
| | | Object o1 = kv.get(mac); |
| | | List<Integer> parentIds = organizationRelationService.getParentIdListByChildId((Integer) o1); |
| | | Map organizationIdMapNew = JSON.parseObject(params); |
| | | List<Integer> parentIdListNew = (List<Integer>) organizationIdMapNew.get("orgId"); |
| | | List<Integer> intersection = parentIdListNew.stream().filter(item -> parentIds.contains(item)).collect(Collectors.toList()); |
| | | intersection.stream().forEach(parentId -> rabbitTemplate.convertAndSend(organization_data.getName(), parentId + "." + mac, JSON.toJSONString(deviceData))); |
| | | } |
| | | } |
| | | ReturnT returnT = new ReturnT(200, "RabbitMQ每5分钟实时数据存入成功"); |
| | | return returnT; |
| | | } |
| | | } catch (Exception e) { |
| | | XxlJobLogger.log("RabbitMQRealtimeEveryFiveMinutesException:" + e.getMessage()); |
| | | logger.error(e.getMessage()); |
| | | e.printStackTrace(); |
| | | } |
| | | ReturnT returnT = new ReturnT(500, "RabbitMQ每5分钟实时数据存入失败"); |
| | | return returnT; |
| | | } |
| | | |
| | | @XxlJob("RabbitMQMinutelySixHours") |
| | | public ReturnT insertRabbitMQMinutelySixHours(String params) { |
| | | LocalDateTime time = LocalDateTime.now(); |
| | | int year = time.getYear(); |
| | | int month = time.getMonthValue(); |
| | | String monthStr = month < 10 ? ("0" + month) : month + ""; |
| | | String yearAndMonth = year + monthStr; |
| | | Map organizationIdMap = JSON.parseObject(params); |
| | | List<Integer> parentIdList = (List<Integer>) organizationIdMap.get("orgId"); |
| | | LocalDateTime zeroClock = time.truncatedTo(ChronoUnit.DAYS); |
| | | LocalDateTime value = zeroClock.plusMinutes(9); |
| | | List<Object> organizationIdList = organizationRelationService.getChildIdByParentId(parentIdList); |
| | | try { |
| | | List<String> macList = deviceService.getMacByOrganizationid(organizationIdList); |
| | | List<String> sensorKeys = sensorService.getSensorKeyByMac(macList); |
| | | List<Map<String, Object>> macAndOrganizationIdMap = deviceService.macAndOrganizationIdMap(macList); |
| | | Map<String, Object> kv = new LinkedHashMap<>(); |
| | | for (Map<String, Object> map : macAndOrganizationIdMap) { |
| | | kv.put(map.get("mac").toString(), map.get("organizationId")); |
| | | } |
| | | for (int i = 0; i <= 340; i = i + 10) { |
| | | LocalDateTime startTime = value.plusMinutes(i); |
| | | LocalDateTime endTime = value.plusMinutes(i + 1); |
| | | Map<String, Object> devices = new HashMap<>(); |
| | | devices.put("sensorKeys", sensorKeys); |
| | | devices.put("start", startTime); |
| | | devices.put("end", endTime); |
| | | devices.put("macs", macList); |
| | | devices.put("yearAndMonth", yearAndMonth); |
| | | List<Map<String, Object>> minutelyDataList = historyMinutelyService.getMinutelySensorData(devices); |
| | | XxlJobLogger.log("RabbitMQMinutelyData:" + minutelyDataList.size()); |
| | | if (!CollectionUtils.isEmpty(minutelyDataList)) { |
| | | for (Map<String, Object> deviceData : minutelyDataList) { |
| | | if (!ObjectUtils.isEmpty(deviceData)) { |
| | | Map<String, Object> minutelyData = new LinkedHashMap<>(); |
| | | minutelyData.put("mac", deviceData.get("mac")); |
| | | minutelyData.put("time", startTime.format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss"))); |
| | | minutelyData.put("timeType", "minutely"); |
| | | for (String key : deviceData.keySet()) { |
| | | if (!key.equals("mac") && !key.startsWith("M")) { |
| | | String date = deviceData.get(key).toString() + "," + deviceData.get("MIN" + key).toString() + "," + deviceData.get("MAX" + key).toString(); |
| | | minutelyData.put(key, date); |
| | | } |
| | | } |
| | | String mac = minutelyData.get("mac").toString(); |
| | | Object o1 = kv.get(mac); |
| | | List<Integer> parentIds = organizationRelationService.getParentIdListByChildId((Integer) o1); |
| | | Map organizationIdMapNew = JSON.parseObject(params); |
| | | List<Integer> parentIdListNew = (List<Integer>) organizationIdMapNew.get("orgId"); |
| | | List<Integer> intersection = parentIdListNew.stream().filter(item -> parentIds.contains(item)).collect(Collectors.toList()); |
| | | intersection.stream().forEach(parentId -> rabbitTemplate.convertAndSend(organization_data.getName(), parentId + "." + mac, JSON.toJSONString(minutelyData))); |
| | | } |
| | | } |
| | | ReturnT returnT = new ReturnT(200, "RabbitMQ分钟数据存入成功"); |
| | | return returnT; |
| | | } |
| | | } |
| | | } catch (Exception e) { |
| | | XxlJobLogger.log("RabbitMQMinutelyException:" + e.getMessage()); |
| | | logger.error(e.getMessage()); |
| | | e.printStackTrace(); |
| | | } |
| | | ReturnT returnT = new ReturnT(500, "RabbitMQ分钟数据存入失败"); |
| | | return returnT; |
| | | } |
| | | |
| | | @XxlJob("RabbitMQMinutelyZero") |
| | | public ReturnT insertRabbitMQMinutelyZero(String params) { |
| | | LocalDateTime time = LocalDateTime.now(); |
| | | int year = time.getYear(); |
| | | int month = time.getMonthValue(); |
| | | int day = time.getDayOfMonth(); |
| | | if (day == 1) { |
| | | if (month == 1) { |
| | | month = 12; |
| | | year = year - 1; |
| | | } else { |
| | | month = month - 1; |
| | | } |
| | | } |
| | | String monthStr = month < 10 ? ("0" + month) : month + ""; |
| | | String yearAndMonth = year + monthStr; |
| | | Map organizationIdMap = JSON.parseObject(params); |
| | | List<Integer> parentIdList = (List<Integer>) organizationIdMap.get("orgId"); |
| | | LocalDateTime endTime = time.truncatedTo(ChronoUnit.DAYS); |
| | | LocalDateTime startTime = endTime.minusMinutes(1); |
| | | List<Object> organizationIdList = organizationRelationService.getChildIdByParentId(parentIdList); |
| | | try { |
| | | List<String> macList = deviceService.getMacByOrganizationid(organizationIdList); |
| | | List<String> sensorKeys = sensorService.getSensorKeyByMac(macList); |
| | | List<Map<String, Object>> macAndOrganizationIdMap = deviceService.macAndOrganizationIdMap(macList); |
| | | Map<String, Object> kv = new LinkedHashMap<>(); |
| | | for (Map<String, Object> map : macAndOrganizationIdMap) { |
| | | kv.put(map.get("mac").toString(), map.get("organizationId")); |
| | | } |
| | | Map<String, Object> devices = new HashMap<>(); |
| | | devices.put("sensorKeys", sensorKeys); |
| | | devices.put("start", startTime); |
| | | devices.put("end", endTime); |
| | | devices.put("macs", macList); |
| | | devices.put("yearAndMonth", yearAndMonth); |
| | | List<Map<String, Object>> minutelyDataList = historyMinutelyService.getMinutelySensorData(devices); |
| | | XxlJobLogger.log("RabbitMQMinutelyData:" + minutelyDataList.size()); |
| | | if (!CollectionUtils.isEmpty(minutelyDataList)) { |
| | | for (Map<String, Object> deviceData : minutelyDataList) { |
| | | if (!ObjectUtils.isEmpty(deviceData)) { |
| | | Map<String, Object> minutelyData = new LinkedHashMap<>(); |
| | | minutelyData.put("mac", deviceData.get("mac")); |
| | | minutelyData.put("time", startTime.format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss"))); |
| | | minutelyData.put("timeType", "minutely"); |
| | | for (String key : deviceData.keySet()) { |
| | | if (!key.equals("mac") && !key.startsWith("M")) { |
| | | String date = deviceData.get(key).toString() + "," + deviceData.get("MIN" + key).toString() + "," + deviceData.get("MAX" + key).toString(); |
| | | minutelyData.put(key, date); |
| | | } |
| | | } |
| | | String mac = minutelyData.get("mac").toString(); |
| | | Object o1 = kv.get(mac); |
| | | List<Integer> parentIds = organizationRelationService.getParentIdListByChildId((Integer) o1); |
| | | Map organizationIdMapNew = JSON.parseObject(params); |
| | | List<Integer> parentIdListNew = (List<Integer>) organizationIdMapNew.get("orgId"); |
| | | List<Integer> intersection = parentIdListNew.stream().filter(item -> parentIds.contains(item)).collect(Collectors.toList()); |
| | | intersection.stream().forEach(parentId -> rabbitTemplate.convertAndSend(organization_data.getName(), parentId + "." + mac, JSON.toJSONString(minutelyData))); |
| | | } |
| | | } |
| | | ReturnT returnT = new ReturnT(200, "RabbitMQ分钟数据存入成功"); |
| | | return returnT; |
| | | } |
| | | } catch (Exception e) { |
| | | XxlJobLogger.log("RabbitMQMinutelyException:" + e.getMessage()); |
| | | logger.error(e.getMessage()); |
| | | e.printStackTrace(); |
| | | } |
| | | ReturnT returnT = new ReturnT(500, "RabbitMQ分钟数据存入失败"); |
| | | return returnT; |
| | | } |
| | | |
| | | @XxlJob("RabbitMQHourlySixHours") |
| | | public ReturnT insertRabbitMQHourlySixHours(String params) { |
| | | LocalDateTime time = LocalDateTime.now(); |
| | | Map organizationIdMap = JSON.parseObject(params); |
| | | List<Integer> parentIdList = (List<Integer>) organizationIdMap.get("orgId"); |
| | | LocalDateTime zeroClock = time.truncatedTo(ChronoUnit.DAYS); |
| | | LocalDateTime value = zeroClock.minusHours(1); |
| | | List<Object> organizationIdList = organizationRelationService.getChildIdByParentId(parentIdList); |
| | | try { |
| | | List<String> macList = deviceService.getMacByOrganizationid(organizationIdList); |
| | | List<String> sensorKeys = sensorService.getSensorKeyByMac(macList); |
| | | List<Map<String, Object>> macAndOrganizationIdMap = deviceService.macAndOrganizationIdMap(macList); |
| | | Map<String, Object> kv = new LinkedHashMap<>(); |
| | | for (Map<String, Object> map : macAndOrganizationIdMap) { |
| | | kv.put(map.get("mac").toString(), map.get("organizationId")); |
| | | } |
| | | for (int i = 0; i <= 6; i++) { |
| | | LocalDateTime startTime = value.plusHours(i); |
| | | LocalDateTime endTime = value.plusHours(i + 1); |
| | | Map<String, Object> devices = new HashMap<>(); |
| | | devices.put("sensorKeys", sensorKeys); |
| | | devices.put("start", startTime); |
| | | devices.put("end", endTime); |
| | | devices.put("macs", macList); |
| | | List<Map<String, Object>> hourlyDataList = historyHourlyService.getHourlySensorData(devices); |
| | | XxlJobLogger.log("RabbitMQHourlyData:" + hourlyDataList.size()); |
| | | if (!CollectionUtils.isEmpty(hourlyDataList)) { |
| | | for (Map<String, Object> deviceData : hourlyDataList) { |
| | | if (!ObjectUtils.isEmpty(deviceData)) { |
| | | Map<String, Object> hourlyData = new LinkedHashMap<>(); |
| | | hourlyData.put("mac", deviceData.get("mac")); |
| | | hourlyData.put("time", startTime.format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss"))); |
| | | hourlyData.put("timeType", "hourly"); |
| | | for (String key : deviceData.keySet()) { |
| | | if (!key.equals("mac") && !key.startsWith("M")) { |
| | | String date = deviceData.get(key).toString() + "," + deviceData.get("MIN" + key).toString() + "," + deviceData.get("MAX" + key).toString(); |
| | | hourlyData.put(key, date); |
| | | } |
| | | } |
| | | String mac = hourlyData.get("mac").toString(); |
| | | Object o1 = kv.get(mac); |
| | | List<Integer> parentIds = organizationRelationService.getParentIdListByChildId((Integer) o1); |
| | | Map organizationIdMapNew = JSON.parseObject(params); |
| | | List<Integer> parentIdListNew = (List<Integer>) organizationIdMapNew.get("orgId"); |
| | | List<Integer> intersection = parentIdListNew.stream().filter(item -> parentIds.contains(item)).collect(Collectors.toList()); |
| | | intersection.stream().forEach(parentId -> rabbitTemplate.convertAndSend(organization_data.getName(), parentId + "." + mac, JSON.toJSONString(hourlyData))); |
| | | } |
| | | } |
| | | ReturnT returnT = new ReturnT(200, "RabbitMQ小时数据存入成功"); |
| | | return returnT; |
| | | } |
| | | } |
| | | } catch (Exception e) { |
| | | XxlJobLogger.log("RabbitMQHourlyException:" + e.getMessage()); |
| | | logger.error(e.getMessage()); |
| | | e.printStackTrace(); |
| | | } |
| | | ReturnT returnT = new ReturnT(500, "RabbitMQ小时数据存入失败"); |
| | | return returnT; |
| | | } |
| | | } |
| | | |
| | | |