Browse Source

1、定时开关风柜逻辑优化;

2、热水供水泵逻辑修改;
dev_mz
25604 3 weeks ago
parent
commit
4d64b681a9
  1. 7
      mh-admin/src/test/java/com/mh/MHApplicationTest.java
  2. 8
      mh-common/src/main/java/com/mh/common/core/domain/dto/HotWaterNowDataDTO.java
  3. 60
      mh-quartz/src/main/java/com/mh/quartz/task/AHUTask.java
  4. 58
      mh-system/src/main/java/com/mh/system/service/device/impl/CollectionParamsManageServiceImpl.java

7
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() {

8
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; // 回水状态

60
mh-quartz/src/main/java/com/mh/quartz/task/AHUTask.java

@ -56,7 +56,9 @@ public class AHUTask {
private final List<String> 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<String, Object> queryMap = new HashMap<>();
queryMap.put("systemType", "2");
queryMap.put("isUse", 0);
@ -80,12 +82,12 @@ public class AHUTask {
if (list.isEmpty()) {
return;
}
Optional<CollectionParamsManage> 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<CollectionParamsManage> 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<CollectionParamsManage> twoHardParamList = list.stream().filter(val -> val.getMtNum().equals("ddc14_01185")).findFirst();
Optional<CollectionParamsManage> 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;
// 判断远程启停或者时间表启停是否开启来,判断是否存在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();
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())));
}
} 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) {
// 发送值给3号硬件风阀控制点位
sendOrderToMqtt(List.of(new OrderEntity(threeHardParam.getId(), String.valueOf(threeSoftValue), 0, threeHardParam.getOtherName())));
}
Thread.sleep(2000);
}
}
} else {
sendOrderToMqtt(List.of(new OrderEntity(threeHardParam.getId(), String.valueOf(threeSoftValue), 0, threeHardParam.getOtherName())));
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(), "0", 0, threeHardParam.getOtherName())));
}
}
Thread.sleep(2000);
}
}
}
public void sendOrderToMqtt(List<OrderEntity> changeValues) {

58
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<DeviceMonitorVO> waterPumps = collectionParamsManageMapper.selectHotWaterBySystemTypeAndBuildingIdAndDeviceType(systemType, floorId, "10");
// 处理供水泵状态
List<DeviceMonitorVO> 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<DeviceMonitorVO> 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;

Loading…
Cancel
Save