mqtt配置
This commit is contained in:
@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
@ -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();
|
||||
}
|
||||
}
|
@ -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<EmsMqttMessage> 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);
|
||||
}
|
@ -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<EmsMqttMessage> 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);
|
||||
}
|
@ -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<EmsMqttMessage> 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);
|
||||
}
|
||||
}
|
@ -0,0 +1,79 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.xzzn.ems.mapper.EmsMqttMessageMapper">
|
||||
|
||||
<resultMap type="EmsMqttMessage" id="EmsMqttMessageResult">
|
||||
<result property="id" column="id" />
|
||||
<result property="mqttTopic" column="mqtt_topic" />
|
||||
<result property="mqttMessage" column="mqtt_message" />
|
||||
<result property="createBy" column="create_by" />
|
||||
<result property="createTime" column="create_time" />
|
||||
<result property="updateBy" column="update_by" />
|
||||
<result property="updateTime" column="update_time" />
|
||||
</resultMap>
|
||||
|
||||
<sql id="selectEmsMqttMessageVo">
|
||||
select id, mqtt_topic, mqtt_message, create_by, create_time, update_by, update_time from ems_mqtt_message
|
||||
</sql>
|
||||
|
||||
<select id="selectEmsMqttMessageList" parameterType="EmsMqttMessage" resultMap="EmsMqttMessageResult">
|
||||
<include refid="selectEmsMqttMessageVo"/>
|
||||
<where>
|
||||
<if test="mqttTopic != null and mqttTopic != ''"> and mqtt_topic = #{mqttTopic}</if>
|
||||
<if test="mqttMessage != null and mqttMessage != ''"> and mqtt_message = #{mqttMessage}</if>
|
||||
</where>
|
||||
</select>
|
||||
|
||||
<select id="selectEmsMqttMessageById" parameterType="Long" resultMap="EmsMqttMessageResult">
|
||||
<include refid="selectEmsMqttMessageVo"/>
|
||||
where id = #{id}
|
||||
</select>
|
||||
|
||||
<insert id="insertEmsMqttMessage" parameterType="EmsMqttMessage">
|
||||
insert into ems_mqtt_message
|
||||
<trim prefix="(" suffix=")" suffixOverrides=",">
|
||||
<if test="id != null">id,</if>
|
||||
<if test="mqttTopic != null">mqtt_topic,</if>
|
||||
<if test="mqttMessage != null">mqtt_message,</if>
|
||||
<if test="createBy != null">create_by,</if>
|
||||
<if test="createTime != null">create_time,</if>
|
||||
<if test="updateBy != null">update_by,</if>
|
||||
<if test="updateTime != null">update_time,</if>
|
||||
</trim>
|
||||
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||
<if test="id != null">#{id},</if>
|
||||
<if test="mqttTopic != null">#{mqttTopic},</if>
|
||||
<if test="mqttMessage != null">#{mqttMessage},</if>
|
||||
<if test="createBy != null">#{createBy},</if>
|
||||
<if test="createTime != null">#{createTime},</if>
|
||||
<if test="updateBy != null">#{updateBy},</if>
|
||||
<if test="updateTime != null">#{updateTime},</if>
|
||||
</trim>
|
||||
</insert>
|
||||
|
||||
<update id="updateEmsMqttMessage" parameterType="EmsMqttMessage">
|
||||
update ems_mqtt_message
|
||||
<trim prefix="SET" suffixOverrides=",">
|
||||
<if test="mqttTopic != null">mqtt_topic = #{mqttTopic},</if>
|
||||
<if test="mqttMessage != null">mqtt_message = #{mqttMessage},</if>
|
||||
<if test="createBy != null">create_by = #{createBy},</if>
|
||||
<if test="createTime != null">create_time = #{createTime},</if>
|
||||
<if test="updateBy != null">update_by = #{updateBy},</if>
|
||||
<if test="updateTime != null">update_time = #{updateTime},</if>
|
||||
</trim>
|
||||
where id = #{id}
|
||||
</update>
|
||||
|
||||
<delete id="deleteEmsMqttMessageById" parameterType="Long">
|
||||
delete from ems_mqtt_message where id = #{id}
|
||||
</delete>
|
||||
|
||||
<delete id="deleteEmsMqttMessageByIds" parameterType="String">
|
||||
delete from ems_mqtt_message where id in
|
||||
<foreach item="id" collection="array" open="(" separator="," close=")">
|
||||
#{id}
|
||||
</foreach>
|
||||
</delete>
|
||||
</mapper>
|
Reference in New Issue
Block a user