package com.ld.igds.protocol.fzzy.builder;
|
|
import com.ld.igds.models.DeviceSer;
|
import com.ld.igds.protocol.fzzy.ServerUtils;
|
import com.ld.igds.protocol.fzzy.dto.MessageInfo;
|
import com.ld.igds.protocol.fzzy.dto.ReMessage;
|
import com.ld.igds.protocol.fzzy.dto.SendMessage;
|
|
import org.apache.commons.lang3.RandomUtils;
|
|
/**
|
* 系统接口
|
*/
|
public class ObjectCommandBuilder extends CommandBuilder {
|
|
private final static ObjectCommandBuilder instance = new ObjectCommandBuilder();
|
|
private ObjectCommandBuilder() {
|
}
|
|
public static ObjectCommandBuilder getInstance() {
|
return instance;
|
}
|
|
public SendMessage buildMessage(DeviceSer deviceSer, String functionId, Object obj) {
|
|
SendMessage message = new SendMessage();
|
message.setIp(deviceSer.getIp());
|
message.setPort(deviceSer.getPort());
|
|
message.setBegin(ServerUtils.MSG_BEGIN);
|
|
// 调整信息
|
buildInfo(message, deviceSer, functionId, obj);
|
|
|
message.setEnd(ServerUtils.MSG_END);
|
|
// 生成整体命令信息和BYte信息
|
build(message);
|
|
return message;
|
}
|
|
public SendMessage buildMessage(ReMessage reMessage, String functionId, Object obj) {
|
|
SendMessage message = new SendMessage();
|
message.setIp(reMessage.getIp());
|
message.setPort(reMessage.getPort());
|
|
message.setBegin(ServerUtils.MSG_BEGIN);
|
|
// 调整信息
|
buildInfo(message, reMessage, functionId, obj);
|
|
|
message.setEnd(ServerUtils.MSG_END);
|
|
// 生成整体命令信息和BYte信息
|
build(message);
|
|
return message;
|
}
|
|
public void buildInfo(SendMessage message, ReMessage reMessage, String functionId, Object object) {
|
MessageInfo info = new MessageInfo();
|
info.setSign(reMessage.getCompanyId());
|
info.setIedId(reMessage.getIedId());
|
info.setFunctionId(functionId);
|
info.setRespCode("0000");
|
info.setOrderId(RandomUtils.nextInt(4000, 9999) + "");
|
info.setUserData("0");
|
info.setSign("0000");
|
info.setContent(object);
|
|
message.setInfo(info);
|
}
|
|
public void buildInfo(SendMessage message, DeviceSer deviceSer, String functionId, Object object) {
|
MessageInfo info = new MessageInfo();
|
info.setSign(deviceSer.getCompanyId());
|
info.setIedId(deviceSer.getId());
|
info.setFunctionId(functionId);
|
info.setRespCode("0000");
|
info.setOrderId(RandomUtils.nextInt(4000, 9999) + "");
|
info.setUserData("0");
|
info.setSign("0000");
|
|
//封装消消息内容
|
info.setContent(object);
|
|
message.setInfo(info);
|
}
|
|
|
}
|