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; private int orderNum;
// 本地远程状态 22: 0-本地 1-远程
private int localRemoteStatus;
private String localRemoteStatusId;
public void setCounterSet(BigDecimal counterSet) { public void setCounterSet(BigDecimal counterSet) {
if (counterSet != null) { if (counterSet != null) {
counterSet = counterSet.setScale(0, BigDecimal.ROUND_HALF_UP); 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 { 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) { Map.Entry<String, Map<LocalDateTime, List<DeviceReport>>> entry) {
return null; 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; 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) { public static void main(String[] args) {
CollectionParamsManage collectionParamsManage = new CollectionParamsManage(); CollectionParamsManage collectionParamsManage = new CollectionParamsManage();
collectionParamsManage.setDataType(2); 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.setPressureSet(item.getCurValue());
vo.setPressureSetId(item.getCpmId()); vo.setPressureSetId(item.getCpmId());
break; break;
case "22":
// 本地远程状态
vo.setLocalRemoteStatus(item.getCurValue().intValue());
vo.setLocalRemoteStatusId(item.getCpmId());
break;
case "26": case "26":
// 累计运行时间 // 累计运行时间
vo.setRunningTime(item.getCurValue()); vo.setRunningTime(item.getCurValue());

Loading…
Cancel
Save