chen.lin
昨天 11514b301466eb7598073d0126c6d9781daaa3ba
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TaskServiceImpl.java
@@ -1132,7 +1132,39 @@
        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));
        }
    }
    /**