包含多个会话的累积代码变更: - backend: AI 聊天服务、触发器调度、认证增强、WebSocket、调度器最小间隔 - admin-web: ETL 状态页、任务管理、调度配置、登录优化 - miniprogram: 看板页面、聊天集成、UI 组件、导航更新 - etl: DWS 新任务(finance_area_daily/board_cache)、连接器增强 - tenant-admin: 项目初始化 - db: 19 个迁移脚本(etl_feiqiu 11 + zqyy_app 8) - packages/shared: 枚举和工具函数更新 - tools: 数据库工具、报表生成、健康检查 - docs: PRD/架构/部署/合约文档更新 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
62 lines
2.4 KiB
Markdown
62 lines
2.4 KiB
Markdown
# 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"
|