package com.fzzy.protocol.fzzy.builder; import com.fzzy.api.data.ApiCommonDevice; import com.fzzy.gateway.entity.GatewayDevice; import com.fzzy.io.request.BaseRequest; import com.fzzy.protocol.fzzy.data.MessageInfo; import com.fzzy.protocol.fzzy.data.ReMessage; import com.fzzy.protocol.fzzy.data.SendMessage; import com.fzzy.protocol.fzzy.server.ServerUtils; /** * 无消息体的命令封装 */ public class SimpleCommandBuilder extends CommandBuilder { private final static SimpleCommandBuilder instance = new SimpleCommandBuilder(); private SimpleCommandBuilder() { } public static SimpleCommandBuilder getInstance() { return instance; } public SendMessage buildMessage(ApiCommonDevice deviceSer, String functionId) { BaseRequest request = new BaseRequest(); request.setSerId(deviceSer.getSn()); request.setBizType("grain"); request.setCompanyId("0000"); request.setPort(deviceSer.getPort()); request.setSerName(deviceSer.getId()); request.setIp(deviceSer.getIp()); SendMessage message = new SendMessage(); message.setIp(request.getIp()); message.setPort(request.getPort()); message.setBegin(ServerUtils.MSG_BEGIN); // 调整信息 buildInfo(message, request, functionId); message.setEnd(ServerUtils.MSG_END); // 生成整体命令信息和BYte信息 build(message); return message; } public SendMessage buildMessage(ReMessage reMessage, String functionId) { BaseRequest request = new BaseRequest(); request.setSerId(reMessage.getIedId()); request.setBizType("grain"); request.setCompanyId(reMessage.getCompanyId()); request.setPort(reMessage.getPort()); request.setIp(reMessage.getIp()); SendMessage message = new SendMessage(); message.setIp(request.getIp()); message.setPort(request.getPort()); message.setBegin(ServerUtils.MSG_BEGIN); // 调整信息 buildInfo(message, request, functionId); message.setEnd(ServerUtils.MSG_END); // 生成整体命令信息和BYte信息 build(message); return message; } public void buildInfo(SendMessage message, BaseRequest request, String functionId) { MessageInfo info = new MessageInfo(); info.setSign(request.getCompanyId()); info.setIedId(request.getSerId()); info.setFunctionId(functionId); info.setRespCode("0000"); info.setOrderId(request.getOrderId()); info.setUserData("0"); info.setSign("0000"); info.setContent(null); message.setInfo(info); } }