longz
2026-08-05 eac80fa4c1bd3af514d91fddee2bd2ac4f609acd
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TChargingOrderMapper.java
@@ -184,9 +184,9 @@
    List<SixCircleDto> circle(@Param("siteIds") List<Integer> siteIds, @Param("sixBefore") LocalDate sixBefore, @Param("partnerView") Boolean partnerView);
    BigDecimal sumSuccessfulShareAmount(@Param("siteIds") List<Integer> siteIds);
    BigDecimal sumSuccessfulShareAmount(@Param("siteIds") List<Integer> siteIds, @Param("sixBefore") LocalDate sixBefore);
    Map<String, Object> countAll(@Param("siteIds") List<Integer> siteIds, @Param("partnerView") Boolean partnerView);
    Map<String, Object> countAll(@Param("siteIds") List<Integer> siteIds, @Param("partnerView") Boolean partnerView, @Param("sixBefore") LocalDate sixBefore);
    List<Map<String, Object>> chargingOrderShareIncomeByPayChannel(@Param("sixBefore") LocalDate sixBefore, @Param("siteIds") List<Integer> siteIds);
@@ -412,4 +412,55 @@
     */
    List<Map<String, Object>> getAccountSettlementStatement(@Param("startTime") String startTime,
                                                            @Param("endTime") String endTime);
    // ==================== 加盟商看板聚合查询(SQL 聚合下推,替代全量拉订单到 JVM) ====================
    // 均为单表 GROUP BY,MyCat 可把聚合下推到各分片表后由代理合并少量行;不带 IPage 参数。
    // 口径与 TChargingOrderController franchisee* 原 Java 求和逻辑一致。
    /**
     * 按 end_time 日聚合:订单数/金额/服务费/电费/电量/功率/需求满足率/利用率。
     */
    List<FranchiseeDayStat> franchiseeDayStats(@Param("siteIds") List<Integer> siteIds,
                                               @Param("start") LocalDateTime start,
                                               @Param("end") LocalDateTime end);
    /**
     * 功率分布直方图(0-30/30-60/60-120/120-300/300kW以上,按 IFNULL(charging_power, power) 分桶)。
     */
    List<FranchiseePowerBucket> franchiseePowerBuckets(@Param("siteIds") List<Integer> siteIds,
                                                       @Param("start") LocalDateTime start,
                                                       @Param("end") LocalDateTime end);
    /**
     * 尖峰平谷阶段电量(按 charging_order_id IN 路由到对应分片,分组返回 type/电量)。
     */
    List<FranchiseePhaseStat> franchiseePhaseStatsByOrderIds(@Param("orderIds") List<Long> orderIds);
    /**
     * 站点+时间范围内订单 id 列表(仅 id 投影,供尖峰平谷分块反查使用)。
     */
    List<Long> franchiseeOrderIds(@Param("siteIds") List<Integer> siteIds,
                                  @Param("start") LocalDateTime start,
                                  @Param("end") LocalDateTime end);
    /**
     * 用户维度聚合(仅 status=5 已结束订单,按 app_user_id/app_user_car_id/结束日 分组)。
     */
    List<FranchiseeUserAgg> franchiseeUserAggs(@Param("siteIds") List<Integer> siteIds,
                                               @Param("start") LocalDateTime start,
                                               @Param("end") LocalDateTime end);
    /**
     * 流量来源统计(按 tripartite_platform_name 分组,仅 status=5 已结束订单)。
     */
    List<FranchiseeSourceStat> franchiseeTrafficStats(@Param("siteIds") List<Integer> siteIds,
                                                      @Param("start") LocalDateTime start,
                                                      @Param("end") LocalDateTime end);
    /**
     * 按充电枪的需求满足率聚合(含空枪 id 行,服务端过滤)。
     */
    List<FranchiseeGunSat> franchiseeGunSatisfaction(@Param("siteIds") List<Integer> siteIds,
                                                     @Param("start") LocalDateTime start,
                                                     @Param("end") LocalDateTime end);
}