#update mqtt 上位机

This commit is contained in:
2026-08-07 08:45:43 +08:00
parent c3398c6c07
commit 3ba32b19ce
12 changed files with 403 additions and 80 deletions

View File

@@ -13,6 +13,7 @@ import com.maibu.core.enums.AlarmType;
import com.maibu.core.redis.RedisCache;
import org.eclipse.paho.client.mqttv3.MqttException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -51,6 +52,10 @@ public class AlarmServiceImpl extends ServiceImpl<AlarmMapper, Alarm> implements
@Autowired
private RedisCache redisCache;
@Value("${mqtt.client-id}")
private String mqttClientId;
@Override
public List<Alarm> selectAlarmPage(AlarmQueryDTO queryDTO) {
// validateQueryParams(queryDTO);
@@ -407,7 +412,8 @@ public class AlarmServiceImpl extends ServiceImpl<AlarmMapper, Alarm> implements
public void pushErrorMessage(String deviceId, String dto) {
try {
GlobalMemory.mqttClientUtil.publish(String.format(MqttTopic.DEVICE_ERROR_PUSH_TOPIC, deviceId), dto);
GlobalMemory.customMqttDeviceMonitor.publish(mqttClientId, String.format(MqttTopic.DEVICE_ERROR_PUSH_TOPIC, deviceId), dto);
// GlobalMemory.mqttClientUtil.publish(String.format(MqttTopic.DEVICE_ERROR_PUSH_TOPIC, deviceId), dto);
// List<NettyDevice> controlMasters =
// sessionManager.getAllSlaveControl(deviceId);
// if (!CollectionUtils.isEmpty(controlMasters)) {

View File

@@ -273,25 +273,15 @@ public class IotDeviceCommonService {
ScheduledExecutorService executor = Executors.newSingleThreadScheduledExecutor();
executor.scheduleWithFixedDelay(() -> {
try {
CustomMqttDeviceMonitor monitor = GlobalMemory.customMqttDeviceMonitor;
GlobalMemory.getAllSiteMemory().forEach(siteMemory -> {
CustomMqttDeviceMonitor monitor = siteMemory.getCustomMqttDeviceMonitor();
if (monitor == null) {
// 1. 创建 MQTT 监控器和消息处理器
monitor = new CustomMqttDeviceMonitor();
monitor.registerHandler(new GenericPropertyMessageHandler());
monitor.registerHandler(new ActionMessageHandler());
siteMemory.setCustomMqttDeviceMonitor(monitor);
}
// 2. 查询所有外部设备
List<IoTCommonDevice> deviceList = siteMemory.getAllCommonDevice();
if (CollectionUtils.isEmpty(deviceList)) {
return;
}
for (IoTCommonDevice device : deviceList) {
if (!ConnectType.MQTT.equals(device.getConnectType())) {
continue;
@@ -333,8 +323,6 @@ public class IotDeviceCommonService {
monitor.registerDevice(deviceConfig);
}
siteMemory.setCustomMqttDeviceMonitor(monitor);
monitor.start();
});
} catch (Exception e) {