| | |
| | | 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())); |
| | |
| | | } |
| | | } |
| | | |
| | | 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(); |
| | | } |
| | | |