From 3d685203e77cd8deb2982856ee70f4d51d7ce8db Mon Sep 17 00:00:00 2001
From: lizijie <lzjiiie@163.com>
Date: Fri, 20 May 2022 11:33:42 +0800
Subject: [PATCH] 千灯转发数据添加恶臭两台微站数据
---
src/main/java/com/moral/service/impl/AlarmServiceImpl.java | 85 +++++++++++++++++++++++++++++++++++++++---
1 files changed, 78 insertions(+), 7 deletions(-)
diff --git a/src/main/java/com/moral/service/impl/AlarmServiceImpl.java b/src/main/java/com/moral/service/impl/AlarmServiceImpl.java
index df9dd46..ad715cb 100644
--- a/src/main/java/com/moral/service/impl/AlarmServiceImpl.java
+++ b/src/main/java/com/moral/service/impl/AlarmServiceImpl.java
@@ -1,12 +1,21 @@
package com.moral.service.impl;
+import java.time.LocalDateTime;
+import java.time.temporal.ChronoUnit;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.HashSet;
import java.util.List;
import java.util.Map;
+import java.util.Set;
+import java.util.stream.Collectors;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
+import com.alibaba.druid.support.json.JSONUtils;
import com.moral.mapper.AlarmMapper;
import com.moral.service.AlarmService;
@@ -18,18 +27,80 @@
private AlarmMapper alarmMapper;
@Override
- public List<Map<String, Object>> getAvgAlarmData(Map<String, Object> devices) {
- return alarmMapper.getAvgAlarmData(devices);
- }
+ public int insertAlarmDaily() {
+ LocalDateTime time = LocalDateTime.now();
+ LocalDateTime endTime = time.truncatedTo(ChronoUnit.DAYS);
+ LocalDateTime startTime = endTime.minusDays(1);
+ String year = startTime.getYear() + "";
+ String month = null;
+ int monthValue = startTime.getMonthValue();
+ if (monthValue < 10) {
+ month = "0" + monthValue;
+ } else {
+ month = monthValue + "";
+ }
+ String yearAndMonth = year + month;
+ Map<String, Object> devices = new HashMap<>();
+ devices.put("start", startTime);
+ devices.put("end", endTime);
+ devices.put("yearAndMonth", yearAndMonth);
+ List<String> macs = alarmMapper.getMacs(devices);
+ int count = 0;
+ for (String mac : macs) {
+ List<Map<String, Object>> resultList = new ArrayList<>();
+ devices.put("mac", mac);
+ List<Map<String, Object>> list = alarmMapper.getAlarmData(devices);
+ List<Map<String, Object>> newList = list.stream().distinct().collect(Collectors.toList());
+ for (Map<String, Object> map : newList) {
+ for (String key : map.keySet()) {
+ String[] strings = map.get(key).toString().replace("$.", "")
+ .replace("[", "").replace("]", "")
+ .replace("\"", "").replace(" ", "").split(",");
- @Override
- public int insertAlarmDaily(List<Map<String, Object>> list) {
- return alarmMapper.insertAlarmDaily(list);
+ List<String> sensors = new ArrayList<String>(Arrays.asList(strings));
+ map.put(key, sensors);
+
+ }
+ }
+ Map<String, Object> hashMap = new HashMap<>();
+ Set<String> stateSet1 = new HashSet<>();
+ Set<String> stateSet2 = new HashSet<>();
+ Set<String> stateSet3 = new HashSet<>();
+ for (Map<String, Object> map : newList) {
+ if (map.get("1") != null) {
+ stateSet1.addAll((ArrayList<String>) map.get("1"));
+ hashMap.put("1", stateSet1);
+ }
+ if (map.get("2") != null) {
+ stateSet2.addAll((ArrayList<String>) map.get("2"));
+ hashMap.put("2", stateSet2);
+ }
+ if (map.get("3") != null) {
+ stateSet3.addAll((ArrayList<String>) map.get("3"));
+ hashMap.put("3", stateSet3);
+ }
+ }
+
+ for (String key : hashMap.keySet()) {
+ Map<String, Object> jsonMap = new HashMap<>();
+ Map<String, Object> map = new HashMap<>();
+ map.put("mac", mac);
+ map.put("time", startTime);
+ map.put("state", key);
+ Set<String> sensors = (Set<String>) hashMap.get(key);
+ for (String sensor : sensors) {
+ jsonMap.put(sensor, 1);
+ }
+ map.put("json", JSONUtils.toJSONString(jsonMap));
+ resultList.add(map);
+ }
+ count = count + alarmMapper.insertAlarmDaily(resultList);
+ }
+ return count;
}
@Override
public void createTable(String yearAndMonth) {
alarmMapper.createTable(yearAndMonth);
}
-
}
--
Gitblit v1.8.0