zhou zhou
20 小时以前 225018d0b2e66c2066c83dfbc0d6701593ddac9a
#备货
1个文件已修改
28 ■■■■■ 已修改文件
rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/PdaOutStockServiceImpl.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/PdaOutStockServiceImpl.java
@@ -115,6 +115,9 @@
        if (!task.getResource().equals(TaskResouceType.TASK_RESOUCE_STOCK_UP.val)) {
            throw new CoolException("当前托盘不是备货出库任务");
        }
        if (Cools.isEmpty(param.getTaskItemList())) {
            throw new CoolException("任务明细为空");
        }
        WaitPakin waitPakin = waitPakinService
                .getOne(new LambdaQueryWrapper<WaitPakin>().eq(WaitPakin::getBarcode, param.getNewContainerNo()));
@@ -236,6 +239,31 @@
            }
        }
        Map<Long, BigDecimal> taskItemInputQtyMap = param.getTaskItemList().stream()
                .filter(Objects::nonNull)
                .filter(e -> !Objects.isNull(e.getId()))
                .collect(Collectors.toMap(TaskItem::getId,
                        e -> Objects.isNull(e.getInputQty()) ? BigDecimal.ZERO : e.getInputQty(),
                        BigDecimal::add));
        if (taskItemInputQtyMap.isEmpty()) {
            throw new CoolException("任务明细参数错误");
        }
        List<TaskItem> toUpdateTaskItems = taskItemService.list(new LambdaQueryWrapper<TaskItem>()
                .eq(TaskItem::getTaskId, task.getId())
                .in(TaskItem::getId, taskItemInputQtyMap.keySet()));
        if (Cools.isEmpty(toUpdateTaskItems) || toUpdateTaskItems.size() != taskItemInputQtyMap.size()) {
            throw new CoolException("未找到对应任务明细");
        }
        toUpdateTaskItems.forEach(item -> {
            double currentWorkQty = Objects.isNull(item.getWorkQty()) ? 0D : item.getWorkQty();
            BigDecimal inputQty = taskItemInputQtyMap.getOrDefault(item.getId(), BigDecimal.ZERO);
            item.setWorkQty(BigDecimal.valueOf(currentWorkQty).add(inputQty).doubleValue())
                    .setUpdateBy(userId);
        });
        if (!taskItemService.updateBatchById(toUpdateTaskItems)) {
            throw new CoolException("任务明细更新失败");
        }
        return R.ok();
    }