package com.ld.igds.protocol.bhzn.verb.builder;
|
|
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.serializer.SimplePropertyPreFilter;
|
import com.ld.igds.io.request.BaseRequest;
|
import com.ld.igds.protocol.bhzn.verb.dto.IoMessage;
|
import com.ld.igds.protocol.bhzn.verb.server.BhznVerbServerUtils;
|
|
|
/**
|
* 命令生成
|
*
|
* @author Andy
|
*/
|
public abstract class CommandBuilder {
|
|
public IoMessage buildMessage(BaseRequest request) {
|
IoMessage message = new IoMessage();
|
message.setIp(request.getIp());
|
message.setPort(request.getPort());
|
message.setBegin(BhznVerbServerUtils.MSG_START1);
|
// 调整信息
|
buildInfo(message, request);
|
message.setSign("0000");
|
message.setStNum(Integer.parseInt(request.getDepotId()));
|
message.setVersion("V1.0000000");
|
message.setCmd(248);
|
message.setResult("");
|
message.setOrderId(request.getOrderId());
|
message.setContent(null);
|
message.setEnd(BhznVerbServerUtils.MSG_END);
|
|
// 生成整体命令信息和BYte信息
|
build(message);
|
|
return message;
|
}
|
|
public void buildInfo(IoMessage message, BaseRequest request) {
|
|
|
}
|
|
/**
|
* 根据生成的命令,进行调整
|
*
|
* @param message
|
*/
|
public void build(IoMessage message) {
|
StringBuffer hexSb = new StringBuffer();
|
hexSb.append(message.getBegin());
|
SimplePropertyPreFilter filter = new SimplePropertyPreFilter();
|
filter.getExcludes().add("ip");
|
filter.getExcludes().add("port");
|
filter.getExcludes().add("companyId");
|
filter.getExcludes().add("strMsg");
|
filter.getExcludes().add("begin");
|
filter.getExcludes().add("end");
|
filter.getExcludes().add("byteMsg");
|
filter.getExcludes().add("contentSr");
|
message.setContent(JSONObject.parseObject(message.getContentStr()));
|
message.setStrMsg(JSONObject.toJSONString(message,filter));
|
hexSb.append(message.getStrMsg());
|
hexSb.append(message.getEnd());
|
message.setByteMsg(hexSb.toString().getBytes());
|
}
|
|
}
|