Files
Neo 6f8f12314f feat: 累积功能变更 — 聊天集成、租户管理、小程序更新、ETL 增强、迁移脚本
包含多个会话的累积代码变更:
- 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>
2026-04-06 00:03:48 +08:00

62 lines
2.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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"