# P8→NS1/RNS1 缺失项 #5:看板数据的实时性标识 ## 简要结论 - 状态:❌ 未解决 - 风险等级:🟠 中 - 三个看板页面均无"数据更新于 XX:XX"的展示,后端 API 响应中也无数据截止时间字段。 ## 详细审查 ### 审查范围 - `apps/backend/app/schemas/xcx_board.py`(三个 Response schema) - `apps/miniprogram/miniprogram/pages/board-finance/board-finance.wxml` - `apps/miniprogram/miniprogram/pages/board-coach/board-coach.wxml` - `apps/miniprogram/miniprogram/pages/board-customer/board-customer.wxml` - 全局搜索关键词:`更新于`、`updated_at`、`dataTime`、`updateTime`、`截止` ### 发现 1. **后端 Schema 无数据截止时间字段** - `CoachBoardResponse`:仅包含 `items` 和 `dim_type` - `CustomerBoardResponse`:仅包含维度数据列表 - `FinanceBoardResponse`:仅包含 6 个 Panel,无时间戳 - 三个 Response 均无 `data_updated_at`、`snapshot_time` 等字段 2. **前端页面无数据更新时间展示** - 全局搜索 `更新于`、`updated_at`、`dataTime`、`updateTime`、`截止` 在 board 相关文件中均无匹配 - 三个看板页面的 WXML 模板中无任何时间戳展示区域 3. **财务看板有"预估"标签但非实时性标识** - `board-finance` 中有 `isCurrentMonth` 判断,当月数据显示"(预估)"后缀 - 这是数据性质标识,不是数据截止时间 ### 证据 ```python # 三个 Response schema 均无时间戳字段 class CoachBoardResponse(CamelModel): items: list[CoachBoardItem] dim_type: str class FinanceBoardResponse(CamelModel): overview: OverviewPanel recharge: RechargePanel | None revenue: RevenuePanel cashflow: CashflowPanel expense: ExpensePanel coach_analysis: CoachAnalysisPanel # 缺少: data_updated_at / snapshot_time ``` ``` # 全局搜索结果 grep "更新于|updated_at|dataTime|updateTime|截止" **/board-*/** → No matches found. ``` ### 建议 1. **后端**:在三个 BoardResponse 中增加 `data_updated_at: datetime` 字段,返回 DWS 层最后一次 ETL 刷新时间 2. **前端**:在每个看板页面顶部(Tab 下方或筛选栏下方)展示"数据更新于 HH:MM" 3. 数据来源可从 ETL 调度记录表(如 `dws.etl_run_log`)获取最后成功执行时间 4. 建议格式:当天数据显示"更新于 14:30",非当天显示"更新于 03-20 14:30"