From 7dd7b9866de838d8fdfbc0f8a760e82222dc2cec Mon Sep 17 00:00:00 2001 From: "3067418132@qq.com" Date: Mon, 27 Apr 2026 13:49:32 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E6=B0=B4=E8=A1=A8=E6=8E=A5=E5=85=A5?= =?UTF-8?q?=E7=B3=BB=E7=BB=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/domain/vo/HotWaterControlVO.java | 4 ++ .../java/com/mh/common/enums/ComputeEnum.java | 55 +++++++++++++++++++ .../common/utils/AnalysisReceiveOrder485.java | 3 +- .../CollectionParamsManageServiceImpl.java | 5 ++ 4 files changed, 66 insertions(+), 1 deletion(-) diff --git a/mh-common/src/main/java/com/mh/common/core/domain/vo/HotWaterControlVO.java b/mh-common/src/main/java/com/mh/common/core/domain/vo/HotWaterControlVO.java index 0eaf89a..c838e84 100644 --- a/mh-common/src/main/java/com/mh/common/core/domain/vo/HotWaterControlVO.java +++ b/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); diff --git a/mh-common/src/main/java/com/mh/common/enums/ComputeEnum.java b/mh-common/src/main/java/com/mh/common/enums/ComputeEnum.java index 1dc4437..0cd73df 100644 --- a/mh-common/src/main/java/com/mh/common/enums/ComputeEnum.java +++ b/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> getDataList( + Map.Entry>> entry) { + + ArrayList> result = new ArrayList<>(); + + //获取到电表的数据,按照表号分组分组,紧接着再按照小时分组。需要计算分组后的数据取出最大值 + Map> deviceMap = entry.getValue(); + String deviceNum = entry.getKey(); + Set>> groupEntryList = deviceMap.entrySet(); + for (Map.Entry> listEntry : groupEntryList) { + LocalDateTime key = listEntry.getKey(); + List value = listEntry.getValue(); + DeviceReport maxEntity = value.stream() + .max(Comparator.comparing(obj -> Double.valueOf(obj.getCurValue()))) + .orElse(null); + HashMap map = new HashMap<>(); + map.put(key, maxEntity); + result.add(map); + } + + return result; + } + }, /** * 电表 */ @@ -75,6 +103,33 @@ public enum ComputeEnum implements ComputeService { Map.Entry>> entry) { return null; } + }, + /** + * 蒸汽流量计数据处理 + */ + STEAM_FLOW("蒸汽流量计数据处理", 12) { + @Override + public ArrayList> getDataList( + Map.Entry>> entry) { + ArrayList> result = new ArrayList<>(); + + //获取到电表的数据,按照表号分组分组,紧接着再按照小时分组。需要计算分组后的数据取出最大值 + Map> deviceMap = entry.getValue(); + String deviceNum = entry.getKey(); + Set>> groupEntryList = deviceMap.entrySet(); + for (Map.Entry> listEntry : groupEntryList) { + LocalDateTime key = listEntry.getKey(); + List value = listEntry.getValue(); + DeviceReport maxEntity = value.stream() + .max(Comparator.comparing(obj -> Double.valueOf(obj.getCurValue()))) + .orElse(null); + HashMap map = new HashMap<>(); + map.put(key, maxEntity); + result.add(map); + } + + return result; + } }; private String des; diff --git a/mh-common/src/main/java/com/mh/common/utils/AnalysisReceiveOrder485.java b/mh-common/src/main/java/com/mh/common/utils/AnalysisReceiveOrder485.java index 0cac15b..372b52e 100644 --- a/mh-common/src/main/java/com/mh/common/utils/AnalysisReceiveOrder485.java +++ b/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)); } } diff --git a/mh-system/src/main/java/com/mh/system/service/device/impl/CollectionParamsManageServiceImpl.java b/mh-system/src/main/java/com/mh/system/service/device/impl/CollectionParamsManageServiceImpl.java index b870e58..d719bd5 100644 --- a/mh-system/src/main/java/com/mh/system/service/device/impl/CollectionParamsManageServiceImpl.java +++ b/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());