package com.northglass.service.message;
|
|
import java.util.Date;
|
import java.util.List;
|
|
import org.slf4j.Logger;
|
import org.slf4j.LoggerFactory;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Component;
|
import org.springframework.transaction.annotation.Transactional;
|
|
import com.northglass.constants.FunctionNumber.ShelfFunctionNumber;
|
import com.northglass.constants.ShelfTaskType;
|
import com.northglass.constants.StateConstants.LoadMachineRackState;
|
import com.northglass.constants.StateConstants.ShelfHoistState;
|
import com.northglass.constants.StateConstants.ShelfRankState;
|
import com.northglass.constants.StateConstants.ShelfTaskState;
|
import com.northglass.entity.LoadMachineRack;
|
import com.northglass.entity.RawPackage;
|
import com.northglass.entity.ShelfHoist;
|
import com.northglass.entity.ShelfRank;
|
import com.northglass.entity.ShelfStatu;
|
import com.northglass.entity.ShelfTask;
|
import com.northglass.repository.LoadMachineRackDao;
|
import com.northglass.repository.RawPackageDao;
|
import com.northglass.repository.ShelfHoistDao;
|
import com.northglass.repository.ShelfRankDao;
|
import com.northglass.repository.ShelfStatuDao;
|
import com.northglass.repository.ShelfTaskDao;
|
import com.northglass.service.shelf.ShelfService;
|
import com.northglass.util.HexUtil;
|
|
@Component
|
@Transactional
|
public class ShelfMessageProcessor extends AbstractMessageProcessor {
|
|
private static final Logger LOGGER = LoggerFactory.getLogger(ShelfMessageProcessor.class);
|
|
// 请求信号
|
private static final int TASK_ASK_START = 18;
|
private static final int TASK_ASK_END = 21;
|
// 请求ID
|
private static final int TASK_ASK_TD_START = 22;
|
private static final int TASK_ASK_ID_END = 25;
|
|
// 任务汇报字
|
private static final int TASK_FINISH_PLC_START = 38;
|
private static final int TASK_FINISH_PLC_END = 41;
|
|
// 任务汇报ID
|
private static final int TASK_FINISH_PLC_ID_START = 42;
|
private static final int TASK_FINISH_PLC_ID_END = 45;
|
|
// 任务发送字
|
private static final int TASK_MES_START = 58;
|
private static final int TASK_MES_END = 61;
|
|
// 任务确认字
|
private static final int TASK_SURE_START = 98;
|
private static final int TASK_SURE_END = 101;
|
|
// 任务报警字
|
private static final int TASK_WARN_START = 138;
|
private static final int TASK_WARN_END = 141;
|
|
/**
|
* 仓储客户端回复MES收到消息
|
*/
|
private static String WORKING = "LOAD";
|
|
@Autowired
|
private ShelfService service;
|
|
@Autowired
|
private LoadMachineRackDao loadMachineRackDao;
|
|
@Autowired
|
private ShelfRankDao shelfRankDao;
|
|
@Autowired
|
private ShelfTaskDao shelfTaskDao;
|
|
@Autowired
|
private ShelfHoistDao shelfHoistDao;
|
|
@Autowired
|
private ShelfStatuDao shelfStatuDao;
|
|
@Autowired
|
private RawPackageDao rawPackageDao;
|
|
|
/**
|
* 解析16进制消息,转译为描述信息
|
*
|
* @param messageHex
|
* @return
|
*/
|
public String parse(String messageHex) {
|
LOGGER.trace("> Start parse");
|
|
if (messageHex.length() < 84) {
|
LOGGER.error("消息无效:消息长度为至少42个字节!");
|
LOGGER.error("无效消息:" + messageHex);
|
return "无效消息:" + messageHex;
|
}
|
|
String startSign = messageHex.substring(START_SIGN_START, START_SIGN_END + 1);
|
if (!startSign.equals("3c5354413e")) {
|
LOGGER.error("消息无效:消息没有以<STA>开头!");
|
LOGGER.error("无效消息:" + messageHex);
|
return "无效消息:" + messageHex;
|
}
|
|
StringBuffer messageDescription = new StringBuffer();
|
|
// 消息长度
|
messageDescription.append(parseInt(messageHex, MESSAGE_LENGTH_START, MESSAGE_LENGTH_END, "消息长度"));
|
|
// 订单编号
|
messageDescription.append(parseString(messageHex, ORDER_NUMBER_START, ORDER_NUMBER_END, "订单编号"));
|
|
// 功能号
|
messageDescription.append(parseString(messageHex, FUNCTION_NUMBER_START, FUNCTION_NUMBER_END, "功能号"));
|
|
// 加密方式
|
messageDescription.append(parseString(messageHex, ENCRYPT_START, ENCRYPT_END, "加密方式"));
|
|
// 发送时刻
|
messageDescription.append(parseTime(messageHex, SEND_TIME_START, SEND_TIME_END, "发送时刻"));
|
|
// 解析数据区
|
messageDescription.append(parseData(messageHex));
|
|
LOGGER.trace("> End parse");
|
return messageDescription.toString();
|
}
|
|
/**
|
* 根据消息长度判断消息为服务器发送给控制台的消息(63字节)或控制台返回给服务器的消息(54字节) - 若为服务器发送给控制台的消息,按照(数据区
|
* = 任务号(5字节) + 操作类型(1字节) + 起始位号(1字节) + 到达位号(1字节) + 玻璃数量(1字节) + 玻璃规格(6字节))解析
|
* - 若为控制台发送给服务器的消息,按照(数据区 = 任务号(5字节) + 操作类型(1字节) + 玻璃数量(1字节) + 到位信息(1字节))解析
|
*
|
* @param messageHex
|
* @return
|
*/
|
private String parseData(String messageHex) {
|
String functionNumber = messageHex.substring(FUNCTION_NUMBER_START, FUNCTION_NUMBER_END + 1);
|
|
if (functionNumber.equals(ShelfFunctionNumber.HEART_BEAT)) {
|
return "心跳包";
|
} else if (functionNumber.equals(ShelfFunctionNumber.UPDATE_RTC)) {
|
return "更新RTC";
|
}
|
// 若盒子没有启动,则可能接收到功能号为0002数据区为空的信息
|
else if (functionNumber.equals(ShelfFunctionNumber.SHELF_STATUS)) {
|
}
|
return "无法解析数据区";
|
}
|
|
public String generateReturnMessage(String sendMessageHex) {
|
//LOGGER.debug("收到仓储信息:" + sendMessageHex);
|
if (sendMessageHex.length() == 24) {
|
String string = sendMessageHex.substring(8, 16);
|
if (string.equals("00060010")) {
|
//LOGGER.debug("上次消息发送成功!");
|
return "";
|
} else {
|
//LOGGER.debug("上次消息发送失败!");
|
return "";
|
}
|
} else if (sendMessageHex.length() == 198) {
|
|
// 请求信号
|
String taskAsk = sendMessageHex.substring(TASK_ASK_START, TASK_ASK_END + 1);
|
// 请求ID
|
String taskIdAsk = sendMessageHex.substring(TASK_ASK_TD_START, TASK_ASK_ID_END + 1);
|
// 任务汇报字
|
String taskFinish = sendMessageHex.substring(TASK_FINISH_PLC_START, TASK_FINISH_PLC_END + 1);
|
// 任务汇报字ID
|
String taskFinishId = sendMessageHex.substring(TASK_FINISH_PLC_ID_START, TASK_FINISH_PLC_ID_END + 1);
|
// 任务发送字
|
String taskMes = sendMessageHex.substring(TASK_MES_START, TASK_MES_END + 1);
|
// 任务确认字
|
String taskSure = sendMessageHex.substring(TASK_SURE_START, TASK_SURE_END + 1);
|
// 任务报警字
|
String taskWarning = sendMessageHex.substring(TASK_WARN_START, TASK_WARN_END + 1);
|
String message = sendMessageHex.substring(TASK_ASK_START, 198);
|
//信息载入数据库区域(信息解析)
|
ShelfStatu shelfStatu = shelfStatuDao.findOne(1L);
|
if (taskWarning.equals("0002")) {
|
shelfStatu.setAutostate("自动");
|
} else {
|
shelfStatu.setAutostate("手动");
|
}
|
if (taskWarning.equals("0000")) {
|
shelfStatu.setErrorstate("无故障");
|
}else {
|
shelfStatu.setErrorstate("故障代码:" + taskWarning);
|
}
|
shelfStatu.setPlcid(String.valueOf(taskAsk));
|
shelfStatu.setMesid(String.valueOf(taskMes));
|
shelfStatu.setLoadfinish(taskFinish);
|
shelfStatu.setSetTime(new Date());
|
shelfStatu.setMessage(message);
|
shelfStatuDao.save(shelfStatu);
|
//任务处理区域
|
List<ShelfTask> shelfWaitingTasks = shelfTaskDao.findWaitingTasks();
|
List<ShelfTask> shelfHoistWaitingTasks = shelfTaskDao.findWaitingTasksByFlag("0");
|
List<ShelfTask> shelfLoadWaitingTasks = shelfTaskDao.findWaitingTasksByFlag("1");
|
ShelfTask shelfInWorkTask = shelfTaskDao.findInWorkTask();
|
String date = "";
|
//代表这重新发送该任务的请求,
|
if (taskFinish.equals("0001")||taskFinish.equals("0003")) {
|
if (taskSure.equals("0000")) {
|
ShelfTask workingTask = service.getInWorkTask();
|
if (workingTask != null) {
|
if (workingTask.getTaskType().equals(ShelfTaskType.FROM_SHELF_RACK_TO_LOAD_MACHINE_RACK)
|
|| workingTask.getTaskType()
|
.equals(ShelfTaskType.FROM_LOAD_MACHINE_RACK_TO_SHELF_RACK)) {
|
ShelfRank shelfRank = workingTask.getShelfRank();
|
// 获取上片位对象
|
LoadMachineRack loadMachineRack = workingTask.getLoadMachineRack();
|
if (workingTask.getTaskType().equals(ShelfTaskType.FROM_SHELF_RACK_TO_LOAD_MACHINE_RACK)) {
|
shelfRank.setState(ShelfRankState.IN_WORKING);
|
shelfRankDao.save(shelfRank);
|
// 将原片信息关联到上片位
|
loadMachineRack.setRawPackage(shelfRank.getRawPackage());
|
loadMachineRack.setState(LoadMachineRackState.IN_WORKING);
|
loadMachineRackDao.save(loadMachineRack);
|
workingTask.setState(ShelfTaskState.COMPLETED);
|
workingTask.setCompleteTime(new Date());
|
service.saveShelfTask(workingTask);
|
System.out.println("仓储写入内容: [ "
|
+ "任务ID:"+workingTask.getId()+", "
|
+ workingTask.getTaskType()+" 完成");
|
return message(taskFinish+"0000", "0014");
|
} else {
|
// 从上片位到仓位
|
// 设置仓位状态
|
if (loadMachineRack.getRawPackage().getLeftPieces() == 0) {
|
// 料架上没有原片,设置仓位状态为空闲
|
shelfRank.setState(ShelfRankState.FREE);
|
shelfRank.setRawPackage(null);
|
shelfRank.setColor(null);
|
shelfRank.setCompletePieces(null);
|
shelfRank.setGlassId(null);
|
shelfRank.setLength(null);
|
shelfRank.setPieces(null);
|
shelfRank.setPrecent(null);
|
shelfRank.setThickness(null);
|
shelfRank.setWidth(null);
|
shelfRank.setCreateTime(null);
|
shelfRankDao.save(shelfRank);
|
} else {
|
// 料架上有原片,设置仓位状态为使用中
|
shelfRank.setState(ShelfRankState.IN_WORK);
|
}
|
// 设置上片位状态和原片信息
|
loadMachineRack.setState(LoadMachineRackState.FREE);
|
loadMachineRack.setRawPackage(null);
|
loadMachineRackDao.save(loadMachineRack);
|
|
}
|
//shelfRank.setRawPackage(null);
|
shelfRankDao.save(shelfRank);
|
workingTask.setState(ShelfTaskState.COMPLETED);
|
workingTask.setCompleteTime(new Date());
|
service.saveShelfTask(workingTask);
|
System.out.println("仓储写入内容: [ "
|
+ "任务ID:"+workingTask.getId()+", "
|
+ workingTask.getTaskType()+" 完成");
|
return message(taskFinish+"0000", "0014");
|
|
} else if (workingTask.getTaskType().equals(ShelfTaskType.FROM_EMPTY_RANK_TO_HOIST)
|
|| workingTask.getTaskType().equals(ShelfTaskType.FROM_RANK_TO_HOIST)) {
|
ShelfHoist shelfHoist = shelfHoistDao.findAll().get(0);
|
RawPackage raw = workingTask.getShelfRank().getRawPackage();
|
shelfHoist.setRawPackage(raw);
|
// 设置吊装位状态
|
if (workingTask.getTaskType().equals(ShelfTaskType.FROM_RANK_TO_HOIST)) {
|
if (raw != null) {
|
raw.setLeftPieces(0);
|
rawPackageDao.save(raw);
|
}
|
}
|
shelfHoist.setState(ShelfHoistState.IN_WORKING);
|
shelfHoistDao.save(shelfHoist);
|
workingTask.setState(ShelfTaskState.COMPLETED);
|
workingTask.setCompleteTime(new Date());
|
service.saveShelfTask(workingTask);
|
System.out.println("仓储写入内容: [ "
|
+ "任务ID:"+workingTask.getId()+", "
|
+ workingTask.getTaskType()+" 完成");
|
return message(taskFinish+"0000", "0014");
|
}else if (workingTask.getTaskType().equals(ShelfTaskType.FROM_HOIST_TO_EMPTY_RANK)
|
|| workingTask.getTaskType().equals(ShelfTaskType.FROM_HOIST_TO_RANK)) {
|
if (workingTask.getTaskType().equals(ShelfTaskType.FROM_HOIST_TO_RANK)) {
|
ShelfRank shelfRank = workingTask.getShelfRank();
|
shelfRank.setState(ShelfRankState.IN_WORK);
|
shelfRankDao.save(shelfRank);
|
// 吊装位设置
|
ShelfHoist shelfHoist = shelfHoistDao.findAll().get(0);
|
shelfHoist.setState(ShelfHoistState.FREE);
|
shelfHoist.setRawPackage(null);
|
shelfHoistDao.save(shelfHoist);
|
|
workingTask.setState(ShelfTaskState.COMPLETED);
|
workingTask.setCompleteTime(new Date());
|
service.saveShelfTask(workingTask);
|
System.out.println("仓储写入内容: [ "
|
+ "任务ID:"+workingTask.getId()+", "
|
+ workingTask.getTaskType()+" 入库完成");
|
return message("00010000", "0014");
|
} else {
|
ShelfRank shelfRank = workingTask.getShelfRank();
|
shelfRank.setState(ShelfRankState.FREE);
|
shelfRank.setRawPackage(null);
|
shelfRank.setColor(null);
|
shelfRank.setCompletePieces(null);
|
shelfRank.setGlassId(null);
|
shelfRank.setLength(null);
|
shelfRank.setPieces(null);
|
shelfRank.setPrecent(null);
|
shelfRank.setThickness(null);
|
shelfRank.setWidth(null);
|
shelfRank.setCreateTime(null);
|
shelfRankDao.save(shelfRank);
|
// 吊装位设置
|
ShelfHoist shelfHoist = shelfHoistDao.findAll().get(0);
|
shelfHoist.setState(ShelfHoistState.FREE);
|
shelfHoist.setRawPackage(null);
|
shelfHoistDao.save(shelfHoist);
|
workingTask.setState(ShelfTaskState.COMPLETED);
|
workingTask.setCompleteTime(new Date());
|
service.saveShelfTask(workingTask);
|
System.out.println("仓储写入内容: [ "
|
+ "任务ID:"+workingTask.getId()+", "
|
+ workingTask.getTaskType()+" 出库完成");
|
return message(taskFinish+"0000", "0014");
|
}
|
} else {
|
if (workingTask.getTaskType().equals(ShelfTaskType.FROM_HOIST_TO_LOAD_MACHINE_RACK)) {
|
// 设置吊装位的信息
|
// 吊装位设置
|
ShelfHoist shelfHoist = shelfHoistDao.findAll().get(0);
|
shelfHoist.setState(ShelfHoistState.FREE);
|
shelfHoist.setRawPackage(null);
|
shelfHoistDao.save(shelfHoist);
|
workingTask.setState(ShelfTaskState.COMPLETED);
|
workingTask.setCompleteTime(new Date());
|
service.saveShelfTask(workingTask);
|
System.out.println("仓储写入内容: [ "
|
+ "任务ID:"+workingTask.getId()+", "
|
+ workingTask.getTaskType()+" 送至上片位完成");
|
return message(taskFinish+"0000", "0014");
|
}else {
|
// 从上片位到吊装位
|
// 上片位对象
|
LoadMachineRack loadrack = workingTask.getLoadMachineRack();
|
// 吊装位对象
|
ShelfHoist shelfHoist = shelfHoistDao.findAll().get(0);
|
// 设置吊装位信息
|
shelfHoist.setState(ShelfHoistState.IN_WORKING);
|
shelfHoist.setRawPackage(loadrack.getRawPackage());
|
shelfHoistDao.save(shelfHoist);
|
// 设置上片位信息
|
loadrack.setState(LoadMachineRackState.FREE);
|
loadrack.setRawPackage(null);
|
loadMachineRackDao.save(loadrack);
|
workingTask.setState(ShelfTaskState.COMPLETED);
|
workingTask.setCompleteTime(new Date());
|
service.saveShelfTask(workingTask);
|
System.out.println("仓储写入内容: [ "
|
+ "任务ID:"+workingTask.getId()+", "
|
+ workingTask.getTaskType()+" 从上片位至吊装位完成");
|
return message(taskFinish+"0000", "0014");
|
}
|
}
|
|
}
|
date = taskFinish+ taskFinishId;
|
return message(date, "0014");
|
}
|
return "";
|
}else if(taskFinish.equals("0002")){
|
ShelfTask workingTask = service.getInWorkTask();
|
if (workingTask!=null) {
|
workingTask.setState("等待中");
|
service.saveShelfTask(workingTask);
|
System.out.println("仓储写入内容: [ "
|
+ "任务ID:"+workingTask.getId()+", "
|
+ workingTask.getTaskType()+" 任务失败");
|
return message(taskFinish+"0000", "0014");
|
}
|
|
}else{
|
if (!taskSure.equals("0000")) {
|
return message("00000000", "0014");
|
}
|
}
|
if (taskAsk.equals("0001")) {
|
if (shelfInWorkTask != null) {
|
return "";
|
}
|
// 没有任何任务
|
if (shelfWaitingTasks.size() == 0) {
|
return "";
|
}
|
if (shelfLoadWaitingTasks.size() != 0) {
|
ShelfTask skTask = shelfLoadWaitingTasks.get(0);
|
if (skTask.getTaskType().equals(ShelfTaskType.FROM_SHELF_RACK_TO_LOAD_MACHINE_RACK)) {
|
String startnumber = HexUtil
|
.intTo2ByteHex(Integer.parseInt(String.valueOf(skTask.getShelfRank().getId())));
|
String endnumber = HexUtil
|
.intTo2ByteHex(Integer.parseInt(skTask.getLoadMachineRack().getNumber()));
|
if (startnumber !=null && startnumber != null) {
|
date = "0001" + taskIdAsk + startnumber + endnumber + "0001";
|
}else {
|
LOGGER.debug(ShelfTaskType.FROM_SHELF_RACK_TO_LOAD_MACHINE_RACK+"读取的状态存在问题!请查询原因!");
|
return "";
|
}
|
} else if (skTask.getTaskType().equals(ShelfTaskType.FROM_HOIST_TO_LOAD_MACHINE_RACK)) {
|
String hoistnumber = HexUtil
|
.intTo2ByteHex(Integer.parseInt(skTask.getShelfHoist().getNumber()));
|
String endnumber = HexUtil
|
.intTo2ByteHex(Integer.parseInt(skTask.getLoadMachineRack().getNumber()));
|
|
if (hoistnumber !=null && endnumber != null) {
|
date = "0001" + taskIdAsk + hoistnumber + endnumber + "0001";
|
}else {
|
LOGGER.debug(ShelfTaskType.FROM_HOIST_TO_LOAD_MACHINE_RACK+":读取的状态存在问题!请查询原因!");
|
return "";
|
}
|
} else if (skTask.getTaskType().equals(ShelfTaskType.FROM_LOAD_MACHINE_RACK_TO_HOIST)) {
|
String hoistnumber = HexUtil
|
.intTo2ByteHex(Integer.parseInt(skTask.getShelfHoist().getNumber()));
|
String endnumber = HexUtil
|
.intTo2ByteHex(Integer.parseInt(skTask.getLoadMachineRack().getNumber()));
|
if (hoistnumber !=null && endnumber != null) {
|
date = "0001" + taskIdAsk + endnumber + hoistnumber + "0001";
|
}else {
|
LOGGER.debug(ShelfTaskType.FROM_LOAD_MACHINE_RACK_TO_HOIST+":读取的状态存在问题!请查询原因!");
|
return "";
|
}
|
} else {
|
String startnumber = HexUtil
|
.intTo2ByteHex(Integer.parseInt(String.valueOf(skTask.getShelfRank().getId())));
|
String endnumber = HexUtil
|
.intTo2ByteHex(Integer.parseInt(skTask.getLoadMachineRack().getNumber()));
|
|
if (startnumber !=null && endnumber != null) {
|
date = "0001" + taskIdAsk + endnumber + startnumber + "0001";
|
}else {
|
LOGGER.debug("读取的状态存在问题!请查询原因!");
|
return "";
|
}
|
}
|
skTask.setState(ShelfTaskState.IN_WORK);
|
skTask.setStartTime(new Date());
|
service.saveShelfTask(skTask);
|
System.out.println("仓储写入内容: [ "
|
+ "任务ID:"+skTask.getId()+", "
|
+ skTask.getTaskType()+", "
|
+ skTask.getShelfRank().getId()+", "
|
+ skTask.getLoadMachineRack().getNumber());
|
return message(date, "000a");
|
}
|
|
if (shelfHoistWaitingTasks.size() != 0) {
|
if (taskMes.equals("0001")) {
|
return "";
|
}
|
ShelfTask skTask = shelfHoistWaitingTasks.get(0);
|
WORKING = "SHELF";
|
if (skTask.getTaskType().equals(ShelfTaskType.FROM_HOIST_TO_RANK)) {
|
int leftpieces = skTask.getShelfRank().getRawPackage().getLeftPieces();
|
if (leftpieces == 0) {
|
LOGGER.debug("没有输入吊装数量,请确认数量!");
|
return "";
|
}
|
}
|
if (skTask.getTaskType().equals(ShelfTaskType.FROM_HOIST_TO_EMPTY_RANK)) {
|
int leftpieces = skTask.getShelfRank().getRawPackage().getLeftPieces();
|
if (leftpieces != 0) {
|
LOGGER.debug("没有输入数量0,请确认!");
|
return "";
|
}
|
}
|
String startnumber = HexUtil
|
.intTo2ByteHex(Integer.parseInt(String.valueOf(skTask.getShelfRank().getId())));
|
String endnumber = HexUtil.intTo2ByteHex(Integer.parseInt(skTask.getShelfHoist().getNumber()));
|
if (skTask.getTaskType().equals(ShelfTaskType.FROM_EMPTY_RANK_TO_HOIST)
|
|| skTask.getTaskType().equals(ShelfTaskType.FROM_RANK_TO_HOIST)) {
|
if (startnumber !=null && endnumber != null) {
|
date = "0001" + taskIdAsk + startnumber + endnumber + "0001";
|
}else {
|
LOGGER.debug(ShelfTaskType.FROM_RANK_TO_HOIST+":读取的状态存在问题!请查询原因!");
|
return "";
|
}
|
} else {
|
if (startnumber !=null && endnumber != null) {
|
date = "0001" + taskIdAsk + endnumber + startnumber + "0001";
|
}else {
|
LOGGER.debug(ShelfTaskType.FROM_HOIST_TO_RANK+":读取的状态存在问题!请查询原因!");
|
return "";
|
}
|
}
|
skTask.setState(ShelfTaskState.IN_WORK);
|
skTask.setStartTime(new Date());
|
service.saveShelfTask(skTask);
|
System.out.println("仓储写入内容: [ "
|
+ "任务ID:"+skTask.getId()+", "
|
+ skTask.getTaskType()+", "
|
+ skTask.getShelfRank().getId()+", "
|
+ skTask.getShelfHoist().getNumber());
|
return message(date, "000a");
|
}
|
} else if (taskAsk.equals("0000")) {
|
if (taskMes.equals("0001")) {
|
/*ShelfTask inWorkTask = service.getInWorkTask();
|
if (inWorkTask == null) {
|
ShelfTask skTask = null;
|
if (WORKING.equals("LOAD")) {
|
skTask = shelfLoadWaitingTasks.get(0);
|
} else {
|
skTask = shelfHoistWaitingTasks.get(0);
|
}
|
skTask.setState(ShelfTaskState.IN_WORK);
|
skTask.setStartTime(new Date());
|
service.saveShelfTask(skTask);
|
}*/
|
return message("00000000000000000000", "000a");
|
}
|
}
|
|
return "";
|
} else {
|
//LOGGER.debug("接收的信息和设置的不一致,请查找原因,长度为:" + sendMessageHex.length());
|
return "";
|
}
|
|
}
|
|
private String message(String senddate, String address) {
|
String Herd = "0010" + address;
|
int length = senddate.length() / 4;
|
String dates = Herd + HexUtil.intTo2ByteHex(length) + HexUtil.intTo1ByteHex(length * 2) + senddate;
|
int lengths = dates.length() / 2;
|
String date = "00000000" + HexUtil.intTo2ByteHex(lengths) + dates;
|
//LOGGER.debug("发送信息内容:" + date);
|
return date;
|
}
|
|
}
|