Commit c2b36243 孙克

重发未完成的出库任务时间改为3分钟

更新任务状态时, 如果任务为正在执行中,则清理库存
1 个父辈 d89842e4
......@@ -485,7 +485,7 @@ public class DataLog extends BasePo implements Serializable {
*/
public boolean needReSendToClient(){
if(isCheckOutTask() && isExecuting()){
return System.currentTimeMillis() - super.getUpdateDate().getTime() >= 60 * 1000;
return System.currentTimeMillis() - super.getUpdateDate().getTime() >= 3 * 60 * 1000;
}
return false;
}
......
......@@ -439,7 +439,7 @@ public class TaskService {
log.error("cid[" + cid + "]已有入库任务,不可再分配出库任务");
return null;
} else if (task.needReSendToClient() && task.isCheckOutTask() && task.isExecuting()) {//超过30秒仍未完成的出库再次发送到客户端
log.error("cid[" + cid + "]的出库任务[" + task.getPosName() + "]超过60秒仍未完成,重新发送到客户端!");
log.error("cid[" + cid + "]的出库任务[" + task.getPosName() + "]超过180秒仍未完成,重新发送到客户端!");
task.setUpdateDate(new Date());
return task;
}
......
......@@ -106,7 +106,7 @@ public class InnerBoxRestController {
Collection<DataLog> allTasks = taskService.getAllTasks();
//log.info("所有任务为:"+ JSON.toJSONString(allTasks));
for (DataLog task : allTasks) {
if (code.startsWith(task.getBarcode())) {
if (task.isCheckOutTask() && code.startsWith(task.getBarcode())) {
if (!task.isCancel() && !task.isFinished()) {
opTask = task;
break;
......@@ -121,56 +121,39 @@ public class InnerBoxRestController {
}
status = status.toUpperCase();
log.info("更新任务状态:{}-->{}", opTask.getStatus(), status);
OP_STATUS updateStatus = OP_STATUS.valueOf(status);
if (updateStatus != null) {
opTask.setStatus(status);
if (opTask.isCheckOutTask()) {
if (OP_STATUS.EXECUTING.name().equals(status)) {
//在执行队列中
taskService.updateQueueTask(opTask);
} else {
taskService.moveTaskToFinished(opTask);
if (OP_STATUS.OUT_POS.name().equals(status)) {
//从库位中取出,需要移到完成队列中,并且清理库存
outFromPos(opTask);
//清理锁定库位
ReelLockPosUtil.removeReelLockPosInfo(code);
}
taskService.updateFinishedTask(opTask);
if (OP_STATUS.FINISHED.name().equals(status)) {
//已完成,从完成缓存中清除
taskService.removeFinishedTask(opTask);
//清理锁定库位
ReelLockPosUtil.removeReelLockPosInfo(code);
LiteOrder liteOrder = liteOrderManager.get(opTask.getSourceId());
//设置绑定库位
StorageExport storageExport = StorageExportUtil.getExport(outlet);
if (storageExport != null){
if (liteOrder != null){
storageExport.setLine(liteOrder.getLine());
storageExport.setHSerial(liteOrder.getOrderNo());
int remainTaskCount = 0;
List<DataLog> dataLogList = taskService.getAllTasks();
for (DataLog dataLog : dataLogList) {
if (dataLog.getSourceId().equals(opTask.getSourceId())){
if (!dataLog.isFinished()){
remainTaskCount ++;
}
}
}
storageExport.setRemainTaskCount(remainTaskCount);
StorageExportUtil.updateExport(outlet,storageExport.getHSerial(),storageExport.getLine(),storageExport.getRemainTaskCount());
}
//调用此接口的肯定是料盘已出仓位的
if(opTask.isExecuting()){
//正在执行的任务,清理库存
outFromPos(opTask);
}
opTask.setStatus(status);
taskService.moveTaskToFinished(opTask);
//清理锁定库位
ReelLockPosUtil.removeReelLockPosInfo(code);
if(opTask.isFinished()){
//已完成,从完成缓存中清除
taskService.removeFinishedTask(opTask);
//设置绑定库位
StorageExport storageExport = StorageExportUtil.getExport(outlet);
LiteOrder liteOrder = liteOrderManager.get(opTask.getSourceId());
if (liteOrder != null){
storageExport.setLine(liteOrder.getLine());
storageExport.setHSerial(liteOrder.getOrderNo());
int remainTaskCount = 0;
List<DataLog> dataLogList = taskService.getAllTasks();
for (DataLog dataLog : dataLogList) {
if (dataLog.getSourceId().equals(opTask.getSourceId())){
if (!dataLog.isFinished()){
remainTaskCount ++;
}
}
}
storageExport.setRemainTaskCount(remainTaskCount);
StorageExportUtil.updateExport(outlet,storageExport);
}
} else {
log.info(code + "更新状态时未找到状态:" + status + "");
}
return ResultBean.newOkResult(StorageExportUtil.getExport(outlet));
......
......@@ -78,6 +78,11 @@ public class StorageExportUtil {
}
}
public static void updateExport(String outlet, StorageExport storageExport){
exportMap.put(outlet,storageExport);
dataCache.updateCache(EXPORT_PREFIX + "_" + outlet, storageExport);
}
//更新出料口信息
public static void updateExport(String key, String hSerial, String line, int remainTaskCount) {
StorageExport storageExport = exportMap.get(key);
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!