Files
TurboHR/20260723-优化-2.md
T
selfrelease 0df8aa77d9 feat: AIHR 智能人力资源管理系统初始提交
- 员工花名册管理(加密存储、导入导出)
- 薪酬管理(发薪批次、薪酬模版、加班费计算、工资条)
- 社保公积金(多城市配置、版本管理、基数调整)
- 解聘管理(6步流程、证据链、工作交接)
- AI 助手(合同审查、风险预测、RAG 知识库)
- Dashboard 仪表盘
- 设置与通知
2026-07-24 13:53:11 +08:00

112 lines
5.1 KiB
Markdown
Raw 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.
# 劳动用工合规助手 — 待实现功能清单
> **文档编号**: 20260723-优化-2.md
> **日期**: 2026-07-23
> **来源**: 对照 `0-req.md` 需求规格说明书完整扫描后得出
---
## 一、部分实现(需完善)
### 1. AI 流式输出
- **现状**: `ai.service.ts` 使用同步 `chat.completions.create`,一次性返回完整回复
- **需求**: DashScope SSE 流式返回,前端打字机效果
- **涉及文件**: `backend/src/services/ai.service.ts``backend/src/routes/ai.routes.ts``frontend/src/pages/AIAssistant.tsx`
- **方案**: 后端改用 `stream: true` + SSE 响应;前端用 `EventSource``fetch + 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.ts``backend/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.ts``termination.service.ts``roster.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.tsx``Roster.tsx`
- **方案**: 前端引入 `qrcode.react`,生成二维码图片,支持下载
### 8. 批量续签
- **现状**: 需确认花名册列表是否有全选→批量续签功能
- **需求**: 合同列表支持全选 → 批量续签
- **涉及文件**: `frontend/src/pages/Roster.tsx`
- **方案**: 列表增加 checkbox 全选,批量调用续签 API
---
## 二、未实现(需新建)
### 9. 忘记密码 — 手机验证码重置
- **现状**: `/forgot-password` 路由存在,但功能不完整
- **需求**: 手机号 + 验证码 → 设置新密码
- **涉及文件**: `frontend/src/pages/auth/ForgotPassword.tsx``backend/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.ts``backend/src/routes/portal.routes.ts`
- **方案**: 使用 `express-rate-limit` 中间件,或基于 Map 的简易限流
### 13. 套餐人数上限校验
- **现状**: 未实现
- **需求**: free 限20人,pro 限200人,enterprise 无限制;添加员工时校验
- **涉及文件**: `backend/src/services/contract.service.ts`createEmployee
- **方案**: 创建员工前查询当前员工数 + 套餐上限,超限返回 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 语音输入 | 小 |