From 4d64b681a922846f6ae336310e40743a76993c7d Mon Sep 17 00:00:00 2001 From: 25604 Date: Thu, 25 Sep 2025 19:54:08 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E5=AE=9A=E6=97=B6=E5=BC=80=E5=85=B3?= =?UTF-8?q?=E9=A3=8E=E6=9F=9C=E9=80=BB=E8=BE=91=E4=BC=98=E5=8C=96=EF=BC=9B?= =?UTF-8?q?=202=E3=80=81=E7=83=AD=E6=B0=B4=E4=BE=9B=E6=B0=B4=E6=B3=B5?= =?UTF-8?q?=E9=80=BB=E8=BE=91=E4=BF=AE=E6=94=B9=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../test/java/com/mh/MHApplicationTest.java | 7 ++ .../core/domain/dto/HotWaterNowDataDTO.java | 8 ++ .../main/java/com/mh/quartz/task/AHUTask.java | 76 ++++++++++++------- .../CollectionParamsManageServiceImpl.java | 58 ++++++++++++-- 4 files changed, 114 insertions(+), 35 deletions(-) diff --git a/mh-admin/src/test/java/com/mh/MHApplicationTest.java b/mh-admin/src/test/java/com/mh/MHApplicationTest.java index 905a2ae..555718f 100644 --- a/mh-admin/src/test/java/com/mh/MHApplicationTest.java +++ b/mh-admin/src/test/java/com/mh/MHApplicationTest.java @@ -60,6 +60,13 @@ public class MHApplicationTest { } } + @Test + public void testDate() { + Date date = new Date(); + boolean sameDay = DateUtils.isSameDay(DateUtils.stringToDate("2025-09-24 00:00:00", "yyyy-MM-dd HH:mm:ss"), date); + System.out.println(sameDay); + } + @Test public void calcEnergyData() { 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 82b6471..46bb091 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 @@ -38,6 +38,14 @@ public class HotWaterNowDataDTO { private String freq2; // 供水频率2 + private String upWaterState3; // 供水3泵状态 + + private String freq3; // 供水频率3 + + private String upWaterState4; // 供水4泵状态 + + private String freq4; // 供水频率4 + private String useWaterState; // 补水状态 private String backWaterState; // 回水状态 diff --git a/mh-quartz/src/main/java/com/mh/quartz/task/AHUTask.java b/mh-quartz/src/main/java/com/mh/quartz/task/AHUTask.java index a5aac31..da2b062 100644 --- a/mh-quartz/src/main/java/com/mh/quartz/task/AHUTask.java +++ b/mh-quartz/src/main/java/com/mh/quartz/task/AHUTask.java @@ -56,7 +56,9 @@ public class AHUTask { private final List ahuList = List.of("ddc13_0211385", // 软件2号 "ddc13_0211485", // 软件3号 "ddc14_01185", // 硬件2号 - "ddc14_01285" // 硬件3号 + "ddc14_01285", // 硬件3号 + "ddc13_1510085", // 远程手自动启停 + "ddc13_1510185" // 时间表启停 ); @Autowired @@ -68,7 +70,7 @@ public class AHUTask { this.iMqttGatewayService = iMqttGatewayService; } - public void ddc13SendDataToDDC14() { + public void ddc13SendDataToDDC14() throws InterruptedException { HashMap queryMap = new HashMap<>(); queryMap.put("systemType", "2"); queryMap.put("isUse", 0); @@ -80,12 +82,12 @@ public class AHUTask { if (list.isEmpty()) { return; } - Optional twoHardStartStopList = list.stream().filter(val -> val.getMtNum().equals("ddc13_14185")).findFirst(); - boolean present = twoHardStartStopList.isPresent(); - CollectionParamsManage threeHardStartStop = new CollectionParamsManage(); - if (present) { - threeHardStartStop = twoHardStartStopList.get(); - } +// Optional twoHardStartStopList = list.stream().filter(val -> val.getMtNum().equals("ddc13_1510085")).findFirst(); +// boolean present = twoHardStartStopList.isPresent(); +// CollectionParamsManage threeHardStartStop = new CollectionParamsManage(); +// if (present) { +// threeHardStartStop = twoHardStartStopList.get(); +// } Optional twoHardParamList = list.stream().filter(val -> val.getMtNum().equals("ddc14_01185")).findFirst(); Optional threeHardParamList = list.stream().filter(val -> val.getMtNum().equals("ddc14_01285")).findFirst(); CollectionParamsManage twoHardParam = new CollectionParamsManage(); @@ -98,31 +100,49 @@ public class AHUTask { } int twoSoftValue = 0; int threeSoftValue = 0; - for (CollectionParamsManage value : list) { - if (value.getMtNum().contains("ddc13_0211385")) { - // 2号软件风阀调节 - twoSoftValue = value.getCurValue().intValue(); - if (threeHardStartStop.getCurValue().intValue() == 0 && twoHardParam.getCurValue().intValue() == 0) { - continue; - } else if (threeHardStartStop.getCurValue().intValue() == 0 && twoHardParam.getCurValue().intValue() > 0) { - // 发送值给2号硬件风阀控制点位 - sendOrderToMqtt(List.of(new OrderEntity(twoHardParam.getId(), String.valueOf(twoSoftValue), 0, twoHardParam.getOtherName()))); - } else { - sendOrderToMqtt(List.of(new OrderEntity(twoHardParam.getId(), String.valueOf(twoSoftValue), 0, twoHardParam.getOtherName()))); + // 判断远程启停或者时间表启停是否开启来,判断是否存在getCurValue,且当前时间等于今天的时间 + if (list.stream().anyMatch(val -> + (val.getMtNum().equals("ddc13_1510085") || val.getMtNum().equals("ddc13_1510185")) + && val.getCurValue() != null && val.getCurValue().intValue() == 1)) { + // 判断curTime是否为今天 + Date now = new Date(); + boolean isToday = list.stream().anyMatch(val -> + (val.getMtNum().equals("ddc13_1510085") || val.getMtNum().equals("ddc13_1510185")) + && val.getCurTime() != null && DateUtils.isSameDay(val.getCurTime(), now)); + if (isToday) { + // 如果curTime是今天,则执行相关逻辑 + // 可以在这里添加需要执行的代码 + for (CollectionParamsManage value : list) { + if (value.getMtNum().contains("ddc13_0211385")) { + // 2号软件风阀调节 + twoSoftValue = value.getCurValue().intValue(); + sendOrderToMqtt(List.of(new OrderEntity(twoHardParam.getId(), String.valueOf(twoSoftValue), 0, twoHardParam.getOtherName()))); + } else if (value.getMtNum().contains("ddc13_0211485")) { + // 3号软件风阀调节 + threeSoftValue = value.getCurValue().intValue(); + sendOrderToMqtt(List.of(new OrderEntity(threeHardParam.getId(), String.valueOf(threeSoftValue), 0, threeHardParam.getOtherName()))); + } + Thread.sleep(2000); } - } else if (value.getMtNum().contains("ddc13_0211485")) { - // 3号软件风阀调节 - threeSoftValue = value.getCurValue().intValue(); - if (threeHardStartStop.getCurValue().intValue() == 0 && threeHardParam.getCurValue().intValue() == 0) { - continue; - } else if (threeHardStartStop.getCurValue().intValue() == 0 && threeHardParam.getCurValue().intValue() > 0) { + } + } else { + for (CollectionParamsManage value : list) { + if (value.getMtNum().contains("ddc13_0211385")) { + if (twoHardParam.getCurValue() != null && twoHardParam.getCurValue().intValue() != 0) { + // 发送值给2号硬件风阀控制点位 + sendOrderToMqtt(List.of(new OrderEntity(twoHardParam.getId(), "0", 0, twoHardParam.getOtherName()))); + } + } else if (value.getMtNum().contains("ddc13_0211485")) { + if (threeHardParam.getCurValue() != null && threeHardParam.getCurValue().intValue() != 0) { // 发送值给3号硬件风阀控制点位 - sendOrderToMqtt(List.of(new OrderEntity(threeHardParam.getId(), String.valueOf(threeSoftValue), 0, threeHardParam.getOtherName()))); - } else { - sendOrderToMqtt(List.of(new OrderEntity(threeHardParam.getId(), String.valueOf(threeSoftValue), 0, threeHardParam.getOtherName()))); + sendOrderToMqtt(List.of(new OrderEntity(threeHardParam.getId(), "0", 0, threeHardParam.getOtherName()))); + } } + Thread.sleep(2000); } } + + } public void sendOrderToMqtt(List changeValues) { 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 426763c..3c766fd 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 @@ -70,6 +70,7 @@ public class CollectionParamsManageServiceImpl implements ICollectionParamsManag "DBB611640",// 副阀 "DBB611634",// 风机电源 "DB611514", // 风机实际速度 + "DB611514_1", // 转速百分比 "DB611496", // 烟气温度 "DB611736", // 水位 "DBB611635",// 主水泵 @@ -662,14 +663,17 @@ public class CollectionParamsManageServiceImpl implements ICollectionParamsManag return dto; }).toList(); - // 处理供水泵状态(deviceType=10) - List waterPumps = collectionParamsManageMapper.selectHotWaterBySystemTypeAndBuildingIdAndDeviceType(systemType, floorId, "10"); + // 处理供水泵状态 + List waterPumps = floorInfos.stream() + .flatMap(floorInfo -> collectionParamsManageMapper.selectHotWaterBySystemTypeAndBuildingIdAndDeviceType(systemType, floorInfo.getId(), "10").stream()) + .toList(); + // 判断是否存在collectValue>0的记录 boolean hasValidCollectValue1 = waterPumps.stream() .anyMatch(vo -> "1".equals(vo.getParamType()) && vo.getCollectValue() != null && new BigDecimal(vo.getCollectValue()).intValue() > 0 - && vo.getCollectName().contains("供水泵1")); + && (vo.getCollectName().contains("裙楼供水泵1") || vo.getCollectName().contains("高区供水泵1"))); // 根据判断结果设置状态值 result.forEach(dto -> dto.setUpWaterState1(hasValidCollectValue1 ? "1" : "0")); // 判断是否存在collectValue>0的记录 @@ -677,14 +681,14 @@ public class CollectionParamsManageServiceImpl implements ICollectionParamsManag .anyMatch(vo -> "1".equals(vo.getParamType()) && vo.getCollectValue() != null && new BigDecimal(vo.getCollectValue()).intValue() > 0 - && vo.getCollectName().contains("供水泵2")); + && (vo.getCollectName().contains("裙楼供水泵2") || vo.getCollectName().contains("高区供水泵2"))); // 根据判断结果设置状态值 result.forEach(dto -> dto.setUpWaterState2(hasValidCollectValue2 ? "1" : "0")); // 频率反馈1 DeviceMonitorVO freq1 = waterPumps.stream() .filter(vo -> "4".equals(vo.getParamType()) && vo.getCollectValue() != null - && vo.getCollectName().contains("供水泵1")) + && (vo.getCollectName().contains("裙楼供水泵1") || vo.getCollectName().contains("高区供水泵1"))) .collect(Collectors.toList()).getFirst(); // 根据判断结果设置状态值 if (StringUtils.isEmpty(freq1.getCollectValue())) { @@ -695,7 +699,7 @@ public class CollectionParamsManageServiceImpl implements ICollectionParamsManag DeviceMonitorVO freq2 = waterPumps.stream() .filter(vo -> "4".equals(vo.getParamType()) && vo.getCollectValue() != null - && vo.getCollectName().contains("供水泵2")) + && (vo.getCollectName().contains("裙楼供水泵2") || vo.getCollectName().contains("高区供水泵2"))) .collect(Collectors.toList()).getFirst(); if (StringUtils.isEmpty(freq2.getCollectValue())) { freq2.setCollectValue("0"); @@ -703,6 +707,46 @@ public class CollectionParamsManageServiceImpl implements ICollectionParamsManag // 根据判断结果设置状态值 result.forEach(dto -> dto.setFreq2(new BigDecimal(freq2.getCollectValue()).setScale(2, RoundingMode.HALF_UP).toString())); + // 判断是否存在collectValue>0的记录 + boolean hasValidCollectValue3 = waterPumps.stream() + .anyMatch(vo -> "1".equals(vo.getParamType()) + && vo.getCollectValue() != null + && new BigDecimal(vo.getCollectValue()).intValue() > 0 + && (vo.getCollectName().contains("中厨供水泵1") || vo.getCollectName().contains("中区供水泵1"))); + // 根据判断结果设置状态值 + result.forEach(dto -> dto.setUpWaterState3(hasValidCollectValue3 ? "1" : "0")); + // 判断是否存在collectValue>0的记录 + boolean hasValidCollectValue4 = waterPumps.stream() + .anyMatch(vo -> "1".equals(vo.getParamType()) + && vo.getCollectValue() != null + && new BigDecimal(vo.getCollectValue()).intValue() > 0 + && (vo.getCollectName().contains("中厨供水泵2") || vo.getCollectName().contains("中区供水泵2"))); + // 根据判断结果设置状态值 + result.forEach(dto -> dto.setUpWaterState4(hasValidCollectValue4 ? "1" : "0")); + // 频率反馈1 + DeviceMonitorVO freq3 = waterPumps.stream() + .filter(vo -> "4".equals(vo.getParamType()) + && vo.getCollectValue() != null + && (vo.getCollectName().contains("中厨供水泵1") || vo.getCollectName().contains("中区供水泵1"))) + .collect(Collectors.toList()).getFirst(); + // 根据判断结果设置状态值 + if (StringUtils.isEmpty(freq3.getCollectValue())) { + freq3.setCollectValue("0"); + } + result.forEach(dto -> dto.setFreq3(new BigDecimal(freq3.getCollectValue()).setScale(2, RoundingMode.HALF_UP).toString())); + // 频率反馈2 + DeviceMonitorVO freq4 = waterPumps.stream() + .filter(vo -> "4".equals(vo.getParamType()) + && vo.getCollectValue() != null + && (vo.getCollectName().contains("中厨供水泵2") || vo.getCollectName().contains("中区供水泵2"))) + .collect(Collectors.toList()).getFirst(); + if (StringUtils.isEmpty(freq4.getCollectValue())) { + freq4.setCollectValue("0"); + } + // 根据判断结果设置状态值 + result.forEach(dto -> dto.setFreq2(new BigDecimal(freq4.getCollectValue()).setScale(2, RoundingMode.HALF_UP).toString())); + + // 处理水箱,水箱绑定了补水阀参数(deviceType=16) List waterValves = collectionParamsManageMapper.selectHotWaterBySystemTypeAndBuildingIdAndDeviceType(systemType, floorId, "16"); // 判断是否存在collectValue>0的记录 @@ -962,7 +1006,7 @@ public class CollectionParamsManageServiceImpl implements ICollectionParamsManag deviceMonitorVO.setDeviceType(param.getMtType()); deviceMonitorVO.setCollectName(param.getOtherName()); deviceMonitorVO.setCollectTime(param.getCurTime()); - deviceMonitorVO.setCollectValue(String.valueOf(param.getCurValue())); + deviceMonitorVO.setCollectValue(String.valueOf(new BigDecimal(String.valueOf(param.getCurValue())).intValue())); deviceMonitorVO.setParamType(param.getParamType()); } return deviceMonitorVO;