Skip to content

[CRM] 矩阵报表日期粒度缺失:v9 迁移遗漏属实,但补齐阻塞于 16.1 两处平台缺口(17.0 已修,二次改判) #523

Description

@yinlianghui

现象

矩阵报表的日期列不按预期粒度分桶:

  • lead_inflow_by_month_source(预期按月)与 pipeline_coverage_by_quarter(预期按季):每个原始日期一列
  • cases_opened_by_day_priority:粒度正确但列序乱(07-01, 07-05, …, 07-02, …),且出现一个「—」列

根因(已用 17.0.0-rc.0 平台源码核实,改判为主要是 CRM 侧问题)

1. 粒度丢失 = CRM 侧迁移遗漏(本 issue 的主修项)
平台的粒度门禁在 16.1 与 17.0 逐字相同(service-analytics/dataset-executor.tsgranularityFor:数据集维度未声明 dateGranularity 且 selection 未传粒度 ⇒ 按原始时间戳分组)。HotCRM 在 v9 单形态迁移(commit a67f1e77)删除了 groupingsAcross[].dateGranularity: 'month'sortOrder: 'asc',之后一直没有迁到新位置。修法:

// src/datasets/lead.dataset.ts 等 6 处日期维度
{ name: 'last_contacted_date', ..., type: 'date', dateGranularity: 'month' }

注意维度是共享的:若同一维度别处需要原始日期,应另加专用维度(同 field、不同 name + dateGranularity)。src/reports/opportunity.report.ts:34 的注释("the dataset's dateGranularity buckets it into quarters")与代码已脱节,一并修正。

2. 「—」列 = 平台 17.0 有意 breaking change(#3839:空分组桶键从 '(null)' 改为真 null)。数据侧处理 last_contacted_date 为空的记录(或 runtimeFilter 排除)。

3. 日期列乱序 = 平台真实缺口(服务端无隐式排序、聚合 SQL 无 ORDER BY、pivot 按到达序建列头、report schema 未给作者提供排序声明)——已另行反馈平台,见后续评论中的交叉链接。补上 dateGranularity 只让键可排序,不会自动排序。

原「[17.0-rc][疑似平台]」标题保留在历史里;本 issue 现改为跟踪 CRM 侧的 dateGranularity 迁移补齐。

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions