package com.dy.common.mw.protocol4Mqtt; 
 | 
  
 | 
import com.dy.common.mw.protocol4Mqtt.pSdV1.upVos.ManureVo; 
 | 
import com.dy.common.util.Callback; 
 | 
import lombok.Data; 
 | 
  
 | 
/** 
 | 
 * @Author: liurunyu 
 | 
 * @Date: 2025/6/5 11:44 
 | 
 * @Description 
 | 
 */ 
 | 
@Data 
 | 
public class MqttSubMsg { 
 | 
    public String commandId ;//命令ID 
 | 
    public String mqttResultSendWebUrl ;//Mtt返回命令结果 发向目的地web URL 
 | 
  
 | 
    public String deviceId ;//设备ID 
 | 
    public String protocol;//协议 
 | 
  
 | 
    public MqttTopic topic ;//消息主题 
 | 
    public String metaData;//MQTT推送来的元数据 
 | 
  
 | 
    public Vo4Up vo4Up;//订阅的消息数据值对象 
 | 
    public MqttSubMsg() { 
 | 
    } 
 | 
    public MqttSubMsg(MqttTopic subTopic, String msg) { 
 | 
        this.deviceId = subTopic.devId ; 
 | 
        this.protocol = subTopic.protocol ; 
 | 
        this.topic = subTopic ; 
 | 
        this.metaData = msg ; 
 | 
    } 
 | 
  
 | 
    public boolean valid() { 
 | 
        if (topic == null || topic.isEmpty()) { 
 | 
            return false; 
 | 
        } 
 | 
        if (metaData == null || metaData.isEmpty()) { 
 | 
            return false; 
 | 
        } 
 | 
        return true; 
 | 
    } 
 | 
  
 | 
    public boolean subMsgMatchPubMsg(MqttPubMsg pubMsg){ 
 | 
        if(this.vo4Up != null && this.vo4Up instanceof ManureVo){ 
 | 
            //只要上报的是状态数据,说明设备响应了命令 
 | 
            return true ; 
 | 
        } 
 | 
        return false ; 
 | 
    } 
 | 
  
 | 
    public void action(Callback callback){ 
 | 
        callback.call(this) ; 
 | 
    } 
 | 
  
 | 
  
 | 
    public String toString(){ 
 | 
        StringBuilder sb = new StringBuilder(); 
 | 
        if(commandId != null){ 
 | 
            sb.append("commandId:") 
 | 
                    .append(commandId) 
 | 
                    .append("\n") ; 
 | 
        } 
 | 
        sb.append("主题:") 
 | 
                .append(topic.longName()) 
 | 
                .append("\n") ; 
 | 
        if(vo4Up != null){ 
 | 
            sb.append("数据:") 
 | 
                    .append(vo4Up.toString()) 
 | 
                    .append("\n") ; 
 | 
        }else{ 
 | 
            sb.append("元数据:") 
 | 
                    .append(metaData) 
 | 
                    .append("\n") ; 
 | 
        } 
 | 
        return sb.toString() ; 
 | 
    } 
 | 
} 
 |