| | |
| | | if (!taskService.updateById(task)) { |
| | | throw new CoolException("任务状态修改失败!!"); |
| | | } |
| | | // 盘点再入库任务结束:将关联的盘点差异单置为已审核 |
| | | if (TaskType.TASK_TYPE_CHECK_IN.type.equals(task.getTaskType())) { |
| | | markCheckDiffApprovedWhenCheckInDone(task); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 盘点再入库完成后,将关联的盘点差异单置为已审核(有单按 orderId,无单按 出库任务号 orderCode) |
| | | */ |
| | | @Override |
| | | public void markCheckDiffApprovedWhenCheckInDone(Task checkInTask) { |
| | | List<TaskItem> items = taskItemService.list(new LambdaQueryWrapper<TaskItem>().eq(TaskItem::getTaskId, checkInTask.getId()).last("limit 1")); |
| | | Long orderId = items.isEmpty() ? null : items.get(0).getOrderId(); |
| | | CheckDiff checkDiff = null; |
| | | if (orderId != null && !orderId.equals(0L)) { |
| | | checkDiff = checkDiffService.getOne(new LambdaQueryWrapper<CheckDiff>().eq(CheckDiff::getOrderId, orderId).last("limit 1")); |
| | | } else { |
| | | Task outTask = taskService.getOne(new LambdaQueryWrapper<Task>() |
| | | .eq(Task::getBarcode, checkInTask.getBarcode()) |
| | | .eq(Task::getTaskType, TaskType.TASK_TYPE_CHECK_OUT.type) |
| | | .last("limit 1")); |
| | | if (outTask != null) { |
| | | checkDiff = checkDiffService.getOne(new LambdaQueryWrapper<CheckDiff>() |
| | | .eq(CheckDiff::getOrderCode, outTask.getTaskCode()) |
| | | .and(w -> w.isNull(CheckDiff::getOrderId).or().eq(CheckDiff::getOrderId, 0)) |
| | | .last("limit 1")); |
| | | } |
| | | } |
| | | if (checkDiff != null && !CheckDiffExceStatus.CHECK_DIFF_EXCE_STATUS_END.val.equals(checkDiff.getExceStatus())) { |
| | | checkDiffService.update(new LambdaUpdateWrapper<CheckDiff>() |
| | | .eq(CheckDiff::getId, checkDiff.getId()) |
| | | .set(CheckDiff::getExceStatus, CheckDiffExceStatus.CHECK_DIFF_EXCE_STATUS_END.val)); |
| | | } |
| | | } |
| | | |
| | | /** |