407 lines
26 KiB
Markdown
407 lines
26 KiB
Markdown
# 企业用工专家系统 — 操作问题与现有功能对照分析
|
||
|
||
> 文档日期:2026-07-31
|
||
> 整理人:用户反馈 + 系统代码核查
|
||
|
||
---
|
||
|
||
## 一、花名册模块
|
||
|
||
### 1.1 合同类型覆盖问题
|
||
|
||
| 用户反馈 | 系统现状 | 差距分析 |
|
||
|---------|---------|---------|
|
||
| 只有标准劳动合同界面,劳务合同、承揽合同、临时工、非全日制等员工无法录入 | 数据库 `ContractType` 枚举支持 5 种:`FIXED`(固定期限)、`UNFIXED`(无固定期限)、`UNSIGNED`(未签)、`LABOR`(劳务)、`INTERNSHIP`(实习) | **后端已支持 LABOR 类型,但前端未暴露**。导入模板合同类型仅映射「固定期限/无固定期限/未签」3 种,缺少「劳务/实习」选项。前端合同添加界面也只展示标准劳动合同选项 |
|
||
| — | 前端 `Roster.tsx` 合同管理 Tab 和 `roster/ContractInfo.tsx` 中合同类型选择器未包含 LABOR、INTERNSHIP | **承揽合同、临时工、非全日制** 3 种类型在枚举中完全缺失,需要新增 |
|
||
|
||
### 1.2 花名册导入导出错位问题
|
||
|
||
| 用户反馈 | 系统现状 | 差距分析 |
|
||
|---------|---------|---------|
|
||
| 导出只能导出姓名、合同期限等部分基本信息,无法导出全部信息 | `export.routes.ts` 花名册导出仅 7 列:姓名、部门、状态、入职日期、合同起始、合同结束、联系方式 | **导出字段严重不足**。缺少:性别、身份证号、手机号、社保基数、公积金基数、参保城市、银行账户、紧急联系人、学历、出生日期、专项附加扣除等 |
|
||
| 导入和导出系统错位 | 导入模板 `import.routes.ts` 支持 19 个字段(姓名、部门、性别、手机号、身份证号、入职日期、月工资、社保基数、公积金基数、专项附加扣除、参保城市、紧急联系人、紧急联系电话、住址、开户行、银行账号、孕期、医疗期、工伤) | **导入 19 字段 vs 导出 7 字段,严重不对齐**。导入的数据无法完整导出回溯 |
|
||
|
||
### 1.3 现有功能
|
||
|
||
| 功能项 | 支持情况 | 实现位置 |
|
||
|-------|---------|---------|
|
||
| 单个员工录入 | ✅ 支持 | `Roster.tsx` → `AddEmployeeModal` |
|
||
| 批量导入 | ✅ 支持 Excel 导入 | `import.routes.ts` → `/import/excel` |
|
||
| 花名册导出 | ⚠️ 仅 7 列基本信息 | `export.routes.ts` → `/export/roster` |
|
||
| 全量数据导出 | ✅ 支持 JSON/Excel 格式 | `export.routes.ts` → `/export/all`(管理员权限) |
|
||
| 员工详情 | ✅ 支持 10 个 Tab 页 | `roster/EmployeeProfile.tsx`(基本信息、合同、薪税社保、考勤加班、解聘、违纪、培训、绩效、证据链、变更历史) |
|
||
| 批量续签合同 | ✅ 支持 | `Roster.tsx` → `batchRenewMutation` |
|
||
| 批量解聘 | ✅ 支持 | `Roster.tsx` → `batchTerminateMutation` |
|
||
| 调薪记录 | ✅ 支持 | `roster/modals.tsx` → `SalaryChangeModal` |
|
||
| 部门变更 | ✅ 支持 | `roster/modals.tsx` → `DeptChangeModal` |
|
||
|
||
---
|
||
|
||
## 二、工资模块
|
||
|
||
### 2.1 计薪方式覆盖问题
|
||
|
||
| 用户反馈 | 系统现状 | 差距分析 |
|
||
|---------|---------|---------|
|
||
| 只有标准工时工资模块,计件、计时方式无法录入 | `BatchEntry` 模型薪资项:`baseSalary`(基本工资)、`overtimePay`(加班费)、`allowance`(津贴)、`bonus`(奖金)、`deduction`(扣款)、`positionSalary`(岗位工资)、`performanceSalary`(绩效工资)、`senioritySalary`(工龄工资)及 4 类补贴 | **缺少计件工资字段**。无 `pieceworkCount`(件数)、`pieceworkUnitPrice`(单价)、`hourlyRate`(时薪)、`workHours`(工时) 等字段 |
|
||
| — | `PayrollBatchType` 枚举:`REGULAR`(常规)、`TERMINATION`(离职结算)、`BONUS`(年终奖/奖金)、`SEVERANCE`(补偿金按月) | **缺少计件/计时批次类型** |
|
||
|
||
### 2.2 现有功能
|
||
|
||
| 功能项 | 支持情况 | 实现位置 |
|
||
|-------|---------|---------|
|
||
| 发薪批次管理 | ✅ 支持创建/编辑/归档 | `Money.tsx` → batch tab |
|
||
| 薪酬模板 | ✅ 支持自定义薪资项 | `Money.tsx` → template tab |
|
||
| 加班费计算 | ✅ 支持工作日/休息日/法定节假日 | `Money.tsx` → overtime tab |
|
||
| 工资条管理 | ✅ 支持发布/确认/定时发送 | `Money.tsx` → payslip tab |
|
||
| Excel 导入工资 | ✅ 支持 | `import.routes.ts` → `/import/payroll` |
|
||
| 工资表导出 | ✅ 支持部门汇总 + 明细 | `Money.tsx` → 导出按钮 |
|
||
| 个税预览计算 | ✅ 支持累计预扣法 | `payroll.routes.ts` → `/payroll/tax-preview` |
|
||
| 年终奖单独计税 | ✅ 支持 | `payroll.service.ts` → `calcBonusTax` |
|
||
| 薪资项手工覆盖 | ✅ 社保/公积金可手动覆盖 | `payroll.service.ts` → `overrideSocial` |
|
||
|
||
---
|
||
|
||
## 三、社保模块
|
||
|
||
### 3.1 险种覆盖问题
|
||
|
||
| 用户反馈 | 系统现状 | 差距分析 |
|
||
|---------|---------|---------|
|
||
| 全部是正规五险一金,无社保人员模块 | `SocialInsuranceConfig` 固定 5 险:养老、医疗、失业、工伤、生育 | **缺少「无社保」选项**。员工入职时自动创建社保记录,无法标记为「不参保」 |
|
||
| 纯商险或意外险员工无法录入 | `extraInsurances` JSON 字段支持附加险种配置(名称、企业/个人比例、基数类型) | **后端已支持附加险种,但前端仅展示已有配置**。无独立的「商险管理」模块,附加险种只能在社保配置中作为附加项录入 |
|
||
| 只有五险或三险且无公积金的员工,系统也会自动匹配公积金 | 入职导入时 `import.routes.ts` 第 300 行**无条件创建** `EmployeeHousingFundRecord`,基数默认等于月工资 | **缺少「是否缴纳公积金」开关**。`EmployeeHousingFundRecord` 无 `status` 或 `optOut` 字段 |
|
||
| 基数自动为员工应发工资基数 | `import.routes.ts` 第 287 行:`housingFundBase: num(getField(r, '公积金基数')) || num(salary)` | 未填写公积金基数时自动使用月工资作为基数,**无法设为 0 或不缴** |
|
||
|
||
### 3.2 现有功能
|
||
|
||
| 功能项 | 支持情况 | 实现位置 |
|
||
|-------|---------|---------|
|
||
| 社保配置(五险比例) | ✅ 支持多城市多版本 | `SocialInsurance.tsx` → social tab |
|
||
| 公积金配置 | ✅ 支持基本/补充公积金 | `SocialInsurance.tsx` → housing tab |
|
||
| 附加险种配置 | ✅ 后端支持 JSON 字段 | `SocialInsuranceConfig.extraInsurances` |
|
||
| 社保基数调整 | ✅ 支持批量调基 | `SocialInsurance.tsx` → 调整按钮 |
|
||
| 月度社保办理 | ✅ 支持标记已办理 | `SocialInsurance.tsx` → monthly tab |
|
||
| 专项附加扣除 | ✅ 支持导入 | `import.routes.ts` → `/import/special-deduction` |
|
||
| 版本管理 | ✅ 支持历史版本 | `SocialInsurance.tsx` → 版本管理 |
|
||
| 社保导出 | ✅ 含在全量导出中 | `export.routes.ts` → `/export/all` |
|
||
|
||
---
|
||
|
||
## 四、考勤模块
|
||
|
||
### 4.1 打卡功能缺失
|
||
|
||
| 用户反馈 | 系统现状 | 差距分析 |
|
||
|---------|---------|---------|
|
||
| 无法实现打卡模块,不如钉钉/企微好用 | 系统无打卡功能,`AttendanceRecord` 模型有 `checkInTime`/`checkOutTime` 字段但无打卡接口 | **完全未实现打卡功能**。系统定位为 HR 管理后台而非考勤终端 |
|
||
| 需要借助第三方平台导出数据再手工录入,增加工作量 | 支持 Excel 批量导入考勤记录(`import.routes.ts` → `/import/monthly` 考勤记录 sheet) | **已有导入功能但无第三方系统对接**。缺少钉钉/企微/飞书 API 对接 |
|
||
|
||
### 4.2 现有功能
|
||
|
||
| 功能项 | 支持情况 | 实现位置 |
|
||
|-------|---------|---------|
|
||
| 考勤确认流程 | ✅ 支持员工端确认 | `Attendance.tsx` → confirm tab |
|
||
| 班次管理 | ✅ 支持创建/编辑班次 | `Attendance.tsx` → shifts tab |
|
||
| 排班管理 | ✅ 支持按日排班 | `Attendance.tsx` → schedule tab |
|
||
| 每日出勤记录 | ✅ 支持手动录入/查看 | `Attendance.tsx` → daily tab |
|
||
| 月度报表 | ✅ 支持汇总统计 | `Attendance.tsx` → monthly tab |
|
||
| 休假记录 | ✅ 支持请假类型管理 | `Attendance.tsx` → leaves tab |
|
||
| Excel 批量导入 | ✅ 支持月度导入 | `import.routes.ts` → `/import/monthly` |
|
||
| 员工端考勤查看 | ✅ 支持 | `portal/MyAttendance.tsx` |
|
||
|
||
---
|
||
|
||
## 五、发薪模块 — 个税自动算税
|
||
|
||
| 用户反馈 | 系统现状 | 差距分析 |
|
||
|---------|---------|---------|
|
||
| 暂时无法实现个税自动算税 | **已实现累计预扣法个税计算**:`payroll.service.ts` → `calcCumulativeTax()`,支持 7 级超额累进税率 | **用户反馈与系统现状不符**。系统已支持个税自动计算,可能在操作时未发现该功能 |
|
||
| — | `payroll.routes.ts` → `/payroll/tax-preview` 提供个税预览计算 | 前端 `Money.tsx` 有个税预览功能,支持输入薪资项后实时计算个税 |
|
||
| — | 归档批次时自动计算个税并写入 `BatchEntry.tax` | 归档时个税自动计算并锁定 |
|
||
| — | 支持年终奖单独计税:`calcBonusTax()` | 年终奖批次类型自动使用单独计税 |
|
||
| — | 支持专项附加扣除:`Employee.specialDeduction` | 个税计算时扣除专项附加扣除 |
|
||
| — | 个税跳档预警:`payroll.service.ts` 第 544 行 | 归档时检测个税异常波动并提示 |
|
||
|
||
### 现有功能
|
||
|
||
| 功能项 | 支持情况 | 说明 |
|
||
|-------|---------|------|
|
||
| 累计预扣法算税 | ✅ 已实现 | 7 级超额累进,年度累计预扣 |
|
||
| 个税实时预览 | ✅ 已实现 | 前端输入薪资项即可预览个税 |
|
||
| 年终奖单独计税 | ✅ 已实现 | 除以 12 找税率 + 速算扣除 |
|
||
| 专项附加扣除 | ✅ 已实现 | 支持导入和员工端填报 |
|
||
| 个税跳档预警 | ✅ 已实现 | 归档时自动检测 |
|
||
| YTD 累计数据 | ✅ 已实现 | 从已归档批次获取历史数据 |
|
||
|
||
---
|
||
|
||
## 六、发票模块和审批模块
|
||
|
||
| 用户反馈 | 系统现状 | 差距分析 |
|
||
|---------|---------|---------|
|
||
| 系统暂时没有发票模块 | **完全未实现**。无 Invoice 模型、无发票路由、无发票页面 | 需从零设计开发 |
|
||
| 系统暂时没有审批模块 | **部分实现**。解聘记录有 `status` 字段(DRAFT/PENDING_APPROVAL/APPROVED/REJECTED/EXECUTING/COMPLETED/CANCELLED),但无通用审批流 | 仅有解聘审批状态流转,无通用审批引擎(请假审批、调薪审批、合同审批等) |
|
||
|
||
### 现有相关功能
|
||
|
||
| 功能项 | 支持情况 | 说明 |
|
||
|-------|---------|------|
|
||
| 解聘审批流 | ⚠️ 有状态字段但无审批界面 | `TerminationRecord.status` 支持 7 种状态,但前端无审批操作入口 |
|
||
| 操作日志审计 | ✅ 支持 | `AuditLog` 模型记录所有操作 |
|
||
| 合同确认链接 | ✅ 支持 | `ContractConfirmLink` 模型,员工端确认签署 |
|
||
|
||
---
|
||
|
||
## 七、功能对照总览
|
||
|
||
| 模块 | 用户反馈问题 | 系统实际状态 | 严重程度 | 修复难度 |
|
||
|------|------------|------------|---------|---------|
|
||
| 花名册 | 缺少劳务/承揽/临时工/非全合同类型 | 枚举缺 3 种类型,前端缺 2 种展示 | 🔴 高 | 中 |
|
||
| 花名册 | 导出字段不全、导入导出错位 | 导出 7 列 vs 导入 19 列 | 🔴 高 | 低 |
|
||
| 工资 | 缺少计件/计时计薪方式 | 无相关字段和批次类型 | 🟡 中 | 高 |
|
||
| 社保 | 无社保人员无法标记 | 入职自动创建社保记录,无 optOut | 🟡 中 | 中 |
|
||
| 社保 | 商险/意外险无独立模块 | 后端有 extraInsurances 字段 | 🟡 中 | 中 |
|
||
| 社保 | 无公积金员工自动匹配 | 无条件创建公积金记录 | 🟡 中 | 低 |
|
||
| 考勤 | 无打卡功能 | 系统无打卡能力 | 🟡 中 | 高 |
|
||
| 考勤 | 第三方数据需手工导入 | 有 Excel 导入但无 API 对接 | 🟢 低 | 中 |
|
||
| 发薪 | 个税无法自动算税 | **已实现**,用户可能未发现 | 🟢 低 | — |
|
||
| 发票 | 无发票模块 | 完全未实现 | 🟡 中 | 高 |
|
||
| 审批 | 无审批模块 | 仅解聘有状态流转 | 🟡 中 | 高 |
|
||
|
||
---
|
||
|
||
## 八、建议优先级
|
||
|
||
### P0 — 立即修复(影响日常使用)
|
||
|
||
1. **花名册导出字段扩充**:对齐导入的 19 个字段,增加性别、身份证号、社保基数、公积金基数、参保城市、银行账户等
|
||
2. **社保「无社保」选项**:入职时增加「是否参保」开关,不参保则不创建社保记录
|
||
3. **公积金「不缴纳」选项**:入职时增加「是否缴纳公积金」开关,不缴纳则不创建公积金记录
|
||
|
||
### P1 — 近期优化(提升覆盖面)
|
||
|
||
4. **合同类型扩充**:新增「承揽合同」「临时工」「非全日制」3 种枚举,前端添加对应选项
|
||
5. **导入模板合同类型对齐**:导入模板增加「劳务」「实习」选项映射
|
||
6. **商险/意外险独立管理**:在社保页面增加「商险管理」Tab,独立于五险一金
|
||
|
||
### P2 — 中期规划(功能扩展)
|
||
|
||
7. **计件/计时工资**:新增 `PayrollBatchType.PIECEWORK` 和 `TIMework`,`BatchEntry` 增加件数/单价/时薪字段
|
||
8. **考勤第三方对接**:钉钉/企微/飞书 API 数据同步
|
||
9. **发票模块**:新增 Invoice 模型,支持发票录入、查验、归档
|
||
10. **通用审批引擎**:支持请假、调薪、合同等多场景审批流
|
||
|
||
---
|
||
|
||
## 九、系统现有完整模块清单
|
||
|
||
| 分类 | 模块 | 路由 | 核心功能 |
|
||
|------|------|------|---------|
|
||
| 工作台 | 总览 | `/` | 数据看板、风险提醒、月度任务、价值报告 |
|
||
| 工作台 | 工作日历 | `/calendar` | 月度 HR 事项日历 |
|
||
| 员工管理 | 花名册 | `/roster` | 员工 CRUD、批量导入、导出、合同管理、调薪、部门变更 |
|
||
| 员工管理 | 用工办理 | `/work-process` | 入职/离职流程管理 |
|
||
| 员工管理 | 考勤确认 | `/attendance` | 班次/排班/出勤/月度报表/休假 |
|
||
| 员工管理 | 解聘补偿 | `/termination` | 解聘记录、补偿金计算 |
|
||
| 员工管理 | 特殊状态 | `/special-status` | 孕期/哺乳期/工伤/医疗期 |
|
||
| 薪税社保 | 薪税管理 | `/money` | 发薪批次、薪酬模板、加班费、工资条 |
|
||
| 薪税社保 | 社保公积金 | `/social` | 五险配置、公积金配置、基数调整、月度办理 |
|
||
| 合规风控 | 证据链 | `/evidence` | 入职/合同/培训/违纪证据管理 |
|
||
| 合规风控 | 规章制度 | `/policies` | 制度发布、员工签收 |
|
||
| 合规风控 | 用工体检 | `/tools/health-check` | 5 维度合规健康度评分 |
|
||
| 合规风控 | 医疗期计算 | `/tools/medical-period` | 医疗期期限计算器 |
|
||
| 合规风控 | 年度价值 | `/tools/annual-value` | 年度 HR 价值报告 |
|
||
| AI 辅助 | AI 顾问 | `/ai-assistant` | 劳动法 AI 问答 |
|
||
| AI 辅助 | 文本模板 | `/templates` | 合同/通知/制度模板管理 |
|
||
| 系统 | 通知管理 | `/notifications` | 风险提醒通知配置 |
|
||
| 系统 | 操作日志 | `/audit` | 操作审计日志 |
|
||
| 系统 | 设置 | `/settings` | 企业信息、导入配置 |
|
||
| 员工端 | 门户 | `/portal/*` | 工资条查看、合同确认、考勤确认、制度签收、入职办理 |
|
||
|
||
---
|
||
|
||
## 十、绩效分析与统计看板
|
||
|
||
### 10.1 现状
|
||
|
||
| 功能项 | 支持情况 | 实现位置 | 说明 |
|
||
|-------|---------|---------|------|
|
||
| 绩效记录录入 | ✅ 支持 | `roster/PerformanceInfo.tsx` | 在员工详情中手动新增绩效记录(考核周期、得分、等级 A/B/C/D、评语、改进计划) |
|
||
| 绩效员工确认 | ✅ 支持 | `PerformanceRecord.employeeAck` | 员工可确认考核结果 |
|
||
| 绩效看板 | ❌ 未实现 | — | 无独立的绩效统计看板页面 |
|
||
| 绩效趋势分析 | ❌ 未实现 | — | 无绩效得分趋势、部门对比、等级分布等分析 |
|
||
| 绩效与薪酬联动 | ❌ 未实现 | — | 绩效结果未与薪酬调整、奖金分配关联 |
|
||
|
||
### 10.2 差距分析与建议
|
||
|
||
| 需求 | 现状 | 建议方案 | 预算评估 |
|
||
|------|------|---------|---------|
|
||
| 绩效统计看板 | 无 | 新增 `/tools/performance-dashboard` 页面,展示:等级分布饼图、部门绩效对比柱状图、月度/季度趋势折线图、Top/Bottom 员工排名 | 🟢 低 — 前端页面 + 1 个聚合 API,复用现有 `PerformanceRecord` 数据 |
|
||
| 绩效与薪酬联动 | 无 | 在发薪批次中增加「绩效奖金」列,自动关联最近一期绩效等级,按规则计算奖金系数 | 🟡 中 — 需扩展 `BatchEntry` 增加绩效奖金字段 + 计算规则配置 |
|
||
| 绩效改进追踪 | 有改进计划字段但无追踪 | 在绩效记录中增加「改进目标」「完成度」「复评得分」字段,支持改进闭环 | 🟢 低 — 扩展 `PerformanceRecord` 模型 + 前端展示 |
|
||
|
||
### 10.3 现有可复用的看板基础设施
|
||
|
||
| 基础设施 | 实现位置 | 复用方向 |
|
||
|---------|---------|---------|
|
||
| Dashboard 数据看板 | `Dashboard.tsx` | 绩效看板可复用 Card/图表组件和布局模式 |
|
||
| 人员统计 API | `/dashboard/workforce-stats` | 绩效看板可复用聚合统计 API 模式 |
|
||
| 年度价值报告 | `/tools/annual-value` | 绩效年度汇总可嵌入年度价值报告 |
|
||
| 图表组件 | recharts(已引入) | 直接复用饼图/柱状图/折线图 |
|
||
|
||
---
|
||
|
||
## 十一、入离职合同签署线上化
|
||
|
||
### 11.1 现状
|
||
|
||
| 功能项 | 支持情况 | 实现位置 | 说明 |
|
||
|-------|---------|---------|------|
|
||
| 入职线上化 | ✅ 已实现 | `OnboardingLink` 模型 + `portal.routes.ts` | HR 生成入职链接 → 员工扫码/点击 → 填写个人信息 → 上传附件(身份证、银行卡等)→ HR 审核 |
|
||
| 入职附件上传 | ✅ 已实现 | `portal.routes.ts` → `/onboarding/:token/upload` | 支持文件上传到 `/uploads/onboarding/` |
|
||
| 入职链接管理 | ✅ 已实现 | `OnboardingLink.status` | PENDING → APPROVED/REJECTED/CANCELLED |
|
||
| 合同签署线上化 | ✅ 已实现 | `ContractConfirmLink` 模型 + `portal.routes.ts` | HR 发送合同确认链接 → 员工手机验证码验证 → 确认签署 → 记录 IP/时间/验证码为证据 |
|
||
| 合同签署证据链 | ✅ 已实现 | `portal.routes.ts` 第 295 行 | 签署确认时自动创建证据链(IP、UserAgent、短信验证码) |
|
||
| 合同电子签署 | ⚠️ 部分 | `LaborContract.signMethod` 支持 `ELECTRONIC` | 有字段标记但未对接第三方电子签平台(如 e签宝、法大大) |
|
||
| 离职线上化 | ⚠️ 部分 | `TerminationRecord` 模型 | HR 端可发起离职/解聘流程,但员工端无离职申请入口 |
|
||
| 离职确认 | ❌ 未实现 | — | 员工无法在线确认离职/解聘结果 |
|
||
|
||
### 11.2 差距分析与建议
|
||
|
||
| 需求 | 现状 | 建议方案 | 预算评估 |
|
||
|------|------|---------|---------|
|
||
| 入职流程完善 | 已有基础流程 | 补充:入职信息预览 PDF 导出、入职指南推送、入职材料清单勾选 | 🟢 低 — 前端增强 |
|
||
| 合同电子签对接 | 有签署确认但非真电子签 | 对接 e签宝/法大大 API,实现具有法律效力的电子签名 | 🟡 中 — API 对接费用 + 开发量 |
|
||
| 员工离职申请 | 无 | 员工端门户新增离职申请入口,HR 端审批 | 🟢 低 — 复用现有门户框架 |
|
||
| 离职交接清单 | 无 | 离职流程增加交接清单(设备归还、工作交接、文件移交) | 🟢 低 — 前端表单 + 后端模型扩展 |
|
||
| 入离职统计看板 | 无 | Dashboard 新增入离职趋势图、离职率分析、入职转化率 | 🟢 低 — 复用 `Employee.hireDate` + `TerminationRecord` 数据 |
|
||
|
||
### 11.3 现有入离职线上化流程
|
||
|
||
```
|
||
入职流程(已实现):
|
||
HR 创建员工 → 生成入职链接(OnboardingLink) → 员工扫码填写信息 → 上传附件 → HR 审核 → 创建员工档案
|
||
|
||
合同签署流程(已实现):
|
||
HR 创建合同(LaborContract) → 生成确认链接(ContractConfirmLink) → 员工手机验证码验证 → 确认签署 → 自动生成证据链
|
||
|
||
离职流程(部分实现):
|
||
HR 发起解聘/离职(TerminationRecord) → 计算补偿金 → 记录证据链 → [缺失:员工确认/交接清单]
|
||
```
|
||
|
||
---
|
||
|
||
## 十二、薪酬核算线上化
|
||
|
||
### 12.1 现状
|
||
|
||
| 功能项 | 支持情况 | 实现位置 | 说明 |
|
||
|-------|---------|---------|------|
|
||
| 薪酬核算 | ✅ 已实现 | `payroll.service.ts` → `calcBatchEntry()` | 自动计算:基本工资 + 岗位/绩效/工龄工资 + 各类补贴 + 加班费 - 扣款 → 社保公积金 → 个税 → 实发 |
|
||
| 社保公积金自动计算 | ✅ 已实现 | `calcSocialInsurance()` + `calcHousingFund()` | 按城市配置比例自动计算企业和个人部分 |
|
||
| 个税自动计算 | ✅ 已实现 | `calcCumulativeTax()` | 累计预扣法,7 级超额累进 |
|
||
| 年终奖单独计税 | ✅ 已实现 | `calcBonusTax()` | 除以 12 找税率 + 速算扣除 |
|
||
| 多批次发薪 | ✅ 已实现 | `PayrollBatchType` 4 种类型 | 常规/离职结算/年终奖/补偿金按月 |
|
||
| 薪酬模板 | ✅ 已实现 | `PayslipItem` 模型 | 支持自定义薪资项和计算公式 |
|
||
| 工资条在线发放 | ✅ 已实现 | `Payslip.status` PENDING→PUBLISHED | 支持定时发送、员工端确认 |
|
||
| 工资条员工确认 | ✅ 已实现 | `Payslip.confirmedAt` | 员工查看并确认工资条 |
|
||
| Excel 导入工资 | ✅ 已实现 | `/import/payroll` | 支持批量导入工资数据 |
|
||
| 薪税汇总导出 | ✅ 已实现 | `/export/payroll` | 导出月度薪税汇总 Excel |
|
||
| 个税预览 | ✅ 已实现 | `/payroll/tax-preview` | 输入薪资项实时预览个税 |
|
||
| 个税跳档预警 | ✅ 已实现 | `payroll.service.ts` 第 544 行 | 归档时检测个税异常波动 |
|
||
| 计件/计时工资 | ❌ 未实现 | — | 无相关字段和计算逻辑 |
|
||
|
||
### 12.2 差距分析
|
||
|
||
| 需求 | 现状 | 差距 |
|
||
|------|------|------|
|
||
| 薪酬核算线上化 | **已基本实现** | 用户可能未充分了解现有功能 |
|
||
| 计件/计时工资 | 未实现 | 需扩展数据模型和计算逻辑 |
|
||
| 薪酬分析看板 | 无 | 缺少薪酬分布、薪酬趋势、部门薪酬对比等分析 |
|
||
| 调薪记录追踪 | ✅ 有 `SalaryChangeRecord` | 但缺少调薪审批流和调薪建议 |
|
||
|
||
---
|
||
|
||
## 十三、个税申报线上化
|
||
|
||
### 13.1 现状
|
||
|
||
| 功能项 | 支持情况 | 实现位置 | 说明 |
|
||
|-------|---------|---------|------|
|
||
| 个税计算 | ✅ 已实现 | `calcCumulativeTax()` | 累计预扣法,支持 7 级超额累进 |
|
||
| 个税预览 | ✅ 已实现 | `/payroll/tax-preview` | 实时预览个税明细 |
|
||
| 个税累计数据 | ✅ 已实现 | `Payslip.ytdTaxDeducted` | 年度累计已扣税额 |
|
||
| 个税申报提醒 | ✅ 已实现 | `risk.service.ts` 第 408 行 | 每月个税申报日提醒 |
|
||
| 个税申报日配置 | ✅ 已实现 | `NotificationSetting.taxDay` | 可配置每月申报截止日 |
|
||
| 个税申报报表 | ❌ 未实现 | — | 无个税申报表导出(自然人电子税务局格式) |
|
||
| 个税批量申报 | ❌ 未实现 | — | 未对接税务系统 API |
|
||
| 专项附加扣除导入 | ✅ 已实现 | `/import/special-deduction` | 支持批量导入 |
|
||
|
||
### 13.2 差距分析与建议
|
||
|
||
| 需求 | 现状 | 建议方案 | 预算评估 |
|
||
|------|------|---------|---------|
|
||
| 个税申报表导出 | 无 | 生成「个人所得税申报表」Excel,格式对齐自然人电子税务局模板 | 🟢 低 — 后端新增 1 个导出接口 |
|
||
| 个税年度汇算提示 | 无 | 每年 3-6 月提示员工进行年度汇算清缴 | 🟢 低 — 定时任务 + 通知 |
|
||
| 个税申报数据校验 | 无 | 导出前自动校验:身份证号完整性、累计数据一致性 | 🟢 低 — 校验逻辑 |
|
||
| 对接税务系统 | 无 | 调用自然人电子税务局 API 实现在线申报 | 🔴 高 — 需税务系统授权 + API 对接,成本高 |
|
||
|
||
### 13.3 个税申报线上化实施路径
|
||
|
||
```
|
||
阶段一(低成本,立即可做):
|
||
✅ 个税自动计算 → 已实现
|
||
✅ 个税申报日提醒 → 已实现
|
||
📋 个税申报表 Excel 导出 → 新增导出接口,对齐税务局模板格式
|
||
|
||
阶段二(中等成本):
|
||
📋 个税申报数据校验 → 导出前自动校验数据完整性
|
||
📋 个税年度汇算提醒 → 每年 3 月推送汇算通知
|
||
|
||
阶段三(高成本,远期规划):
|
||
📋 对接自然人电子税务局 API → 在线批量申报(需获取税务系统授权)
|
||
```
|
||
|
||
---
|
||
|
||
## 十四、综合分析与实施建议
|
||
|
||
### 14.1 功能成熟度矩阵
|
||
|
||
| 功能领域 | 计算能力 | 线上化程度 | 分析看板 | 申报对接 | 综合评分 |
|
||
|---------|---------|-----------|---------|---------|---------|
|
||
| 薪酬核算 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐ | — | 4/5 |
|
||
| 个税 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ | — | ⭐ | 3/5 |
|
||
| 入职 | ⭐⭐⭐ | ⭐⭐⭐⭐ | — | — | 3.5/5 |
|
||
| 合同签署 | ⭐⭐⭐ | ⭐⭐⭐⭐ | — | — | 3.5/5 |
|
||
| 离职 | ⭐⭐⭐⭐ | ⭐⭐ | — | — | 3/5 |
|
||
| 绩效 | ⭐⭐ | ⭐⭐ | ⭐ | — | 1.5/5 |
|
||
| 社保 | ⭐⭐⭐⭐ | ⭐⭐⭐ | — | ⭐ | 3/5 |
|
||
|
||
### 14.2 低预算优先实施清单
|
||
|
||
| 优先级 | 功能项 | 预算 | 预期效果 |
|
||
|-------|-------|------|---------|
|
||
| P0 | 个税申报表 Excel 导出 | 🟢 低 | HR 可直接用导出表去税务局申报,免去手工整理 |
|
||
| P0 | 入离职统计看板 | 🟢 低 | Dashboard 新增入离职趋势、离职率,管理层一目了然 |
|
||
| P0 | 绩效统计看板 | 🟢 低 | 新增绩效分布、部门对比、趋势分析页面 |
|
||
| P1 | 员工离职申请入口 | 🟢 低 | 员工端门户新增离职申请,完善离职线上化 |
|
||
| P1 | 薪酬分析看板 | 🟢 低 | 薪酬分布、部门薪酬对比、人均成本趋势 |
|
||
| P1 | 离职交接清单 | 🟢 低 | 离职流程增加交接确认步骤 |
|
||
| P2 | 合同电子签对接 | 🟡 中 | 对接 e签宝/法大大,实现法律效力电子签 |
|
||
| P2 | 个税申报数据校验 | 🟢 低 | 导出前校验数据完整性 |
|
||
| P3 | 对接税务系统在线申报 | 🔴 高 | 实现个税全流程线上化 |
|
||
|
||
### 14.3 实施建议总结
|
||
|
||
> **核心结论**:系统在薪酬核算和个税计算方面已具备完整的线上化能力,用户反馈"无法实现个税自动算税"可能是操作不熟练导致。当前最大的短板在于**缺乏统计分析看板**和**个税申报报表导出**。
|
||
|
||
**低成本高收益的 3 件事**:
|
||
|
||
1. **个税申报表导出**(1-2 天开发量)— 新增 `/export/tax-declaration?month=YYYY-MM` 接口,导出格式对齐自然人电子税务局模板,包含:员工姓名、身份证号、应发工资、社保扣除、公积金扣除、专项附加扣除、应纳税所得额、税率、速算扣除数、已预扣税额、本月应扣税额
|
||
2. **入离职统计看板**(2-3 天开发量)— Dashboard 新增「人员流动」卡片:本月入职人数、离职人数、离职率趋势图(近 12 个月)、部门离职分布
|
||
3. **绩效统计看板**(2-3 天开发量)— 新增 `/tools/performance-dashboard` 页面:绩效等级分布饼图、部门绩效均分对比柱状图、月度/季度趋势折线图、Top 10 / Bottom 10 员工排名
|
||
|
||
以上 3 项均复用现有数据和基础设施,无需新增数据模型,开发成本低,用户感知提升明显。
|