package com.ld.igds.io.fzzy.command;
|
|
import com.alibaba.fastjson.JSON;
|
import com.alibaba.fastjson.JSONObject;
|
import com.ld.igds.io.fzzy.ServerUtils;
|
import com.ld.igds.io.fzzy.dto.IoMessage;
|
import com.ld.igds.io.fzzy.dto.Req1001;
|
import com.ld.igds.io.fzzy.dto.Resp1002;
|
import com.ld.igds.io.request.QuantityRequest;
|
|
|
/**
|
* 命令生成
|
*
|
* @author vince
|
*/
|
public class CommandBuilder {
|
|
/**
|
* 下发配置
|
*
|
* @param request
|
* @return
|
*/
|
public IoMessage build1001Message(QuantityRequest request) {
|
IoMessage message = new IoMessage();
|
// 调整信息
|
buildInfo(message, request);
|
Req1001 req1001 = new Req1001();
|
req1001.setHeight(request.getHeight().intValue());
|
req1001.setOrien(1);
|
req1001.setVoluWeight(request.getDensity().intValue());
|
req1001.setStorageType("01".equals(request.getDepotType()) ? 1 : 0);
|
|
req1001.setWeightAdd(request.getWeightAdd().intValue());
|
req1001.setVolumeAdd(request.getVolumeAdd().intValue());
|
if ("01".equals(request.getDepotType())) {
|
req1001.setStorageType(1);
|
req1001.setLength(Integer.parseInt((request.getLength() * 100.00) + ""));
|
req1001.setWidth(Integer.parseInt((request.getWidth() * 100.00) + ""));
|
} else {
|
req1001.setStorageType(0);
|
req1001.setRadius(Integer.parseInt((request.getWidth() * 100.00) + "")); //筒仓时候宽度当作半径
|
}
|
message.setContent(JSON.toJSONString(req1001));
|
message.setFunctionId(ServerUtils.FUNCTION_1001);
|
return message;
|
}
|
|
/**
|
* 回复时间
|
*
|
* @return
|
*/
|
public IoMessage build1002Message(IoMessage message) {
|
message.setFunctionId(ServerUtils.FUNCTION_1002);
|
Resp1002 resp1002 = new Resp1002();
|
resp1002.setTime(System.currentTimeMillis());
|
message.setContent(JSON.toJSONString(resp1002));
|
return message;
|
}
|
|
/**
|
* 回复登陆成功
|
*
|
* @return
|
*/
|
public IoMessage build1003Message(IoMessage message) {
|
message.setFunctionId(ServerUtils.FUNCTION_1003);
|
message.setContent(null);
|
return message;
|
}
|
|
/**
|
* 开始检测
|
*
|
* @param request
|
* @return
|
*/
|
public IoMessage build2001Message(QuantityRequest request) {
|
IoMessage message = new IoMessage();
|
// 调整信息
|
buildInfo(message, request);
|
message.setFunctionId(ServerUtils.FUNCTION_2001);
|
return message;
|
}
|
|
/**
|
* 停止检测
|
*
|
* @param request
|
* @return
|
*/
|
public IoMessage build2002Message(QuantityRequest request) {
|
IoMessage message = new IoMessage();
|
// 调整信息
|
buildInfo(message, request);
|
message.setFunctionId(ServerUtils.FUNCTION_2002);
|
return message;
|
}
|
|
/**
|
* 进度查询
|
*
|
* @param request
|
* @return
|
*/
|
public IoMessage build2003Message(QuantityRequest request) {
|
IoMessage message = new IoMessage();
|
// 调整信息
|
buildInfo(message, request);
|
message.setFunctionId(ServerUtils.FUNCTION_2003);
|
return message;
|
}
|
|
/**
|
* 结果上报
|
*
|
* @param
|
* @return
|
*/
|
public IoMessage build2004Message(IoMessage message) {
|
message.setFunctionId(ServerUtils.FUNCTION_2004);
|
message.setContent(null);
|
return message;
|
}
|
|
/**
|
* 查询点位数据
|
*
|
* @param request
|
* @return
|
*/
|
public IoMessage build2005Message(QuantityRequest request) {
|
IoMessage message = new IoMessage();
|
// 调整信息
|
buildInfo(message, request);
|
message.setFunctionId(ServerUtils.FUNCTION_2005);
|
return message;
|
}
|
|
/**
|
* 抓拍
|
*
|
* @param message
|
* @return
|
*/
|
public IoMessage build2006Message(IoMessage message) {
|
message.setFunctionId(ServerUtils.FUNCTION_2006);
|
message.setContent("");
|
return message;
|
}
|
|
/**
|
* 抓拍
|
*
|
* @param request
|
* @return
|
*/
|
public IoMessage build2006Message(QuantityRequest request) {
|
IoMessage message = new IoMessage();
|
// 调整信息
|
buildInfo(message, request);
|
message.setFunctionId(ServerUtils.FUNCTION_2006);
|
return message;
|
}
|
|
/**
|
* 心跳返回
|
*
|
* @param message
|
* @return
|
*/
|
public IoMessage build2007Message(IoMessage message) {
|
//message.setFunctionId(ServerUtils.FUNCTION_2007);
|
return message;
|
}
|
|
public void buildInfo(IoMessage message, QuantityRequest request) {
|
message.setSn(request.getSn());
|
message.setOrderId(ServerUtils.createOrderId());
|
message.setSign(ServerUtils.SIGN_DEFAULT);
|
message.setResult(ServerUtils.RESP_0);
|
message.setVersion(ServerUtils.VERSION_1);
|
}
|
|
/**
|
* 根据生成的命令,进行调整
|
*
|
* @param message
|
*/
|
public String build(IoMessage message) {
|
StringBuffer hexSb = new StringBuffer();
|
hexSb.append(ServerUtils.MSG_BEGIN);
|
hexSb.append(JSONObject.toJSONString(message));
|
hexSb.append((ServerUtils.MSG_END));
|
return hexSb.toString();
|
}
|
|
|
private static CommandBuilder instance = new CommandBuilder();
|
|
private CommandBuilder() {
|
}
|
|
public static CommandBuilder getInstance() {
|
return instance;
|
}
|
|
|
}
|