Commit bd87ab11 zshaohui

入仓位完成时,同时移除多个取消任务

1 个父辈 392b4c68
...@@ -560,11 +560,15 @@ public class BaseDeviceHandler implements IDeviceHandler { ...@@ -560,11 +560,15 @@ public class BaseDeviceHandler implements IDeviceHandler {
updatePosExecuteTime(task.getPosName(), executeTime); updatePosExecuteTime(task.getPosName(), executeTime);
} }
log.info(task.getBarcode() + "入仓位[" + task.getPosName() + "]完成,执行时间[" + executeTime + "]秒"); log.info(task.getBarcode() + "入仓位[" + task.getPosName() + "]完成,执行时间[" + executeTime + "]秒");
DataLog cancelTask = taskService.findFinishedPutInTask(cid, task.getPosName(), task.getBarcode()); List<DataLog> taskList = taskService.findFinishedTaskList(cid, task.getPosName(), task.getBarcode(), true);
if (cancelTask != null && cancelTask.isCancel()) { if (taskList != null && !taskList.isEmpty()) {
//将相同库位已经取消的任务从完成队列里删除 for (DataLog dataLog : taskList) {
taskService.removeFinishedTask(cancelTask); if (dataLog.isCancel()) {
log.info("从已完成的任务列表中删除之前取消的任务:" + cancelTask.getPosName() + " ReelId:" + cancelTask.getBarcode()); //将相同库位已经取消的任务从完成队列里删除
taskService.removeFinishedTask(dataLog);
log.info("从已完成的任务列表中删除之前取消的任务:" + dataLog.getPosName() + " ReelId:" + dataLog.getBarcode());
}
}
} }
updatePutInData(task); updatePutInData(task);
ReelLockPosUtil.removeReelLockPosInfo(task.getBarcode()); ReelLockPosUtil.removeReelLockPosInfo(task.getBarcode());
......
...@@ -362,6 +362,40 @@ public class TaskService { ...@@ -362,6 +362,40 @@ public class TaskService {
return null; return null;
} }
/**
* 根据料仓编号和库位获取已完成/取消的任务
*
* @param cid
* @param posName
* @return
*/
public List<DataLog> findFinishedTaskList(String cid, String posName, String barcode, boolean putInTask) {
List<DataLog> dataLogList = new ArrayList<>();
Collection<DataLog> areaFinishedTasks = theFinishedTaskMap.values();
for (DataLog task : areaFinishedTasks) {
boolean isSameTask = false;
if (ObjectUtil.isNotEmpty(posName) && task.getPosName().equals(posName) && task.getCid().equals(cid)) {
isSameTask = true;
} else if (ObjectUtil.isNotEmpty(barcode) && task.getBarcode().equals(barcode) && task.getCid().equals(cid)) {
isSameTask = true;
}
if (isSameTask) {
if (putInTask) {
if (task.isPutInTask()) {
dataLogList.add(task);
}
} else {
if (task.isCheckOutTask()) {
dataLogList.add(task);
}
}
}
}
return dataLogList;
}
/** /**
* 根据cid 和 posName ,barcode 查找正在执行的任务,不存在时返回 null * 根据cid 和 posName ,barcode 查找正在执行的任务,不存在时返回 null
*/ */
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!