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

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

@@ -30,21 +30,19 @@ public class CustomerManagementStatisticsServiceImpl extends ServiceImpl<Custome
// 先删除该日期的统计数据(如果存在)
baseMapper.deleteByStatisticsDate(date);
// 查询该日期的经销商客户统计数据
List<Map<String, Object>> dealershipStatsList = baseMapper.getDealershipStatisticsByDate(date);
// 查询该日期的销售客户统计数据
List<Map<String, Object>> salesStatsList = baseMapper.getSalesStatisticsByDate(date);
// 查询该日期的项目客户统计数据
List<Map<String, Object>> projectStatsList = baseMapper.getProjectStatisticsByDate(date);
// 查询该日期的统计数据(按租户、经销商、项目、销售分组)
List<Map<String, Object>> statsList = baseMapper.getStatisticsByDate(date);
int count = 0;
// 处理经销商统计数据
for (Map<String, Object> stat : dealershipStatsList) {
// 处理统计数据,每个组合生成一条记录
for (Map<String, Object> stat : statsList) {
CustomerManagementStatistics statistics = new CustomerManagementStatistics();
// 设置租户ID
Object tenantIdObj = stat.get("tenant_id");
statistics.setTenantId(tenantIdObj != null ? tenantIdObj.toString() : "");
// 设置经销商信息
Object dealershipIdObj = stat.get("dealership_id");
statistics.setDealershipId(dealershipIdObj != null ? dealershipIdObj.toString() : "");
@@ -52,7 +50,11 @@ public class CustomerManagementStatisticsServiceImpl extends ServiceImpl<Custome
Object dealershipNameObj = stat.get("dealership_name");
statistics.setDealershipName(dealershipNameObj != null ? dealershipNameObj.toString() : "未知经销商");
// 设置经销商统计数量
// 设置销售信息
Object salesIdObj = stat.get("sales_id");
statistics.setSalesId(salesIdObj != null ? salesIdObj.toString() : "");
// 设置经销商统计数量(该经销商当天的客户总数)
Object countByDealershipObj = stat.get("count_by_dealership");
if (countByDealershipObj != null) {
statistics.setCountByDealership(Integer.valueOf(countByDealershipObj.toString()));
@@ -60,39 +62,18 @@ public class CustomerManagementStatisticsServiceImpl extends ServiceImpl<Custome
statistics.setCountByDealership(0);
}
// 查找该经销商对应的销售统计数据
String dealershipId = dealershipIdObj != null ? dealershipIdObj.toString() : "";
Map<String, Object> salesStat = findSalesStatByDealership(salesStatsList, dealershipId);
if (salesStat != null) {
// 设置销售信息
Object salesIdObj = salesStat.get("sales_id");
statistics.setSalesId(salesIdObj != null ? salesIdObj.toString() : "");
// 设置销售统计数量
Object countBySalesObj = salesStat.get("count_by_sales");
if (countBySalesObj != null) {
statistics.setCountBySales(Integer.valueOf(countBySalesObj.toString()));
} else {
statistics.setCountBySales(0);
}
// 设置销售统计数量(该销售当天的客户总数)
Object countBySalesObj = stat.get("count_by_sales");
if (countBySalesObj != null) {
statistics.setCountBySales(Integer.valueOf(countBySalesObj.toString()));
} else {
// 如果没有找到对应的销售数据,设置为空
statistics.setSalesId("");
statistics.setCountBySales(0);
}
// 查找该经销商和销售对应的项目统计数据
Map<String, Object> projectStat = findProjectStat(projectStatsList, dealershipId, statistics.getSalesId());
if (projectStat != null) {
// 设置项目统计数量
Object countByProjectObj = projectStat.get("count_by_project");
if (countByProjectObj != null) {
statistics.setCountByProject(Integer.valueOf(countByProjectObj.toString()));
} else {
statistics.setCountByProject(0);
}
// 设置项目统计数量(该项目当天的客户总数)
Object countByProjectObj = stat.get("count_by_project");
if (countByProjectObj != null) {
statistics.setCountByProject(Integer.valueOf(countByProjectObj.toString()));
} else {
statistics.setCountByProject(0);
}
@@ -110,42 +91,6 @@ public class CustomerManagementStatisticsServiceImpl extends ServiceImpl<Custome
return count;
}
/**
* 根据经销商ID查找对应的销售统计数据
* @param salesStatsList 销售统计列表
* @param dealershipId 经销商ID
* @return 销售统计数据
*/
private Map<String, Object> findSalesStatByDealership(List<Map<String, Object>> salesStatsList, String dealershipId) {
// 这里需要根据业务逻辑来确定经销商和销售的对应关系
// 由于原始数据中可能没有直接的关联关系,这里返回第一个销售数据作为示例
// 实际使用时需要根据具体的业务逻辑来调整
if (!salesStatsList.isEmpty()) {
return salesStatsList.get(0);
}
return null;
}
/**
* 根据经销商ID和销售ID查找对应的项目统计数据
* @param projectStatsList 项目统计列表
* @param dealershipId 经销商ID
* @param salesId 销售ID
* @return 项目统计数据
*/
private Map<String, Object> findProjectStat(List<Map<String, Object>> projectStatsList, String dealershipId, String salesId) {
for (Map<String, Object> projectStat : projectStatsList) {
Object projectDealershipId = projectStat.get("dealership_id");
Object projectSalesId = projectStat.get("sales_id");
if (dealershipId != null && dealershipId.equals(projectDealershipId != null ? projectDealershipId.toString() : "") &&
salesId != null && salesId.equals(projectSalesId != null ? projectSalesId.toString() : "")) {
return projectStat;
}
}
return null;
}
@Override
public int generateYesterdayStatistics() {
LocalDate yesterday = LocalDate.now().minusDays(1);