From eac80fa4c1bd3af514d91fddee2bd2ac4f609acd Mon Sep 17 00:00:00 2001
From: longz <longzhaoz@qq.com>
Date: 星期三, 05 八月 2026 15:29:18 +0800
Subject: [PATCH] fix: 平台总收入分析-数据分类与电站收入分析同口径(近6月+当月)
---
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java | 45 ++++++++++++++++++++++++++++++++-------------
1 files changed, 32 insertions(+), 13 deletions(-)
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java
index 51e0c42..13257ae 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java
@@ -1870,11 +1870,18 @@
public R<List<SixChargingDto>> charge(Integer siteId, Integer partnerId) {
Long userId = tokenService.getLoginUser().getUserid();
SysUser sysUser = sysUserClient.getSysUser(userId).getData();
- boolean partnerView = isPartnerView(sysUser);
List<Integer> siteIds = resolvePlatformRevenueSiteIds(userId, sysUser, siteId, partnerId);
- LocalDate sixBefore = PreviousSixMonths.get();
//通过siteIds进行sql查询统计
- List<SixChargingDto> chargingDtos = chargingOrderService.charge(sixBefore, siteIds, false);
+ return R.ok(buildLastSixMonths(siteIds, false));
+ }
+
+ /**
+ * 近6月+当月电站收入:历史月读结算账单、当月补原始订单。
+ * 与「电站收入分析」图表、底部数据分类及加盟商收支同口径。
+ */
+ private List<SixChargingDto> buildLastSixMonths(List<Integer> siteIds, boolean partnerView) {
+ LocalDate sixBefore = PreviousSixMonths.get();
+ List<SixChargingDto> chargingDtos = chargingOrderService.charge(sixBefore, siteIds, partnerView);
LocalDate statisticsEndMonth = resolveStatisticsEndMonth(LocalDate.now(), chargingDtos);
List<SixChargingDto> sixChargingDtos = generateLastSixMonths(statisticsEndMonth);
for (SixChargingDto sixChargingDto : sixChargingDtos) {
@@ -1885,9 +1892,7 @@
}
}
-
- return R.ok(sixChargingDtos);
-
+ return sixChargingDtos;
}
@@ -2025,19 +2030,33 @@
SysUser sysUser = sysUserClient.getSysUser(userId).getData();
boolean partnerView = isPartnerView(sysUser);
List<Integer> siteIds = resolvePlatformRevenueSiteIds(userId, sysUser, siteId, partnerId);
- Map<String,Object> map = chargingOrderService.countAll(siteIds, false);
- if (map == null) {
- map = new HashMap<String,Object>();
- }
+ LocalDate sixBefore = PreviousSixMonths.get();
+ Map<String,Object> map = new HashMap<String,Object>();
+ // 电费/服务费与上方「电站收入分析」图表同口径:近6月结算账单 + 当月原始订单,保证底部合计=图表6个月相加
+ List<SixChargingDto> sixChargingDtos = buildLastSixMonths(siteIds, false);
+ map.put("electrovalence", sixChargingDtos.stream()
+ .filter(Objects::nonNull)
+ .map(SixChargingDto::getElectrovalence)
+ .filter(Objects::nonNull)
+ .reduce(BigDecimal.ZERO, BigDecimal::add));
+ map.put("service_charge", sixChargingDtos.stream()
+ .filter(Objects::nonNull)
+ .map(SixChargingDto::getServiceCharge)
+ .filter(Objects::nonNull)
+ .reduce(BigDecimal.ZERO, BigDecimal::add));
+ // 合作商分成/三方平台分佣按近6月结算口径统计(与图表月份窗口一致)
+ Map<String,Object> sub = chargingOrderService.countAll(siteIds, false, sixBefore);
+ map.put("commission_amount", sub == null ? BigDecimal.ZERO : sub.get("commission_amount"));
+ map.put("sharing_amount", sub == null ? BigDecimal.ZERO : sub.get("sharing_amount"));
boolean platformVisible = !partnerView;
if(platformVisible){
- R<BigDecimal> parkingAmountResult = parkingLotClient.getRecordAmount(siteIds);
+ R<BigDecimal> parkingAmountResult = parkingLotClient.getRecordAmount(siteIds, sixBefore.toString());
BigDecimal data = parkingAmountResult == null || parkingAmountResult.getData() == null
? BigDecimal.ZERO : parkingAmountResult.getData();
map.put("parkingAmount",data);
- BigDecimal data1 = shoppingOrderService.getSumAmount();
+ BigDecimal data1 = shoppingOrderService.getSumAmount(sixBefore);
map.put("shopAmount",data1);
- BigDecimal data2 = vipOrderService.getSumAmout();
+ BigDecimal data2 = vipOrderService.getSumAmout(sixBefore);
map.put("vipAmount",data2);
}else{
map.put("parkingAmount",0);
--
Gitblit v1.7.1