From fbce3ff8d28f55fdc8e7c6e446534dcfa181f488 Mon Sep 17 00:00:00 2001
From: longz <longzhaoz@qq.com>
Date: 星期三, 05 八月 2026 20:00:52 +0800
Subject: [PATCH] fix: 企业用户充电分析慢查询,改逆反查 + Service 层聚合(去跨分片 JOIN)
---
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TChargingOrderMapper.java | 32 ++++++++++++++++++++++++--------
1 files changed, 24 insertions(+), 8 deletions(-)
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TChargingOrderMapper.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TChargingOrderMapper.java
index 6f4c266..282501f 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TChargingOrderMapper.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TChargingOrderMapper.java
@@ -85,18 +85,34 @@
List<PayOrderDto> payOrderQuery(@Param("pageInfo") PageInfo<PayOrderDto> pageInfo, @Param("data") PayOrderQueryDto payOrderQueryDto);
- List<EnterpriseChargingAnalysisVO> enterpriseChargingAnalysis(@Param("pageInfo") PageInfo<EnterpriseChargingAnalysisVO> pageInfo,
- @Param("data") EnterpriseChargingAnalysisQuery query);
+ /**
+ * 企业用户充电分析 —— 企业发票行(t_order_invoice 单表,无跨分片 JOIN)。
+ * 只按抬头级别条件过滤(名称/税号/抬头类型/状态),站点等订单级条件在 Service 层经
+ * enterpriseAnalysisMatchingOrderIds 过滤订单后再归并。
+ */
+ List<EnterpriseChargingAggRow.Invoice> enterpriseInvoiceRows(@Param("data") EnterpriseChargingAnalysisQuery query);
- List<Map<String, Object>> enterpriseTopSites(@Param("data") EnterpriseChargingAnalysisQuery query);
+ /**
+ * 企业发票充电明细(t_order_invoice_detail 按 order_invoice_id 分片,IN 可直接路由)。
+ */
+ List<EnterpriseChargingAggRow.Detail> enterpriseInvoiceDetailRows(@Param("invoiceIds") List<Long> invoiceIds);
- List<Map<String, Object>> enterpriseTopSitesByCompanies(@Param("data") EnterpriseChargingAnalysisQuery query,
- @Param("companyNames") List<String> companyNames);
+ /**
+ * 企业分析命中订单 id(co.id IN + 订单级条件,co 按 app_user_id 分片但 id IN 可广播走主键)。
+ * 仅当存在订单级筛选(站点/时间等)时调用。
+ */
+ List<Long> enterpriseAnalysisMatchingOrderIds(@Param("orderIds") List<Long> orderIds,
+ @Param("data") EnterpriseChargingAnalysisQuery query);
- List<LocalDateTime> enterpriseChargingTimes(@Param("data") EnterpriseChargingAnalysisQuery query);
+ /**
+ * 企业分析充电订单数据(id IN 走主键,取 start_time/site_id)。
+ */
+ List<EnterpriseChargingAggRow.Order> enterpriseAnalysisChargingOrders(@Param("orderIds") List<Long> orderIds);
- List<Map<String, Object>> enterpriseChargingTimesByCompanies(@Param("data") EnterpriseChargingAnalysisQuery query,
- @Param("companyNames") List<String> companyNames);
+ /**
+ * 企业分析站点名(charging_pile_service.t_site 单表,id IN)。
+ */
+ List<EnterpriseChargingAggRow.Site> enterpriseAnalysisSites(@Param("siteIds") List<Long> siteIds);
List<Long> enterpriseInvoiceIds(@Param("data") EnterpriseChargingAnalysisQuery query);
--
Gitblit v1.7.1