修改mqtt变量 #32

Merged
p95fco63j merged 1 commits from junmao_branch into develop 1 month ago

@ -1,5 +1,5 @@
package com.campus.water.config;
import com.campus.water.config.MqttConfig;//编译器问题
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.integration.mqtt.inbound.MqttPahoMessageDrivenChannelAdapter;

@ -10,14 +10,15 @@ import java.time.LocalDateTime;
@Data
public class WaterMakerSensorData {
private String deviceId; // 设备唯一ID如WM001
private Double tdsValue; // TDS值水质指标
private Double waterFlow; // 水流量L/min
private Double waterPressure; // 水压MPa
private Double tdsValue1; // TDS值水质指标
private Double tdsValue2;
private Double tdsValue3;
private Double waterFlow1; // 水流量L/min
private Double waterFlow2;
private Double waterPress; // 水压MPa
private Integer filterLife; // 滤芯寿命(%
private Boolean leakage; // 是否漏水true=漏水false=正常)
private Double temperature; // 水温(℃)
private Double humidity; // 环境湿度(%RH
private String waterQuality; // 水质等级(合格/不合格)
private String status; // 设备状态normal=正常error=异常)
private LocalDateTime timestamp; // 数据采集时间戳
private LocalDateTime recordTime; // 数据采集时间戳
}

@ -11,10 +11,9 @@ import java.time.LocalDateTime;
public class WaterSupplySensorData {
private String deviceId; // 设备唯一ID如WS001
private Double waterFlow; // 水流量L/min
private Double waterPressure; // 水压MPa
private Double waterPress; // 水压MPa
private Double waterLevel; // 水位(%
private Double temperature; // 水温(℃)
private Double humidity; // 环境湿度(%RH
private String status; // 设备状态normal=正常error=异常)
private LocalDateTime timestamp; // 数据采集时间戳
}

@ -86,16 +86,17 @@ public class MqttSensorReceiver {
// 2. 模型对象转换为JPA实体持久化到数据库
WaterMakerRealtimeData entity = new WaterMakerRealtimeData();
entity.setDeviceId(sensorData.getDeviceId());
entity.setTdsValue(sensorData.getTdsValue());
entity.setWaterFlow(sensorData.getWaterFlow());
entity.setWaterPressure(sensorData.getWaterPressure());
entity.setTdsValue1(sensorData.getTdsValue1());
entity.setTdsValue2(sensorData.getTdsValue2());
entity.setTdsValue3(sensorData.getTdsValue3());
entity.setWaterFlow1(sensorData.getWaterFlow1());
entity.setWaterFlow2(sensorData.getWaterFlow2());
entity.setWaterPress(sensorData.getWaterPress());
entity.setFilterLife(sensorData.getFilterLife());
entity.setLeakage(sensorData.getLeakage() ? 1 : 0); // 数据库存储1=漏水0=正常
entity.setTemperature(sensorData.getTemperature());
entity.setHumidity(sensorData.getHumidity());
entity.setWaterQuality(sensorData.getWaterQuality());
entity.setStatus(WaterMakerRealtimeData.DeviceStatus.valueOf(sensorData.getStatus().toUpperCase()));
entity.setTimestamp(sensorData.getTimestamp());
entity.setRecordTime(sensorData.getRecordTime());
entity.setCreatedTime(LocalDateTime.now());
// 3. 持久化到数据库JPA save() 自动实现CRUD
@ -113,20 +114,22 @@ public class MqttSensorReceiver {
Alert alert = new Alert();
alert.setDeviceId(sensorData.getDeviceId());
alert.setAlertType("WATER_MAKER_ABNORMAL"); // 告警类型(枚举规范)
alert.setAlertLevel(Alert.AlertLevel.CRITICAL); // 告警级别(严重)
alert.setAlertLevel(Alert.AlertLevel.critical); // 告警级别(严重)
alert.setAlertMessage(String.format(
"制水机异常 - 设备ID%sTDS值%.2f,滤芯寿命:%d%%,漏水状态:%s",
sensorData.getDeviceId(),
sensorData.getTdsValue(),
sensorData.getTdsValue1(),
sensorData.getTdsValue2(),
sensorData.getTdsValue3(),
sensorData.getFilterLife(),
sensorData.getLeakage() ? "是" : "否"
));
alert.setStatus(Alert.AlertStatus.PENDING); // 告警状态(未处理)
alert.setTimestamp(sensorData.getTimestamp());
alert.setCreateTime(LocalDateTime.now());
alert.setStatus(Alert.AlertStatus.pending); // 告警状态(未处理)
alert.setTimestamp(sensorData.getRecordTime());
alert.setCreatedTime(LocalDateTime.now());
alertRepo.save(alert);
log.warn("制水机告警记录持久化成功 | 告警ID{} | 设备ID{}", alert.getId(), sensorData.getDeviceId());
log.warn("制水机告警记录持久化成功 | 告警ID{} | 设备ID{}", alert.getAlertId(), sensorData.getDeviceId());
// 2. 同时持久化状态数据(便于后续追溯)
handleWaterMakerState(payload);
@ -141,13 +144,12 @@ public class MqttSensorReceiver {
WaterSupplyRealtimeData entity = new WaterSupplyRealtimeData();
entity.setDeviceId(sensorData.getDeviceId());
entity.setWaterFlow(sensorData.getWaterFlow());
entity.setWaterPressure(sensorData.getWaterPressure());
entity.setWaterPress(sensorData.getWaterPress());
entity.setWaterLevel(sensorData.getWaterLevel());
entity.setTemperature(sensorData.getTemperature());
entity.setHumidity(sensorData.getHumidity());
entity.setStatus(WaterSupplyRealtimeData.DeviceStatus.valueOf(sensorData.getStatus().toUpperCase()));
entity.setTimestamp(sensorData.getTimestamp());
entity.setCreatedTime(LocalDateTime.now());
waterSupplyRepo.save(entity);
log.info("供水机状态数据持久化成功 | 设备ID{}", sensorData.getDeviceId());
@ -163,19 +165,19 @@ public class MqttSensorReceiver {
Alert alert = new Alert();
alert.setDeviceId(sensorData.getDeviceId());
alert.setAlertType("WATER_SUPPLY_ABNORMAL");
alert.setAlertLevel(Alert.AlertLevel.ERROR);
alert.setAlertLevel(Alert.AlertLevel.error);
alert.setAlertMessage(String.format(
"供水机异常 - 设备ID%s水压%.2fMPa,水位:%.2f%%",
sensorData.getDeviceId(),
sensorData.getWaterPressure(),
sensorData.getWaterPress(),
sensorData.getWaterLevel()
));
alert.setStatus(Alert.AlertStatus.PENDING);
alert.setStatus(Alert.AlertStatus.pending);
alert.setTimestamp(sensorData.getTimestamp());
alert.setCreateTime(LocalDateTime.now());
alert.setCreatedTime(LocalDateTime.now());
alertRepo.save(alert);
log.warn("供水机告警记录持久化成功 | 告警ID{} | 设备ID{}", alert.getId(), sensorData.getDeviceId());
log.warn("供水机告警记录持久化成功 | 告警ID{} | 设备ID{}", alert.getAlertId(), sensorData.getDeviceId());
// 2. 同时持久化状态数据
handleWaterSupplyState(payload);

Loading…
Cancel
Save