| New file | 
|  |  |  | 
|---|
|  |  |  | package com.dy.common.mw.protocol; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import java.io.Serializable; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import com.alibaba.fastjson2.JSON ; | 
|---|
|  |  |  | import com.alibaba.fastjson2.JSONObject; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public class Command implements Serializable{ | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public static final long serialVersionUID; | 
|---|
|  |  |  | static { | 
|---|
|  |  |  | serialVersionUID = 201211292156L; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 当命令结果返回的网址是此值时,忽略执行,例如中间件主动下发的命令,就不用返回命令结果 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | public static final String ignoreRtuResultSendWebUrl = "http://0.0.0.0" ; | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 默认命令ID | 
|---|
|  |  |  | * 如果命令不在数据库中存储,或其他可以用defaultId | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | public static final String defaultId = "999999999" ; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 本条命令的ID | 
|---|
|  |  |  | * 一般是命令在数据库中存储记录ID的字符串形式 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | public String id; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * RTU协议名称,这个可以为空,因为RTU上行数据解析出协议名称,然后系统把协议名称保存在RTU数据记录中,从此协议名称就不再空了 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | public String protocol; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * RTU协议名称,这个可以为空 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | public Short protocolVersion; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * RTU 地址 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | public String rtuAddr ; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 命令类型:Rtu命令、针对监控中间件的命令 | 
|---|
|  |  |  | * 由com.dy.common.mw.protocol.CommandType类定义 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | public String type ; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 功能码 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | public String code ; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * rtu返回命令结果 发向目的地web URL | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | public String rtuResultSendWebUrl ; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 具体参数数据 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | public Object param ; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 其他数据 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | public Object attachment ; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public String toString(){ | 
|---|
|  |  |  | String s = "命令id=" + id + "\n" ; | 
|---|
|  |  |  | s += (protocol == null ? "" : ("协议=" + protocol + "\n")); | 
|---|
|  |  |  | s += (protocolVersion == null ? "" : ("协议版本号=" + protocolVersion + "\n")); | 
|---|
|  |  |  | s += (rtuAddr == null ? "" : ("Rtu地址=" + rtuAddr + "\n")); | 
|---|
|  |  |  | s += "命令类型=" + (type.equals(CommandType.innerCommand)?"内部命令":(type.equals(CommandType.outerCommand)?"RTU命令":"透传命令")) + "\n" ; | 
|---|
|  |  |  | s += (code == null ? "" : ("功能码=" + code + "\n")) ; | 
|---|
|  |  |  | s += (rtuResultSendWebUrl == null ? "" : ("回调网址=" + rtuResultSendWebUrl + "\n")); | 
|---|
|  |  |  | if(param != null){ | 
|---|
|  |  |  | s += "参数:" + param  ; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(attachment != null){ | 
|---|
|  |  |  | s += "其他数据:" + attachment  ; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return s ; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 对象转成json | 
|---|
|  |  |  | * @return json | 
|---|
|  |  |  | * @throws Exception 异常 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @SuppressWarnings("unused") | 
|---|
|  |  |  | public String toJson()throws Exception{ | 
|---|
|  |  |  | try{ | 
|---|
|  |  |  | String json = JSON.toJSONString(this) ; | 
|---|
|  |  |  | return json ; | 
|---|
|  |  |  | }catch(Exception e){ | 
|---|
|  |  |  | throw new Exception(e.getMessage() , e ) ; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * json转成对象 | 
|---|
|  |  |  | * @param json json | 
|---|
|  |  |  | * @return Command | 
|---|
|  |  |  | * @throws Exception 异常 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @SuppressWarnings("unused") | 
|---|
|  |  |  | public static Command jsonToObject(String json)throws Exception{ | 
|---|
|  |  |  | try{ | 
|---|
|  |  |  | JSONObject jsonObject = JSON.parseObject(json); | 
|---|
|  |  |  | Command command = jsonObject.to(Command.class) ; | 
|---|
|  |  |  | //command.param = jsonObject.getObject("param", class); | 
|---|
|  |  |  | return command ; | 
|---|
|  |  |  | }catch(Exception e){ | 
|---|
|  |  |  | throw new Exception(e.getMessage() , e ) ; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 创建返回的出错命令 | 
|---|
|  |  |  | * @param error 错误消息 | 
|---|
|  |  |  | * @param commandId 命令ID | 
|---|
|  |  |  | * @return Command | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @SuppressWarnings("unused") | 
|---|
|  |  |  | public Command createReturnErrorCommand(String error , String commandId, String code){ | 
|---|
|  |  |  | if(commandId == null){ | 
|---|
|  |  |  | this.setId(defaultId) ; | 
|---|
|  |  |  | }else{ | 
|---|
|  |  |  | this.setId(commandId) ; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | this.code = code ; | 
|---|
|  |  |  | this.type = CommandType.resultCommand ; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | CommandBackParam p = new CommandBackParam() ; | 
|---|
|  |  |  | p.setSuccess(false) ; | 
|---|
|  |  |  | p.setMessage(error) ; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | this.param = p ; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | return this ; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 创建返回的简单成功命令,针对监控中间件的命令 | 
|---|
|  |  |  | * @param message 消息 | 
|---|
|  |  |  | * @param commandId 命令ID | 
|---|
|  |  |  | * @param code 功能码 | 
|---|
|  |  |  | * @return Command | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @SuppressWarnings("unused") | 
|---|
|  |  |  | public Command createReturnSuccessCommand(String message , String commandId, String code){ | 
|---|
|  |  |  | if(commandId == null){ | 
|---|
|  |  |  | this.setId(defaultId) ; | 
|---|
|  |  |  | }else{ | 
|---|
|  |  |  | this.setId(commandId) ; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | this.code = code ; | 
|---|
|  |  |  | this.type = CommandType.resultCommand ; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | CommandBackParam p = new CommandBackParam() ; | 
|---|
|  |  |  | p.setSuccess(true) ; | 
|---|
|  |  |  | p.setMessage(message) ; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | this.param = p ; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | return this ; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public String getId() { | 
|---|
|  |  |  | return id; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | public Command setId(String id) { | 
|---|
|  |  |  | this.id = id; | 
|---|
|  |  |  | return this ; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | public String getRtuAddr() { | 
|---|
|  |  |  | return rtuAddr; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | public Command setRtuAddr(String rtuAddr) { | 
|---|
|  |  |  | this.rtuAddr = rtuAddr; | 
|---|
|  |  |  | return this ; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public String getRtuResultSendWebUrl() { | 
|---|
|  |  |  | return rtuResultSendWebUrl; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public void setRtuResultSendWebUrl(String rtuResultSendWebUrl) { | 
|---|
|  |  |  | this.rtuResultSendWebUrl = rtuResultSendWebUrl; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public String getProtocol() { | 
|---|
|  |  |  | return protocol; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | public void setProtocol(String protocol) { | 
|---|
|  |  |  | this.protocol = protocol; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | public String getType() { | 
|---|
|  |  |  | return type; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | public Command setType(String type) { | 
|---|
|  |  |  | this.type = type; | 
|---|
|  |  |  | return this ; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | public String getCode() { | 
|---|
|  |  |  | return code; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | public Command setCode(String code) { | 
|---|
|  |  |  | this.code = code; | 
|---|
|  |  |  | return this ; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | public Object getParam() { | 
|---|
|  |  |  | return param; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | public Command setParam(Object param) { | 
|---|
|  |  |  | this.param = param; | 
|---|
|  |  |  | return this ; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | public Object getAttachment() { | 
|---|
|  |  |  | return attachment; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | @SuppressWarnings("unused") | 
|---|
|  |  |  | public Command setAttachment(Object attachment) { | 
|---|
|  |  |  | this.attachment = attachment; | 
|---|
|  |  |  | return this ; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|