薪资管理

概念说明

薪资管理由两部分组成:薪资结构薪资记录

薪资结构(SalaryStructure)

薪资结构定义了一个员工的薪资组成,每个员工有且仅有一个薪资结构。

字段说明
基本工资(base_salary)员工的固定月薪,与岗位等级挂钩,不随月度表现波动
岗位津贴(position_allowance)因岗位特殊性额外发放的固定补贴,如交通补贴、通讯补贴、住房补贴等。没有则填 0
绩效系数(performance_factor)月度绩效考核的调节系数,默认 1.0,含义见下方详细说明

薪资记录(SalaryRecord)

每月为员工生成一条薪资记录,记录当月的薪资明细和实发金额。

计算公式

实际薪资 = (基本工资 + 岗位津贴) × 绩效系数

薪资记录会快照生成时的薪资结构值(通过 structure_id 关联),后续修改薪资结构不会影响已生成的历史记录。

薪资记录状态

薪资记录有完整的生命周期:

draft(草稿) → pending(待审核) → approved(已审核) → paid(已发放)
                  ↘ rejected(已驳回) ↗
状态说明可执行操作
draft刚生成,可修改绩效系数等修改、提交审核
pending已提交审核,不可修改审核通过、审核驳回
approved审核通过,等待发放确认发放
rejected审核驳回修改后重新提交
paid已发放,不可修改

绩效系数详解

绩效系数是一个乘数,作用于"基本工资 + 岗位津贴"的合计,用来反映员工当月的工作表现。

取值含义

绩效系数含义说明
1.0正常完成本职工作,无特殊奖惩
> 1.0奖励表现优秀,如加班突出贡献、项目超额完成等
< 1.0 且 > 0扣减表现不达标,如迟到早退、工作质量问题等
0全扣极端情况,当月薪资为 0

实际例子

员工张伟,薪资结构:基本工资 10000 元,岗位津贴 2000 元。

月份绩效系数场景计算过程实发薪资
2026-011.0正常出勤,完成本职工作(10000 + 2000) × 1.012000 元
2026-021.2主导项目提前交付,获评月度优秀(10000 + 2000) × 1.214400 元
2026-030.8多次迟到,季度考核不达标(10000 + 2000) × 0.89600 元
2026-041.5关键技术突破,特殊贡献奖(10000 + 2000) × 1.518000 元
2026-050.5长期请假,部分工作由他人代管(10000 + 2000) × 0.56000 元

员工李娜,薪资结构:基本工资 8000 元,岗位津贴 0 元(无津贴)。

月份绩效系数场景计算过程实发薪资
2026-011.0正常(8000 + 0) × 1.08000 元
2026-021.1加班赶工(8000 + 0) × 1.18800 元

绩效系数的设置时机

  • 薪资结构中设置默认值:创建薪资结构时指定的 performance_factor 是默认系数,通常为 1.0
  • 生成月度记录时覆盖:生成薪资记录时可以指定当月的绩效系数,不指定则使用薪资结构中的默认值
  • 草稿状态修改:薪资记录在 draft 或 rejected 状态时,可以修改绩效系数,修改时自动重算实发金额

这意味着:大多数月份直接用默认系数 1.0 生成记录即可,只在有奖惩的月份手动指定不同系数。

操作流程

1. 员工入职 → 创建薪资结构(设定基本工资、岗位津贴、默认绩效系数)
2. 每月末 → 生成月度薪资记录(单个或批量,可指定当月绩效系数)
3. 修改记录 → 在草稿/驳回状态下修改绩效系数(自动重算)
4. 提交审核 → draft/rejected → pending
5. 审核通过 → pending → approved(或驳回 → rejected)
6. 确认发放 → approved → paid(仅 admin)
7. 调薪时 → 更新薪资结构(后续月份按新结构生成,历史记录不受影响)

批量生成

每月生成记录时支持三种方式:

  1. 指定员工 ID 列表POST /salaries/records/batchemployee_ids
  2. 按部门生成:传 dept_id,为该部门下有薪资结构的在职员工生成
  3. 全员生成:不传 employee_idsdept_id,为所有有薪资结构的在职员工生成

已存在的记录自动跳过。