Files
TurboHR/20260723-优化-2.md
T

5.1 KiB
Raw Blame History

劳动用工合规助手 — 待实现功能清单

文档编号: 20260723-优化-2.md 日期: 2026-07-23 来源: 对照 0-req.md 需求规格说明书完整扫描后得出


一、部分实现(需完善)

1. AI 流式输出

  • 现状: ai.service.ts 使用同步 chat.completions.create,一次性返回完整回复
  • 需求: DashScope SSE 流式返回,前端打字机效果
  • 涉及文件: backend/src/services/ai.service.tsbackend/src/routes/ai.routes.tsfrontend/src/pages/AIAssistant.tsx
  • 方案: 后端改用 stream: true + SSE 响应;前端用 EventSourcefetch + ReadableStream 逐字渲染

2. RAG 知识库

  • 现状: 未实现向量数据库集成
  • 需求: 劳动法/劳动合同法/司法解释/地方条例向量化存储,Supabase pgvector + DashScope text-embedding-v2
  • 涉及文件: 新建 backend/src/services/rag.service.ts、schema 新增向量表
  • 方案: 文档分块 → DashScope embedding → 存入 pgvector → 问答时向量检索 → 注入 context

3. AI 使用限制

  • 现状: 未实现套餐次数限制
  • 需求: free 10次问答/3次审查/3次案例;pro 100/20/20enterprise 无限
  • 涉及文件: backend/src/routes/ai.routes.tsbackend/src/services/ai.service.ts
  • 方案: 每次调用前查询当月已用次数(按 orgId + 类型),超限返回 403

4. 顶部导航风险角标

  • 现状: TopNav.tsx:44 有角标代码但 hidden 固定不显示
  • 需求: 红色角标显示待处理风险总数,点击跳转首页
  • 涉及文件: frontend/src/components/layout/TopNav.tsx
  • 方案: 查询 pending 风险数量,动态显示角标数字

5. 审计日志写入

  • 现状: AuditLog 模型存在于 schema,但无实际写入代码
  • 需求: 关键操作(解聘/合同变更/工资调整)记录审计日志
  • 涉及文件: backend/src/services/contract.service.tstermination.service.tsroster.routes.ts
  • 方案: 在关键操作后 prisma.auditLog.create({ orgId, userId, action, target, detail, ipAddress })

6. 数据导出

  • 现状: 仅社保月度有 CSV 导出
  • 需求: 支持导出全部数据为 JSON/Excel
  • 涉及文件: 新建 backend/src/routes/export.routes.ts、前端设置页增加导出按钮
  • 方案: 后端打包全量数据为 Excel(exceljs),前端下载

7. 二维码生成

  • 现状: 入职填报/合同确认有 token 链接,但无前端二维码图片
  • 需求: HR 端生成二维码图片,可保存通过微信发给员工
  • 涉及文件: frontend/src/pages/Contracts.tsxRoster.tsx
  • 方案: 前端引入 qrcode.react,生成二维码图片,支持下载

8. 批量续签

  • 现状: 需确认花名册列表是否有全选→批量续签功能
  • 需求: 合同列表支持全选 → 批量续签
  • 涉及文件: frontend/src/pages/Roster.tsx
  • 方案: 列表增加 checkbox 全选,批量调用续签 API

二、未实现(需新建)

9. 忘记密码 — 手机验证码重置

  • 现状: /forgot-password 路由存在,但功能不完整
  • 需求: 手机号 + 验证码 → 设置新密码
  • 涉及文件: frontend/src/pages/auth/ForgotPassword.tsxbackend/src/routes/auth.routes.ts
  • 方案: 复用 portal 的验证码逻辑,验证后允许重置密码

10. AI 顾问语音输入(移动端)

  • 现状: 未实现
  • 需求: 移动端支持语音输入问题
  • 涉及文件: frontend/src/pages/AIAssistant.tsx
  • 方案: 使用 Web Speech API SpeechRecognition,语音转文字后发送

11. 解聘记录 PDF 导出

  • 现状: 未实现
  • 需求: 支持导出单条解聘记录为 PDF
  • 涉及文件: frontend/src/pages/Termination.tsx
  • 方案: 前端使用 jspdf + html2canvas 生成 PDF,或后端用 puppeteer 生成

12. 登录接口速率限制

  • 现状: 未实现
  • 需求: 登录接口限流 5次/分钟,防止暴力破解;密码错误5次锁定30分钟
  • 涉及文件: backend/src/routes/auth.routes.tsbackend/src/routes/portal.routes.ts
  • 方案: 使用 express-rate-limit 中间件,或基于 Map 的简易限流

13. 套餐人数上限校验

  • 现状: 未实现
  • 需求: free 限20人,pro 限200人,enterprise 无限制;添加员工时校验
  • 涉及文件: backend/src/services/contract.service.tscreateEmployee
  • 方案: 创建员工前查询当前员工数 + 套餐上限,超限返回 403

三、优先级排序

优先级 编号 功能 工作量
P0 4 顶部导航风险角标
P0 12 登录接口速率限制
P0 13 套餐人数上限校验
P1 5 审计日志写入
P1 1 AI 流式输出
P1 9 忘记密码重置
P1 7 二维码生成
P2 3 AI 使用限制
P2 8 批量续签
P2 6 数据导出
P3 2 RAG 知识库
P3 11 解聘记录 PDF 导出
P3 10 AI 语音输入