Files
TurboHR/docs/20260730-系统操作问题与功能对照.md

407 lines
26 KiB
Markdown
Raw Permalink 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.
# 企业用工专家系统 — 操作问题与现有功能对照分析
> 文档日期: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 项均复用现有数据和基础设施,无需新增数据模型,开发成本低,用户感知提升明显。