diff --git a/mh-admin/src/main/java/com/mh/web/controller/device/OperationController.java b/mh-admin/src/main/java/com/mh/web/controller/device/OperationController.java index 058c578..6c9386a 100644 --- a/mh-admin/src/main/java/com/mh/web/controller/device/OperationController.java +++ b/mh-admin/src/main/java/com/mh/web/controller/device/OperationController.java @@ -1,15 +1,16 @@ package com.mh.web.controller.device; import com.mh.common.annotation.ControlDeviceAno; +import com.mh.common.annotation.Log; import com.mh.common.core.controller.BaseController; import com.mh.common.core.domain.AjaxResult; import com.mh.common.core.domain.dto.DeviceMonitorDTO; import com.mh.common.core.domain.entity.OrderEntity; import com.mh.common.core.domain.vo.DeviceOperateMonitorVO; import com.mh.common.core.page.TableDataInfo; +import com.mh.common.enums.BusinessType; import com.mh.framework.mqtt.service.IMqttGatewayService; import com.mh.system.service.device.ICollectionParamsManageService; -import com.mh.system.service.mqtt.IMqttSubscriptionService; import com.mh.system.service.operation.IOperationDeviceService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; @@ -86,13 +87,14 @@ public class OperationController extends BaseController { */ @PreAuthorize("@ss.hasPermi('device:cpm:operation')") @PostMapping("/operation") + @Log(title = "设备指令操作操作", businessType = BusinessType.UPDATE) @ControlDeviceAno(value = "设备操作") public AjaxResult operationDevice(@RequestBody List changeValues) { try { String sendOrder = iOperationService.operationDevice(changeValues); // 获取mqtt操作队列(后期通过mqtt队列配置发送主题) log.info("发送主题:{},消息:{}", controlTopic, sendOrder); - iMqttGatewayService.publish(controlTopic, sendOrder, 1); +// iMqttGatewayService.publish(controlTopic, sendOrder, 1); } catch (Exception e) { log.error("设备操作失败", e); return AjaxResult.error(); 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 bd09b99..88cb80d 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 @@ -23,27 +23,98 @@ public class HotWaterControlVO { private String name; - private String alarmStatus; + // 运行状态 1 + private int runningStatus; + private String runningStatusId; - private String switchStatus; + // 启停控制 2 + private int switchStatus; + private String switchStatusId; + // 频率设置 3 + @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "0") + private BigDecimal frequencySet; + private String frequencySetId; + + // 频率 4 + @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "0") + private BigDecimal frequency; + private String frequencyId; + + // 故障状态 5 + private int alarmStatus; + private String alarmStatusId; + + // 手动自动切换 6 + private int handAutomaticSwitch; + private String handAutomaticSwitchId; + + // 开控制 8 + private int openSwitch; + private String openSwitchId; + + // 关控制 9 + private int closeSwitch; + private String closeSwitchId; + + // 水位设置 10 + @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "0.0") + private BigDecimal waterLevelSet; + private String waterLevelSetId; + + // 水位 11 + @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "0.0") + private BigDecimal waterLevel; + private String waterLevelId; + + // 温度 12 @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "0") private BigDecimal temp; + private String tempId; + // 压力 13 + @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "0") + private BigDecimal pressure; + private String pressureId; + + // 温度设置 14 @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "0") private BigDecimal tempSet; + private String tempSetId; + // 压力设置 15 @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "0") - private BigDecimal frequency; + private BigDecimal pressureSet; + private String pressureSetId; + // 延时时间设置 34 @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "0") - private BigDecimal frequencySet; + private BigDecimal delayTimeSet; + private String delayTimeSetId; - @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "0.0") - private BigDecimal waterLevel; + // 差值设置 35 + @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "0") + private BigDecimal diffValueSet; + private String diffValueSetId; + + // 计数器设置 36 + @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "0") + private BigDecimal counterSet; + private String counterSetId; + + // 切换时间设置 37 + @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "0") + private BigDecimal switchTimeSet; + private String switchTimeSetId; + + // 故障复位状态 38 + private int faultResetStatus; + private String faultResetStatusId; + + // 急停状态 39 + private int emergencyStopStatus; + private String emergencyStopStatusId; - @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "0.0") - private BigDecimal waterLevelSet; @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date curTime; @@ -55,14 +126,26 @@ public class HotWaterControlVO { return new ToStringBuilder(this) .append("id", id) .append("name", name) - .append("alarmStatus", alarmStatus) + .append("runningStatus", runningStatus) .append("switchStatus", switchStatus) - .append("temp", temp) - .append("tempSet", tempSet) - .append("frequency", frequency) .append("frequencySet", frequencySet) - .append("waterLevel", waterLevel) + .append("frequency", frequency) + .append("alarmStatus", alarmStatus) + .append("handAutomaticSwitch", handAutomaticSwitch) + .append("openSwitch", openSwitch) + .append("closeSwitch", closeSwitch) .append("waterLevelSet", waterLevelSet) + .append("waterLevel", waterLevel) + .append("temp", temp) + .append("pressure", pressure) + .append("tempSet", tempSet) + .append("pressureSet", pressureSet) + .append("delayTimeSet", delayTimeSet) + .append("diffValueSet", diffValueSet) + .append("counterSet", counterSet) + .append("switchTimeSet", switchTimeSet) + .append("faultResetStatus", faultResetStatus) + .append("emergencyStopStatus", emergencyStopStatus) .append("curTime", curTime) .append("orderNum", orderNum) .toString(); diff --git a/mh-system/src/main/java/com/mh/system/mapper/device/CollectionParamsManageMapper.java b/mh-system/src/main/java/com/mh/system/mapper/device/CollectionParamsManageMapper.java index 8ba00b7..9023e5b 100644 --- a/mh-system/src/main/java/com/mh/system/mapper/device/CollectionParamsManageMapper.java +++ b/mh-system/src/main/java/com/mh/system/mapper/device/CollectionParamsManageMapper.java @@ -214,8 +214,7 @@ public interface CollectionParamsManageMapper extends BaseMapper selectHotWaterBySystemTypeAndBuildingId(@Param("systemType") String systemType, 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 5cc39db..42a37ca 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 @@ -158,7 +158,7 @@ public class CollectionParamsManageServiceImpl implements ICollectionParamsManag // 批量更新 chillersEntities.forEach(chillerEntity -> { log.info("chillerEntity: {}", chillerEntity.toString()); - if (chillerEntity.getId()!= null && !StringUtils.isEmpty(chillerEntity.getId())) { + if (chillerEntity.getId() != null && !StringUtils.isEmpty(chillerEntity.getId())) { collectionParamsManageMapper.updateCurValueById(chillerEntity.getId(), chillerEntity.getCurValue(), chillerEntity.getCurTime()); } }); @@ -466,7 +466,7 @@ public class CollectionParamsManageServiceImpl implements ICollectionParamsManag } return hotWaterControlListVOS.stream() - .peek(vo -> System.out.println(vo.getHiOrderNum())) +// .peek(vo -> System.out.println(vo.getHiOrderNum())) .collect(Collectors.groupingBy(HotWaterControlListVO::getHouseId)) .entrySet().stream() .map(houseEntry -> { @@ -482,35 +482,97 @@ public class CollectionParamsManageServiceImpl implements ICollectionParamsManag HotWaterControlVO vo = new HotWaterControlVO(); List dlItems = dlEntry.getValue(); vo.setId(dlEntry.getKey()); - vo.setName(dlItems.getFirst().getDeviceName()); + if (StringUtils.isEmpty(dlItems.getFirst().getDeviceName())) { + // 如果设备名称为空,则使用房间号 + vo.setName(dto.getName()); + } else { + vo.setName(dlItems.getFirst().getDeviceName()); + } vo.setOrderNum(dlItems.getFirst().getDlOrderNum()); dlItems.forEach(item -> { switch (item.getParamType()) { + case "1": + // 运行状态 + vo.setRunningStatus(item.getCurValue().intValue()); + vo.setRunningStatusId(item.getCpmId()); + break; case "2": - vo.setSwitchStatus(String.valueOf(item.getCurValue())); + vo.setSwitchStatus(item.getCurValue().intValue()); + vo.setSwitchStatusId(item.getCpmId()); + break; + case "3": + vo.setFrequencySet(item.getCurValue()); + vo.setFrequencySetId(item.getCpmId()); + break; + case "4": + vo.setFrequency(item.getCurValue()); + vo.setFrequencyId(item.getCpmId()); break; case "5": - vo.setAlarmStatus(String.valueOf(item.getCurValue())); + vo.setAlarmStatus(item.getCurValue().intValue()); + vo.setAlarmStatusId(item.getCpmId()); break; - case "14": - vo.setTempSet(item.getCurValue()); + case "6": + vo.setHandAutomaticSwitch(item.getCurValue().intValue()); + vo.setHandAutomaticSwitchId(item.getCpmId()); break; - case "12": - vo.setTemp(item.getCurValue()); + case "8": + vo.setOpenSwitch(item.getCurValue().intValue()); + vo.setOpenSwitchId(item.getCpmId()); break; - case "4": - vo.setFrequency(item.getCurValue()); + case "9": + vo.setCloseSwitch(item.getCurValue().intValue()); + vo.setCloseSwitchId(item.getCpmId()); break; - case "3": - vo.setFrequencySet(item.getCurValue()); + case "10": + vo.setWaterLevelSet(item.getCurValue()); + vo.setWaterLevelSetId(item.getCpmId()); break; case "11": vo.setWaterLevel(item.getCurValue()); vo.setCurTime(item.getCurTime()); + vo.setWaterLevelId(item.getCpmId()); break; - case "10": - vo.setWaterLevelSet(item.getCurValue()); + case "12": + vo.setTemp(item.getCurValue()); + vo.setTempId(item.getCpmId()); + break; + case "13": + vo.setPressure(item.getCurValue()); + vo.setPressureId(item.getCpmId()); + break; + case "14": + vo.setTempSet(item.getCurValue()); + vo.setTempSetId(item.getCpmId()); + break; + case "15": + vo.setPressureSet(item.getCurValue()); + vo.setPressureSetId(item.getCpmId()); + break; + case "34": + vo.setDelayTimeSet(item.getCurValue()); + vo.setDelayTimeSetId(item.getCpmId()); + break; + case "35": + vo.setDiffValueSet(item.getCurValue()); + vo.setDiffValueSetId(item.getCpmId()); + break; + case "36": + vo.setCounterSet(item.getCurValue()); + vo.setCounterSetId(item.getCpmId()); + break; + case "37": + vo.setSwitchTimeSet(item.getCurValue()); + vo.setSwitchTimeSetId(item.getCpmId()); + break; + case "38": + vo.setFaultResetStatus(item.getCurValue().intValue()); + vo.setFaultResetStatusId(item.getCpmId()); + break; + case "39": + vo.setEmergencyStopStatus(item.getCurValue().intValue()); + vo.setEmergencyStopStatusId(item.getCpmId()); break; default: // 处理未识别的paramType或忽略