| | |
| | | } |
| | | |
| | | List<TaskItem> taskItems = taskItemService.list(new LambdaQueryWrapper<TaskItem>().eq(TaskItem::getTaskId, task.getId())); |
| | | // 空板入库无任务明细,仅更新库位为空板(D)、任务状态为库存更新完成 |
| | | if (TaskType.TASK_TYPE_EMPITY_IN.type.equals(task.getTaskType())) { |
| | | if (!locService.update(new LambdaUpdateWrapper<Loc>().eq(Loc::getCode, task.getTargLoc()) |
| | | .set(Loc::getUseStatus, LocStsType.LOC_STS_TYPE_D.type) |
| | | .set(Loc::getUpdateBy, loginUserId) |
| | | .set(Loc::getUpdateTime, new Date()))) { |
| | | throw new CoolException("空板入库库位状态修改失败!!"); |
| | | } |
| | | if (!this.update(new LambdaUpdateWrapper<Task>().eq(Task::getId, task.getId()).set(Task::getTaskStatus, TaskStsType.UPDATED_IN.id))) { |
| | | throw new CoolException("空板入库任务状态修改失败!!"); |
| | | } |
| | | reportInOutResultToCloud(task, loc, Collections.emptyList(), null, true); |
| | | return; |
| | | } |
| | | if (taskItems.isEmpty()) { |
| | | throw new CoolException("任务明细不存在!!"); |
| | | } |
| | |
| | | throw new CoolException("组拖状态修改失败!!"); |
| | | } |
| | | |
| | | // 组托入库完成后累加订单及明细的已收数量,用于后续判断整单是否可置为已完成 |
| | | Map<Long, Double> orderIdToAdd = new HashMap<>(); |
| | | Map<Long, Double> itemIdToAdd = new HashMap<>(); |
| | | for (WaitPakinItem p : pakinItems) { |
| | | if (StringUtils.isBlank(p.getAsnCode())) { |
| | | continue; |
| | | } |
| | | WkOrder order = asnOrderService.getOne(new LambdaQueryWrapper<WkOrder>().eq(WkOrder::getCode, p.getAsnCode())); |
| | | if (order == null) { |
| | | continue; |
| | | } |
| | | double addQty = (p.getAnfme() != null ? p.getAnfme() : 0.0); |
| | | orderIdToAdd.merge(order.getId(), addQty, Double::sum); |
| | | if (p.getAsnItemId() != null) { |
| | | itemIdToAdd.merge(p.getAsnItemId(), addQty, Double::sum); |
| | | } |
| | | } |
| | | for (Map.Entry<Long, Double> e : orderIdToAdd.entrySet()) { |
| | | WkOrder o = asnOrderService.getById(e.getKey()); |
| | | if (o != null) { |
| | | Double newQty = QuantityUtils.roundToScale(QuantityUtils.add(o.getQty() != null ? o.getQty() : 0.0, e.getValue())); |
| | | o.setQty(newQty); |
| | | if (!asnOrderService.updateById(o)) { |
| | | throw new CoolException("入库单完成数量更新失败!!"); |
| | | } |
| | | } |
| | | } |
| | | for (Map.Entry<Long, Double> e : itemIdToAdd.entrySet()) { |
| | | WkOrderItem oi = asnOrderItemService.getById(e.getKey()); |
| | | if (oi != null) { |
| | | Double newQty = QuantityUtils.roundToScale(QuantityUtils.add(oi.getQty() != null ? oi.getQty() : 0.0, e.getValue())); |
| | | oi.setQty(newQty); |
| | | if (!asnOrderItemService.updateById(oi)) { |
| | | throw new CoolException("入库单明细完成数量更新失败!!"); |
| | | } |
| | | } |
| | | } |
| | | |
| | | /**修改库位状态为F.在库*/ |
| | | if (!locService.update(new LambdaUpdateWrapper<Loc>().set(Loc::getUseStatus, LocStsType.LOC_STS_TYPE_F.type).eq(Loc::getCode, task.getTargLoc()))) { |
| | | throw new CoolException("库位状态修改失败!!"); |