|  |  | 
 |  |  |  | 
 |  |  | import com.alibaba.fastjson2.JSON; | 
 |  |  |  | 
 |  |  | import java.io.Serial; | 
 |  |  |  | 
 |  |  | /** | 
 |  |  |  * 数据根 | 
 |  |  |  * @author Administrator | 
 |  |  |  * | 
 |  |  |  */ | 
 |  |  | public class Data  implements java.io.Serializable{ | 
 |  |  | 	 | 
 |  |  |    @Serial | 
 |  |  |    private static final long serialVersionUID = 20160805192500101L; | 
 |  |  | 	 | 
 |  |  |    public static String ALIAS = Data.class.getName() ; | 
 |  |  | 	 | 
 |  |  |  | 
 |  |  |    public String rtuResultSendWebUrl ;//rtu返回命令结果 发向目的地web URL | 
 |  |  |    private String commandId ;//命令ID,可能为null | 
 |  |  |    private String rtuAddr ;//终端地址 | 
 |  |  |    private String meterNo ;//水表号 | 
 |  |  |    private String protocol ;//数据所对应的协议名称 | 
 |  |  |    private String code ;//数据所对应的功能码: | 
 |  |  |    private Object subData ;//对应各个功能码的具体数据 | 
 |  |  |    private String hex ;//上报数据的十六进制 | 
 |  |  |  | 
 |  |  |    public String toString() { | 
 |  |  |       StringBuffer sb = new StringBuffer() ; | 
 |  |  |       sb.append("上行报文(十六进制): " + (hex == null?"":hex) + "\n") ; // | 
 |  |  |       sb.append("IMEI号 : " + (rtuAddr==null?"":rtuAddr) + "\n") ; | 
 |  |  |       sb.append("水表号 : " + (meterNo==null?"":meterNo) + "\n") ; | 
 |  |  |       if(commandId != null){ | 
 |  |  |          sb.append("命令ID : " + commandId + "\n") ; //命令ID | 
 |  |  |       StringBuilder sb = new StringBuilder() ; | 
 |  |  |       sb.append("上行报文(十六进制): ").append((hex == null?"":hex)).append("\n") ; // | 
 |  |  |       sb.append("Rtu地址 : ").append((rtuAddr==null?"":rtuAddr)).append("\n") ; | 
 |  |  |       if(rtuResultSendWebUrl != null){ | 
 |  |  |          sb.append("命令结果发往 : ").append(rtuResultSendWebUrl).append("\n") ; //rtu返回命令结果 发向目的地web URL | 
 |  |  |       } | 
 |  |  |       sb.append("协议 : " + (protocol == null?"":protocol) + "\n") ; // | 
 |  |  |       if(commandId != null){ | 
 |  |  |          sb.append("命令ID : ").append(commandId).append("\n") ; //命令ID | 
 |  |  |       } | 
 |  |  |       sb.append("协议 : ").append((protocol == null?"":protocol)).append("\n") ; // | 
 |  |  |       sb.append((code == null ? "" : ("功能码:" + code + "\n"))) ; | 
 |  |  |       if(this.subData  != null){ | 
 |  |  |          sb.append("上行数据:\n" + this.subData.toString()) ; | 
 |  |  |          sb.append("上行数据:\n").append(this.subData) ; | 
 |  |  |       } | 
 |  |  |       return sb.toString() ; | 
 |  |  |    } | 
 |  |  | 
 |  |  |  | 
 |  |  |    /** | 
 |  |  |     * 对象转成json | 
 |  |  |     * @return json | 
 |  |  |     * @throws Exception | 
 |  |  |     * @return 对象 | 
 |  |  |     */ | 
 |  |  |    public String toJson()throws Exception{ | 
 |  |  |    public String toJson(){ | 
 |  |  |       return JSON.toJSONString(this); | 
 |  |  |    } | 
 |  |  |    /** | 
 |  |  |     * json转成对象 | 
 |  |  |     * @param json | 
 |  |  |     * @return Data | 
 |  |  |     * @throws Exception | 
 |  |  |     * @param json json | 
 |  |  |     * @return Data Date | 
 |  |  |     */ | 
 |  |  |    public static Data jsonToObject(String json)throws Exception{ | 
 |  |  |    @SuppressWarnings("unused") | 
 |  |  |    public static Data jsonToObject(String json){ | 
 |  |  |       return JSON.parseObject(json, Data.class) ; | 
 |  |  |    } | 
 |  |  |  | 
 |  |  | 
 |  |  |       Data d = new Data() ; | 
 |  |  |       d.code = "01" ; | 
 |  |  |       d.rtuAddr = "123234" ; | 
 |  |  |       d.meterNo = "1234567890123456" ; | 
 |  |  |  | 
 |  |  |       DataV1_0_1 subD = new DataV1_0_1() ; | 
 |  |  |       subD.rtuAddr = "2342345" ; | 
 |  |  |       subD.meterNo = "1234567890123456" ; | 
 |  |  | 		 | 
 |  |  |  | 
 |  |  |       d.subData = subD ; | 
 |  |  |        | 
 |  |  |        | 
 |  |  | 
 |  |  |    public void setRtuAddr(String rtuAddr) { | 
 |  |  |       this.rtuAddr = rtuAddr; | 
 |  |  |    } | 
 |  |  | 	 | 
 |  |  |    public String getMeterNo() { | 
 |  |  |       return meterNo; | 
 |  |  |    } | 
 |  |  |    public void setMeterNo(String meterNo) { | 
 |  |  |       this.meterNo = meterNo; | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |    public String getCode() { | 
 |  |  |       return code; | 
 |  |  |    } | 
 |  |  | 
 |  |  |       this.subData = subData; | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |    @SuppressWarnings("unused") | 
 |  |  |    public String getHex() { | 
 |  |  |       return hex; | 
 |  |  |    } | 
 |  |  | 
 |  |  |       this.hex = hex; | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |    public String getRtuResultSendWebUrl() { | 
 |  |  |       return rtuResultSendWebUrl; | 
 |  |  |    } | 
 |  |  |    /** | 
 |  |  |     * 得到rtu返回命令结果 发向目的地web URL | 
 |  |  |     * 如果是主动上报数据,则此web URL为空 | 
 |  |  |     * @return  rtuResultSendWebUrl | 
 |  |  |     */ | 
 |  |  |    public void setRtuResultSendWebUrl(String rtuResultSendWebUrl) { | 
 |  |  |       this.rtuResultSendWebUrl = rtuResultSendWebUrl; | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |    public void setCommandId(String commandId) { | 
 |  |  |       this.commandId = commandId; | 
 |  |  |    } |