diff --git a/cash-service/order-service/src/main/java/com/czg/service/order/print/YxyPrinter.java b/cash-service/order-service/src/main/java/com/czg/service/order/print/YxyPrinter.java index f5d451525..1e28f3f67 100644 --- a/cash-service/order-service/src/main/java/com/czg/service/order/print/YxyPrinter.java +++ b/cash-service/order-service/src/main/java/com/czg/service/order/print/YxyPrinter.java @@ -172,7 +172,7 @@ public class YxyPrinter extends PrinterHandler implements PrinterImpl { ? orderInfo.getDiscountAllAmount().toPlainString() : "0.00"); - BigDecimal originalAmount = orderInfo.getOriginAmount().add(orderInfo.getSeatAmount()).add(orderInfo.getPackFee()); + BigDecimal originalAmount = orderInfo.getOriginAmount(); printInfoDTO.setOriginalAmount(originalAmount.toPlainString()); if (isPre) { originalAmount = BigDecimal.ZERO; @@ -180,8 +180,10 @@ public class YxyPrinter extends PrinterHandler implements PrinterImpl { originalAmount = originalAmount.add((orderDetail.getNum().subtract(orderDetail.getReturnNum()).subtract(orderDetail.getRefundNum())).multiply(orderDetail.getPrice())); } printInfoDTO.setOriginalAmount((originalAmount.add(orderInfo.getSeatAmount()).add(orderInfo.getPackFee())).toPlainString()); + printInfoDTO.setPayAmount(originalAmount.subtract(orderInfo.getDiscountAllAmount()).setScale(2, RoundingMode.HALF_UP).toPlainString()); + }else { + printInfoDTO.setPayAmount(originalAmount.subtract(orderInfo.getDiscountAllAmount()).setScale(2, RoundingMode.HALF_UP).toPlainString()); } - printInfoDTO.setPayAmount(originalAmount.subtract(orderInfo.getDiscountAllAmount()).setScale(2, RoundingMode.HALF_UP).toPlainString()); printInfoDTO.setPrintTitle(printInfoDTO.getPrintTitle()); if (orderInfo.getSeatNum() != null && orderInfo.getSeatAmount().compareTo(BigDecimal.ZERO) > 0) { printInfoDTO.setSeatNum(orderInfo.getSeatNum().toString()); diff --git a/cash-service/order-service/src/main/java/com/czg/service/order/service/impl/OrderInfoCustomServiceImpl.java b/cash-service/order-service/src/main/java/com/czg/service/order/service/impl/OrderInfoCustomServiceImpl.java index 7f2e54ae2..4e2a59869 100644 --- a/cash-service/order-service/src/main/java/com/czg/service/order/service/impl/OrderInfoCustomServiceImpl.java +++ b/cash-service/order-service/src/main/java/com/czg/service/order/service/impl/OrderInfoCustomServiceImpl.java @@ -314,7 +314,7 @@ public class OrderInfoCustomServiceImpl implements OrderInfoCustomService { } orderDetails.forEach(item -> item.setOrderTime(DateUtil.date().toLocalDateTime())); AssertUtil.isListEmpty(orderDetails, "下单失败 购物车为空"); - processOrderDetails(orderDetails, param.getLimitRate()); + processOrderDetails(orderDetails, param.getLimitRate(),param); //生成订单 OrderInfo orderInfo = initOrderInfo(param, shopInfo, table); orderDetailService.createOrderDetails(orderInfo.getId(), orderDetails); @@ -1028,7 +1028,8 @@ public class OrderInfoCustomServiceImpl implements OrderInfoCustomService { * * @param orderDetails 订单详情 需要回填 */ - private void processOrderDetails(List orderDetails, LimitRateDTO limitRate) throws CzgException { + private void processOrderDetails(List orderDetails, LimitRateDTO limitRate,OrderInfoAddDTO param) throws CzgException { + BigDecimal packFee = BigDecimal.ZERO; for (OrderDetail detail : orderDetails) { if (!detail.getIsTemporary().equals(1) && detail.getProductId() > 0) { Product product = productService.getOne(QueryWrapper.create() @@ -1054,7 +1055,9 @@ public class OrderInfoCustomServiceImpl implements OrderInfoCustomService { detail.setUnitPrice(detail.getPrice()); } detail.setPayAmount(detail.getNum().multiply(detail.getUnitPrice())); + packFee = packFee.add(detail.getPackAmount().multiply(detail.getPackNumber())); } + param.setPackFee(packFee); } @Override