Commit c2b36243 孙克

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

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