|  |  |  | 
|---|
|  |  |  | 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 com.alibaba.druid.support.json.JSONUtils; | 
|---|
|  |  |  | import com.moral.mapper.AlarmMapper; | 
|---|
|  |  |  | import com.moral.service.AlarmService; | 
|---|
|  |  |  | import com.moral.service.SensorService; | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Service | 
|---|
|  |  |  | 
|---|
|  |  |  | List<Map<String, Object>> resultList = new ArrayList<>(); | 
|---|
|  |  |  | devices.put("mac", mac); | 
|---|
|  |  |  | List<Map<String, Object>> list = alarmMapper.getAlarmData(devices); | 
|---|
|  |  |  | List<Map<String, Object>> newList1 = list.stream().distinct().collect(Collectors.toList()); | 
|---|
|  |  |  | for (Map<String, Object> map : newList1) { | 
|---|
|  |  |  | 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("]", "") | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | Map<String, Object> hashMap = new HashMap<>(); | 
|---|
|  |  |  | ArrayList<String> stateList1 = new ArrayList<>(); | 
|---|
|  |  |  | ArrayList<String> stateList2 = new ArrayList<>(); | 
|---|
|  |  |  | ArrayList<String> stateList3 = new ArrayList<>(); | 
|---|
|  |  |  | for (Map<String, Object> map : newList1) { | 
|---|
|  |  |  | 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) { | 
|---|
|  |  |  | stateList1.addAll((ArrayList<String>) map.get("1")); | 
|---|
|  |  |  | hashMap.put("1", stateList1); | 
|---|
|  |  |  | stateSet1.addAll((ArrayList<String>) map.get("1")); | 
|---|
|  |  |  | hashMap.put("1", stateSet1); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (map.get("2") != null) { | 
|---|
|  |  |  | stateList2.addAll((ArrayList<String>) map.get("2")); | 
|---|
|  |  |  | hashMap.put("2", stateList2); | 
|---|
|  |  |  | stateSet2.addAll((ArrayList<String>) map.get("2")); | 
|---|
|  |  |  | hashMap.put("2", stateSet2); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (map.get("3") != null) { | 
|---|
|  |  |  | stateList3.addAll((ArrayList<String>) map.get("3")); | 
|---|
|  |  |  | hashMap.put("3", stateList3); | 
|---|
|  |  |  | stateSet3.addAll((ArrayList<String>) map.get("3")); | 
|---|
|  |  |  | hashMap.put("3", stateSet3); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | for (String key : hashMap.keySet()) { | 
|---|
|  |  |  | ArrayList<String> arrayList = (ArrayList<String>) hashMap.get(key); | 
|---|
|  |  |  | List<String> sensorsList = arrayList.stream().distinct().collect(Collectors.toList()); | 
|---|
|  |  |  | hashMap.put(key, sensorsList); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | for (String key : hashMap.keySet()) { | 
|---|
|  |  |  | 
|---|
|  |  |  | map.put("mac",mac); | 
|---|
|  |  |  | map.put("time",startTime); | 
|---|
|  |  |  | map.put("state", key); | 
|---|
|  |  |  | ArrayList<String> stateList = (ArrayList<String>) hashMap.get(key); | 
|---|
|  |  |  | for (String state : stateList) { | 
|---|
|  |  |  | jsonMap.put(state,1); | 
|---|
|  |  |  | 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); | 
|---|