Browse Source

1、水表接入系统

dev
3067418132@qq.com 3 weeks ago
parent
commit
7dd7b9866d
  1. 4
      mh-common/src/main/java/com/mh/common/core/domain/vo/HotWaterControlVO.java
  2. 55
      mh-common/src/main/java/com/mh/common/enums/ComputeEnum.java
  3. 3
      mh-common/src/main/java/com/mh/common/utils/AnalysisReceiveOrder485.java
  4. 5
      mh-system/src/main/java/com/mh/system/service/device/impl/CollectionParamsManageServiceImpl.java

4
mh-common/src/main/java/com/mh/common/core/domain/vo/HotWaterControlVO.java

@ -186,6 +186,10 @@ public class HotWaterControlVO {
private int orderNum;
// 本地远程状态 22: 0-本地 1-远程
private int localRemoteStatus;
private String localRemoteStatusId;
public void setCounterSet(BigDecimal counterSet) {
if (counterSet != null) {
counterSet = counterSet.setScale(0, BigDecimal.ROUND_HALF_UP);

55
mh-common/src/main/java/com/mh/common/enums/ComputeEnum.java

@ -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;

3
mh-common/src/main/java/com/mh/common/utils/AnalysisReceiveOrder485.java

@ -440,6 +440,7 @@ public class AnalysisReceiveOrder485 {
public static void main(String[] args) {
CollectionParamsManage collectionParamsManage = new CollectionParamsManage();
collectionParamsManage.setDataType(2);
new AnalysisReceiveOrder485().analysisLiquidControlOrder485("14 0304 03 E8 00 03 7E 83", collectionParamsManage);
collectionParamsManage.setDigits(2);
System.out.println(new AnalysisReceiveOrder485().analysisWaterOrder485("2103040012D68765F6", collectionParamsManage));
}
}

5
mh-system/src/main/java/com/mh/system/service/device/impl/CollectionParamsManageServiceImpl.java

@ -963,6 +963,11 @@ public class CollectionParamsManageServiceImpl implements ICollectionParamsManag
vo.setPressureSet(item.getCurValue());
vo.setPressureSetId(item.getCpmId());
break;
case "22":
// 本地远程状态
vo.setLocalRemoteStatus(item.getCurValue().intValue());
vo.setLocalRemoteStatusId(item.getCpmId());
break;
case "26":
// 累计运行时间
vo.setRunningTime(item.getCurValue());

Loading…
Cancel
Save