添加客户或录音时,经销商信息。

This commit is contained in:
2026-02-08 17:58:12 +08:00
parent c003cbb11c
commit 564fd35cac
4 changed files with 85 additions and 124 deletions

View File

@@ -22,53 +22,44 @@ import java.util.Map;
public interface CustomerManagementStatisticsMapper extends BaseMapper<CustomerManagementStatistics> {
/**
* 按经销商统计指定日期的客户数据
* 按租户、经销商、项目、销售统计指定日期的客户数据
* 每天生成一条记录(按租户、经销商、项目、销售分组)
* @param date 统计日期
* @return 经销商统计结果列表
* @return 统计结果列表包含tenant_id, dealership_id, dealership_name, project_id, project_name, sales_id, sales_name, count_by_dealership, count_by_sales, count_by_project
*/
@Select("SELECT " +
"dealership_id, " +
"dealership_name, " +
"COUNT(*) as count_by_dealership " +
"FROM customer_management " +
"WHERE DATE(create_time) = #{date} " +
"AND dealership_id IS NOT NULL " +
"AND dealership_id != '' " +
"GROUP BY dealership_id, dealership_name")
List<Map<String, Object>> getDealershipStatisticsByDate(@Param("date") LocalDate date);
/**
* 按销售统计指定日期的客户数据
* @param date 统计日期
* @return 销售统计结果列表
*/
@Select("SELECT " +
"sales_id, " +
"COUNT(*) as count_by_sales " +
"FROM customer_management " +
"WHERE DATE(create_time) = #{date} " +
"AND sales_id IS NOT NULL " +
"AND sales_id != '' " +
"GROUP BY sales_id")
List<Map<String, Object>> getSalesStatisticsByDate(@Param("date") LocalDate date);
/**
* 按项目统计指定日期的客户数据
* @param date 统计日期
* @return 项目统计结果列表
*/
@Select("SELECT " +
"dealership_id, " +
"sales_id, " +
"COUNT(*) as count_by_project " +
"FROM customer_management " +
"WHERE DATE(create_time) = #{date} " +
"AND dealership_id IS NOT NULL " +
"AND dealership_id != '' " +
"AND sales_id IS NOT NULL " +
"AND sales_id != '' " +
"GROUP BY dealership_id, sales_id")
List<Map<String, Object>> getProjectStatisticsByDate(@Param("date") LocalDate date);
"cm.tenant_id, " +
"cm.dealership_id, " +
"cm.dealership_name, " +
"COALESCE(sm.project_id, '') as project_id, " +
"COALESCE(sm.project_name, '') as project_name, " +
"cm.sales_id, " +
"cm.sales_name, " +
"(SELECT COUNT(*) FROM customer_management cm2 " +
" WHERE cm2.dealership_id = cm.dealership_id " +
" AND DATE(cm2.create_time) = #{date} " +
" AND cm2.tenant_id = cm.tenant_id) as count_by_dealership, " +
"(SELECT COUNT(*) FROM customer_management cm3 " +
" WHERE cm3.sales_id = cm.sales_id " +
" AND DATE(cm3.create_time) = #{date} " +
" AND cm3.tenant_id = cm.tenant_id) as count_by_sales, " +
"(SELECT COUNT(*) FROM customer_management cm4 " +
" LEFT JOIN sales_management sm4 ON cm4.sales_id = sm4.id " +
" WHERE sm4.project_id = COALESCE(sm.project_id, '') " +
" AND DATE(cm4.create_time) = #{date} " +
" AND cm4.tenant_id = cm.tenant_id " +
" AND COALESCE(sm.project_id, '') != '') as count_by_project " +
"FROM customer_management cm " +
"LEFT JOIN sales_management sm ON cm.sales_id = sm.id " +
"WHERE DATE(cm.create_time) = #{date} " +
"AND cm.tenant_id IS NOT NULL " +
"AND cm.tenant_id != '' " +
"AND cm.dealership_id IS NOT NULL " +
"AND cm.dealership_id != '' " +
"AND cm.sales_id IS NOT NULL " +
"AND cm.sales_id != '' " +
"GROUP BY cm.tenant_id, cm.dealership_id, cm.dealership_name, sm.project_id, sm.project_name, cm.sales_id, cm.sales_name")
List<Map<String, Object>> getStatisticsByDate(@Param("date") LocalDate date);
/**
* 检查指定日期的统计数据是否已存在