From f18b75f5e69da40a4dbc7283856884111436842e Mon Sep 17 00:00:00 2001
From: longz <longzhaoz@qq.com>
Date: 星期二, 21 七月 2026 16:40:17 +0800
Subject: [PATCH] 充电时段统计
---
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java | 38 ++++++++++++++++++++++++++++----------
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/ChargingOrderListVO.java | 2 --
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/export/TChargingOrderExport.java | 2 +-
3 files changed, 29 insertions(+), 13 deletions(-)
diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/ChargingOrderListVO.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/ChargingOrderListVO.java
index e46ece6..82d1c5e 100644
--- a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/ChargingOrderListVO.java
+++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/ChargingOrderListVO.java
@@ -94,8 +94,6 @@
private BigDecimal electrovalence;
@ApiModelProperty(value = "累计服务费")
private BigDecimal serviceCharge;
- @ApiModelProperty(value = "平台手续费")
- private BigDecimal commissionAmount;
@ApiModelProperty(value = "引流平台")
private String tripartitePlatformName;
@ApiModelProperty(value = "平台分佣")
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/export/TChargingOrderExport.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/export/TChargingOrderExport.java
index 7214c5b..6db8523 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/export/TChargingOrderExport.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/export/TChargingOrderExport.java
@@ -127,7 +127,7 @@
private String isSecurity;
@Excel(name = "引流平台分佣",width = 30)
private String sharingAmount;
- @Excel(name = "是否白名单",width = 30)
+ @Excel(name = "是否白名单用户",width = 30)
private String isWhitelist;
@Excel(name = "白名单电费退款金额",width = 30)
private String whitelistElectricRefundAmount;
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java
index 363fe6a..3efecde 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java
@@ -3770,18 +3770,36 @@
if (item == null) {
return;
}
- BigDecimal paymentAmount = nullToZero(item.getPaymentAmount());
+ BigDecimal[] income = calculateChargingPeriodIncome(
+ item.getPaymentAmount(),
+ item.getServiceCharge(),
+ siteServiceShareRatioMap.get(item.getSiteId()),
+ item.getOrderSource());
+ item.setPlatformIncome(income[0]);
+ item.setPartnerIncome(income[1]);
+ }
+
+ static BigDecimal[] calculateChargingPeriodIncome(BigDecimal paymentAmount,
+ BigDecimal serviceCharge,
+ BigDecimal serviceShareRatio,
+ Integer orderSource) {
+ BigDecimal paid = zeroIfNull(paymentAmount);
BigDecimal partnerIncome = BigDecimal.ZERO;
- if (!Integer.valueOf(2).equals(item.getOrderSource())) {
- BigDecimal serviceShareRatio = siteServiceShareRatioMap.get(item.getSiteId());
- if (serviceShareRatio != null && serviceShareRatio.compareTo(BigDecimal.ZERO) > 0) {
- partnerIncome = nullToZero(item.getServiceCharge())
- .multiply(serviceShareRatio)
- .divide(new BigDecimal("100"), 2, RoundingMode.HALF_UP);
- }
+ if (!Integer.valueOf(2).equals(orderSource)
+ && serviceShareRatio != null
+ && serviceShareRatio.compareTo(BigDecimal.ZERO) > 0) {
+ partnerIncome = zeroIfNull(serviceCharge)
+ .multiply(serviceShareRatio)
+ .divide(new BigDecimal("100"), 2, RoundingMode.HALF_UP);
}
- item.setPartnerIncome(partnerIncome);
- item.setPlatformIncome(paymentAmount.subtract(partnerIncome).max(BigDecimal.ZERO).setScale(2, RoundingMode.HALF_UP));
+ return new BigDecimal[]{
+ paid.subtract(partnerIncome).max(BigDecimal.ZERO).setScale(2, RoundingMode.HALF_UP),
+ partnerIncome.setScale(2, RoundingMode.HALF_UP)
+ };
+ }
+
+ private static BigDecimal zeroIfNull(BigDecimal amount) {
+ return amount == null ? BigDecimal.ZERO : amount;
}
private Map<Integer, BigDecimal> loadSiteServiceShareRatioMap() {
--
Gitblit v1.7.1