- 员工花名册管理(加密存储、导入导出) - 薪酬管理(发薪批次、薪酬模版、加班费计算、工资条) - 社保公积金(多城市配置、版本管理、基数调整) - 解聘管理(6步流程、证据链、工作交接) - AI 助手(合同审查、风险预测、RAG 知识库) - Dashboard 仪表盘 - 设置与通知
68 KiB
劳动用工合规助手 — 需求规格说明书
文档编号: 0-req.md
版本: v2.0
日期: 2026-07-23
状态: 草案
修订: v2.0 — 面向中小企业优化 UI/UX 与交互逻辑,强调极简易用
修订: v3.0 — 升级为 SaaS 多租户架构,支持注册登录/多用户/云端存储
1. 背景与问题分析
1.1 劳动仲裁高发领域
根据司法大数据及各地仲裁委公开统计,劳动争议仲裁案件集中在以下三大领域,占比超过 85%:
| 领域 | 典型争议点 | 占比(约) |
|---|---|---|
| 劳动合同签订 | 未签书面合同(双倍工资)、逾期签订、到期未续签、违法约定试用期 | 30% |
| 工资与加班费 | 拖欠/克扣工资、加班费计算基数错误、未支付加班费、未足额支付 | 35% |
| 解聘/离职 | 违法解除劳动合同、未支付经济补偿金/赔偿金、程序不合规、未提前通知 | 20% |
1.2 中小企业特殊痛点
- 没有专职 HR:很多中小企业由老板或行政兼任,完全不懂劳动法
- Excel 都嫌麻烦:现有管理方式靠记忆和纸质文件,连 Excel 都没用好
- 请不起法律顾问:遇到问题不知道找谁,也不知道合不合规
- 系统太复杂学不会:市面上的 HR 系统功能太多,上手成本高,中小企业用不起来
- 怕出事但不知道怎么防:知道劳动仲裁麻烦,但不知道从哪里开始预防
1.3 系统定位
构建一个 中小企业也能用起来的极简用工合规工具:
- 像计算器一样简单 — 打开就能用,不需要培训
- 像导航一样引导 — 该做什么、怎么做,一步步引导
- 像警报器一样提醒 — 有风险自动弹窗,不怕遗漏
- 像顾问一样解释 — 每个风险都附上法律依据和操作建议,不用自己查法条
2. 目标用户
核心用户:中小企业老板 / 行政兼 HR / 初级 HR
| 用户画像 | 典型场景 |
|---|---|
| 老板兼管 HR(10-30人企业) | 偶尔打开看看有没有风险,解聘时算一下补偿金 |
| 行政兼 HR(30-80人企业) | 每天花5分钟看看待办,合同到期前续签,每月算加班费 |
| 初级 HR(80-200人企业) | 日常合同管理、工资计算、解聘流程走查 |
用户特征假设:
- 不懂劳动法,需要系统主动告知合规要求
- 不愿看长文,偏好"告诉我该做什么"
- 可能第一次用类似系统,需要新手引导
- 手机/平板也会用,不能只考虑桌面端
3. UI/UX 设计原则
3.1 核心原则:三看三不用
| 原则 | 含义 | 设计要求 |
|---|---|---|
| 看一眼就懂 | 不需要说明书 | 每个页面标题用大白话,不用法律术语 |
| 看一眼会点 | 知道下一步做什么 | 每个页面有且只有一个主操作按钮(蓝色高亮) |
| 看一眼放心 | 知道当前状态 | 用红/黄/绿三色信号灯表示风险状态 |
| 不用记法条 | 系统自动判断合规 | 风险自动检测,附人话版法律解释 |
| 不用手算 | 系统自动计算 | 输入最少信息,自动算出结果 |
| 不用怕漏掉 | 系统主动提醒 | 到期/风险自动弹窗 + 角标提醒 |
3.2 交互设计规范
信息层级 — 渐进式披露:
第一眼:看到什么 → 数字 + 信号灯(绿/黄/红)
第二眼:想知道为什么 → 点击展开风险说明
第三眼:想知道怎么办 → 展开操作建议 + 法律依据
操作流 — 一屏一焦点:
- 每个页面只做一件事,不堆砌功能
- 主操作按钮固定在视觉焦点位置(右上角或底部居中)
- 次要操作收起在"更多"菜单中
- 表单分步填写,一屏不超过 5 个输入项
视觉语言 — 信号灯体系:
| 颜色 | 含义 | 使用场景 |
|---|---|---|
| 🟢 绿色 | 合规/正常 | 合同在签、工资正常、无风险 |
| 🟡 黄色 | 需关注 | 合同即将到期、加班超时、待处理 |
| 🔴 红色 | 有风险 | 未签合同、到期未续签、违法解聘 |
| ⚪ 灰色 | 不适用 | 离职员工、已完成事项 |
文案风格 — 说人话:
| ❌ 法律术语 | ✅ 人话版本 |
|---|---|
| 「依据《劳动合同法》第82条」 | 「入职1个月没签合同,员工可以要求双倍工资」 |
| 「经济补偿金N」 | 「需要赔 X 个月工资,共 ¥XX,XXX」 |
| 「非过失性解除」 | 「员工没犯错但要辞退」 |
| 「法定节假日300%」 | 「国庆节加班1天 = 平时3天工资」 |
3.3 新手引导
- 首次打开:3 步引导弹窗("这里看风险"→"这里管合同"→"这里算钱")
- 空数据状态:展示示例截图 + "添加第一个员工"按钮,不让用户面对空白页
- 关键操作前:简短提示卡片(如解聘前提示"建议先咨询律师")
4. 功能需求
4.1 模块总览
当前版本(v1.0 — 劳动合规基础 + AI 顾问 + 员工参与)
管理端(HR/老板使用):
┌──────────────────────────────────────────────────────────────┐
│ 劳动用工合规助手(管理端) │
├───────────┬──────────┬──────────┬──────────┬────────────┬─────┤
│ 风险总览 │ 合同管理 │ 钱的计算 │ 解聘助手 │ AI合规顾问 │设置 │
│ (首页) │ │ │ │ │ │
│ 红黄绿信号灯│ 员工合同 │ 加班费 │ 补偿金计算│ 智能问答 │企业 │
│ 待办清单 │ 到期提醒 │ 双倍工资 │ 合规检查 │ 风险预测 │用户 │
│ 一句话风险 │ 一键续签 │ 经济补偿 │ 流程引导 │ 合同审查 │套餐 │
│ AI风险预测 │纸质/电子 │ │ │ 案例匹配 │ │
└───────────┴──────────┴──────────┴──────────┴────────────┴─────┘
↓ 所有风险汇总到首页 ↓
员工端(员工使用,独立入口):
┌──────────────────────────────────────────────┐
│ 员工端(手机号验证码登录) │
├──────────┬──────────┬──────────────────────┤
│ 工资条 │ 我的合同 │ 入职填报/合同确认 │
│ │ │ │
│ 月度工资 │ 合同信息 │ 扫码填报基本信息 │
│ 加班明细 │ 签订记录 │ 电子合同签署确认 │
│ 确认已阅 │ 下载查看 │ HR审核后入库 │
└──────────┴──────────┴──────────────────────┘
演进路线图
v1.0 (当前) v2.0 (近期) v3.0 (中期)
┌───────────────────────────┐ ┌────────────────┐ ┌──────────────────┐
│ 劳动合规基础 + AI + 员工参与 │ ──→ │ + 社保公积金 │ ──→ │ + 人力成本分析 │
│ 合同/工资/解聘 │ │ 五险一金计算 │ │ 成本报表/趋势 │
│ AI 问答/风险预测/审查 │ │ 缴费基数/比例 │ │ 部门成本/人均 │
│ 员工端:工资条/合同/入职填报 │ │ │ │ │
└───────────────────────────┘ └────────────────┘ └──────────────────┘
v4.0 (远期)
┌────────────────┐
│ + 员工自助门户 │
│ 考勤/请假/调薪 │
│ 在线审批流程 │
└────────────────┘
精简策略:
- v1.0 聚焦劳动仲裁三大高发领域 + AI 合规顾问 + 员工参与,管理端 5 个页面 + 员工端 3 个页面
- 架构上预留扩展接口,后续模块即插即用,不重构现有代码
- 每个页面最多 2 层深度,避免复杂导航
4.2 首页:风险总览(极简版)
目标:打开就知道有没有事、该做什么
页面布局:
┌─────────────────────────────────────────────┐
│ 👋 早上好!今天有 3 件事需要处理 │
│ │
│ ┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐ │
│ │ 12 │ │ 🔴 2 │ │ 🟡 3 │ │ ¥8k │ │
│ │ 员工 │ │ 高风险│ │ 待办 │ │加班费│ │
│ └──────┘ └──────┘ └──────┘ └──────┘ │
│ │
│ 📋 今日待办 │
│ ┌─────────────────────────────────────┐ │
│ │ 🔴 张三入职35天未签合同 → 去处理 │ │
│ │ 🟡 李四合同还有20天到期 → 去续签 │ │
│ │ 🟡 王五上月加班48小时超标 → 查看 │ │
│ └─────────────────────────────────────┘ │
│ │
│ 📊 风险分布 │
│ ┌─────────────────────────────────────┐ │
│ │ 合同风险 ████████ 5项 │ │
│ │ 工资风险 ████ 2项 │ │
│ │ 解聘风险 ██ 1项 │ │
│ └─────────────────────────────────────┘ │
└─────────────────────────────────────────────┘
设计要点:
- 顶部一句话总结:「今天有 X 件事需要处理」,让用户立刻知道是否有事
- 4 个数字卡片:员工总数 / 高风险数 / 待办数 / 本月加班费
- 待办列表:每条一行,红/黄信号灯 + 一句话描述 + 「去处理」按钮
- 风险分布:用简单进度条代替复杂图表,一眼看出哪类问题多
- 无风险时:显示绿色大勾「✅ 暂无风险,继续保持!」
- 首次使用空状态:展示「添加第一个员工」引导卡片
4.3 合同管理
目标:不用记日期,不怕忘签,风险自动提醒
4.3.1 员工合同列表(极简表格)
列表只显示 5 列(避免信息过载):
| 姓名 | 部门 | 入职日期 | 合同状态 | 操作 |
|---|---|---|---|---|
| 张三 | 技术部 | 2026-06-18 | 🔴 未签合同(35天) | 签订 / 详情 |
| 李四 | 销售部 | 2025-08-01 | 🟡 即将到期(20天) | 续签 / 详情 |
| 王五 | 财务部 | 2024-03-15 | 🟢 正常 | 详情 |
- 状态列用信号灯 + 简短文字,一眼看出问题
- 点击「签订」/「续签」直接弹出表单,不需要进详情页
- 搜索框 + 部门筛选,支持快速查找
- 批量操作:全选 → 批量续签(适合到期合同多的情况)
4.3.2 添加/编辑员工(分步表单)
Step 1 — 基本信息(4 项):
姓名 *: [___________]
部门 *: [下拉选择___]
入职日期 *:[日期选择器__]
月工资 *: [___________] 元
Step 2 — 合同信息(5 项,可跳过):
合同类型: ○ 固定期限 ○ 无固定期限 ○ 暂未签订
签订方式: ○ 纸质合同 ○ 电子合同
签订日期: [日期选择器__]
合同期限: [下拉:1年/2年/3年/无固定]
试用期: [下拉:无/1个月/2个月/3个月/6个月]
- 如果选「暂未签订」,系统自动标记为高风险并提醒
- 试用期下拉自动校验合法性(选了1年合同但选6个月试用期 → 红色提示)
- 智能默认值:合同期限默认3年,试用期默认1个月,减少选择成本
- 必填项最小化:只有姓名和入职日期是必填,其他都可以后补
签订方式说明:
| 方式 | 说明 | 系统支持 |
|---|---|---|
| 纸质合同 | 打印后双方线下签字盖章 | 记录签订日期 + 可上传扫描件/拍照存档 |
| 电子合同 | 在线签署电子合同(如通过第三方电子签平台) | 记录签订日期 + 可填写电子合同链接/编号 |
- 选择「纸质合同」时,显示「上传扫描件」按钮(可选),支持拍照或选择文件上传
- 选择「电子合同」时,显示「电子合同编号」输入框(可选)和「合同链接」输入框(可选)
- 两种方式法律效力等同,系统不强制选择,默认为「纸质合同」
4.3.3 合规风险检查规则(后台自动运行)
| 规则 | 检查内容 | 信号灯 | 人话提示 |
|---|---|---|---|
| C-01 | 入职超1个月未签合同 | 🔴 | 「张三入职35天了还没签合同,要赔双倍工资」 |
| C-02 | 入职超1年未签合同 | 🔴 | 「超过1年没签合同,法律上等于已签无固定期限合同」 |
| C-03 | 合同30天内到期 | 🟡 | 「李四合同还有20天到期,该准备续签了」 |
| C-04 | 合同到期未续签仍用工 | 🔴 | 「合同已到期但还在上班,要赔双倍工资」 |
| C-05 | 试用期超法定上限 | 🔴 | 「1年期合同试用期最多2个月,当前3个月不合法」 |
| C-06 | 试用期工资过低 | 🟡 | 「试用期工资不能低于转正工资的80%」 |
| C-07 | 两次固定期限后应签无固定 | 🔴 | 「已经签了2次固定合同,第3次应签无固定期限」 |
4.3.4 一键续签
- 合同到期前30天,列表出现「续签」按钮
- 点击后弹出确认弹窗:
┌───────────────────────────────┐ │ 续签李四的劳动合同? │ │ │ │ 原合同:2025-08-01 ~ 2026-07-31│ │ 新合同期限:[3年 ▼] │ │ 新到期日:2029-07-31 │ │ 试用期:无 │ │ 签订方式:○ 纸质合同 ○ 电子合同 │ │ │ │ [取消] [确认续签] │ └───────────────────────────────┘ - 续签时选择签订方式(纸质/电子),默认沿用上次签订方式
- 续签后自动更新状态为 🟢 正常,风险消除
4.4 钱的计算(Tab 切换,一页搞定)
目标:输入最少信息,立刻算出该赔多少、该付多少
页面结构:3 个 Tab,共享一个页面
┌─────────────────────────────────────────────┐
│ [ 加班费计算 ] [ 双倍工资 ] [ 经济补偿金 ] │
├─────────────────────────────────────────────┤
│ │
│ (当前 Tab 的计算器内容) │
│ │
└─────────────────────────────────────────────┘
4.4.1 加班费计算器(Tab 1)
界面设计:左输入右结果,实时计算
┌──────────────────┬──────────────────────┐
│ 填写信息 │ 计算结果 │
│ │ │
│ 月工资:[8000__] │ 📊 加班费明细 │
│ 元 │ │
│ │ 小时工资:¥46.00 │
│ 工作日加班: │ │
│ [__10__] 小时 │ 工作日 ¥690 (10h×1.5) │
│ │ 休息日 ¥736 (8h×2.0) │
│ 休息日加班: │ 节假日 ¥552 (4h×3.0) │
│ [__8___] 小时 │ │
│ │ ─────────────────── │
│ 节假日加班: │ 💰 合计:¥1,978 │
│ [__4___] 小时 │ │
│ │ ⚠️ 月加班22小时, │
│ [计算] │ 未超36小时上限 ✅ │
└──────────────────┴──────────────────────┘
交互优化:
- 输入数字后实时计算,不需要点「计算」按钮
- 结果区固定在右侧,输入时数字实时跳动更新
- 超过36小时/月时,结果区显示黄色警告
- 可选关联员工:选择员工后自动填入月工资
计算规则(后台自动,用户不需要知道公式):
小时工资 = 月工资 ÷ 21.75 ÷ 8
工作日加班费 = 小时工资 × 1.5 × 小时数
休息日加班费 = 小时工资 × 2.0 × 小时数
节假日加班费 = 小时工资 × 3.0 × 小时数
4.4.2 双倍工资计算器(Tab 2)
界面设计:
┌──────────────────┬──────────────────────┐
│ 填写信息 │ 计算结果 │
│ │ │
│ 月工资:[8000__] │ ⚠️ 风险提示 │
│ 元 │ │
│ │ 入职日期:2026-06-01 │
│ 入职日期: │ 合同签订:未签订 │
│ [2026-06-01] │ │
│ │ 双倍工资起算: │
│ 合同签订日期: │ 2026-07-02 │
│ [未签订 ▼] │ │
│ 或选择日期 │ 双倍工资截止: │
│ │ 2027-05-31 │
│ │ │
│ │ 💰 需赔:¥88,000 │
│ │ (11个月 × ¥8,000) │
│ │ │
│ │ 📌 法律规定:入职1个月 │
│ │ 没签合同,从第2个月起 │
│ │ 要付双倍工资,最多11个月│
└──────────────────┴──────────────────────┘
交互优化:
- 「合同签订日期」默认显示「未签订」,也可选择日期
- 如果已签订但逾期,自动计算逾期月数的双倍工资
- 结果区用醒目大字显示金额
- 底部附「人话版」法律解释
4.4.3 经济补偿金计算器(Tab 3)
界面设计:
┌──────────────────┬──────────────────────┐
│ 填写信息 │ 计算结果 │
│ │ │
│ 入职日期: │ 📊 补偿金计算 │
│ [2022-03-01] │ │
│ │ 工作年限:4年2个月 │
│ 离职日期: │ → 按4.5个月计算 │
│ [2026-05-15] │ │
│ │ 月工资:¥8,000 │
│ 月平均工资: │ │
│ [8000___] 元 │ 💰 经济补偿金: │
│ │ ¥36,000 │
│ 离职原因: │ (4.5 × 8,000) │
│ [协商解除 ▼] │ │
│ │ ⚠️ 如果是违法解除: │
│ 当地社平工资: │ 赔偿金 = ¥72,000 │
│ [8000___] 元 │ (补偿金 × 2) │
│ (选填,用于封顶) │ │
│ │ 📌 6个月以上算1年, │
│ │ 不满6个月算半个月 │
└──────────────────┴──────────────────────┘
交互优化:
- 「离职原因」用下拉选择,选项用人话:
- 「协商解除(双方同意)」
- 「员工犯错被辞退」
- 「员工没犯错但干不了」
- 「公司裁员」
- 「公司单方面违法辞退」
- 根据离职原因自动判断是否需要支付补偿金
- 「当地社平工资」选填,不填则跳过封顶计算
- 结果同时显示正常补偿金和违法解除赔偿金(×2)
4.4.4 工资合规自动检查(后台规则)
| 规则 | 检查内容 | 信号灯 | 人话提示 |
|---|---|---|---|
| S-01 | 工资低于当地最低工资 | 🔴 | 「工资不能低于当地最低工资标准」 |
| S-02 | 加班超36小时/月 | 🟡 | 「月加班超过36小时有法律风险」 |
| S-03 | 试用期工资过低 | 🟡 | 「试用期工资至少是转正工资的80%」 |
4.5 解聘助手(向导式流程)
目标:一步步引导完成合规解聘,不怕漏步骤
设计理念:不展示复杂清单,而是用向导式流程,一次只看一步
4.5.1 解聘向导(5 步)
┌─────────────────────────────────────────────┐
│ 解聘助手 ●●○○○ │
│ ───────────────────────────────────────── │
│ │
│ Step 1/5:为什么解聘? │
│ │
│ ○ 协商解除(双方同意分开了) │
│ ○ 员工犯错被辞退(严重违纪/失职等) │
│ ○ 员工没犯错但干不了(生病/不胜任等) │
│ ○ 公司裁员(经营困难/技术调整等) │
│ ○ 合同到期不续签 │
│ │
│ 💡 选不同原因,后续步骤和法律要求不同 │
│ │
│ [下一步 →] │
└─────────────────────────────────────────────┘
5 步流程:
| 步骤 | 标题 | 内容 | 交互 |
|---|---|---|---|
| Step 1 | 为什么解聘? | 选择解聘原因(用人话选项) | 单选 |
| Step 2 | 员工信息 | 选择员工 → 自动带入入职日期/工资 → 填写解聘日期 | 下拉 + 日期 |
| Step 3 | 合规检查 | 根据解聘原因自动展示相关检查项(3-5项) | 逐项勾选 |
| Step 4 | 算钱 | 自动计算补偿金/代通知金,展示金额 | 自动计算 |
| Step 5 | 确认完成 | 汇总检查结果 + 金额 + 风险评估 → 保存记录 | 确认按钮 |
关键交互:
- 顶部进度条
●●○○○直观显示进度 - 每步只有 1 个主操作「下一步」
- Step 3 合规检查根据 Step 1 的选择动态展示:
- 选「协商解除」→ 只检查「是否支付补偿金」「是否签协议」
- 选「员工犯错」→ 检查「是否有规章制度依据」「是否有证据」「是否通知工会」
- 选「裁员」→ 检查「是否提前30天说明」「是否听取意见」「是否报劳动部门」
- 检查项用人话描述,不是法条原文
- Step 5 如果有未通过检查项,显示红色警告但不阻止保存(尊重用户决策)
4.5.2 禁止解聘情形检查(自动弹出)
在 Step 2 选择员工后,自动检查是否属于不得解除情形:
| 检查项 | 触发条件 | 提示 |
|---|---|---|
| 孕期/产期/哺乳期 | 员工标记为女性 + 在孕期/哺乳期 | 🔴 「该员工在孕期,法律禁止解除」 |
| 工伤期间 | 员工标记为工伤 | 🔴 「工伤期间不得解除劳动合同」 |
| 医疗期 | 员工在规定的医疗期内 | 🔴 「医疗期内不得解除」 |
- 如果触发禁止情形,弹出醒目红色警告框
- 不阻止继续操作,但要求用户确认「我已了解风险,继续操作」
4.5.3 解聘记录
- 完成向导后自动生成解聘记录
- 记录包含:员工信息、解聘原因、检查结果、补偿金额、操作日期
- 可在解聘助手页面底部查看历史记录
- 支持导出单条记录为 PDF(可选)
4.6 AI 合规顾问
目标:像有个法律顾问在身边,随时问、自动查、提前预警
设计理念:不是冷冰冰的搜索框,而是对话式交互,用户用大白话提问,AI 用大白话回答
4.6.1 智能问答
界面设计:聊天式对话界面
┌─────────────────────────────────────────────┐
│ 🤖 AI 合规顾问 │
│ │
│ ┌─────────────────────────────────────┐ │
│ │ 🤖 你好!我是你的用工合规顾问, │ │
│ │ 有什么劳动法问题可以直接问我。 │ │
│ │ │ │
│ │ 你可以问我: │ │
│ │ · 员工入职没签合同怎么办? │ │
│ │ · 加班费怎么算? │ │
│ │ · 辞退员工需要赔多少? │ │
│ └─────────────────────────────────┘ │
│ │
│ ┌─────────────────────────────────────┐ │
│ │ 👤 试用期最长可以约定几个月? │ │
│ └─────────────────────────────────────┘ │
│ │
│ ┌─────────────────────────────────────┐ │
│ │ 🤖 根据《劳动合同法》第19条: │ │
│ │ │ │
│ │ · 合同期 3个月~1年 → 试用期最多1个月 │ │
│ │ · 合同期 1年~3年 → 试用期最多2个月 │ │
│ │ · 合同期 3年以上 → 试用期最多6个月 │ │
│ │ │ │
│ │ ⚠️ 你的员工王五:合同2年但试用期3个月│ │
│ │ 超过法定上限,建议调整为2个月 │ │
│ └─────────────────────────────────────┘ │
│ │
│ ┌─────────────────────────────────────┐ │
│ │ [输入问题...] [发送] │ │
│ └─────────────────────────────────────┘ │
└─────────────────────────────────────────────┘
交互特点:
- 聊天式界面,支持多轮对话(上下文记忆)
- 回答时关联本企业数据(如「你的员工王五试用期超限」)
- 回答附法律依据引用(可折叠查看法条原文)
- 预设常见问题快捷按钮(「没签合同怎么办」「加班费怎么算」等)
- 支持语音输入(移动端)
4.6.2 风险预测
界面设计:首页风险总览中的智能分析卡片
┌─────────────────────────────────────────────┐
│ 🔮 AI 风险预测 │
│ │
│ ⚠️ 未来30天预计新增 3 个风险: │
│ │
│ · 李四合同7月31日到期 → 续签提醒 │
│ · 张三入职将满1年 → 未签合同风险升级 │
│ · 上月加班总时长上升40% → 超时风险 │
│ │
│ 💡 建议:本周优先处理合同到期和未签问题 │
└─────────────────────────────────────────────┘
- 基于企业当前数据(合同到期日、入职日期、加班趋势)预测未来风险
- 每日自动刷新,展示在首页风险总览下方
- 给出优先级建议(先处理什么)
4.6.3 合同审查
功能:上传合同文本或粘贴条款,AI 审查合法性
┌─────────────────────────────────────────────┐
│ 📄 合同审查 │
│ │
│ [粘贴合同条款文本...] │
│ [或上传合同文件(.txt/.docx)] │
│ │
│ [开始审查] │
│ │
│ ──────────── 审查结果 ──────────── │
│ │
│ 🔴 试用期6个月超过法定上限(合同期2年最多2月)│
│ 🟡 竞业限制未约定补偿标准 │
│ 🟡 加班费计算基数未明确约定 │
│ 🟢 社保缴纳条款符合规定 │
│ 🟢 工资支付条款符合规定 │
│ │
│ 📊 合规评分:72/100 │
└─────────────────────────────────────────────┘
- 逐条审查合同条款,标注红/黄/绿
- 给出修改建议(人话版)
- 合规评分直观展示合同整体合法程度
4.6.4 案例匹配
功能:输入争议情况,匹配相似仲裁案例,评估败诉风险
┌─────────────────────────────────────────────┐
│ ⚖️ 案例匹配 │
│ │
│ 描述你的情况: │
│ [员工入职3个月没签合同,现在要辞退他...] │
│ │
│ [分析] │
│ │
│ ──────────── 相似案例 ──────────── │
│ │
│ 📋 案例1:某科技公司 vs 员工张某 │
│ · 情形:入职3个月未签合同后辞退 │
│ · 结果:企业败诉,赔双倍工资+违法解除赔偿 │
│ · 赔偿金额:¥XX,XXX │
│ · 相似度:92% │
│ │
│ 📋 案例2:某贸易公司 vs 员工李某 │
│ · 情形:未签合同 + 协商解除 │
│ · 结果:企业赔双倍工资差额 │
│ · 赔偿金额:¥XX,XXX │
│ · 相似度:85% │
│ │
│ ⚠️ 你的败诉风险:高(90%) │
│ 💡 建议:先补签合同再协商解除,可降低风险 │
└─────────────────────────────────────────────┘
- 内置劳动仲裁案例库(公开裁判文书)
- AI 语义匹配相似案例,计算相似度
- 评估败诉概率和预估赔偿金额
- 给出风险降低建议
4.6.5 技术方案
| 组件 | 方案 |
|---|---|
| LLM | 阿里通义千问(Qwen),通过 DashScope API 调用,中文劳动法领域表现优秀 |
| 模型选择 | qwen-plus(日常问答)/ qwen-max(合同审查/案例匹配等复杂任务) |
| API Key | 通过环境变量 DASHSCOPE_API_KEY 注入,不硬编码 |
| RAG 知识库 | 劳动法/劳动合同法/司法解释/地方条例 向量化存储 |
| 向量数据库 | Supabase pgvector(与业务数据库共用,减少依赖) |
| Embedding | DashScope text-embedding-v2(中文支持好,与 Qwen 生态统一) |
| 上下文关联 | 每次问答注入当前企业数据摘要(员工数/风险项/合同状态) |
| 案例库 | 爬取公开裁判文书,结构化存储 + 向量检索 |
| 流式输出 | DashScope SSE 流式返回,打字机效果,提升体验 |
| 安全过滤 | 敏感问题兜底回复(「建议咨询专业律师」) |
4.6.6 使用限制
| 套餐 | AI 问答次数/月 | 合同审查次数/月 | 案例匹配次数/月 |
|---|---|---|---|
| free | 10 | 3 | 3 |
| pro | 100 | 20 | 20 |
| enterprise | 无限 | 无限 | 无限 |
4.7 员工参与(员工端,独立入口)
目标:让员工也能查看自己的合同和工资,参与入职填报和合同确认,减少 HR 沟通成本
设计理念:员工端独立入口,不需要注册账号,手机号验证码登录,极简操作
4.7.1 员工登录
- 入口:独立页面
/portal/login,与管理端完全分离 - 登录方式:支持两种方式,员工可自由选择
- 方式一:手机号 + 密码(推荐,无需短信服务)
- HR 创建员工时设置初始密码,员工首次登录后可修改
- 密码 6 位以上,支持数字+字母组合
- 方式二:手机号 + 验证码(无需记密码)
- v1.0 方案:页面内显示验证码(暂不接入短信服务,降低成本)
- 后续版本:接入阿里云短信服务,发送真实短信验证码
- 方式一:手机号 + 密码(推荐,无需短信服务)
- 验证码发送:优先通过页面内验证码(暂不接入短信服务,降低成本)
- v1.0 方案:HR 通过微信分享员工端二维码/链接,员工扫码进入后输入手机号,系统发送验证码(页面内弹窗显示验证码,后续版本再接入短信)
- 后续版本:接入阿里云短信服务,发送真实短信验证码
- 身份识别:根据手机号匹配企业员工记录,自动关联 orgId
- 安全:验证码 5 分钟有效,同一手机号每小时最多 5 次;密码错误 5 次锁定 30 分钟
┌─────────────────────────────────────────────┐
│ 🏢 用工合规助手 — 员工端 │
│ │
│ [密码登录] [验证码登录] ← 切换 Tab │
│ │
│ ── 密码登录 ── │
│ 手机号:[___________] │
│ 密码: [___________] │
│ [登录] │
│ │
│ ── 验证码登录 ── │
│ 手机号:[___________] │
│ [获取验证码] 验证码:[______] │
│ [登录] │
│ │
│ 📱 也可扫描 HR 发送的二维码直接进入 │
└─────────────────────────────────────────────┘
HR 端生成员工端二维码:
- HR 在管理端可生成员工端入口二维码,扫码直接打开
/portal/login - 二维码可保存为图片,HR 通过微信发给员工
- 员工扫码后选择密码登录或验证码登录
- HR 创建员工时设置初始密码,可通过微信单独告知员工
4.7.2 工资条查看
页面:/portal/payslip
┌─────────────────────────────────────────────┐
│ 💰 我的工资条 │
│ │
│ 月份选择:[2026年7月 ▼] │
│ │
│ ┌─────────────────────────────────────┐ │
│ │ 基本工资: ¥8,000 │ │
│ │ 加班费: ¥1,978 │ │
│ │ └ 工作日加班: ¥690 (10h) │ │
│ │ └ 休息日加班: ¥736 (8h) │ │
│ │ └ 节假日加班: ¥552 (4h) │ │
│ │ ───────────────────────── │ │
│ │ 应发合计: ¥9,978 │ │
│ └─────────────────────────────────────┘ │
│ │
│ [确认已阅] │
└─────────────────────────────────────────────┘
- 按月查看工资明细,包含基本工资和加班费拆分
- 加班费明细可展开查看工作日/休息日/节假日分类
- 「确认已阅」按钮,记录员工已查看该月工资条(时间 + IP)
- HR 端可查看哪些员工已确认、哪些未确认
4.7.3 我的合同
页面:/portal/contract
┌─────────────────────────────────────────────┐
│ 📄 我的劳动合同 │
│ │
│ 合同类型:固定期限 │
│ 签订方式:纸质合同 │
│ 签订日期:2026-03-15 │
│ 合同期限:2026-03-15 ~ 2029-03-14(3年) │
│ 试用期:2个月(2026-03-15 ~ 2026-05-14) │
│ 试用期工资:¥6,400 │
│ 转正工资:¥8,000 │
│ │
│ 📎 合同扫描件:劳动合同_张三.pdf [查看] │
│ │
│ ──────────── 签署记录 ──────────── │
│ ✅ 已确认签署(2026-03-15 14:32) │
│ 确认IP:192.168.x.x │
└─────────────────────────────────────────────┘
- 查看自己的劳动合同信息(只读)
- 可查看合同扫描件(纸质)或电子合同链接(电子)
- 展示签署确认记录(时间 + IP)
- 如合同即将到期,顶部显示提示「您的合同还有 XX 天到期」
4.7.4 员工入职填报
页面:/portal/onboarding?token=xxx
使用场景:HR 在管理端添加员工时选择「生成填报二维码」,员工扫码填写(HR 通过微信发送二维码图片或链接)
┌─────────────────────────────────────────────┐
│ 📝 入职信息填报 │
│ │
│ 欢迎加入 XX公司!请填写以下信息: │
│ │
│ 姓名 *: [___________] │
│ 手机号 *: [___________] │
│ 身份证号 *:[___________] │
│ 紧急联系人:[___________] │
│ 联系电话: [___________] │
│ 住址: [___________] │
│ 银行卡号: [___________] │
│ 开户行: [___________] │
│ │
│ [提交] │
│ │
│ 📌 提交后 HR 将审核您的信息 │
└─────────────────────────────────────────────┘
- HR 端创建员工时可选「生成填报二维码」或「自己填写」
- 选择「生成填报二维码」后,页面显示二维码图片 + 链接,HR 可:
- 保存二维码图片,通过微信发给员工
- 复制链接,通过微信直接发给员工
- 填报链接含一次性 token,有效期 24 小时
- 员工填写的信息进入「待审核」状态,HR 审核后正式入库
- 填报信息加密传输(HTTPS)
- 暂不接入短信服务,降低初期成本,后续版本可增加短信通知
4.7.5 电子合同签署确认
页面:/portal/contract-confirm?token=xxx
使用场景:HR 在管理端录入电子合同后,生成确认二维码/链接,通过微信发给员工
┌─────────────────────────────────────────────┐
│ ✍️ 合同签署确认 │
│ │
│ XX公司 与 张三 的劳动合同 │
│ │
│ 合同类型:固定期限(3年) │
│ 合同期限:2026-03-15 ~ 2029-03-14 │
│ 试用期:2个月 │
│ 试用期工资:¥6,400 │
│ 转正工资:¥8,000 │
│ │
│ 📎 查看合同文件:[点击查看] │
│ │
│ ┌─────────────────────────────────────┐ │
│ │ ☐ 我已阅读合同内容,确认签署 │ │
│ └─────────────────────────────────────┘ │
│ │
│ [确认签署] │
│ │
│ 📌 确认后将记录签署时间和 IP 地址 │
└─────────────────────────────────────────────┘
- 员工查看合同内容后勾选确认 + 点击「确认签署」
- 系统记录确认时间、IP 地址、设备信息
- HR 端合同状态自动更新为「已确认签署」
- 确认链接含一次性 token,有效期 7 天
- HR 生成确认二维码后,可保存图片通过微信发给员工,或复制链接直接发送
- 暂不接入短信服务,通过微信发送二维码/链接即可
- 法律效力说明:此确认为员工知情确认,正式电子签章需接入第三方电子签平台(后续版本)
4.8 风险提醒(融入首页,不单独成页)
设计理念:风险不需要单独页面,直接在首页和各模块中展示
风险展示位置:
| 位置 | 展示方式 |
|---|---|
| 首页 | 待办列表 + 风险分布进度条 |
| 合同管理 | 列表状态列信号灯 + 详情页风险卡片 |
| 钱的计算 | 计算结果区的警告提示 |
| 解聘助手 | 向导 Step 3/5 的检查结果 |
| 顶部导航栏 | 红色角标显示待处理风险总数,点击跳转首页 |
风险处理:
- 在首页待办列表中,每条风险右侧有「去处理」按钮
- 点击直接跳转到对应模块的操作页面
- 处理完成后风险自动消除(如签了合同,未签风险消失)
- 也可手动标记「已忽略」并填写备注(记录决策原因)
5. 数据模型(SaaS 多租户)
5.0 多租户基础表
Organization(企业/组织)
interface Organization {
id: string;
name: string; // 企业名称
plan: 'free' | 'pro' | 'enterprise'; // 套餐
maxEmployees: number; // 套餐对应人数上限
createdAt: string;
}
User(用户)
interface User {
id: string;
orgId: string; // 所属企业
phone: string; // 手机号(登录用)
email?: string; // 邮箱(选填)
passwordHash: string; // bcrypt 加密密码
name: string; // 用户姓名
role: 'admin' | 'hr' | 'viewer'; // 角色
createdAt: string;
lastLoginAt?: string;
}
角色权限:
| 角色 | 权限 |
|---|---|
| admin | 全部操作 + 用户管理 + 套餐管理 |
| hr | 合同/加班/解聘的增删改查 |
| viewer | 只能查看,不能修改 |
5.1 员工信息 (Employee) — 精简字段
interface Employee {
id: string;
orgId: string; // 所属企业(多租户隔离)
name: string; // 姓名(必填)
department: string; // 部门(必填)
hireDate: string; // 入职日期(必填)
monthlySalary: number; // 月工资标准(必填,加密存储)
status: 'active' | 'resigned'; // 在职/离职
gender?: 'male' | 'female'; // 性别(选填,用于禁止解聘检查)
isPregnant?: boolean; // 是否在孕期/哺乳期(选填)
isInMedicalPeriod?: boolean; // 是否在医疗期(选填)
isWorkInjured?: boolean; // 是否工伤期间(选填)
phone?: string; // 联系电话(选填)
createdBy: string; // 创建人 userId
createdAt: string;
updatedAt: string;
}
精简策略:必填字段仅 4 个(姓名/部门/入职日期/月工资),其余选填
5.2 劳动合同 (LaborContract)
interface LaborContract {
id: string;
orgId: string; // 所属企业
employeeId: string; // 关联员工
signDate: string | null; // 签订日期(null=未签订)
startDate: string; // 合同起始日期
endDate: string | null; // 到期日期(null=无固定期限)
contractType: 'fixed' | 'unfixed' | 'unsigned'; // 简化:固定/无固定/未签
signMethod: 'paper' | 'electronic'; // 签订方式:纸质/电子
contractYears: number; // 合同年限(1/2/3等,无固定=0)
probationMonths: number; // 试用期月数(0=无试用期)
probationSalary: number; // 试用期工资(0=无试用期)
renewalCount: number; // 续签次数
attachmentName?: string; // 纸质合同扫描件文件名(可选)
attachmentUrl?: string; // 扫描件存储 URL(可选)
electronicContractNo?: string; // 电子合同编号(可选)
electronicContractUrl?: string; // 电子合同链接(可选)
createdBy: string;
createdAt: string;
updatedAt: string;
}
精简策略:去掉 task 类型(中小企业极少使用)、去掉 status(由系统自动计算)
签订方式支持:signMethod 区分纸质/电子,纸质可上传扫描件存档,电子可记录合同编号和链接
5.3 加班记录 (OvertimeRecord)
interface OvertimeRecord {
id: string;
orgId: string; // 所属企业
employeeId: string;
month: string; // YYYY-MM
weekdayHours: number; // 工作日加班小时
weekendHours: number; // 休息日加班小时
holidayHours: number; // 法定节假日加班小时
calculatedPay: number; // 应付加班费(自动计算)
createdBy: string;
createdAt: string;
}
精简策略:去掉 overtimePay(中小企业通常不记录已付金额,只算应付)
5.4 解聘记录 (TerminationRecord)
interface TerminationRecord {
id: string;
orgId: string; // 所属企业
employeeId: string;
terminationDate: string;
reason: 'negotiated' | 'fault' | 'nonfault' | 'layoff' | 'expired';
compensation: number; // 经济补偿金(自动计算)
checklistResult: { // 向导检查结果
item: string;
passed: boolean;
remark?: string;
}[];
riskLevel: 'safe' | 'warning' | 'danger';
createdBy: string;
createdAt: string;
}
精简策略:去掉 reasonDetail(向导中已选择)、去掉 noticeType(由向导检查项覆盖)、去掉单独的 hasProofIssued/hasArchiveTransferred(合并到 checklistResult)
5.5 风险项 (RiskItem)
interface RiskItem {
id: string;
orgId: string; // 所属企业
type: 'contract' | 'salary' | 'termination';
level: 'high' | 'medium' | 'low';
title: string; // 人话标题
description: string; // 人话描述
suggestion: string; // 人话建议
legalBasis: string; // 法律依据(折叠展示)
employeeId?: string;
status: 'pending' | 'resolved' | 'ignored';
actionUrl?: string; // 点击跳转的处理页面路由
createdAt: string;
resolvedAt?: string;
resolvedBy?: string;
}
5.6 操作审计日志 (AuditLog)
interface AuditLog {
id: string;
orgId: string;
userId: string; // 操作人
action: string; // 操作类型(如 'contract.sign', 'termination.create')
target: string; // 操作对象(如 'employee:张三')
detail: string; // 操作详情
ipAddress: string; // IP 地址
createdAt: string;
}
新增 actionUrl:风险项可以直接跳转到对应的处理页面,一键操作
6. 系统架构(SaaS 版)
6.1 技术架构
┌─────────────────────────────────────────────────────┐
│ 前端(React 18) │
│ Vite + TailwindCSS + Recharts + React Router │
│ 部署:Vercel / Netlify │
├─────────────────────────────────────────────────────┤
│ API 层(RESTful) │
│ Axios 请求 → JWT Token 认证 → 路由守卫 │
├─────────────────────────────────────────────────────┤
│ 后端(Node.js) │
│ Express + Prisma ORM + JWT 认证 + Zod 校验 │
│ 部署:Railway / Render │
├─────────────────────────────────────────────────────┤
│ 数据库(PostgreSQL) │
│ 多租户隔离(org_id) + 全文搜索 + 自动备份 │
│ 部署:Railway / Supabase / Neon │
└─────────────────────────────────────────────────────┘
6.2 多租户架构
隔离策略:共享数据库 + 行级隔离(org_id 字段)
- 每个企业注册后创建一个 Organization(组织)
- 所有业务数据表均包含
orgId字段 - 所有 API 请求自动注入当前用户的
orgId,只能访问本企业数据 - Prisma 中间件自动过滤
orgId,防止越权
6.3 认证体系
| 功能 | 说明 |
|---|---|
| 注册 | 企业手机号/邮箱注册,创建 Organization + Admin 用户 |
| 登录 | 手机号/邮箱 + 密码登录,返回 JWT Token |
| Token 管理 | Access Token(2h 过期)+ Refresh Token(7d 过期) |
| 路由守卫 | 前端 React Router 守卫,未登录跳转登录页 |
| API 拦截 | 后端中间件校验 JWT,提取 userId + orgId |
| 角色权限 | admin(管理员)/ hr(HR 操作员)/ viewer(只读) |
6.4 安全要求
| 类别 | 要求 |
|---|---|
| 密码存储 | bcrypt 加密,不存明文 |
| 数据传输 | 全站 HTTPS |
| JWT 密钥 | 环境变量管理,不硬编码 |
| SQL 注入 | Prisma ORM 参数化查询,杜绝注入 |
| XSS 防护 | React 自动转义 + CSP 头 |
| 数据隔离 | 每个请求校验 orgId,禁止跨企业访问 |
| 敏感数据 | 工资字段加密存储(AES-256) |
| 操作日志 | 关键操作(解聘/合同变更)记录审计日志 |
| 速率限制 | 登录接口限流(5次/分钟),防止暴力破解 |
6.5 非功能需求
| 类别 | 要求 |
|---|---|
| 前端技术栈 | React 18 + Vite + TailwindCSS + Recharts |
| 后端技术栈 | Node.js + Express + Prisma ORM + Zod |
| 数据库 | PostgreSQL,支持多租户行级隔离 |
| 认证 | JWT(Access Token + Refresh Token) |
| 响应式 | 桌面端(1280px+)/ 平板端(768px+)/ 手机端(375px+) |
| 语言 | 全简体中文,文案用「人话」避免法律术语 |
| 性能 | 首屏加载 < 2s,API 响应 < 500ms |
| 浏览器 | Chrome / Edge / Safari 最新版 |
| 部署 | 前端 Vercel + 后端 Railway + 数据库 Neon/Supabase |
| 可用性 | 99.5%+,数据库每日自动备份 |
| 可扩展 | 后期可加 Redis 缓存、CDN 加速 |
7. 界面规划
7.1 整体布局(顶部导航,非侧边栏)
设计理由:中小企业用户更习惯顶部导航(类似常用网站),侧边栏对小屏幕不友好
┌──────────────────────────────────────────────────────────────┐
│ 🏢 用工合规助手 [总览] [合同] [算钱] [解聘] [AI顾问] 🔴3 👤张总 │
├──────────────────────────────────────────────────────────────┤
│ │
│ │
│ 主内容区 │
│ (最多 960px 居中) │
│ │
│ │
└─────────────────────────────────────────────────────┘
布局规范:
- 顶部导航栏:Logo + 5 个 Tab + 风险角标 + 用户头像下拉菜单(设置/退出),固定不滚动
- 主内容区:最大宽度 960px,居中,避免宽屏下内容过散
- 移动端:导航栏变为底部 Tab Bar(类似 App)
- 无侧边栏:减少视觉干扰,5 个 Tab 足够
7.2 页面清单
管理端认证页面(未登录可访问):
| 页面 | 路由 | 说明 |
|---|---|---|
| 登录 | /login |
手机号/邮箱 + 密码登录 |
| 注册 | /register |
企业名称 + 手机号 + 密码,注册即创建组织 |
| 忘记密码 | /forgot-password |
手机验证码重置密码 |
管理端业务页面(登录后访问):
| 页面 | 路由 | 导航名称 | 说明 |
|---|---|---|---|
| 风险总览 | / |
总览 | 一句话状态 + 数字卡片 + 待办列表 + 风险分布 |
| 合同管理 | /contracts |
合同 | 员工合同列表 + 添加/编辑 + 一键续签 + 发送填报/确认链接 |
| 钱的计算 | /money |
算钱 | 3 个 Tab:加班费 / 双倍工资 / 经济补偿金 |
| 解聘助手 | /termination |
解聘 | 5 步向导 + 历史记录 |
| AI 合规顾问 | /ai-assistant |
AI顾问 | 智能问答 + 合同审查 + 案例匹配 |
| 系统设置 | /settings |
设置 | 企业信息 + 用户管理 + 套餐 |
员工端页面(独立入口,手机号验证码登录):
| 页面 | 路由 | 说明 |
|---|---|---|
| 员工登录 | /portal/login |
手机号 + 短信验证码登录 |
| 工资条 | /portal/payslip |
按月查看工资明细 + 确认已阅 |
| 我的合同 | /portal/contract |
查看合同信息 + 扫描件/电子链接 |
| 入职填报 | /portal/onboarding?token=xxx |
填写入职信息(一次性链接) |
| 合同确认 | /portal/contract-confirm?token=xxx |
确认签署电子合同(一次性链接) |
设置页面子 Tab:
- 企业信息:名称、地区(用于最低工资/社平工资默认值)
- 用户管理:添加/移除用户,分配角色(admin/hr/viewer)
- 套餐信息:当前套餐、人数上限、升级套餐
7.3 配色方案
| 用途 | 颜色 | 说明 |
|---|---|---|
| 主色 | #2563EB(蓝色) |
主操作按钮、导航高亮、链接 |
| 危险/高风险 | #EF4444(红色) |
高风险信号灯、危险提示 |
| 警告/中风险 | #F59E0B(橙黄) |
待办提醒、中风险信号灯 |
| 安全/正常 | #22C55E(绿色) |
合规状态、完成状态 |
| 背景 | #F8FAFC(浅灰) |
页面背景,减少视觉疲劳 |
| 卡片 | #FFFFFF(白色) |
内容卡片背景 |
| 文字主 | #1E293B(深灰) |
主要文字 |
| 文字次 | #64748B(中灰) |
辅助说明文字 |
7.4 组件规范
| 组件 | 规范 |
|---|---|
| 按钮 | 主按钮蓝色填充,次按钮白色边框,危险按钮红色填充 |
| 卡片 | 白底 + 圆角12px + 轻阴影(shadow-sm),不用重阴影 |
| 表格 | 无边框简约表格,行间用浅灰分隔线,hover 高亮 |
| 表单 | 输入框圆角8px,focus 时蓝色边框,错误时红色边框 + 提示 |
| 弹窗 | 居中模态框,圆角16px,遮罩半透明黑色 |
| 信号灯 | 圆点12px + 文字,不用复杂图标 |
| 空状态 | 插图 + 引导文字 + 主操作按钮 |
8. 实施计划
| 阶段 | 内容 | 优先级 |
|---|---|---|
| P0 | 项目搭建:前端 Vite + React + TailwindCSS,后端 Express + Prisma + PostgreSQL,项目结构 + 路由骨架 | 高 |
| P1 | 认证体系:注册/登录/JWT Token + 路由守卫 + 多租户中间件 | 高 |
| P2 | 首页风险总览(信号灯 + 待办 + 分布) | 高 |
| P3 | 合同管理(列表 + 添加/编辑 + 一键续签 + 纸质/电子合同 + 风险标注) | 高 |
| P4 | 钱的计算(3 Tab 计算器 + 实时计算) | 高 |
| P5 | 解聘助手(5 步向导 + 禁止情形检查 + 记录) | 高 |
| P6 | AI 合规顾问(智能问答 + 风险预测 + 合同审查 + 案例匹配 + RAG 知识库) | 高 |
| P7 | 员工端(验证码登录 + 工资条 + 我的合同 + 入职填报 + 合同确认) | 高 |
| P8 | 系统设置(企业信息 + 用户管理 + 套餐) | 中 |
| P9 | 新手引导 + 空状态 + 移动端适配 | 中 |
| P10 | 部署上线(Vercel + Railway + Neon)+ 联调验证 | 中 |
9. 法律依据索引
| 法律法规 | 关键条款 | 涉及模块 |
|---|---|---|
| 《劳动法》 | 第36/41/44/48/50条 | 工资加班费 |
| 《劳动合同法》 | 第10/14/19/20/39-42/46-47/50/82条 | 合同/解聘/双倍工资 |
| 《劳动合同法实施条例》 | 第6/7/25/27条 | 双倍工资/补偿金 |
| 《工资支付暂行规定》 | 第13/15/18条 | 加班费/工资支付 |
| 最高人民法院劳动争议司法解释(一) | 第44/45条 | 举证责任 |
10. 约束与假设
- SaaS 多租户:共享数据库 + 行级隔离(
orgId),每家企业数据互不可见 - 法律时效性:系统内置规则基于现行法律法规,如法律更新需手动更新规则
- 地区差异:最低工资标准、社平工资等参数需用户自行设置(提供常用城市默认值)
- 非替代法律意见:系统提供合规参考,不构成正式法律意见,重大决策建议咨询专业律师
- 套餐限制:free 套餐限 20 人,pro 套餐限 200 人,enterprise 无限制
- 数据备份:PostgreSQL 数据库每日自动备份,保留 30 天
- 合同附件存储:纸质合同扫描件上传至云存储(Supabase Storage / S3),数据库只存 URL
- 数据导出:支持导出全部数据为 JSON/Excel,用户可随时备份
- 后续可扩展:预留 API 接口,后期可接入电子签平台(如 e签宝、法大大)实现在线签署
11. 系统扩展架构
11.1 设计原则:插件化模块架构
系统采用模块化插件架构,每个业务模块独立开发、独立注册、独立路由,互不依赖:
┌─────────────────────────────────────────────────────┐
│ 前端框架层 │
│ 路由 / 导航 / 认证 / 布局 / 信号灯体系 / UI 组件库 │
├─────────────────────────────────────────────────────┤
│ 模块注册中心 (Module Registry) │
│ 每个模块注册:路由前缀 / 导航菜单项 / 权限 / 图标 │
├──────┬──────┬──────┬──────┬──────┬──────┬──────────┤
│ 合同 │ 工资 │ 解聘 │ 社保 │ 成本 │ 考勤 │ ... │
│ 模块 │ 模块 │ 模块 │ 模块 │ 分析 │ 模块 │ 模块 │
├──────┴──────┴──────┴──────┴──────┴──────┴──────────┤
│ 共享数据层 (Prisma) │
│ Employee / Organization / User / AuditLog │
└─────────────────────────────────────────────────────┘
核心机制:
- 模块注册:每个模块通过统一接口注册路由、导航菜单、权限要求
- 共享数据:Employee/Organization/User 为核心共享表,所有模块复用
- 模块独立:新增模块不影响现有模块,可独立上线/下线
- 渐进式加载:前端按模块懒加载(React.lazy),不影响首屏性能
11.2 后端 API 扩展规范
/api/v1/
/auth ← 认证模块(v1.0)
/employees ← 员工管理(v1.0)
/contracts ← 合同管理(v1.0)
/overtime ← 加班记录(v1.0)
/termination ← 解聘管理(v1.0)
/risks ← 风险预警(v1.0)
/social-insurance ← 社保公积金(v2.0 预留)
/cost-analysis ← 人力成本分析(v3.0 预留)
/attendance ← 考勤管理(v4.0 预留)
- 所有 API 遵循 RESTful 规范,统一
/api/v1/前缀 - 统一响应格式:
{ success: boolean, data: any, error?: string } - 统一鉴权中间件,所有路由自动校验 JWT + orgId
- 新增模块只需添加路由文件 + Prisma model,不改现有代码
11.3 数据库扩展策略
- 核心表(Employee/Organization/User)稳定不变
- 新模块新增独立表,通过
employeeId/orgId关联 - Prisma schema 按模块分文件管理(Prisma 多 schema 支持)
- 数据库迁移使用 Prisma Migrate,增量迁移不破坏现有数据
12. 后续模块规划
12.1 v2.0 — 社保公积金模块
目标:自动计算五险一金缴费金额,防止少缴/漏缴风险
| ���能 | 说明 |
|---|---|
| 缴费基数设置 | 各城市社保/公积金缴费基数上下限默认值 |
| 五险一金计算 | 养老/医疗/失业/工伤/生育 + 公积金,企业/个人分担 |
| 缴费明细表 | 按员工/按月生成缴费明细 |
| 合规检查 | 缴费基数低于最低标准预警、断缴提醒 |
| 对账单导出 | 导出社保公积金月度对账单 |
数据模型预留:
interface SocialInsuranceRecord {
id: string;
orgId: string;
employeeId: string;
month: string; // YYYY-MM
base: number; // 缴费基数
pension: { company: number; personal: number };
medical: { company: number; personal: number };
unemployment: { company: number; personal: number };
workInjury: { company: number; personal: number };
maternity: { company: number; personal: number };
housingFund: { company: number; personal: number };
total: { company: number; personal: number };
}
页面路由:/social-insurance(导航名称:社保)
12.2 v3.0 — 人力资源成本分析模块
目标:可视化人力成本结构,辅助经营决策
| 功能 | 说明 |
|---|---|
| 成本总览 Dashboard | 月度/季度/年度人力成本总览 |
| 成本构成分析 | 工资/社保/公积金/加班费/补偿金 占比饼图 |
| 部门成本对比 | 各部门人力成本柱状图对比 |
| 人均成本趋势 | 人均成本月度趋势折线图 |
| 成本预警 | 人力成本占比超过营收 X% 预警 |
| 报表导出 | 导出 Excel/PDF 成本报表 |
数据模型预留:
interface CostReport {
id: string;
orgId: string;
period: string; // YYYY-MM 或 YYYY-Q1 等
totalSalary: number; // 工资总额
totalOvertimePay: number; // 加班费总额
totalSocialInsurance: number; // 社保企业部分
totalHousingFund: number; // 公积金企业部分
totalCompensation: number; // 解聘补偿金
totalCost: number; // 人力成本合计
headcount: number; // 人数
avgCostPerPerson: number; // 人均成本
}
页面路由:/cost-analysis(导航名称:成本分析)
12.3 v3.0 — 员工自助门户增强
目标:在 v1.0 员工端基础上增加考勤、请假等自助功能
| 功能 | 说明 |
|---|---|
| 考勤记录 | 查看个人考勤/加班记录 |
| 请假申请 | 在线请假审批流程 |
| 调薪记录 | 查看历史调薪记录 |
| 在线咨询 | 员工端直接问 AI 顾问 |
页面路由:/portal(扩展已有员工端)
注:v1.0 已包含员工端基础功能(工资条查看、合同查看、入职填报、合同确认),v3.0 在此基础上增强