From b0409a8bac61d91d6db8755b15d4e2b9c4e3973c Mon Sep 17 00:00:00 2001 From: skyouc Date: 星期四, 05 六月 2025 15:56:11 +0800 Subject: [PATCH] 出库单取消功能优化 --- rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/AsnOrderController.java | 4 ++-- rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/OutStockServiceImpl.java | 42 ++++++++++++++++++++++++++++++++++++++---- rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/OutStockController.java | 2 +- rsf-admin/src/page/orders/outStock/OutOrderList.jsx | 2 +- 4 files changed, 42 insertions(+), 8 deletions(-) diff --git a/rsf-admin/src/page/orders/outStock/OutOrderList.jsx b/rsf-admin/src/page/orders/outStock/OutOrderList.jsx index 62a57b1..979c23f 100644 --- a/rsf-admin/src/page/orders/outStock/OutOrderList.jsx +++ b/rsf-admin/src/page/orders/outStock/OutOrderList.jsx @@ -284,6 +284,6 @@ } return ( - record?.exceStatus == 0 ? <ConfirmButton label={"toolbar.cancel"} startIcon={<CancelOutlinedIcon />} onConfirm={cancelOrder} /> : <></> + record?.exceStatus == 10 ? <ConfirmButton label={"toolbar.cancel"} startIcon={<CancelOutlinedIcon />} onConfirm={cancelOrder} /> : <></> ) } diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/AsnOrderController.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/AsnOrderController.java index 1168c07..24fc8af 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/AsnOrderController.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/AsnOrderController.java @@ -61,8 +61,8 @@ BaseParam baseParam = buildParam(map, BaseParam.class); PageParam<AsnOrder, BaseParam> pageParam = new PageParam<>(baseParam, AsnOrder.class); QueryWrapper<AsnOrder> queryWrapper = pageParam.buildWrapper(true); -// List<String> asList = Arrays.asList(OrderType.ORDER_OUT.type); -// queryWrapper.notIn("type", asList); + List<String> asList = Arrays.asList(OrderType.ORDER_IN.type); + queryWrapper.in("type", asList); return R.ok().add(asnOrderService.page(pageParam, queryWrapper)); } diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/OutStockController.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/OutStockController.java index 7427f7c..0db2488 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/OutStockController.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/OutStockController.java @@ -49,7 +49,7 @@ BaseParam baseParam = buildParam(map, BaseParam.class); PageParam<AsnOrder, BaseParam> pageParam = new PageParam<>(baseParam, AsnOrder.class); QueryWrapper<AsnOrder> queryWrapper = pageParam.buildWrapper(true); - List<String> list = Arrays.asList(OrderType.ORDER_IN.type); + List<String> list = Arrays.asList(OrderType.ORDER_OUT.type); queryWrapper.in("type", list); return R.ok().add(outStockService.page(pageParam, queryWrapper)); } diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/OutStockServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/OutStockServiceImpl.java index 0137b40..70e07a5 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/OutStockServiceImpl.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/OutStockServiceImpl.java @@ -52,6 +52,10 @@ private WaveService waveService; @Autowired private WaveItemService waveItemService; + @Autowired + private OutStockItemService outStockItemService; + @Autowired + private OutStockService outStockService; /** @@ -102,14 +106,44 @@ if (Objects.isNull(order)) { throw new CoolException("鍗曟嵁涓嶅瓨鍦紒锛�"); } - if (!order.getExceStatus().equals(AsnExceStatus.ASN_EXCE_STATUS_UN_EXCE.val)) { + if (!order.getExceStatus().equals(AsnExceStatus.OUT_STOCK_STATUS_TASK_INIT.val)) { throw new CoolException("褰撳墠鍗曟嵁鐘舵�佷负" + AsnExceStatus.getExceStatus(order.getExceStatus()) + "锛� 涓嶅彲鎵ц鍙栨秷鎿嶄綔锛侊紒"); } - order.setExceStatus(AsnExceStatus.ASN_EXCE_STATUS_TASK_CANCEL.val).setStatus(0); - if (!this.saveOrUpdate(order)) { - throw new CoolException("鍗曟嵁鍙栨秷澶辫触锛侊紒"); + List<AsnOrderItem> orderItems = outStockItemService.list(new LambdaQueryWrapper<AsnOrderItem>().eq(AsnOrderItem::getAsnId, id)); + if (!orderItems.isEmpty()) { + for (AsnOrderItem orderItem : orderItems) { + if (!Objects.isNull(orderItem.getPoDetlId())) { + DeliveryItem deliveryItem = deliveryItemService.getById(orderItem.getPoDetlId()); + Double workQty = Math.round((deliveryItem.getWorkQty() - orderItem.getAnfme()) * 10000) / 10000.0; + deliveryItem.setWorkQty(workQty.compareTo(0.0) >= 0 ? workQty : 0); + if (!deliveryItemService.updateById(deliveryItem)) { + throw new CoolException("DO鍗曟槑缁嗘洿鏂板け璐ワ紒锛�"); + } + } + } } + + if (!Objects.isNull(order.getPoId())) { + Delivery delivery = deliveryService.getById(order.getPoId()); + if (!Objects.isNull(delivery)) { + Double sum = orderItems.stream().mapToDouble(AsnOrderItem::getAnfme).sum(); + Double workQty = Math.round((delivery.getWorkQty() - sum) * 10000) / 10000.0; + delivery.setWorkQty(workQty.compareTo(0.0) >= 0 ? workQty : 0).setExceStatus(POExceStatus.PO_EXCE_STATUS_UN_EXCE.val); + if (!deliveryService.updateById(delivery)) { + throw new CoolException("DO鍗曟嵁淇敼澶辫触锛侊紒"); + } + } + } + if (!this.remove(new LambdaQueryWrapper<AsnOrder>().eq(AsnOrder::getId, id))) { + throw new CoolException("涓诲崟鍒犻櫎澶辫触锛侊紒"); + } + if (!outStockItemService.remove(new LambdaQueryWrapper<AsnOrderItem>().eq(AsnOrderItem::getAsnId, id))) { + throw new CoolException("鍗曟嵁鏄庣粏鍒犻櫎澶辫触锛侊紒"); + } +// if (!this.saveOrUpdate(order)) { +// throw new CoolException("鍗曟嵁鍙栨秷澶辫触锛侊紒"); +// } return R.ok("鎿嶄綔鎴愬姛"); } -- Gitblit v1.9.1