| | |
| | | } |
| | | } |
| | | |
| | | /** 与取消接口一致:入库未执行、出库任务初始 */ |
| | | /** 修改/出库取消:入库未执行、出库任务初始(入库取消见 assertWkOrderExceStatusForCancel) */ |
| | | private static final List<Short> WK_ORDER_UNEXECUTED_EXCE_STATUSES = Collections.unmodifiableList( |
| | | Arrays.asList( |
| | | AsnExceStatus.ASN_EXCE_STATUS_UN_EXCE.val, |
| | |
| | | if (!WK_ORDER_UNEXECUTED_EXCE_STATUSES.contains(order.getExceStatus())) { |
| | | throw new CoolException("仅未执行状态的单据可" + actionVerb + "!!"); |
| | | } |
| | | } |
| | | |
| | | /** 取消:入库单组托前即可(组托数已校验);出库单仍须未执行/出库初始 */ |
| | | private void assertWkOrderExceStatusForCancel(WkOrder order) { |
| | | if (order.getType() != null && order.getType().equals(OrderType.ORDER_IN.type)) { |
| | | return; |
| | | } |
| | | assertWkOrderExceStatusUnexecuted(order, "取消"); |
| | | } |
| | | |
| | | /** |
| | |
| | | if (pakinCount > 0) { |
| | | throw new CoolException("单据已组托,仅未组托状态可取消,请先解除组托!!"); |
| | | } |
| | | assertWkOrderExceStatusUnexecuted(finalWkOrder, "取消"); |
| | | assertWkOrderExceStatusForCancel(finalWkOrder); |
| | | order.getOrderItems().forEach(orderItem -> { |
| | | if (!asnOrderItemService.remove(new LambdaQueryWrapper<WkOrderItem>() |
| | | .eq(WkOrderItem::getMatnrCode, orderItem.getMatnr()) |