skyouc
昨天 bd1d4feea4f9522c69ef4c0fd72b1221eae5201f
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/CheckOrderServiceImpl.java
@@ -48,6 +48,8 @@
    private LocServiceImpl locService;
    @Autowired
    private TaskItemServiceImpl taskItemService;
    @Autowired
    private CheckOrderService checkOrderService;
    /**
     * @author Ryan
@@ -278,6 +280,10 @@
                if (Objects.isNull(loc)) {
                    throw new CoolException("当前库位不存在!!");
                }
                Task task1 = taskService.getOne(new LambdaQueryWrapper<Task>().eq(Task::getBarcode, key));
                if (!Objects.isNull(task1)) {
                    throw new CoolException("托盘任务已存在!!");
                }
                List<CheckOrderItemParams> itemParams = listMap.get(key);
                CheckOrderItemParams checkItem = itemParams.stream().findFirst().get();
                Task task = new Task();
@@ -292,6 +298,8 @@
                        .setTaskType(TaskType.TASK_TYPE_CHECK_OUT.type)
                        .setTaskStatus(TaskStsType.GENERATE_OUT.id)
                        .setCreateTime(new Date())
                        .setUpdateBy(loginUserId)
                        .setUpdateTime(new Date())
                        .setCreateBy(loginUserId)
                        .setBarcode(key);
@@ -302,7 +310,6 @@
                itemParams.forEach(item -> {
                    TaskItem taskItem = new TaskItem();
                    taskItem.setTaskId(task.getId())
                            .setOrderId(checkParam.getOrderId())
                            .setOrderType(OrderType.ORDER_CHECK.type)
                            .setAnfme(item.getAnfme())
                            .setWorkQty(0.0)
@@ -317,12 +324,52 @@
                            .setMatnrId(checkParam.getMatnrId())
                            .setCreateBy(loginUserId)
                            .setCreateTime(new Date())
                            .setUpdateBy(loginUserId)
                            .setUpdateTime(new Date())
                            .setOrderItemId(checkParam.getId())
                            .setOrderId(checkParam.getOrderId())
                            .setPlatItemId(checkParam.getPlatItemId());
                    items.add(taskItem);
                    if (!checkOrderItemService.update(new LambdaUpdateWrapper<WkOrderItem>()
                            .eq(WkOrderItem::getId, checkParam.getId())
                            .setSql("work_qty = work_qty + " + item.getAnfme())
                            .set(WkOrderItem::getWorkQty, checkItem.getAnfme()))) {
                        throw new CoolException("盘点明细修改失败!!");
                    }
                });
                if (!taskItemService.saveBatch(items)) {
                    throw new CoolException("任务明细保存失败!!");
                }
                loc.setUseStatus(LocStsType.LOC_STS_TYPE_R.type);
                if (!locService.updateById(loc)) {
                    throw new CoolException("库位预约出库失败!!");
                }
            });
            Set<Long> checkItemIds = checkParams.stream().map(CheckOrderParams::getOrderId).collect(Collectors.toSet());
            checkItemIds.forEach(orderId -> {
                WkOrder order = this.getById(orderId);
                if (Objects.isNull(order)) {
                    throw new CoolException("数据错误:单据不存在!!");
                }
                List<WkOrderItem> orderItems = checkOrderItemService.list(new LambdaQueryWrapper<WkOrderItem>().eq(WkOrderItem::getOrderId, orderId));
                if (orderItems.isEmpty()) {
                    throw new CoolException("数据错误:单据明细不存在!!");
                }
                Double sum = orderItems.stream().mapToDouble(WkOrderItem::getWorkQty).sum();
                if (order.getAnfme().compareTo(sum) <= 0) {
                    order.setWorkQty(sum).setExceStatus(CheckExceStatus.CHECK_ORDER_STATUS_EXCE_DONE.val);
                } else {
                    order.setWorkQty(sum).setExceStatus(CheckExceStatus.CHECK_ORDER_STATUS_EXCE_ING.val);
                }
                if (!this.updateById(order)) {
                    throw new CoolException("盘点单信息修改失败!!");
                }
            });
        }
        return R.ok();