longz
2026-07-21 f18b75f5e69da40a4dbc7283856884111436842e
充电时段统计
3个文件已修改
42 ■■■■■ 已修改文件
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/ChargingOrderListVO.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/export/TChargingOrderExport.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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 = "平台分佣")
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;
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() {