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