| | |
| | | List<Integer> list = Arrays.asList(TaskType.TASK_TYPE_IN.type, TaskType.TASK_TYPE_OUT.type, TaskType.TASK_TYPE_PICK_AGAIN_OUT.type, |
| | | TaskType.TASK_TYPE_CHECK_OUT.type, TaskType.TASK_TYPE_EMPITY_IN.type, TaskType.TASK_TYPE_LOC_MOVE.type, |
| | | TaskType.TASK_TYPE_EMPITY_OUT.type, TaskType.TASK_TYPE_MERGE_OUT.type); |
| | | List<Task> allTasks = this.list(new LambdaQueryWrapper<Task>() |
| | | .in(Task::getTaskType, list) |
| | | .in(Task::getId, (Object[]) ids)); |
| | | |
| | | if (allTasks.isEmpty()) { |
| | | List<Task> tasksById = this.list(new LambdaQueryWrapper<Task>().in(Task::getId, (Object[]) ids)); |
| | | if (tasksById.isEmpty()) { |
| | | throw new CoolException("任务不存在!!"); |
| | | } |
| | | // 拣料出库/盘点出库进入再入库阶段后禁止取消(任务类型已由 103/107 变为再入库) |
| | | for (Task t : tasksById) { |
| | | if (TaskType.TASK_TYPE_PICK_IN.type.equals(t.getTaskType()) |
| | | || TaskType.TASK_TYPE_CHECK_IN.type.equals(t.getTaskType())) { |
| | | throw new CoolException("拣料/盘点出库已进入再入库阶段,禁止取消!!"); |
| | | } |
| | | } |
| | | List<Task> allTasks = tasksById.stream() |
| | | .filter(t -> list.contains(t.getTaskType())) |
| | | .collect(Collectors.toList()); |
| | | if (allTasks.isEmpty()) { |
| | | throw new CoolException("当前任务类型不支持取消!!"); |
| | | } |
| | | |
| | | // 收集需要取消的RCS任务编号和批次编号(不限制状态,只要已下发到RCS就需要取消) |
| | |
| | | log.info("RCS取消任务响应状态码:{}", exchange.getStatusCode()); |
| | | log.info("RCS取消任务响应体:{}", exchange.getBody()); |
| | | |
| | | if (!exchange.getStatusCode().is2xxSuccessful()) { |
| | | throw new CoolException("RCS取消任务失败:HTTP " + exchange.getStatusCode().value()); |
| | | } |
| | | |
| | | if (Objects.isNull(exchange.getBody())) { |
| | | log.error("RCS取消任务失败:响应体为空"); |
| | | throw new CoolException("RCS取消任务失败:响应体为空"); |
| | |
| | | } |
| | | } |
| | | |
| | | // 可取消状态:原 1/101(不含 199);拣料/盘点出库 RCS 执行中(<198);拣料/盘点再入库(53/57)不支持取消 |
| | | // 可取消状态:原 1/101(不含 199);拣料/盘点出库 RCS 执行中(<198);再入库(53/57)在方法入口已禁止取消 |
| | | List<Task> tasks = this.list(new LambdaQueryWrapper<Task>() |
| | | .in(Task::getTaskType, list) |
| | | .in(Task::getId, (Object[]) ids) |