Files
Neo-ZQYY/docs/prd/Neo_Specs/review-audit-report.md
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

248 lines
15 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.
# Neo_Specs 86 项缺失内容审查报告
> 审查日期2026-03-21
> 审查依据:`docs/prd/Neo_Specs/review-report.md`86 项缺失清单)
> 审查方法:逐项检查数据库端数据支持、后端 Python 业务代码支持、前端页面支持
> 审查产物:`docs/prd/Neo_Specs/review-audit/` 目录下 86 份独立审查报告
---
## 一、总览统计
| 状态 | 数量 | 占比 | 说明 |
|:----:|:----:|:----:|------|
| ✅ 已解决 | 22 | 25.6% | 数据库+后端+前端三层均已实现 |
| ⚠️ 部分解决 | 38 | 44.2% | 核心功能已有,但存在细节差距 |
| ❌ 未解决 | 26 | 30.2% | 功能完全缺失或仅有数据层无业务实现 |
| **合计** | **86** | **100%** | |
### 按模块分布
| 模块 | 总数 | ✅ | ⚠️ | ❌ |
|------|:----:|:--:|:--:|:--:|
| P5.1→NS3MCP/AI | 10 | 4 | 5 | 1 |
| P6→NS1任务模块 | 18 | 5 | 7 | 6 |
| P7→NS1绩效模块 | 12 | 4 | 6 | 2 |
| P8→NS1看板模块 | 14 | 6 | 5 | 3 |
| P9→NS1详情模块 | 23 | 10 | 10 | 3 |
| P10→NS4租户管理后台 | 9 | 1 | 5 | 3 |
---
## 二、各模块审查结果明细
### 2.1 P5.1→NS3MCP Server / AI 应用10 项)
| # | 缺失项 | 状态 | 核心发现 |
|---|--------|:----:|----------|
| 01 | App1 Prompt 工程规范 | ✅ | `ai-app-prompts.md` 已定义完整 system prompt 模板、few-shot 示例、JSON schema 约束 |
| 02 | App2 财务指标计算口径 | ✅ | 后端 `app2_finance_insight.py` 已实现 6 个指标公式,遵循 items_sum 口径 |
| 03 | App3 维客线索触发条件 | ✅ | `app3_consumption_analysis.py` 实现事件驱动触发 + 去重逻辑 |
| 04 | App4-App7 缓存策略 | ⚠️ | `ai_cache` 表已建,后端有 TTL 读写逻辑,但 `expires_at` 字段未实际使用 |
| 05 | LLM 错误处理和降级 | ⚠️ | 有 try/except + 缓存回退,缺限流降级和熔断机制 |
| 06 | Token 用量监控 | ⚠️ | `ai_usage_log` 表记录每次调用,缺日/月预算控制和超限告警 |
| 07 | App5 话术分类 | ⚠️ | 话术生成已实现,缺分类枚举定义和质量评分体系 |
| 08 | 各 App 单元测试 | ✅ | `apps/mcp-server/tests/` 下有 App1-App7 测试文件 |
| 09 | MCP Server 健康检查 | ⚠️ | 后端 `/health` 端点存在MCP Server 自身无健康检查端点 |
| 10 | AI 审计日志 | ✅ | `ai_usage_log` 表记录 who/when/what/token_count |
### 2.2 P6→NS1/RNS1任务模块18 项)
| # | 缺失项 | 状态 | 核心发现 |
|---|--------|:----:|----------|
| 01 | 任务卡片 5 种状态 | ⚠️ | pending/pinned/abandoned 已实现,缺 completed/expired 视觉状态 |
| 02 | 3 种空状态 | ⚠️ | 无任务空状态有,缺筛选无结果空状态和插图 |
| 03 | 置顶任务排序规则 | ✅ | 后端 SQL 已实现 `is_pinned DESC, pinned_at DESC, priority, created_at` |
| 04 | 放弃确认弹窗 | ✅ | 前端 `t-dialog` 二次确认已实现 |
| 05 | 下拉刷新/骨架屏 | ✅ | `t-pull-down-refresh` + `t-skeleton` 已集成 |
| 06 | AI 分析卡片折叠/展开 | ❌ | 前端仅静态展示 AI 分析文本,无折叠/展开/重新生成交互 |
| 07 | 任务优先级视觉标识 | ⚠️ | 有 priority 字段传递,前端缺颜色/图标映射 |
| 08 | 到期倒计时展示 | ✅ | 前端计算剩余天数并展示颜色变化 |
| 09 | 备注字数限制 | ⚠️ | 有 `maxlength=500`,缺实时字数计数器 |
| 10 | 详情页模块折叠/展开 | ❌ | 详情页各模块固定展示,无折叠/展开交互 |
| 11 | 维客线索展示样式 | ✅ | tag 颜色映射 + 卡片布局已实现 |
| 12 | 任务列表搜索 | ❌ | 无搜索功能,仅有状态筛选 |
| 13 | 任务完成反馈 | ⚠️ | 有 `wx.showToast` 成功提示,缺专属完成动画 |
| 14 | 网络异常处理 | ⚠️ | 页面级错误展示有,缺统一离线检测和全局网络状态管理 |
| 15 | 长按/滑动操作 | ⚠️ | 长按置顶已实现,滑动操作未实现 |
| 16 | 页面转场动画 | ❌ | 使用 `wx.navigateTo` 默认转场,无自定义动画 |
| 17 | 批量操作 | ❌ | 无批量选择/批量标记完成功能 |
| 18 | 无障碍适配 | ❌ | 无 aria-label、无焦点管理、无屏幕阅读器适配 |
### 2.3 P7→NS1/RNS1绩效模块12 项)
| # | 缺失项 | 状态 | 核心发现 |
|---|--------|:----:|----------|
| 01 | 营业日 08:00 分割点 | ✅ | ETL 层 `biz_date` 已按 08:00 分割,后端直接按 `biz_date` 查询 |
| 02 | 预估标记 | ⚠️ | 前端有 `isEstimate` 展示逻辑,后端硬编码 `is_estimate=False` |
| 03 | 定档折算展示格式 | ⚠️ | 后端返回 `hours`/`hoursRaw`,前端展示格式与标杆不一致 |
| 04 | 新客筛选逻辑 | ⚠️ | 后端有新客筛选但定义简化(仅首次服务月份,缺 2 月内+次数≤2 条件) |
| 05 | 常客展示字段 | ✅ | 次数、小时数、工资合计字段完整 |
| 06 | 收入与档位卡片视觉 | ✅ | 进度条 + 档位标签 + 收入数字样式已实现 |
| 07 | 服务记录日期格式 | ⚠️ | 展示"3月15日"格式,缺星期信息(标杆要求"3月15日 周五" |
| 08 | 月份切换 | ⚠️ | performance-records 页有月份切换,主 performance 页面无 |
| 09 | 绩效空状态 | ✅ | 新助教无数据时展示空状态文案 |
| 10 | 业绩导出功能 | ❌ | 无导出功能(整个项目缺乏通用导出基础设施) |
| 11 | 数据刷新频率说明 | ⚠️ | 无用户可见的数据新鲜度说明(如"数据更新于 XX:XX" |
| 12 | 周口径支持 | ❌ | 仅支持月口径,无本周/上周查询参数 |
### 2.4 P8→NS1/RNS1看板模块14 项)
| # | 缺失项 | 状态 | 核心发现 |
|---|--------|:----:|----------|
| 01 | Tab 切换缓存 | ⚠️ | 三看板通过页面跳转实现,非 Tab 组件,不保持筛选状态 |
| 02 | 财务看板分段加载 | ⚠️ | 后端单 API 返回全部数据,无 `sections` 参数,前端有 skeleton 降级 |
| 03 | 客户卡片跳转 | ✅ | 点击卡片跳转 `customer-detail?memberId=` 已实现 |
| 04 | 助教看板进度条 | ⚠️ | `t-progress` 组件已引入但未在看板页面使用,仅展示 `perfGap` 文本 |
| 05 | 数据实时性标识 | ❌ | 无"数据更新于 XX:XX"展示 |
| 06 | 环比 tooltip | ⚠️ | 环比箭头和百分比展示有,点击查看计算详情无 |
| 07 | 助教卡片跳转 | ✅ | 点击卡片跳转 `coach-detail?coachId=` 已实现 |
| 08 | 柱状图交互 | ⚠️ | `wx-charts` 渲染柱状图有,点击柱子显示具体数据无 |
| 09 | 下拉刷新 | ✅ | `onPullDownRefresh` 已实现 |
| 10 | 财务看板板块折叠 | ❌ | 各板块固定展示,无折叠/展开交互 |
| 11 | 错误展示和重试 | ✅ | 模块级错误展示 + 重试按钮已实现 |
| 12 | 筛选项动画 | ✅ | 筛选面板展开/收起动画已实现 |
| 13 | 排名序号展示 | ❌ | 助教列表无 #1#2 排名序号 |
| 14 | 数字格式化规范 | ✅ | 千分位 + 2 位小数 + ¥ 符号统一使用 `formatCurrency` 工具函数 |
### 2.5 P9→NS1/RNS1详情模块23 项)
| # | 缺失项 | 状态 | 核心发现 |
|---|--------|:----:|----------|
| 01 | 客户详情分段加载 | ⚠️ | 单 API 返回全部数据,前端有 skeleton 降级但非分段加载 |
| 02 | 档位进度时间轴 | ⚠️ | 进度条展示有,非时间轴样式(缺节点、高亮、动画) |
| 03 | 消费记录类型映射 | ⚠️ | 台桌消费/商城消费有图标映射,缺 recharge充值类型模板 |
| 04 | 备注 AI 评分星级 | ⚠️ | 星级组件已开发,但未在备注卡片中使用 |
| 05 | Banner 区域视觉 | ✅ | 余额/消费/到店间隔/距上次到店 4 字段布局完整 |
| 06 | AI 洞察卡片 | ⚠️ | 静态展示 AI 洞察文本,缺展开详情和刷新按钮 |
| 07 | 关联助教任务列表 | ✅ | 任务类型图标 + 状态标签 + 服务统计展示完整 |
| 08 | 最亲密助教 | ⚠️ | 数据字段完整,缺关系指数可视化图表 |
| 09 | 助教明细子列表 | ✅ | 消费记录中助教明细展开/折叠已实现 |
| 10 | TOP20 客户排序 | ✅ | 按关系指数降序排列,展示字段完整 |
| 11 | 历史月份统计 | ⚠️ | 表格展示有,缺折线图/柱状图可视化 |
| 12 | 月度统计汇总 | ✅ | monthCount/monthHours 展示位置和样式已定义 |
| 13 | 任务分组视觉区分 | ✅ | active/inactive/abandoned 分组标题样式和折叠规则已实现 |
| 14 | 维客线索展示 | ✅ | 线索卡片布局 + category 颜色映射已实现 |
| 15 | 分享功能 | ❌ | 无分享客户信息功能 |
| 16 | 助教联系方式展示 | ❌ | 助教详情页无电话/微信展示 |
| 17 | 自定义日期范围筛选 | ❌ | 仅支持月份切换,无自定义日期范围 |
| 18 | 返回按钮行为 | ⚠️ | 使用 `wx.navigateBack` 默认行为,未区分"返回上一页"和"返回列表页" |
| 19 | 电话号码脱敏 | ✅ | 后端返回脱敏号码(中间 4 位 *),前端直接展示 |
| 20 | 收入明细展开/折叠 | ⚠️ | 使用 Tab 切换(本月/上月)替代展开/折叠,交互方式不同 |
| 21 | 饮品描述字段展示 | ✅ | `drinks` 字段在服务记录卡片中展示 |
| 22 | 模块级错误独立处理 | ✅ | 各模块独立 loading/error 状态,单模块失败不影响其他模块 |
| 23 | 可用月数计算 | ❌ | `availableMonths` 字段未实现(余额÷月均消耗) |
### 2.6 P10→NS4租户管理后台9 项)
| # | 缺失项 | 状态 | 核心发现 |
|---|--------|:----:|----------|
| 01 | 角色权限管理 CRUD | ⚠️ | RBAC 三表模型完整,权限校验中间件已打通,但无管理界面(依赖种子数据) |
| 02 | 门店切换功能 | ⚠️ | 后端数据隔离完整SiteSelector 组件已开发但仅维客线索页集成,全局布局未放置 |
| 03 | 数据导出功能 | ❌ | 无任何业务数据导出功能(后端无端点、前端无按钮) |
| 04 | 操作日志/审计日志 | ❌ | 无审计日志表、无记录逻辑、无查看界面;线索删除为物理删除 |
| 05 | 响应式适配 | ⚠️ | Sider 可折叠、flex 布局基础有,缺最小分辨率定义和表格横向滚动 |
| 06 | 表格组件统一规范 | ⚠️ | 主表分页统一20条/页),缺排序交互、空数据中文化、统一配置抽象 |
| 07 | 表单验证统一规范 | ⚠️ | 验证风格基本一致EditModal 缺 required 规则,后端 422 格式不统一 |
| 08 | 国际化预留 | ✅ | ConfigProvider locale={zhCN} 已配置,项目面向国内市场无需 i18n 框架 |
| 09 | 主题定制 | ❌ | 使用 Ant Design 默认主题,无品牌色、无 Logo、无暗色模式 |
---
## 三、风险矩阵
### 🔴 高风险未解决项(需优先处理,共 8 项)
| 编号 | 缺失项 | 影响 |
|------|--------|------|
| P6-06 | AI 分析卡片折叠/展开/重新生成 | AI 功能交互不完整,用户无法与 AI 内容互动 |
| P6-12 | 任务列表搜索功能 | 任务量大时无法快速定位目标任务 |
| P6-17 | 批量操作 | 多任务管理效率低 |
| P6-18 | 无障碍适配 | 合规风险 |
| P7-10 | 业绩导出功能 | 管理者无法离线分析绩效数据 |
| P10-03 | 数据导出功能 | 管理后台无法导出业务数据 |
| P10-04 | 操作审计日志 | 操作不可追溯,线索物理删除不可恢复 |
| P9-23 | 可用月数计算 | 客户余额分析功能缺失 |
### 🟠 中风险部分解决项(需补齐差距,共 15 项)
| 编号 | 缺失项 | 差距 |
|------|--------|------|
| P5.1-04 | 缓存策略 | `expires_at` 未实际使用 |
| P5.1-05 | LLM 降级 | 缺限流降级/熔断 |
| P5.1-06 | Token 监控 | 缺预算控制 |
| P6-01 | 任务卡片状态 | 缺 completed/expired 视觉 |
| P7-02 | 预估标记 | 后端硬编码 False |
| P7-04 | 新客筛选 | 定义简化 |
| P8-01 | Tab 切换缓存 | 页面跳转不保持状态 |
| P8-02 | 分段加载 | 单 API 返回全部数据 |
| P9-01 | 客户详情分段加载 | 同上 |
| P9-06 | AI 洞察卡片 | 缺展开/刷新交互 |
| P9-08 | 最亲密助教 | 缺可视化图表 |
| P9-11 | 历史月份统计 | 缺图表 |
| P10-01 | 角色权限管理 | 无管理界面 |
| P10-02 | 门店切换 | 未全局集成 |
| P10-06 | 表格规范 | 缺排序和统一配置 |
---
## 四、系统性问题
基于 86 项审查,识别出以下跨模块的系统性差距:
### 4.1 前端交互规范缺失
小程序端P6-P9普遍缺少折叠/展开交互、搜索功能、批量操作、页面转场动画、无障碍适配。这些属于前端交互层的系统性缺失,建议新建统一的前端交互规范文档。
### 4.2 数据加载策略单一
财务看板P8-02、客户详情P9-01等复杂页面均为单 API 返回全部数据,缺乏分段加载策略。前端虽有 skeleton 降级,但首屏性能受限。
### 4.3 导出功能全局缺失
整个项目(小程序 + 管理后台无任何业务数据导出功能缺乏通用导出基础设施Excel 生成工具、导出日志表、权限控制)。
### 4.4 审计日志体系不完整
MCP/AI 层有 `ai_usage_log`,但租户管理后台的业务操作(审核、编辑、删除)无审计记录。维客线索删除为物理删除,数据不可恢复。
### 4.5 AI 交互深度不足
AI 相关功能(任务 AI 分析、客户 AI 洞察)均为静态展示,缺少用户与 AI 内容的互动能力(折叠/展开、重新生成、反馈评分)。
---
## 五、优先级建议
### 第一优先级:阻塞性缺失(建议立即处理)
1. P10-04 操作审计日志 — 新建 `biz.audit_log` 表 + 后端记录逻辑 + 线索删除改软删除
2. P7-02 预估标记 — 后端实现 `is_estimate` 判断逻辑(当月数据标记预估)
3. P8-02 / P9-01 分段加载 — 评估拆分 API 或增加 `fields` 参数
### 第二优先级:体验差距(建议短期补齐)
4. P6-06 AI 分析卡片交互 — 增加折叠/展开/重新生成
5. P10-02 门店选择器全局集成 — SiteContext + 各页面接入
6. P6-01 任务卡片状态视觉 — 补充 completed/expired 样式映射
7. P5.1-04/05/06 AI 缓存/降级/监控 — 完善 AI 基础设施
### 第三优先级:功能增强(建议中期规划)
8. P7-10 / P10-03 导出功能 — 建立通用导出基础设施
9. P6-12 任务搜索 — 增加按客户名/手机号搜索
10. P10-01 角色权限管理界面 — 按需实现
### 第四优先级:体验优化(建议后续迭代)
11. 无障碍适配P6-18
12. 页面转场动画P6-16
13. 批量操作P6-17
14. 主题定制P10-09
---
## 六、审查报告索引
所有 86 份独立审查报告存放于 `docs/prd/Neo_Specs/review-audit/` 目录:
| 文件名模式 | 数量 | 对应模块 |
|-----------|:----:|----------|
| `P5.1-NS3-01.md` ~ `P5.1-NS3-10.md` | 10 | MCP Server / AI 应用 |
| `P6-NS1-01.md` ~ `P6-NS1-18.md` | 18 | 小程序任务模块 |
| `P7-NS1-01.md` ~ `P7-NS1-12.md` | 12 | 小程序绩效模块 |
| `P8-NS1-01.md` ~ `P8-NS1-14.md` | 14 | 小程序看板模块 |
| `P9-NS1-01.md` ~ `P9-NS1-23.md` | 23 | 小程序详情模块 |
| `P10-NS4-01.md` ~ `P10-NS4-09.md` | 9 | 租户管理后台 |