| | |
| | | if (!task.getResource().equals(TaskResouceType.TASK_RESOUCE_STOCK_UP.val)) { |
| | | throw new CoolException("当前托盘不是备货出库任务"); |
| | | } |
| | | List<TaskItem> taskItems = taskItemService |
| | | .list(new LambdaQueryWrapper<TaskItem>().eq(TaskItem::getTaskId, task.getId())); |
| | | if (Cools.isEmpty(param.getTaskItemList())) { |
| | | throw new CoolException("任务明细为空"); |
| | | } |
| | | |
| | | WaitPakin waitPakin = waitPakinService |
| | | .getOne(new LambdaQueryWrapper<WaitPakin>().eq(WaitPakin::getBarcode, param.getNewContainerNo())); |
| | |
| | | } |
| | | waitPakin1.setCode(ruleCode) |
| | | .setIoStatus(PakinIOStatus.PAKIN_IO_STATUS_HOLD.val) |
| | | .setAnfme(taskItems.stream().map(TaskItem::getAnfme).mapToDouble(Double::doubleValue).sum()) |
| | | .setAnfme(param.getTaskItemList().stream() |
| | | .map(TaskItem::getInputQty) |
| | | .filter(Objects::nonNull) |
| | | .reduce(BigDecimal.ZERO, BigDecimal::add) |
| | | .doubleValue()) |
| | | .setUpdateBy(userId) |
| | | .setCreateBy(userId) |
| | | .setBarcode(param.getNewContainerNo()); |
| | |
| | | throw new CoolException("组托主单保存失败!!"); |
| | | } |
| | | List<WaitPakinItem> items = new ArrayList<>(); |
| | | for (TaskItem taskItem : taskItems) { |
| | | for (TaskItem taskItem : param.getTaskItemList()) { |
| | | WaitPakinItem pakinItem = new WaitPakinItem(); |
| | | pakinItem.setAnfme(taskItem.getAnfme()) |
| | | pakinItem.setAnfme(taskItem.getInputQty().doubleValue()) |
| | | .setPakinId(waitPakin1.getId()) |
| | | .setSource(taskItem.getId()) |
| | | .setAsnId(taskItem.getSourceId()) |
| | |
| | | throw new CoolException("组托明细保存失败!!"); |
| | | } |
| | | } else { |
| | | double sum = taskItems.stream().map(TaskItem::getAnfme).mapToDouble(Double::doubleValue).sum(); |
| | | double sum = param.getTaskItemList().stream() |
| | | .map(TaskItem::getInputQty) |
| | | .filter(Objects::nonNull) |
| | | .reduce(BigDecimal.ZERO, BigDecimal::add) |
| | | .doubleValue(); |
| | | waitPakin |
| | | .setAnfme(waitPakin.getAnfme() + sum) |
| | | .setUpdateBy(userId) |
| | |
| | | List<WaitPakinItem> existPakinItems = waitPakinItemService |
| | | .list(new LambdaQueryWrapper<WaitPakinItem>().eq(WaitPakinItem::getPakinId, waitPakin.getId())); |
| | | List<WaitPakinItem> items = new ArrayList<>(); |
| | | for (TaskItem taskItem : taskItems) { |
| | | for (TaskItem taskItem : param.getTaskItemList()) { |
| | | Optional<WaitPakinItem> optionalItem = existPakinItems.stream() |
| | | .filter(e -> Objects.equals(e.getMatnrCode(), taskItem.getMatnrCode()) |
| | | && Objects.equals(e.getBatch(), taskItem.getSplrBatch()) |
| | |
| | | |
| | | if (optionalItem.isPresent()) { |
| | | WaitPakinItem existItem = optionalItem.get(); |
| | | existItem.setAnfme(existItem.getAnfme() + taskItem.getAnfme()) |
| | | existItem.setAnfme(existItem.getAnfme() + taskItem.getInputQty().doubleValue()) |
| | | .setUpdateBy(userId); |
| | | if (!items.contains(existItem)) { |
| | | items.add(existItem); |
| | | } |
| | | } else { |
| | | WaitPakinItem pakinItem = new WaitPakinItem(); |
| | | pakinItem.setAnfme(taskItem.getAnfme()) |
| | | pakinItem.setAnfme(taskItem.getInputQty().doubleValue()) |
| | | .setPakinId(waitPakin.getId()) |
| | | .setSource(taskItem.getId()) |
| | | .setAsnId(taskItem.getSourceId()) |
| | |
| | | } |
| | | } |
| | | |
| | | 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(); |
| | | } |
| | | |
| | | @Override |
| | | public R taskItemList(PdaGeneralParam param, Long loginUserId) { |
| | | if (Cools.isEmpty(param.getContainerNo())) { |
| | | throw new CoolException("无容器号"); |
| | | } |
| | | Task task = taskService.getOne(new LambdaQueryWrapper<Task>().eq(Task::getBarcode, param.getContainerNo())); |
| | | if (null == task) { |
| | | throw new CoolException("未找到任务"); |
| | | } |
| | | if (!task.getResource().equals(TaskResouceType.TASK_RESOUCE_STOCK_UP.val)) { |
| | | throw new CoolException("当前托盘不是备货出库任务"); |
| | | } |
| | | List<TaskItem> taskItems = taskItemService |
| | | .list(new LambdaQueryWrapper<TaskItem>().eq(TaskItem::getTaskId, task.getId())); |
| | | |
| | | return R.ok(taskItems); |
| | | } |
| | | |
| | | @Override |
| | |
| | | throw new CoolException("站点状态不为空闲"); |
| | | } |
| | | |
| | | List<Long> areaList = JSONObject.parseArray(basStation.getCrossZoneArea(), Long.class); |
| | | List<Long> areaList = basStation.getCrossZoneArea().stream() |
| | | .map(Integer::longValue) |
| | | .collect(Collectors.toList()); |
| | | if (Cools.isEmpty(areaList)) { |
| | | throw new CoolException("当前站点库区未配置"); |
| | | } |