---
name: report-statistics
when: '报表, 统计, 数据分析, 数据看板, 仪表盘, dashboard, 数据汇总, 图表, BI'
scope:
  - backend
  - frontend
products:
  - '*'
id: ka-domain_knowledge-report-statistics
asset_kind: domain
lifecycle_status: active
owner_mechanism_id: mc-domain-knowledge
authority: supporting
routes:
  - '*'
primary_triggers:
  - 报表
  - 统计
  - 数据分析
  - 数据看板
  - 仪表盘
  - dashboard
  - 数据汇总
  - 图表
  - BI
priority: P2
specificity: 3
version: 1.1.0
last_reviewed: '2026-06-01'
consumes: []
emits: []
secondary_triggers: []
negative_triggers: []
type: domain
stages: ["*"]
---

## 业务规则
- 统计数据必须注明统计口径（时间范围、数据来源、计算规则、排除条件）
- 统计维度变更必须记录历史，保证趋势数据的可比性
- 实时看板数据必须定义刷新频率和数据延迟容忍度
- 导出报表必须包含：生成时间、数据截止时间、统计口径说明
- 敏感数据统计（金额、人数）必须有权限控制，禁止无权限查看汇总数据
- 报表查询必须支持时间范围筛选，默认查询最近 30 天
- 大数据量报表必须使用异步生成 + 下载方式，禁止同步等待
- 报表数据必须与业务数据来源一致，禁止报表查询绕过业务逻辑直接读库

## 约束条件
- 统计查询禁止直接查询业务主表，必须使用汇总表或物化视图
- 大时间范围统计必须支持分页或分段加载，禁止一次返回全量
- 图表颜色方案必须统一，禁止同一报表使用不一致的配色
- 统计接口响应时间目标 < 3 秒，超过时必须使用预计算/缓存
- 报表生成时间超过 30 秒必须改为异步模式
- 报表缓存必须设置过期时间，避免展示过期数据

## 例外情况
- 管理层汇总看板可使用 T+1 数据（次日更新）
- 临时统计需求可走 SQL 直查，但须标注"非正式统计"
- 实时看板类报表允许少量延迟（秒级），不要求强一致性

## 关联模式
- [[caching]] 统计数据缓存
- [[n-plus-one-query]] 统计查询优化
- caching
- async-export
