Files
wecom_it_smart_desk/docs/路线图/阶段1-已实现盘点.md
T
Simon 93ba41ed79 feat: 审批流程模块 (T审批A审批)
- 新增 backend/app/api/approval.py 审批API
- 前端H5支持发起审批、审批操作
- 添加审批卡片弹窗组件
- 路由注册审批模块
2026-06-15 09:32:41 +08:00

6.6 KiB

阶段 1 已实现项盘点

生成日期: 2026-06-15 对照: PRD.md §5.2 阶段一 状态: 阶段 1 已基本完成,扫尾中


1. 阶段 1 目标(回顾)

本阶段解决痛点: 坐席摆脱企微员工服务限制(为阶段二解决痛点1打基础)

关键前提: 企微AI机器人 + Dify + RAGFlow + 千问已在生产环境运行,本阶段不做任何AI引擎改动,仅改变转人工环节的链接指向和坐席端工具。

2. 完成度盘点

2.1 员工端(H5 WebView,Vue3 + Vant4)

状态 文件 备注
自建应用创建 + H5 基础框架 frontend-h5/
OAuth2 静默授权 → 员工身份识别 backend/app/api/h5.py
聊天界面(4 种消息气泡) frontend-h5/src/views/Chat.vue 员工/坐席/AI/系统
「敲桌子」呼叫坐席(7 种 SVG 动画) frontend-h5/src/components/KnockButton.vue
AI 助手面板 frontend-h5/src/components/AIPanel.vue 阶段 1 简化版
审批流程链接 frontend-h5/src/views/Approval.vue
软件下载 frontend-h5/src/views/Download.vue
AI 回复展示 🟡 占位 - 依赖阶段 3 AI Wingman
摇人按钮 🟡 占位 - 阶段 2(任务 2-1.1)
满意度评价 - 阶段 2(任务 2-1.2)
排队系统 - 阶段 2(任务 2-1.3)

2.2 坐席端(Web,Vue3 + Element Plus)

状态 文件 备注
登录页(用户ID + 姓名) frontend-agent/src/views/Login.vue
三栏工作台 frontend-agent/src/views/Workbench.vue
6 分区会话列表 frontend-agent/src/components/ConversationList.vue 待接单/我的/协作/其他坐席/AI处理/已结单
协作功能(摇人邀请、接受/拒绝) frontend-agent/src/components/Collaboration.vue
WebSocket + 轮询双模式 frontend-agent/src/composables/useWebSocket.ts P0 鉴权修复后
AI 助手面板(右侧栏) frontend-agent/src/components/AIPanel.vue 阶段 1 简化版
操作步骤/风险提示/用户信息面板 🟡 占位 - 需后端数据
草稿回复(AI) - 阶段 3(任务 3-1.1)
自动摘要 - 阶段 3(任务 3-1.2)
知识推荐 - 阶段 3(任务 3-1.3)
排查步骤 - 阶段 3(任务 3-1.4)

2.3 后端(FastAPI + PostgreSQL + Redis)

状态 文件 备注
企微回调加解密(AES-CBC-256) backend/app/utils/crypto.py
消息路由(VIP 识别、紧急度评分 1-5、标记检测) backend/app/services/message_router.py
WebSocket 实时推送(心跳、重连、定向广播) backend/app/services/ws_manager.py P0 鉴权修复
会话全生命周期(创建→分配→处理→结单→转接) backend/app/api/conversations.py
坐席管理(登录、状态切换、在线列表) backend/app/api/agents.py P0 加 password_hash
H5 端 OAuth2 认证、审批链接、软件下载 backend/app/api/h5.py
应急模式(系统故障时手动开启) backend/app/api/system.py
Alembic 数据库迁移(初始表结构) 🟡 部分 backend/alembic/versions/ 008 + 009 已加,001 缺
AI 回复集成(对接 Dify) - 阶段 3 启动前置(W-4 任务)
自动化测试(pytest) - README 已知问题 #2,workbuddy W-3 跑
WS 鉴权修复(P0) backend/app/api/ws.py Sec-WebSocket-Protocol
坐席密码字段(P0) backend/app/models/agent.py password_hash 字段
5 P0 端点鉴权(P0-2~6) backend/app/api/messages.py 5 端点加 Depends
消息状态字段 + 广播(P1-2/4) backend/app/models/message.py 009 alembic + ws_manager
Upload 路径持久化(P1-1) 🟡 半成品 docker-compose.yml named volume,留 P2 优化(#25)
Healthcheck Python(P1-3) docker-compose.yml urllib 替代 curl

2.4 部署

状态 文件 备注
Docker Compose 4 容器编排 docker-compose.yml nginx + backend + postgres + redis
Nginx 反向代理(共享域名) nginx/nginx.conf it-dataquery.dc.servyou-it.com
部署脚本 scripts/deploy.sh 5 种运行模式
HTTPS 启用(nginx.conf 模板) 🟡 占位 - 需 SSL 证书
预生产环境验证 🟡 部分 - 独立主机部署中
Gitea 仓治理 - Gitea部署指南
Tailscale Funnel 暴露 - 给 workbuddy 沙箱
备份 + cron 🟡 待部署 scripts/backup-gitea.sh 睡醒后部署

3. 阶段 1 完项统计

分类 总数 已完成 半成品
员工端 11 8 2 1
坐席端 12 7 1 4
后端 16 11 2 3
部署 8 5 2 1
合计 47 31 (66%) 7 (15%) 9 (19%)

4. 阶段 1 扫尾任务(给 workbuddy 跑)

# 任务 阻塞 关联
S-1 初始 alembic 001 基准 W-3 跑
S-2 pytest 基础配置 W-3 跑
S-3 P1-1 优化(named → host bind mount) #25 跑
S-4 P0 二次评审 5 遗留修完 #18 跑
S-5 坐席端操作步骤/风险提示/用户信息面板 需后端字段 阶段 2
S-6 H5 端 AI 回复展示 阶段 3 启动 Dify 集成

5. 阶段 1 完结评估

5.1 痛点解决度

痛点 解决度 备注
痛点 1(分散渠道) 🟡 部分 阶段 2 完善
坐席摆脱员工服务限制 已脱离

5.2 核心指标

指标 目标 实际 状态
AI 自助解决率 55% 70.2% (1-5月) 超目标
坐席响应时间 ≤5 min 待测 🟡
系统可用性 99.5% 待测 🟡

6. 决策记录

  • 决策1:阶段 1 不动企微 AI 机器人 → 渐进式替换
  • 决策2:WS 鉴权走 Sec-WebSocket-Protocol(ADR-002)
  • 决策3:nginx 敏感路径 access_log off(ADR-003)
  • 决策4:Token 不入文件走 wincred(ADR-004)
  • 决策5:Gitea 自托管 + Funnel(ADR-001)

7. 下一步

  1. 立即(本晚 workbuddy 跑):S-1 ~ S-4 扫尾
  2. 本晚(Claude 写):S-5 / S-6 设计 + 阶段 4-5 规划
  3. 明日:走阶段 2 任务清单(2-1.1 摇人开始)
  4. 本周末:阶段 2 完项 + 阶段 3 Dify POC

关联文档:

  • 阶段 2-3 任务拆解:docs/路线图/阶段2-3-任务.md
  • 阶段 4-5 规划:docs/路线图/阶段4-5-规划.md(待 Claude 写)
  • AI Wingman 设计:docs/Wingman设计.md(待 Claude 写)