编辑 | blame | 历史 | 原始文档

社保公积金方案改为「按部门绑定」 - 前端联调方案

变更背景

原来社保公积金方案只能一个员工一个员工地在「员工社保公积金档案」里绑定,几百号人逐个维护不现实。
现在方案本身可以挂「适用部门」,薪资核算时按员工所在部门取方案;原来的员工档案保留作个别覆盖。

涉及页面

  • 社保公积金方案(/hrm/salary/social-security-scheme):表单新增「适用部门」「默认社保基数」「默认公积金基数」,列表新增「适用部门」列
  • 薪资核算(/hrm/salary/calculation):无需改造,接口入参本来就有 deptId,行为自动生效
  • 员工社保公积金档案:不改,继续作为个别覆盖入口

API

方法 路径 说明
POST /hrm/salary/social-security-scheme/create 新增方案,可带适用部门与默认基数
PUT /hrm/salary/social-security-scheme/update 修改方案,适用部门为整组替换(传空数组即解除全部部门)
GET /hrm/salary/social-security-scheme/get 详情,返回 deptIds / deptNames
GET /hrm/salary/social-security-scheme/list 列表,返回 deptIds / deptNames
GET /hrm/salary/calculation/preview 试算,入参 period + 可选 deptId

请求参数新增(create / update):

参数 类型 必填 说明
deptIds Long[] 否 适用部门ID列表;空数组或不传 = 不限定部门(全局默认方案)
defaultSocialSecurityBase Decimal 否 默认社保缴费基数;留空则用员工基本工资
defaultHousingFundBase Decimal 否 默认公积金缴费基数;留空或 0 则用社保基数

响应字段新增(get / list):

字段 类型 说明
deptIds Long[] 适用部门ID列表,未绑定返回 []
deptNames String 适用部门名称,多个用「、」连接;未绑定返回空串。名称解析失败时回退 ID=xxx
defaultSocialSecurityBase Decimal 默认社保缴费基数,可为 null
defaultHousingFundBase Decimal 默认公积金缴费基数,可为 null

响应示例:

{
  "code": 0,
  "data": {
    "id": 3,
    "name": "2026年宁夏社保标准",
    "effectiveDate": "2026-01-01",
    "deptIds": [119, 129],
    "deptNames": "生产部、仓储部",
    "defaultSocialSecurityBase": 5023.00,
    "defaultHousingFundBase": 0.00,
    "status": 0
  }
}

部门冲突报错(code 1030005027):

{
  "code": 1030005027,
  "data": null,
  "msg": "部门【生产部】已绑定方案【2025年宁夏社保标准】,无法再绑定到方案【2026年宁夏社保标准】。请先在原方案上取消该部门,或改选其它部门"
}

字段展示规则

字段 展示位置 说明
适用部门 方案表单(多选树) 不选表示全局默认方案,placeholder 已写明「只对所选部门本级的员工生效」
适用部门 方案列表 直接展示后端 deptNames;为空时显示「全局默认」标签
默认社保基数 / 默认公积金基数 方案表单 InputNumber,min: 0、precision: 2,允许留空
社保/公积金扣款 核算列表、试算弹窗 无需改动,后端按新优先级取数

业务规则说明

场景 规则
比例来源优先级 ① 员工社保档案指定的方案 ② 员工所在部门绑定的启用方案(生效日期 ≤ 核算期间,取最新) ③ 未绑定任何部门的启用方案中生效日期最新者(全局默认) ④ 都没有则用代码默认比例
缴费基数优先级 社保基数:档案 → 方案默认社保基数 → 员工基本工资;公积金基数:档案 → 方案默认公积金基数(>0 才用)→ 社保基数
部门覆盖范围 只覆盖所选部门**本级**的员工,不含子部门
一个部门的归属 一个部门同时只能绑定一个方案;保存时若该部门已被别的方案占用,返回上面那条精确报错
删除方案 方案删除时其部门关联一并解除,部门随之空闲

注意事项

  • 方案的「适用部门」是**整组替换**语义:编辑时要把当前绑定的部门全部回显到多选框里再提交,不能只提交本次新增的部门。
  • 存量方案默认没有绑定任何部门,因此都是「全局默认」候选;此时核算结果与改造前完全一致(万通 23 名员工口径已逐行核对一致),要生效必须先给方案填「默认缴费基数」并把方案绑到部门。
  • 员工社保公积金档案里已指定方案的员工,永远优先走档案,方案绑定部门不会改变他们的金额。
  • 比例输入框走的是「百分比显示、小数存储」:界面填 8.5 表示 8.5%,落库 0.085;显示保留 2 位百分比小数,与数据库 decimal(5,4) 精度一一对应。个税税率配置页的表单与列表同口径。