|
|
|
|
@ -11,6 +11,34 @@ import java.util.*;
|
|
|
|
|
*/ |
|
|
|
|
public enum ComputeEnum implements ComputeService { |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 水表 |
|
|
|
|
*/ |
|
|
|
|
WATER("水表设备数据处理", 23) { |
|
|
|
|
@Override |
|
|
|
|
public ArrayList<Map<LocalDateTime, DeviceReport>> getDataList( |
|
|
|
|
Map.Entry<String, Map<LocalDateTime, List<DeviceReport>>> entry) { |
|
|
|
|
|
|
|
|
|
ArrayList<Map<LocalDateTime, DeviceReport>> result = new ArrayList<>(); |
|
|
|
|
|
|
|
|
|
//获取到电表的数据,按照表号分组分组,紧接着再按照小时分组。需要计算分组后的数据取出最大值
|
|
|
|
|
Map<LocalDateTime, List<DeviceReport>> deviceMap = entry.getValue(); |
|
|
|
|
String deviceNum = entry.getKey(); |
|
|
|
|
Set<Map.Entry<LocalDateTime, List<DeviceReport>>> groupEntryList = deviceMap.entrySet(); |
|
|
|
|
for (Map.Entry<LocalDateTime, List<DeviceReport>> listEntry : groupEntryList) { |
|
|
|
|
LocalDateTime key = listEntry.getKey(); |
|
|
|
|
List<DeviceReport> value = listEntry.getValue(); |
|
|
|
|
DeviceReport maxEntity = value.stream() |
|
|
|
|
.max(Comparator.comparing(obj -> Double.valueOf(obj.getCurValue()))) |
|
|
|
|
.orElse(null); |
|
|
|
|
HashMap<LocalDateTime, DeviceReport> map = new HashMap<>(); |
|
|
|
|
map.put(key, maxEntity); |
|
|
|
|
result.add(map); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return result; |
|
|
|
|
} |
|
|
|
|
}, |
|
|
|
|
/** |
|
|
|
|
* 电表 |
|
|
|
|
*/ |
|
|
|
|
@ -75,6 +103,33 @@ public enum ComputeEnum implements ComputeService {
|
|
|
|
|
Map.Entry<String, Map<LocalDateTime, List<DeviceReport>>> entry) { |
|
|
|
|
return null; |
|
|
|
|
} |
|
|
|
|
}, |
|
|
|
|
/** |
|
|
|
|
* 蒸汽流量计数据处理 |
|
|
|
|
*/ |
|
|
|
|
STEAM_FLOW("蒸汽流量计数据处理", 12) { |
|
|
|
|
@Override |
|
|
|
|
public ArrayList<Map<LocalDateTime, DeviceReport>> getDataList( |
|
|
|
|
Map.Entry<String, Map<LocalDateTime, List<DeviceReport>>> entry) { |
|
|
|
|
ArrayList<Map<LocalDateTime, DeviceReport>> result = new ArrayList<>(); |
|
|
|
|
|
|
|
|
|
//获取到电表的数据,按照表号分组分组,紧接着再按照小时分组。需要计算分组后的数据取出最大值
|
|
|
|
|
Map<LocalDateTime, List<DeviceReport>> deviceMap = entry.getValue(); |
|
|
|
|
String deviceNum = entry.getKey(); |
|
|
|
|
Set<Map.Entry<LocalDateTime, List<DeviceReport>>> groupEntryList = deviceMap.entrySet(); |
|
|
|
|
for (Map.Entry<LocalDateTime, List<DeviceReport>> listEntry : groupEntryList) { |
|
|
|
|
LocalDateTime key = listEntry.getKey(); |
|
|
|
|
List<DeviceReport> value = listEntry.getValue(); |
|
|
|
|
DeviceReport maxEntity = value.stream() |
|
|
|
|
.max(Comparator.comparing(obj -> Double.valueOf(obj.getCurValue()))) |
|
|
|
|
.orElse(null); |
|
|
|
|
HashMap<LocalDateTime, DeviceReport> map = new HashMap<>(); |
|
|
|
|
map.put(key, maxEntity); |
|
|
|
|
result.add(map); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return result; |
|
|
|
|
} |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
private String des; |
|
|
|
|
|