package com.fzzy.protocol.fzzy.builder; import com.alibaba.fastjson.JSONObject; import com.fzzy.io.request.BaseRequest; import com.fzzy.protocol.fzzy.data.MessageInfo; import com.fzzy.protocol.fzzy.data.SendMessage; import com.fzzy.protocol.fzzy.server.ServerUtils; /** * 命令生成 * * @author Andy */ public abstract class CommandBuilder { public SendMessage buildMessage(BaseRequest request) { SendMessage message = new SendMessage(); message.setIp(request.getIp()); message.setPort(request.getPort()); message.setBegin(ServerUtils.MSG_BEGIN); // 调整信息 buildInfo(message, request); message.setEnd(ServerUtils.MSG_END); // 生成整体命令信息和BYte信息 build(message); return message; } public void buildInfo(SendMessage message, BaseRequest request) { MessageInfo info = new MessageInfo(); info.setSign(request.getCompanyId()); info.setIedId(request.getSerId()); info.setFunctionId(ServerUtils.FUNCTION_1001); info.setRespCode("0000"); info.setOrderId(request.getOrderId()); info.setUserData("0"); info.setSign("0000"); info.setContent(null); message.setInfo(info); } /** * 根据生成的命令,进行调整 * * @param message */ public void build(SendMessage message) { StringBuffer hexSb = new StringBuffer(); hexSb.append(message.getBegin()); message.setStrMsg(JSONObject.toJSONString(message.getInfo())); hexSb.append(message.getStrMsg()); hexSb.append(message.getEnd()); message.setByteMsg(hexSb.toString().getBytes()); } }