diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopTableServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopTableServiceImpl.java index 129a22ab..fee38ead 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopTableServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopTableServiceImpl.java @@ -2964,6 +2964,8 @@ public class TbShopTableServiceImpl implements TbShopTableService { BigDecimal saleAmount = BigDecimal.ZERO; ArrayList remainOrderDetailList = new ArrayList<>(); boolean hasNormalReturn = false; + + ArrayList copyDetailList = new ArrayList<>(); for (TbOrderDetail orderDetail : detailList) { // 原始金额 BigDecimal originalAmount = orderDetail.getPriceAmount(); @@ -3056,6 +3058,10 @@ public class TbShopTableServiceImpl implements TbShopTableService { orderDetail.setReturnAmount(returnAmount); // orderDetail.setStatus(isOnline ? "refunding" : "refund"); orderDetail.setStatus("refund"); + + TbOrderDetail returnOrderDetailCopy = BeanUtil.copyProperties(orderDetail, TbOrderDetail.class); + returnOrderDetailCopy.setId(null); + copyDetailList.add(returnOrderDetailCopy); } if (returnAmount.compareTo(BigDecimal.ZERO) < 0) { @@ -3101,6 +3107,11 @@ public class TbShopTableServiceImpl implements TbShopTableService { orderInfoMapper.updateById(returnOrder); } + // 保存新的退款detail信息 + TbOrderInfo finalReturnOrder = returnOrder; + copyDetailList.forEach(item -> item.setOrderId(finalReturnOrder.getId())); + mpOrderDetailService.saveBatch(copyDetailList); + updateStockAndRecord(detailList); mpOrderDetailService.updateBatchById(detailList); data.put("returnOrder", returnOrder);