From 63985b2bd8476ecee9114fef4c2b8d9d16ea3661 Mon Sep 17 00:00:00 2001 From: "3067418132@qq.com" Date: Tue, 14 Apr 2026 17:17:16 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E5=A2=9E=E5=8A=A0=E5=BE=AA=E7=8E=AF?= =?UTF-8?q?=E6=B3=B5=E7=9B=B8=E5=85=B3=E6=95=B0=E6=8D=AE=E5=B1=95=E7=A4=BA?= =?UTF-8?q?=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/domain/dto/HotWaterNowDataDTO.java | 4 + .../core/domain/vo/HotWaterControlVO.java | 38 ++++++++ .../CollectionParamsManageServiceImpl.java | 93 +++++++++++++++++-- 3 files changed, 126 insertions(+), 9 deletions(-) diff --git a/mh-common/src/main/java/com/mh/common/core/domain/dto/HotWaterNowDataDTO.java b/mh-common/src/main/java/com/mh/common/core/domain/dto/HotWaterNowDataDTO.java index 49e3f99..9d0cb93 100644 --- a/mh-common/src/main/java/com/mh/common/core/domain/dto/HotWaterNowDataDTO.java +++ b/mh-common/src/main/java/com/mh/common/core/domain/dto/HotWaterNowDataDTO.java @@ -46,6 +46,10 @@ public class HotWaterNowDataDTO { private String backWaterState; // 回水状态 + private String loopPumpState1; // 1循环泵状态:0:关机 1:运行 2:故障 + + private String loopPumpState2; // 2循环泵状态:0:关机 1:运行 2:故障 + private int orderNum; } 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 37ee3c9..36a6a53 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 @@ -115,6 +115,44 @@ public class HotWaterControlVO { private int emergencyStopStatus; private String emergencyStopStatusId; + // 最低设置值 44 + private int minSet; + private String minSetId; + + // 校准值 + @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "0") + private BigDecimal calibrationValue; + private String calibrationValueId; + + // 工程量最低值 + @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "0") + private BigDecimal engineeringMinValue; + private String engineeringMinValueId; + + // 工程量最高值 + @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "0") + private BigDecimal engineeringMaxValue; + private String engineeringMaxValueId; + + // 数字量最低值 + @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "0") + private BigDecimal digitalMinValue; + private String digitalMinValueId; + + // 数字量最高值 + @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "0") + private BigDecimal digitalMaxValue; + private String digitalMaxValueId; + + // 中间值 + @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "0") + private BigDecimal middleValue; + private String middleValueId; + + // 累积运行时长:小时单位 + @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "0") + private BigDecimal runningTime; + private String runningTimeId; @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date curTime; 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 48f600c..38d9ef2 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 @@ -769,6 +769,32 @@ public class CollectionParamsManageServiceImpl implements ICollectionParamsManag result.forEach(dto -> dto.setBackWaterState(backWaterState ? "1" : "0")); } + // 处理循环泵deviceType=24 + List waterLoopPumps = collectionParamsManageMapper.selectHotWaterBySystemTypeAndBuildingIdAndDeviceType(systemType, floorId, "24"); + if (!waterLoopPumps.isEmpty()) { + // 循环泵状态:0:关机 1:运行 2:故障 + // 遍历获取1\2号循环泵状态 + waterLoopPumps.stream() + .filter(vo -> "1".equals(vo.getParamType()) && vo.getCollectValue() != null) + .forEach(vo -> { + if (vo.getOrderNum()==1) { + result.forEach(dto -> dto.setLoopPumpState1(String.valueOf(new BigDecimal(vo.getCollectValue()).intValue()))); + } else if (vo.getOrderNum()==2) { + result.forEach(dto -> dto.setLoopPumpState2(String.valueOf(new BigDecimal(vo.getCollectValue()).intValue()))); + } + }); + // 在判断paramType=5值是否是1,如果是1,就赋值循环泵状态2 + waterLoopPumps.stream() + .filter(vo -> "5".equals(vo.getParamType()) && vo.getCollectValue() != null && new BigDecimal(vo.getCollectValue()).intValue()==1) + .forEach(vo -> { + if (vo.getOrderNum()==1) { + result.forEach(dto -> dto.setLoopPumpState1("2")); + } else if (vo.getOrderNum()==2) { + result.forEach(dto -> dto.setLoopPumpState2("2")); + } + }); + } + // // 处理水箱液位(deviceType=16) // List waterLevels = collectionParamsManageMapper.selectHotWaterBySystemTypeAndBuildingIdAndDeviceType(systemType, floorId, "16"); @@ -848,10 +874,23 @@ public class CollectionParamsManageServiceImpl implements ICollectionParamsManag dlItems.forEach(item -> { switch (item.getParamType()) { + case "0": + handleCalibrationParameters(vo, item); + break; case "1": - // 运行状态 - vo.setRunningStatus(item.getCurValue().intValue()); - vo.setRunningStatusId(item.getCpmId()); + case "48": + if (item.getParamType().equals("1")) { + // 运行状态 + vo.setRunningStatus(item.getCurValue().intValue()); + vo.setRunningStatusId(item.getCpmId()); + } else { + List list = dlItems.stream() + .filter(v -> "48".equals(v.getParamType()) && (v.getCurValue().compareTo(new BigDecimal("1")) > 0)).toList(); + if (!list.isEmpty()) { + vo.setRunningStatus(1); + vo.setRunningStatusId(list.getFirst().getCpmId()); + } + } break; case "2": vo.setSwitchStatus(item.getCurValue().intValue()); @@ -882,11 +921,11 @@ public class CollectionParamsManageServiceImpl implements ICollectionParamsManag vo.setCloseSwitchId(item.getCpmId()); break; case "10": - vo.setWaterLevelSet(item.getCurValue()); + vo.setWaterLevelSet(BigDecimal.valueOf(item.getCurValue().intValue())); vo.setWaterLevelSetId(item.getCpmId()); break; case "11": - vo.setWaterLevel(item.getCurValue()); + vo.setWaterLevel(BigDecimal.valueOf(item.getCurValue().intValue())); vo.setCurTime(item.getCurTime()); vo.setWaterLevelId(item.getCpmId()); break; @@ -906,20 +945,25 @@ public class CollectionParamsManageServiceImpl implements ICollectionParamsManag vo.setPressureSet(item.getCurValue()); vo.setPressureSetId(item.getCpmId()); break; + case "26": + // 累计运行时间 + vo.setRunningTime(item.getCurValue()); + vo.setRunningTimeId(item.getCpmId()); + break; case "34": - vo.setDelayTimeSet(item.getCurValue()); + vo.setDelayTimeSet(BigDecimal.valueOf(item.getCurValue().intValue())); vo.setDelayTimeSetId(item.getCpmId()); break; case "35": - vo.setDiffValueSet(item.getCurValue()); + vo.setDiffValueSet(BigDecimal.valueOf(item.getCurValue().intValue())); vo.setDiffValueSetId(item.getCpmId()); break; case "36": - vo.setCounterSet(item.getCurValue()); + vo.setCounterSet(BigDecimal.valueOf(item.getCurValue().intValue())); vo.setCounterSetId(item.getCpmId()); break; case "37": - vo.setSwitchTimeSet(item.getCurValue()); + vo.setSwitchTimeSet(BigDecimal.valueOf(item.getCurValue().intValue())); vo.setSwitchTimeSetId(item.getCpmId()); break; case "38": @@ -930,6 +974,11 @@ public class CollectionParamsManageServiceImpl implements ICollectionParamsManag vo.setEmergencyStopStatus(item.getCurValue().intValue()); vo.setEmergencyStopStatusId(item.getCpmId()); break; + case "44": + // 最低设置值 + vo.setMinSet(item.getCurValue().intValue()); + vo.setMinSetId(item.getCpmId()); + break; default: // 处理未识别的paramType或忽略 break; @@ -948,6 +997,32 @@ public class CollectionParamsManageServiceImpl implements ICollectionParamsManag .collect(Collectors.toList()); } + private void handleCalibrationParameters(HotWaterControlVO deviceCalibrationVo, HotWaterControlListVO item) { + String otherName = item.getOtherName(); + BigDecimal value = item.getCurValue(); + String cpmId = item.getCpmId(); + + if (otherName.contains("工程量上限")) { + deviceCalibrationVo.setEngineeringMaxValue(value); + deviceCalibrationVo.setEngineeringMaxValueId(cpmId); + } else if (otherName.contains("工程量下限")) { + deviceCalibrationVo.setEngineeringMinValue(value); + deviceCalibrationVo.setEngineeringMinValueId(cpmId); + } else if (otherName.contains("数字量上限")) { + deviceCalibrationVo.setDigitalMaxValue(value); + deviceCalibrationVo.setDigitalMaxValueId(cpmId); + } else if (otherName.contains("数字量下限")) { + deviceCalibrationVo.setDigitalMinValue(value); + deviceCalibrationVo.setDigitalMinValueId(cpmId); + } else if (otherName.contains("校准值")) { + deviceCalibrationVo.setCalibrationValue(value); + deviceCalibrationVo.setCalibrationValueId(cpmId); + } else if (otherName.contains("中间值")) { + deviceCalibrationVo.setMiddleValue(value); + deviceCalibrationVo.setMiddleValueId(cpmId); + } + } + @Override public List selectMonitorListBySystemTypeAndHouseId(String systemType, String houseId) { // 根据系统类型查询出对应的设备