diff --git a/ems-admin/src/main/java/com/xzzn/web/controller/ems/MqttMessageController.java b/ems-admin/src/main/java/com/xzzn/web/controller/ems/MqttMessageController.java index aec61ae..e0d989a 100644 --- a/ems-admin/src/main/java/com/xzzn/web/controller/ems/MqttMessageController.java +++ b/ems-admin/src/main/java/com/xzzn/web/controller/ems/MqttMessageController.java @@ -1,8 +1,13 @@ package com.xzzn.web.controller.ems; +import com.xzzn.ems.domain.EmsMqttMessage; +import com.xzzn.ems.service.IEmsMqttMessageService; import com.xzzn.framework.manager.MqttLifecycleManager; import com.xzzn.framework.web.service.MqttPublisher; import com.xzzn.framework.web.service.MqttSubscriber; +import org.apache.coyote.http11.Http11NioProtocol; +import org.apache.juli.logging.Log; +import org.apache.juli.logging.LogFactory; import org.eclipse.paho.client.mqttv3.IMqttMessageListener; import org.eclipse.paho.client.mqttv3.MqttException; import org.eclipse.paho.client.mqttv3.MqttMessage; @@ -14,8 +19,16 @@ import javax.annotation.PostConstruct; @Service public class MqttMessageController implements MqttPublisher, MqttSubscriber { + + private static final Log log = LogFactory.getLog(MqttMessageController.class); + + private final MqttLifecycleManager mqttLifecycleManager; + @Autowired + private IEmsMqttMessageService emsMqttMessageService; + + @Autowired public MqttMessageController(MqttLifecycleManager mqttLifecycleManager) { this.mqttLifecycleManager = mqttLifecycleManager; @@ -24,29 +37,50 @@ public class MqttMessageController implements MqttPublisher, MqttSubscriber { @PostConstruct public void init() { // 订阅系统状态主题 - subscribe("system/status", 1, this::handleSystemStatus); + subscribe("021_FXX_01_UP", 1, this::handleDeviceData); + subscribe("021_FXX_01_RECALL", 1, this::handleDeviceData); + subscribe("021_FXX_01_DOWN", 1, this::handleDeviceData); + subscribe("021_FXX_01", 1, this::handleSystemStatus); - // 订阅设备数据主题 - subscribe("devices/data", 0, this::handleDeviceData); } // 处理系统状态消息 private void handleSystemStatus(String topic, MqttMessage message) { String payload = new String(message.getPayload()); System.out.println("[SYSTEM] Status update: " + payload); - // 业务处理逻辑 - + try { + // 业务处理逻辑 + EmsMqttMessage mqttMessage = new EmsMqttMessage(); + mqttMessage.setMqttTopic(topic); + mqttMessage.setMqttMessage(payload); + mqttMessage.setCreateTime(new java.util.Date()); + mqttMessage.setUpdateTime(new java.util.Date()); + mqttMessage.setCreateBy("system"); + mqttMessage.setUpdateBy("system"); + emsMqttMessageService.insertEmsMqttMessage(mqttMessage); + } catch (Exception e) { + log.error("Failed to process system status message: " + e.getMessage(), e); + } } // 处理设备数据 private void handleDeviceData(String topic, MqttMessage message) { String payload = new String(message.getPayload()); System.out.println("[DEVICE] data: " + payload); - // 业务处理逻辑 - - - + try { + // 业务处理逻辑 + EmsMqttMessage mqttMessage = new EmsMqttMessage(); + mqttMessage.setMqttTopic(topic); + mqttMessage.setMqttMessage(payload); + mqttMessage.setCreateTime(new java.util.Date()); + mqttMessage.setUpdateTime(new java.util.Date()); + mqttMessage.setCreateBy("system"); + mqttMessage.setUpdateBy("system"); + emsMqttMessageService.insertEmsMqttMessage(mqttMessage); + } catch (Exception e) { + log.error("Failed to process system status message: " + e.getMessage(), e); + } } diff --git a/ems-system/src/main/java/com/xzzn/ems/domain/EmsMqttMessage.java b/ems-system/src/main/java/com/xzzn/ems/domain/EmsMqttMessage.java new file mode 100644 index 0000000..b9828ca --- /dev/null +++ b/ems-system/src/main/java/com/xzzn/ems/domain/EmsMqttMessage.java @@ -0,0 +1,71 @@ +package com.xzzn.ems.domain; + +import com.xzzn.common.core.domain.BaseEntity; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.xzzn.common.annotation.Excel; + +/** + * 【请填写功能名称】对象 ems_mqtt_message + * + * @author xzzn + * @date 2025-06-27 + */ +public class EmsMqttMessage extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 主键 */ + private Long id; + + /** $column.columnComment */ + @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()") + private String mqttTopic; + + /** $column.columnComment */ + @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()") + private String mqttMessage; + + public void setId(Long id) + { + this.id = id; + } + + public Long getId() + { + return id; + } + + public void setMqttTopic(String mqttTopic) + { + this.mqttTopic = mqttTopic; + } + + public String getMqttTopic() + { + return mqttTopic; + } + + public void setMqttMessage(String mqttMessage) + { + this.mqttMessage = mqttMessage; + } + + public String getMqttMessage() + { + return mqttMessage; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("mqttTopic", getMqttTopic()) + .append("mqttMessage", getMqttMessage()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .toString(); + } +} diff --git a/ems-system/src/main/java/com/xzzn/ems/mapper/EmsMqttMessageMapper.java b/ems-system/src/main/java/com/xzzn/ems/mapper/EmsMqttMessageMapper.java new file mode 100644 index 0000000..adf7841 --- /dev/null +++ b/ems-system/src/main/java/com/xzzn/ems/mapper/EmsMqttMessageMapper.java @@ -0,0 +1,62 @@ +package com.xzzn.ems.mapper; + +import com.xzzn.ems.domain.EmsMqttMessage; + +import java.util.List; + +/** + * 【请填写功能名称】Mapper接口 + * + * @author xzzn + * @date 2025-06-27 + */ +public interface EmsMqttMessageMapper +{ + /** + * 查询【请填写功能名称】 + * + * @param id 【请填写功能名称】主键 + * @return 【请填写功能名称】 + */ + public EmsMqttMessage selectEmsMqttMessageById(Long id); + + /** + * 查询【请填写功能名称】列表 + * + * @param emsMqttMessage 【请填写功能名称】 + * @return 【请填写功能名称】集合 + */ + public List selectEmsMqttMessageList(EmsMqttMessage emsMqttMessage); + + /** + * 新增【请填写功能名称】 + * + * @param emsMqttMessage 【请填写功能名称】 + * @return 结果 + */ + public int insertEmsMqttMessage(EmsMqttMessage emsMqttMessage); + + /** + * 修改【请填写功能名称】 + * + * @param emsMqttMessage 【请填写功能名称】 + * @return 结果 + */ + public int updateEmsMqttMessage(EmsMqttMessage emsMqttMessage); + + /** + * 删除【请填写功能名称】 + * + * @param id 【请填写功能名称】主键 + * @return 结果 + */ + public int deleteEmsMqttMessageById(Long id); + + /** + * 批量删除【请填写功能名称】 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteEmsMqttMessageByIds(Long[] ids); +} diff --git a/ems-system/src/main/java/com/xzzn/ems/service/IEmsMqttMessageService.java b/ems-system/src/main/java/com/xzzn/ems/service/IEmsMqttMessageService.java new file mode 100644 index 0000000..c7355cb --- /dev/null +++ b/ems-system/src/main/java/com/xzzn/ems/service/IEmsMqttMessageService.java @@ -0,0 +1,62 @@ +package com.xzzn.ems.service; + +import com.xzzn.ems.domain.EmsMqttMessage; + +import java.util.List; + +/** + * 【请填写功能名称】Service接口 + * + * @author xzzn + * @date 2025-06-27 + */ +public interface IEmsMqttMessageService +{ + /** + * 查询【请填写功能名称】 + * + * @param id 【请填写功能名称】主键 + * @return 【请填写功能名称】 + */ + public EmsMqttMessage selectEmsMqttMessageById(Long id); + + /** + * 查询【请填写功能名称】列表 + * + * @param emsMqttMessage 【请填写功能名称】 + * @return 【请填写功能名称】集合 + */ + public List selectEmsMqttMessageList(EmsMqttMessage emsMqttMessage); + + /** + * 新增【请填写功能名称】 + * + * @param emsMqttMessage 【请填写功能名称】 + * @return 结果 + */ + public int insertEmsMqttMessage(EmsMqttMessage emsMqttMessage); + + /** + * 修改【请填写功能名称】 + * + * @param emsMqttMessage 【请填写功能名称】 + * @return 结果 + */ + public int updateEmsMqttMessage(EmsMqttMessage emsMqttMessage); + + /** + * 批量删除【请填写功能名称】 + * + * @param ids 需要删除的【请填写功能名称】主键集合 + * @return 结果 + */ + public int deleteEmsMqttMessageByIds(Long[] ids); + + /** + * 删除【请填写功能名称】信息 + * + * @param id 【请填写功能名称】主键 + * @return 结果 + */ + public int deleteEmsMqttMessageById(Long id); +} diff --git a/ems-system/src/main/java/com/xzzn/ems/service/impl/EmsMqttMessageServiceImpl.java b/ems-system/src/main/java/com/xzzn/ems/service/impl/EmsMqttMessageServiceImpl.java new file mode 100644 index 0000000..8c6e158 --- /dev/null +++ b/ems-system/src/main/java/com/xzzn/ems/service/impl/EmsMqttMessageServiceImpl.java @@ -0,0 +1,96 @@ +package com.xzzn.ems.service.impl; + +import java.util.List; +import com.xzzn.common.utils.DateUtils; +import com.xzzn.ems.domain.EmsMqttMessage; +import com.xzzn.ems.mapper.EmsMqttMessageMapper; +import com.xzzn.ems.service.IEmsMqttMessageService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +/** + * 【请填写功能名称】Service业务层处理 + * + * @author xzzn + * @date 2025-06-27 + */ +@Service +public class EmsMqttMessageServiceImpl implements IEmsMqttMessageService +{ + @Autowired + private EmsMqttMessageMapper emsMqttMessageMapper; + + /** + * 查询【请填写功能名称】 + * + * @param id 【请填写功能名称】主键 + * @return 【请填写功能名称】 + */ + @Override + public EmsMqttMessage selectEmsMqttMessageById(Long id) + { + return emsMqttMessageMapper.selectEmsMqttMessageById(id); + } + + /** + * 查询【请填写功能名称】列表 + * + * @param emsMqttMessage 【请填写功能名称】 + * @return 【请填写功能名称】 + */ + @Override + public List selectEmsMqttMessageList(EmsMqttMessage emsMqttMessage) + { + return emsMqttMessageMapper.selectEmsMqttMessageList(emsMqttMessage); + } + + /** + * 新增【请填写功能名称】 + * + * @param emsMqttMessage 【请填写功能名称】 + * @return 结果 + */ + @Override + public int insertEmsMqttMessage(EmsMqttMessage emsMqttMessage) + { + emsMqttMessage.setCreateTime(DateUtils.getNowDate()); + return emsMqttMessageMapper.insertEmsMqttMessage(emsMqttMessage); + } + + /** + * 修改【请填写功能名称】 + * + * @param emsMqttMessage 【请填写功能名称】 + * @return 结果 + */ + @Override + public int updateEmsMqttMessage(EmsMqttMessage emsMqttMessage) + { + emsMqttMessage.setUpdateTime(DateUtils.getNowDate()); + return emsMqttMessageMapper.updateEmsMqttMessage(emsMqttMessage); + } + + /** + * 批量删除【请填写功能名称】 + * + * @param ids 需要删除的【请填写功能名称】主键 + * @return 结果 + */ + @Override + public int deleteEmsMqttMessageByIds(Long[] ids) + { + return emsMqttMessageMapper.deleteEmsMqttMessageByIds(ids); + } + + /** + * 删除【请填写功能名称】信息 + * + * @param id 【请填写功能名称】主键 + * @return 结果 + */ + @Override + public int deleteEmsMqttMessageById(Long id) + { + return emsMqttMessageMapper.deleteEmsMqttMessageById(id); + } +} diff --git a/ems-system/src/main/resources/mapper/ems/EmsMqttMessageMapper.xml b/ems-system/src/main/resources/mapper/ems/EmsMqttMessageMapper.xml new file mode 100644 index 0000000..c101d13 --- /dev/null +++ b/ems-system/src/main/resources/mapper/ems/EmsMqttMessageMapper.xml @@ -0,0 +1,79 @@ + + + + + + + + + + + + + + + + select id, mqtt_topic, mqtt_message, create_by, create_time, update_by, update_time from ems_mqtt_message + + + + + + + + insert into ems_mqtt_message + + id, + mqtt_topic, + mqtt_message, + create_by, + create_time, + update_by, + update_time, + + + #{id}, + #{mqttTopic}, + #{mqttMessage}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + + + + + update ems_mqtt_message + + mqtt_topic = #{mqttTopic}, + mqtt_message = #{mqttMessage}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + + where id = #{id} + + + + delete from ems_mqtt_message where id = #{id} + + + + delete from ems_mqtt_message where id in + + #{id} + + + \ No newline at end of file