## 人事系统薪酬管理需求说明文档

人事系统的薪酬管理包括薪资管理，社保参保管理，公积金管理，目标在于通过薪酬管理功能管理整个公司的人力成本，并实现工资的透明化，无异议。

```人力成本=应发工资+公司社保承担部分+公司公积金承担部分```，其中
人力成本=应发工资+公司社保承担部分+公司公积金承担部分
应发工资=税前工资-非社保公积金个税扣除项
```

### 工资条目设置

工资条目用于管理工资条的公司通用发放工资项目。考虑到不同公司的工资条目不同，工资条目设置以公司（含总公司，分公司）为单位设置。工资条目主要用于管理员工每月固定发放的工资项目，如基本工资，岗位工资，绩效工资等，方便分析工资构成。工资条项目可以自定义，类型分为固定工资，浮动工资，福利补贴三个大分类。同一公司的工资条目名称不允许重复。工资条目未来可用于按条目统计各个条目的人员成本结构。

![工资条设置](image/salaryItem.png)

工资条目不提供编辑功能，如果录入错误需要删除重新添加，添加时只需要录入名称和类型即可。

| 字段名称 | 类型     | 说明                    | 是否必填 |
| ---- | ------ | --------------------- | ---- |
| 名称   | String | 同一公司不允许重名，长度不得超过16个汉字 | 是    |
| 类型   | Enum   | 选择固定工资，浮动工资和福利补贴中的一个  | 是    |

### 职级工资设置

职级工资用于设置部门内**同一岗位**不同级别的员工工资条目薪酬，作为发放工资时的参考。考虑到同一岗位在不同部门的薪资待遇不同，因此职级工资按部门设置。职级工资设置的条目来自部门所属公司的工资条，职级工资添加时需要计算该职级的总薪资。部门的职级工资按岗位-职级分层级展示，因此不分页。列表中点击职级名称展开职级工资明细。展示时需先选择部门机构（含总公司，分公司，部门），展示只展示所在部门的职级工资，不展示下级部门的职级工资（例如财务部分为统计部和结算部，选择财务部只展示财务部的职级工资，不展示下级的统计部和结算部的职级工资）。

![职级工资设置](image/salaryLevelSetting.png)

| 字段名称   | 类型     | 说明                                                       |     |
| ------ | ------ | -------------------------------------------------------- | --- |
| 部门     | String | 关联职级所在部门的ID，不可编辑，由列表选择的部门确定，编辑时不可变更                      | 是   |
| 岗位     | String | 关联职级的岗位ID，下拉选择，支持名称搜索；编辑时不可变更。                           | 是   |
| 职级名称   | String | 不超过16个汉字，同部门同一岗位的职级名称不允许重复                               | 是   |
| 工资条目薪资 | Array  | 条目依据部门所在公司的工资条设置，薪资数额只能填非负数，小数点后最多保留2位小数，单项数值不超过99999.99 | 是   |

#### 职级工资适用员工

职级工资添加后，需要将对应职级的员工关联到对应的职级工资，以确定员工的职级和基本薪酬。选择时采用穿梭框的方式展示。左侧为部门全部员工列表，右侧为已选择员工列表。已选择的员工在左侧不可再选择。同一名员工只能适用一个职级，如需变更职级，需要先取消原职级工资关联，再加入到新的职级中。（后续会增加员工职级调整功能，可以直接变更员工职级）。

![职级工资关联员工](image/salaryLevelEmployee.png)

### 工资条管理

工资条用于确定每个月各个员工的应发工资，实发工资，以及工资明细。一方面可以向员工透明化工资构成，一方面可以真实反映每个月的人力成本。工资条管理支持导入和导出。

![工资条列表](image/salaryList.png)

工资条列表支持展示整个公司，分公司，部门的人员薪酬发放情况。可以按照月份筛选，支持按员工姓名模糊检索（如果左侧已经选择的分公司或部门则在分公司或部门内检索）。点击员工姓名可以展开工资条详情。

#### 工资条导入

工资条支持通过excel导入，导入的模板如下表所示。其中省略号代表自定义项目，例如事假扣除，违纪罚款等等，所有扣除项统一以负数录入。为避免员工姓名重复，要求通过员工手机号、部门加姓名确定员工的唯一性。导入时应当选择公司后再导入。因此需要检查部门是否属于该公司的下级。所有金额的小数点最多保留2位小数。导入时，如果有设置工资条条目，则需要列表表头的工资条条目名称与所属公司的工资条条目名称一致。自定义的条目名称不允许出现重复。

| 部门  | 姓名  | 手机号         | 税前工资 | 实发工资    | 基本工资 | 岗位工资 | 绩效工资 | 交通补贴 | 通讯补贴 | 养老保险 | 医疗保险 | 失业保险 | 工伤保险 | 生育保险 | 公积金  | 个人所得税 | ... |
| --- | --- | ----------- | ---- | ------- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ----- | --- |
| 财务部 | 李四  | 15508451233 | 6500 | 5811.68 | 2000 | 2500 | 500  | 50   | 50   | -200 | -70  | -20  | -5   | -50  | -160 | -10   | ... |

#### 工资条导出

工资条导出按照公司为单位导出，如果是总公司，则只导出该公司的员工的工资条，不导出下属分公司的员工工资条。导出的数据表格式和导入模板一致。

#### 工资条录入

系统支持按单个员工录入工资条，录入工资条时自动加载该员工的职级工资（工资条目和薪资数额），社保参保扣除金额和公积金扣除金额，职级工资的数额，参保扣除金额，公积金扣除金额仅用于参考，可以修改。其他扣除项与奖励补贴为自定义项目，如果当月该员工有则添加，没有可以选择无跳过。

```实发工资=税前应发工资-社保扣除-公积金扣除-其他扣除+奖励补贴。```
实发工资=税前应发工资-社保扣除-公积金扣除-个税扣除-其他扣除+奖励补贴。
```

未发放的工资条允许编辑，已经发放的工资条不允许编辑和删除。编辑时不允许修改部门，员工信息和发放月份，如果这部分信息录入错误需要删除重新添加。

![工资条录入](image/addSalary.png)
