From 461b3df61dfd1cc887dc24c58395dd9436605588 Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期五, 08 五月 2026 16:48:34 +0800
Subject: [PATCH] 联调充电桩
---
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/task/TaskUtil.java | 40 +++++++++++++++++++++++++---------------
1 files changed, 25 insertions(+), 15 deletions(-)
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/task/TaskUtil.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/task/TaskUtil.java
index 4ac4e4a..401c549 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/task/TaskUtil.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/task/TaskUtil.java
@@ -685,8 +685,17 @@
refundAmount = refundAmount.setScale(2, RoundingMode.HALF_EVEN);
if (refundAmount.compareTo(BigDecimal.ZERO) > 0) {
Integer rechargePaymentType = order.getRechargePaymentType();
- BigDecimal thirdRefundAmount = refundAmount.min(money(order.getThirdPayAmount())).setScale(2, RoundingMode.HALF_UP);
- BigDecimal balanceRefundAmount = refundAmount.subtract(thirdRefundAmount).min(money(order.getBalancePayAmount())).setScale(2, RoundingMode.HALF_UP);
+ Integer payMethod = order.getPayMethod();
+ BigDecimal thirdRefundAmount = BigDecimal.ZERO.setScale(2, RoundingMode.HALF_UP);
+ BigDecimal balanceRefundAmount = BigDecimal.ZERO.setScale(2, RoundingMode.HALF_UP);
+ if (Integer.valueOf(1).equals(payMethod)) {
+ balanceRefundAmount = refundAmount.min(money(order.getBalancePayAmount())).setScale(2, RoundingMode.HALF_UP);
+ } else if (Integer.valueOf(2).equals(payMethod)) {
+ thirdRefundAmount = refundAmount.min(money(order.getThirdPayAmount())).setScale(2, RoundingMode.HALF_UP);
+ balanceRefundAmount = refundAmount.subtract(thirdRefundAmount).min(money(order.getBalancePayAmount())).setScale(2, RoundingMode.HALF_UP);
+ } else {
+ thirdRefundAmount = refundAmount;
+ }
refundAmount = thirdRefundAmount.add(balanceRefundAmount).setScale(2, RoundingMode.HALF_UP);
order.setThirdRefundAmount(thirdRefundAmount);
order.setBalanceRefundAmount(balanceRefundAmount);
@@ -708,7 +717,18 @@
chargingOrderRefund.setRefundRemark("实际充电消费金额:" + order.getPaymentAmount());
chargingOrderRefund.setRefundTotalAmount(refundAmount);
chargingOrderRefund.setPayAmount(rechargeAmount);
- if (thirdRefundAmount.compareTo(BigDecimal.ZERO) > 0 && 1 == rechargePaymentType) {
+ if (thirdRefundAmount.compareTo(BigDecimal.ZERO) == 0) {
+ chargingOrderRefund.setRefundStatus(2);
+ chargingOrderRefund.setRefundSerialNumber("BALANCE");
+ chargingOrderRefund.setRefundTime(LocalDateTime.now());
+ chargingOrderRefundService.save(chargingOrderRefund);
+ if (balanceRefundAmount.compareTo(BigDecimal.ZERO) > 0) {
+ recordBalanceRefund(order, balanceRefundAmount, chargingOrderRefund.getRefundCode());
+ }
+ order.setRefundStatus(2);
+ order.setRefundTime(LocalDateTime.now());
+ chargingOrderService.updateById(order);
+ } else if (1 == rechargePaymentType) {
WxPaymentRefundModel model = new WxPaymentRefundModel();
model.setOut_trade_no(order.getCode());
model.setOut_refund_no(chargingOrderRefund.getRefundCode());
@@ -730,7 +750,7 @@
chargingOrderRefundService.updateById(chargingOrderRefund);
}
}
- if (thirdRefundAmount.compareTo(BigDecimal.ZERO) > 0 && 2 == rechargePaymentType) {
+ else if (2 == rechargePaymentType) {
RefundReq dto = new RefundReq();
dto.setOutTradeNo(order.getCode());
dto.setOutRequestNo(chargingOrderRefund.getRefundCode());
@@ -742,7 +762,7 @@
chargingOrderService.chargingOrderStartupFailureWxRefund(chargingOrderRefund.getRefundCode(), resp.getTradeNo(), "SUCCESS", null);
}
}
- if (thirdRefundAmount.compareTo(BigDecimal.ZERO) > 0 && 3 == rechargePaymentType) {
+ else if (3 == rechargePaymentType) {
RefundReq dto = new RefundReq();
dto.setOutTradeNo(order.getRechargeSerialNumber());
dto.setOutRequestNo(chargingOrderRefund.getRefundCode());
@@ -753,16 +773,6 @@
chargingOrderRefundService.save(chargingOrderRefund);
chargingOrderService.chargingOrderStartupFailureWxRefund(chargingOrderRefund.getRefundCode(), resp.getTradeNo(), "SUCCESS", null);
}
- }
- if (thirdRefundAmount.compareTo(BigDecimal.ZERO) == 0 && balanceRefundAmount.compareTo(BigDecimal.ZERO) > 0) {
- chargingOrderRefund.setRefundStatus(2);
- chargingOrderRefund.setRefundSerialNumber("BALANCE");
- chargingOrderRefund.setRefundTime(LocalDateTime.now());
- chargingOrderRefundService.save(chargingOrderRefund);
- recordBalanceRefund(order, balanceRefundAmount, chargingOrderRefund.getRefundCode());
- order.setRefundStatus(2);
- order.setRefundTime(LocalDateTime.now());
- chargingOrderService.updateById(order);
}
}
}
--
Gitblit v1.7.1