From 48b79c1386fc96b002a95a190fb3a20a16c55165 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A2=81=E5=AE=87=E5=A5=87?= Date: Tue, 25 Nov 2025 16:39:59 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=A2=E5=8D=95=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../xkt/mapper/StoreOrderDetailMapper.java | 2 ++ .../service/impl/StoreOrderServiceImpl.java | 22 +++++++------------ .../mapper/StoreOrderDetailMapper.xml | 9 ++++++++ 3 files changed, 19 insertions(+), 14 deletions(-) diff --git a/xkt/src/main/java/com/ruoyi/xkt/mapper/StoreOrderDetailMapper.java b/xkt/src/main/java/com/ruoyi/xkt/mapper/StoreOrderDetailMapper.java index 258b60a0d..ee8f28600 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/mapper/StoreOrderDetailMapper.java +++ b/xkt/src/main/java/com/ruoyi/xkt/mapper/StoreOrderDetailMapper.java @@ -17,4 +17,6 @@ import java.util.List; public interface StoreOrderDetailMapper extends BaseMapper { List listInfoByStoreOrderIds(@Param("storeOrderIds") Collection storeOrderIds); + + List listRefundOrderDetailOriginIds(@Param("storeOrderId")Long storeOrderId); } diff --git a/xkt/src/main/java/com/ruoyi/xkt/service/impl/StoreOrderServiceImpl.java b/xkt/src/main/java/com/ruoyi/xkt/service/impl/StoreOrderServiceImpl.java index 626056c13..218ee997c 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/service/impl/StoreOrderServiceImpl.java +++ b/xkt/src/main/java/com/ruoyi/xkt/service/impl/StoreOrderServiceImpl.java @@ -809,12 +809,12 @@ public class StoreOrderServiceImpl implements IStoreOrderService { throw new ServiceException(CharSequenceUtil.format("订单[{}]当前状态无法发货", order.getOrderNo())); } - List existsRefundDetailIds = checkNoCompleteRefundDetail(storeOrderDetailIds, - "售后完成状态的商品无法发货"); + checkNoCompleteRefundDetail(storeOrderDetailIds, "售后完成状态的商品无法发货"); List containDetails = storeOrderDetailMapper.selectList( Wrappers.lambdaQuery(StoreOrderDetail.class) .eq(StoreOrderDetail::getStoreOrderId, order.getId()) .eq(SimpleEntity::getDelFlag, Constants.UNDELETED)); + List existsRefundDetailIds = storeOrderDetailMapper.listRefundOrderDetailOriginIds(storeOrderId); for (StoreOrderDetail containDetail : containDetails) { if (EDeliveryType.SHIP_COMPLETE.getValue().equals(order.getDeliveryType())) { //如果是货齐再发,此次发货需要包含所有明细(排除已存在售后的明细) @@ -906,12 +906,12 @@ public class StoreOrderServiceImpl implements IStoreOrderService { throw new ServiceException(CharSequenceUtil.format("订单[{}]当前状态无法发货", order.getOrderNo())); } - List existsRefundDetailIds = checkNoCompleteRefundDetail(storeOrderDetailIds, - "售后完成状态的商品无法发货"); + checkNoCompleteRefundDetail(storeOrderDetailIds, "售后完成状态的商品无法发货"); List containDetails = storeOrderDetailMapper.selectList( Wrappers.lambdaQuery(StoreOrderDetail.class) .eq(StoreOrderDetail::getStoreOrderId, order.getId()) .eq(SimpleEntity::getDelFlag, Constants.UNDELETED)); + List existsRefundDetailIds = storeOrderDetailMapper.listRefundOrderDetailOriginIds(storeOrderId); for (StoreOrderDetail containDetail : containDetails) { if (EDeliveryType.SHIP_COMPLETE.getValue().equals(order.getDeliveryType())) { //如果是货齐再发,此次发货需要包含所有明细(排除已存在售后的明细) @@ -986,8 +986,7 @@ public class StoreOrderServiceImpl implements IStoreOrderService { public ExpressShippingLabelDTO printOrder(Long storeOrderId, List storeOrderDetailIds, Long expressId, Boolean needShip, Long operatorId) { Assert.notEmpty(storeOrderDetailIds); - List existsRefundDetailIds = checkNoCompleteRefundDetail(storeOrderDetailIds, - "售后完成状态的商品无法打印快递单"); + checkNoCompleteRefundDetail(storeOrderDetailIds, "售后完成状态的商品无法打印快递单"); ExpressManager expressManager = expressService.getExpressManager(expressId); Express express = expressService.getById(expressId); if (!BeanValidators.exists(express) || !express.getSystemDeliverAccess()) { @@ -1002,6 +1001,7 @@ public class StoreOrderServiceImpl implements IStoreOrderService { Wrappers.lambdaQuery(StoreOrderDetail.class) .eq(StoreOrderDetail::getStoreOrderId, order.getId()) .eq(SimpleEntity::getDelFlag, Constants.UNDELETED)); + List existsRefundDetailIds = storeOrderDetailMapper.listRefundOrderDetailOriginIds(storeOrderId); for (StoreOrderDetail containDetail : containDetails) { if (EDeliveryType.SHIP_COMPLETE.getValue().equals(order.getDeliveryType())) { //如果是货齐再发,此次发货需要包含所有明细(排除已存在售后的明细) @@ -1834,26 +1834,20 @@ public class StoreOrderServiceImpl implements IStoreOrderService { * * @param orderDetailIds * @param errorMsg - * @return 已存在售后的订单明细ID */ - private List checkNoCompleteRefundDetail(Collection orderDetailIds, String errorMsg) { + private void checkNoCompleteRefundDetail(Collection orderDetailIds, String errorMsg) { if (CollUtil.isEmpty(orderDetailIds)) { - return ListUtil.empty(); + return; } List refundDetails = storeOrderDetailMapper.selectList(Wrappers .lambdaQuery(StoreOrderDetail.class) .in(StoreOrderDetail::getOriginOrderDetailId, orderDetailIds) .eq(SimpleEntity::getDelFlag, Constants.UNDELETED)); - List existsRefundDetailIds = new ArrayList<>(); for (StoreOrderDetail refundDetail : refundDetails) { - if (orderDetailIds.contains(refundDetail.getOriginOrderDetailId())) { - existsRefundDetailIds.add(refundDetail.getOriginOrderDetailId()); - } if (EOrderStatus.AFTER_SALE_COMPLETED.getValue().equals(refundDetail.getDetailStatus())) { throw new ServiceException(errorMsg); } } - return existsRefundDetailIds; } /** diff --git a/xkt/src/main/resources/mapper/StoreOrderDetailMapper.xml b/xkt/src/main/resources/mapper/StoreOrderDetailMapper.xml index 9ad1bb1f8..7c3cd4692 100644 --- a/xkt/src/main/resources/mapper/StoreOrderDetailMapper.xml +++ b/xkt/src/main/resources/mapper/StoreOrderDetailMapper.xml @@ -27,4 +27,13 @@ #{storeOrderId} + \ No newline at end of file