|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 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() ; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 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 rtuResultSendWebUrl ;//rtu返回命令结果 发向目的地web URL | 
|---|
|  |  |  | public String commandId ;//命令ID,可能为null | 
|---|
|  |  |  | public String rtuAddr ;//终端地址 | 
|---|
|  |  |  | public String protocol ;//数据所对应的协议名称 | 
|---|
|  |  |  | public String code ;//数据所对应的功能码: | 
|---|
|  |  |  | public Object subData ;//对应各个功能码的具体数据 | 
|---|
|  |  |  | public 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; | 
|---|
|  |  |  | } | 
|---|