升级内容
绩效
升级内容 1:执行人支持获取虚线上级的虚线上级业务场景&问题:
如下图,当前绩效流程的执行人,「工作关系」下实现汇报关系可以取到三级(直接上级、隔级上级、三级上级),但虚线汇报关系只能取到一级(虚线上级),当客户需要取到二级、三级虚线上级时,无法配置
解决方案:
如下图,绩效模板中,环节的执行人实线汇报关系和虚线汇报关系均支持获取到三级:
直接上级:即被评估人的直接上级
实线隔级上级:即被评估人的直接上级的直接上级
实线三级上级:即被评估人的直接上级的直接上级的直接上级
虚线上级:即被评估人的虚线上级
虚线隔级上级:即被评估人的虚线上级的虚线上级
虚线三级上级:即被评估人的虚线上级的虚线上级的虚线上级
升级内容 2:支持评估和校准的执行人相同时,跳过后续的校准环节
业务场景&问题:
客户的绩效流程是:直接上级评估 -> 所属部门负责人校准 -> 所属部门 HRBP 校准,绩效结果以「直接上级评估」的结果为准,存在有的员工的直接上级和所属部门负责人是同一个人,导致上级在评估完后,又需要重复校准一遍,重复工作。
解决方案:
如下图,支持流程是 评估 -> 校准 时,当环节执行人相同,跳过后续的校准环节(评估环节可以是单人评估或者多人评估的某个执行人)
若校准是逐级审批,同样支持当逐级审批中的某个节点的执行人与前面的评估执行人相同时,跳过该审批节点,如下图:
假勤
升级内容 1:支持发起考勤填报业务场景&问题:
考勤异常时,需要部门负责人负责确认并审批通过后进行考勤修正;目前系统不支持该功能,仅支持员工自行处理异常或HR手动处理,效率低且没有在系统留痕
解决方案:
在【出勤月报】增加【考勤填报】的按钮,支持按月维度提交员工的异常考勤状态的填报,功能与列表中选择的人员联动
【角色-功能权限-假勤】的【出勤月报】权限
【角色-功能权限-基础应用】的【考勤填报】编辑权限,超管默认添加
点击【考勤填报】后HR可发起填报活动,需要填下以下内容:
考勤填报名称
填报谁的考勤:对应列表中选中的人员
若有员工数据已封存,会预警提醒填报数据需要再解封后才生效
若有员工存在在审批中的考勤填报活动,也会提醒信息
所属年月:默认为当前视图下选中的月份,可切换月份,不可选择未来月份
谁来填报:默认为部门负责人,可以修改为其他人或其他角色
填报内容:仅支持填报所属年月内,上下班打卡异常的数据
填报截止日期:选择具体日期,截止时间在对应日期的24点(填报通用能力)
若客户开启了封存,默认为封存日期前1天;若没有开启则为当前日期+1天,可调整为其他日期
若超过了封存日期,则会提示:填报截止日期在封存日期后,填报后数据仅会更新实时数据,不会更新已封存数据,需在【出勤月报中手动解封后再封存】
填报审批:可选择【数据填报】类型的审批定义
点击确认保存后会立即发起填报活动,可在【基础应用-数据填报-考勤填报】中管理
填报人在工作台待办/IM通知中会收到对应的填报任务
点击去处理,会自动获取需要填报的员工信息,所属年月中有考勤异常的日期的数据
若员工上班卡和下班卡有打卡记录时,会自动获取打卡记录,若没有则为空
无论是否有打卡记录,均可以修改
填写时需要填写【修正原因】,无需填报的日期可以删除
可添加所属年月内的考勤日期,若为多段打卡班次时,会显示多条记录
如:2024-10-11日的班次为工作时间1为09:00-12:00,工作时间2为:16:00-20:00,则展示为第一行为2024-10-11 09:00-12:00,第二行为:2024-10-11 16:00-20:00
上下班卡的时间可选范围校验:
上班卡:前一日00:00~次日23:59
下班卡:当天00:00~次日23:59
发起审批后,需走对应的审批流程
审批通过后,数据会更新到考勤数据中,打卡来源会标记为【考勤填报修正】,且自动核算考勤结果,更新日报及月报的实时数据
管理员修正及考勤填报的打卡,info中均会显示操作人及原考勤状态
考勤填报修正的操作人为填报人
管理员修正的操作人为当时修正的操作人
考勤填报流程审批通过后撤销了流程,会将对应员工对应日期的【考勤填报修正】记录撤回
HR可在后台撤销修正时,会同时撤销【考勤填报修正】来源的记录
升级内容 2:支持人脸打卡(拍照人脸对比)
解决方案:
1、前置服务配置
人脸对比功能对接的为百度的人脸对比V3版本和人脸检测服务
解决方案:
此步骤需要联系客户成功经理支持
2、人脸对比设置(联系CSM协助配置后可以开启配置)
在【设置-假勤设置-考勤组管理】中可以对内勤打卡和外勤打卡分别设置人脸对比功能
考勤组若之前新开启人脸比对时,会提示是否立即给员工发送人脸录入通知,勾选后将会对没有完成过人脸信息录入的员工立即推送人脸录入信息
后续可在【设置-假勤设置-考勤方式管理】中管理员工的人脸录入信息
支持批量发送录入提醒,可查看员工的
员工完成人脸录入后,若发现有问题,可由HR手动重新发送提醒,员工可重新进行人脸信息录入,新录入的员工信息将会覆盖原信息
3、员工人脸信息录入及人脸对比打卡
员工在IM内会收到人脸信息采集通知,员工按操作引导完成人脸信息的录入,此时会会检测人脸照片质量,人脸检测成功后需点击【完成录入】完成信息的提交
完成录入后,员工打卡时会要求每次打卡需拍照与此照片比对是否为本人
员工打卡时,若还未完成人脸信息录入,则需要先进行人脸信息录入后才能进行打卡
若员工已完成人脸信息录入,打卡时会自动唤起摄像头,拍照后进行人脸比对,成功会返回成功,失败时会提示对应错误信息
注意:企微iOS默认前置摄像头,其他因IM限制默认为后置摄像头,需员工手动切换摄像头
外勤打卡时,点击外勤打卡时,完成人脸打卡对比;
注意:可同时支持人脸对比及传外勤照片,打卡记录管理时优先显示外勤照片
升级内容 3:员工考勤组的操作记录支持变更
业务场景&问题:
员工考勤组操作后,无法查询操作记录,若需要修改时无法进行变更
解决方案:
在【设置-假勤设置-考勤组管理-员工考勤组】增加的操作记录查看入口
点击操作记录可以查看对应操作信息
仅可查看自己操作的记录,超管可以查看全部
操作记录可以编辑和撤销
编辑时可以删除或添加员工、可修改生效日期和失效日期;
变更后考勤组不允许修改
编辑后,考勤组的匹配规则依然以创建时间的倒叙时间为准,与编辑时间无关
撤销后无法恢复,可重新设置
无论撤销或编辑了记录,均需要重新核算才会更新为最新的考勤结果
审批
升级内容 1:逐级审批-部门职责支持多选&支持人员为空时向上找
业务场景&问题:
客户多职责都需要审批,目前单选不能支持
当逐级审批时,审批至最末级,该部门职责人员都为空时,需要继续向上找一级审批,目前逐级审批不支持该配置
解决方案:
1、职责支持多选
注:多选后,仅支持会签。即配置了部门负责人&HRBP逐级审批,则只能部门负责人和HRBP顺行审批后继续下一层级的部门负责人和HRBP顺行审批。即部门负责人1->HRBP1->部门负责人2->HRBP2...
【审批现有架构暂时无法实现逐级节点内的每个层级的“或签”逻辑】
2、支持配置的职责为空时,继续向上获取下一个部门的部门职责进行审批。
【当配置多个职责时,多个职责都为空时才会出发此逻辑】
升级内容 2:新审批任务节点支持转交
业务场景&问题:
老审批任务节点支持转交,新审批不支持
解决方案:
新审批任务办理节点支持转交操作
升级内容 3:审批支持多次修改已通过的审批
业务场景&问题:
目前通过后修改仅能支持修改一次,如出差的场景不满足诉求
解决方案:
更多设置里支持设置修改限制
时间维度:1-366天,默认366;时间校验为“当前时间-审批发起时间”的时长与配置时长比较。
次数维度:1-10次,默认1
人事
升级内容 1:黑名单优化
业务场景&问题:
当前黑名单没有有效期,一旦拉黑永久生效,有些公司将离职补偿金的人员拉入黑名单,过了限制期之后可以二次入职,例如有的人限制3个月,有的人限制半年,有效期过了可以重新招聘入职,但现在没有有效期就导致会影响招聘
初次使用系统的客户,可能需要大量导入黑名单
解决方案:
1、新增黑名单有效期:
在将离职员工拉黑时,可以设置有效期,有效期到了后会解除拉黑(解除拉黑后,也会将 ATS 中该人才从「系统黑名单人才库」移动到「系统公共人才库」)】
若没设置有效期,则视为长期有效
2、支持批量导入黑名单
在花名册导入和导入平台中,新增「导入黑名单」的选项
导入模板如下图 2:需要注意:
是否拉黑:若要将离职员工加入黑名单:则是否拉黑填写「是」;若要将离职员工移除黑名单:则是否拉黑填写「否」
有效截止日期:为空代表长期有效,不为空则填写一个具体日期
升级内容 2:扫码入职
业务场景&问题:
HR 期望可以发布包含部分任职信息的二维码,让新员工自行扫码填写个人信息,填写完后,自动创建待入职记录
主要面向制造业、服务业的客户
解决方案:
配置入职二维码
入口:入职人员列表右上角
表单:可配置任职信息,所有扫码入职人员,都会应用此处配置的任职信息
表单字段:入职字段设置的「任职信息、合同信息」分组中「发起时填写=true」字段,排除「工号」、「入职日期」
新员工扫码填写信息
HR 线下将二维码发给需要入职的员工
新员工扫码填写个人信息
表单字段:入职字段设置的「基本信息、联系方式、个人概况、紧急联系人、附件信息、证件信息」分组中「发起时填写=true」字段
新员工提交表单后,二维码管理员会收到通知
HR 手动将新员工进入待入职
在扫码入职的「扫码入职人员」tab,可以看到所有扫码入职人员
点击「进入待入职」后,填写入职日期,即可创建待入职员工,后续会根据ta关联的入职计划触发通知、任务
升级内容 3:通过入职任务触发通知、任务
业务场景&问题:
不支持根据入职任务触发下一个任务/通知
场景:完成「工作邮箱确认」任务后,触发「开通邮箱」任务
任务完成后不支持抄送
场景:新员工完成入职培训后抄送 leader
解决方案:
配置入职任务、通知的时候,触发条件支持选择「完成前序任务时」。也就是说可以通过入职任务来触发新的任务、通知
当入职计划不包含前序任务时,系统会为入职计划自动添加前序任务
升级内容 4:入职电子签任务
业务场景&问题:
入职不支持电子签任务,HR 只能手动发起签署
解决方案:
入职任务新增「发起签署」类型的任务
可选多个文件模板
支持电子签/线下签署
支持手动发起/自动发起
手动发起时
系统触发任务后,会创建「待发起」的签署记录,任务负责人可以在「待办」或「签署中心」手动发起
自动发起时
仅当「签署方式=电子签」时可用
系统会自动填充文件模板,并发起签署
若遇到E签宝额度不足等问题,系统会给任务负责人发通知,需要负责人手动发起
升级内容 5:入职通知可根据信息采集审批结果触发
业务场景&问题:
新员工信息采集未通过,期望能通知招聘负责人及时联系新员工处理
解决方案:
入职通知的触发条件增加「信息采集审批通过」、「信息采集审批未通过」
电子签
升级内容 1:电子签支持催办
业务场景&问题:
电子签发出后,HR 无法催办员工
解决方案:
自动催办
入口:服务对接-电子签
开启自动催办后,系统会在每个工作日 11 点催办有「签署中」文件的员工
催办方式:短信需要客户的 E 签宝套餐有短信服务才能发,邮件无限制
手动催办
签署中心列表的催办按钮
催办消息样式
API
升级内容 1:待入职明细组数据回写
业务场景&问题:
能良有自己的ATS,会在入职前完成候选人入职登记表的采集,如工作经历、教育经历、家庭成员等信息已有,希望可以把相关数据更新到People进行后续的入职动作,避免信息采集时,员工二次填写
解决方案:
支持开启了信息采集的明细组通过接口回写,包含家庭成员、教育经历、工作经历、实习经历、自定义其他分组
【入参】
请求参数(以下内容是接口规范主要应用于鉴权,无需业务开发):
字段 | 字段类型 | 是否必填 | 请求方式 | 说明 |
entCode | string | 是 | url中拼接param | 租户编码 |
apiCode | string | 是 | url中拼接param | 接口编码 |
sign | string | 是 | url中拼接param | 电子签名 |
timestamp | long | 是 | url中拼接param | 时间戳,单位:毫秒 |
nonce | string | 是 | url中拼接param | 随机数 |
请求body(业务接口查询参数,需要开发)
字段 | 字段类型 | 是否必填 | 说明 |
└data | Json | 是 | 待入职员工详情 |
└└onBoardingUid | string | 否 | 待入职员工ID,与employeeNo二选一 |
└└employee_no | string | 否 | 待入职员工工号,与onBoardingUid二选一 |
└└group_name | string | 是 | 分组名称,教育经历、工作经历、实习经历、自定义分组、家庭成员 |
└└└└field_name | string | 否 | DF_随机字符串 |
└└└└field_value | string | 否 | 其他字段的值 电话类型字段为电话号码 地址类型字段为详细地址 |
└└└└field_contact_address_county_code | string | 否 | 地址类型字段为区编码 |
└└└└field_contact_address_city_code | string | 否 | 地址类型字段为市编码 |
└└└└field_contact_address_province_code | string | 否 | 地址类型字段为省编码 |
└└└└field_telephone_country_code | string | 否 | 电话类型字段为区号 |
└└└detail_fields | Json | 是 | 详细字段 |
【查写入逻辑】
支持一次性更新1个待入职员工的履历信息,按data 数组中的顺序执行,成功的落库并记录待入职员工ID至返回记录中,失败的记录到返回记录中
支持写入附件类型字段
根据待入职员工的分组,无对应分组数据则添加,有对应分组数据时则进行全量覆盖
已入职或者取消入职的不支持更新履历信息
数据落地:
添加操作记录(来源为:外部接口,操作人为:系统管理员)
【参与校验】
错误校验逻辑 | 错误编码 | 错误提示 |
on_boarding_uid未填写且employee_no未填写 | 400 | on_boarding_uid待入职员工ID或者工号至少填写一个 |
on_boarding_uid有值时,判断是否存在(已入职和取消入职后不支持更新) | 400 | on_boarding_uid待入职员工不存在,或者已取消入职或已入职 |
on_boarding_uid无值时,employee_no有值时,判断是否存在(已入职和取消入职后不支持更新) | 400 | employee_no待入职员工不存在,或者已取消入职或已入职 |
group_name是否填写 | 400 | group_name分组未填写 |
group_name填写,判断是否存在 | 400 | group_name分组不存在 |
field_name填写,判断是否存在 | 400 | field_name字段不存在 |
field_name必填字段是否填写 | 400 | field_nameXXX字段(必填字段field_name)未填写 |
field_name是单行文本/多行文本时,field_value是否超出长度 | 400 | 【field_name】的field_value选项值超出长度,如:离职原因(field_name)的field_value值超出长度 |
field_name是选项类型/是非类型时,field_value是否存在 | 400 | 【field_name】的field_value选项值不存在,如:性别(field_name)的field_value选项值不存在 |
field_name是数字类型/日期类型时,field_value格式是否正常 | 400 | 【field_name】的field_value字段格式不正确,如:首次参加工作时间的field_value字段格式不存在 |
field_name是人员类型时,field_value(员工ID)是否存在 | 400 | 【field_name】的field_value不存在,如:导师(field_name)的field_value不存在 |
field_name是人员类型时,field_value未填写,field_employee_no填写时,判断是否存在 | 400 | 【field_name】的field_employee_no不存在,如:导师(field_name)的field_employee_no不存在 |
field_name是电话类型时,field_telephone_country_code是否填写 | 400 | 【field_name】的field_telephone_country_code区号未填写,如:家人电话(field_name)的field_telephone_country_code区号未填写 |
field_name是电话类型时,field_telephone_country_code填写,是否存在 | 400 | 【field_name】的field_telephone_country_code区号不存在,如:家人电话(field_name)的field_telephone_country_code区号不存 |
field_name是地址类型时,field_contact_address_province_code填写,是否存在 | 400 | 【field_name】的field_contact_address_province_code省编码不存在,如:家庭住址(field_name)的field_contact_address_province_code省编码不存在 |
field_name是地址类型时,field_contact_address_city_code填写,是否存在(在省编码下) | 400 | 【field_name】的field_contact_address_city_code市编码不存在,如:家庭住址(field_name)的field_contact_address_city_code市编码不存在 |
field_name是地址类型时,field_contact_address_county_code填写,是否存在(在市编码下) | 400 | 【field_name】的field_contact_address_county_code区编码不存在,如:家庭住址(field_name)的field_contact_address_county_code区编码不存在 |
【出参】
字段名称 | 字段类型 | 描述 | 备注 |
data | object | ||
└code | String | 返回结果的状态码 | |
└msg | String | 返回结果的状态信息 | |
└on_boarding_uid | Long | 待入职员工id |
升级内容 2:薪资档案回写接口
业务场景&问题:
客户有自己的EHR,希望把薪资档案回写至系统,方便管理者在报表和我的团队看板等应用场景使用
解决方案:
添加员工薪资档案
【入参】
请求参数(以下内容是接口规范主要应用于鉴权,无需业务开发):
字段 | 字段类型 | 是否必填 | 请求方式 | 说明 |
entCode | string | 是 | url中拼接param | 租户编码 |
apiCode | string | 是 | url中拼接param | 接口编码 |
sign | string | 是 | url中拼接param | 电子签名 |
timestamp | long | 是 | url中拼接param | 时间戳,单位:毫秒 |
nonce | string | 是 | url中拼接param | 随机数 |
请求body(业务接口查询参数,需要开发)
字段 | 字段类型 | 是否必填 | 说明 |
employeeId | Long | 否 | 员工id,与employeeNo二选一 |
employeeNo | String | 否 | 工号,与employeeId二选一 |
effectDate | String | 是 | 生效日期 |
salaryPlanId | string | 是 | 薪资计划Id |
eventReasonId | string | 是 | 薪资异动原因id |
└salaryProjectList | Array | 是 | 薪资标准项目 |
└└salaryProjectId | string | 是 | 薪资标准项目ID |
└└probation | Boolean | 是 | 是否有试用期标准 枚举值
|
└└probateSalary | int | 否 | 试用期薪资标准 |
└└regularSalary | int | 是 | 转正后薪资标准 |
taxOptionId | int | 是 | 缴税类型 研发给出枚举 |
salaryOrgId | string | 是 | 发薪组织Id |
remark | string | 否 | 备注 |
└extendFields | Array | 否 | 其他自定义字段 |
└└fieldName | String | 否 | 字段唯一name |
└└fieldValue | String | 否 | 字段值 |
【写入逻辑】
一次支持添加多个员工的多条薪资档案,成功则落地,失败的返回数组ID
生成薪资档案操作记录(来源为:外部接口,操作人为:系统管理员)
【参与校验】
错误校验逻辑 | 错误编码 | 错误提示 |
employeeId未填写且employee_no未填写 | 400 | employeeId员工ID或者工号至少填写一个 |
employeeId有值时,判断是否存在(已入职和取消入职后不支持更新) | 400 | employeeId员工不存在,或者已取消入职或已入职 |
employeeId无值时,employee_no有值时,判断是否存在(已入职和取消入职后不支持更新) | 400 | employee_no员工不存在,或者已取消入职或已入职 |
salaryPlanId是否存在 | 400 | salaryPlanId薪资计划不存在 |
effectDate是否早于入职日期 | 400 | effectDate生效日期不能早于入职日期 |
eventReasonId是否存在 | 400 | eventReasonId薪资异动原因不存在 |
salaryProjectId是否在当前薪资计划中存在 | 400 | salaryProjectId薪资标准项目不存在或者不在当前薪资计划内 |
taxOptionId缴税类型是否存在 | 400 | taxOptionId缴税类型不存在 |
salaryOrgId发薪组织是否存在 | 400 | salaryOrgId发薪组织不存在 |
field_name填写,判断是否存在 | 400 | field_name字段不存在 |
field_name是单行文本/多行文本时,field_value是否超出长度 | 400 | 【field_name】的field_value选项值超出长度,如:离职原因(field_name)的field_value值超出长度 |
field_name是选项类型/是非类型时,field_value是否存在 | 400 | 【field_name】的field_value选项值不存在,如:性别(field_name)的field_value选项值不存在 |
field_name是数字类型/日期类型时,field_value格式是否正常 | 400 | 【field_name】的field_value字段格式不正确,如:首次参加工作时间的field_value字段格式不存在 |
【出参】
字段名称 | 字段类型 | 描述 | 备注 |
data | object | ||
└code | String | 返回结果的状态码 | |
└msg | String | 返回结果的状态信息 | |
└successList | Array | 成功操作的列表 | |
└└index | Integer | 操作的索引值 | |
└└salaryId | Long | 成功操作对应的薪资档案ID | |
└failedList | Array | 失败操作的列表 | |
└└index | Integer | 失败操作的索引值 | |
└└msg | String | 失败原因说明 |
更新员工薪资档案
【入参】
请求参数(以下内容是接口规范主要应用于鉴权,无需业务开发):
字段 | 字段类型 | 是否必填 | 请求方式 | 说明 |
entCode | string | 是 | url中拼接param | 租户编码 |
apiCode | string | 是 | url中拼接param | 接口编码 |
sign | string | 是 | url中拼接param | 电子签名 |
timestamp | long | 是 | url中拼接param | 时间戳,单位:毫秒 |
nonce | string | 是 | url中拼接param | 随机数 |
请求body(业务接口查询参数,需要开发)
字段 | 字段类型 | 是否必填 | 说明 |
employeeId | Long | 否 | 员工id,与employeeNo二选一 |
employeeNo | String | 否 | 工号,与employeeId二选一 |
salaryId | String | 是 | 薪资档案ID |
effectDate | String | 否 | 生效日期 |
salaryPlanId | string | 否 | 薪资计划Id |
eventReasonId | string | 否 | 薪资异动原因id |
└salaryProjectList | Array | 否 | 薪资标准项目 |
└└salaryProjectId | string | 否 | 薪资标准项目ID |
└└probation | Boolean | 否 | 是否有试用期标准 枚举值
|
└└probateSalary | int | 否 | 试用期薪资标准 |
└└regularSalary | int | 否 | 转正后薪资标准 |
taxOptionId | int | 否 | 缴税类型 研发给出枚举 |
salaryOrgId | string | 否 | 发薪组织Id |
remark | string | 否 | 备注 |
└extendFields | Array | 否 | 其他自定义字段 |
└└fieldName | String | 否 | 字段唯一name |
└└fieldValue | String | 否 | 字段值 |
【写入逻辑】
一次支持更新多个员工的多条薪资档案,成功则落地,失败的返回数组ID
入职定薪和离职停薪的薪资异动原因不支持更新
生成薪资档案操作记录(来源为:外部接口,操作人为:系统管理员)
【参与校验】
错误校验逻辑 | 错误编码 | 错误提示 |
salaryId是否存在 | 400 | salaryId薪资档案ID不存在 |
employeeId未填写且employee_no未填写 | 400 | employeeId员工ID或者工号至少填写一个 |
employeeId有值时,判断是否存在(已入职和取消入职后不支持更新) | 400 | employeeId员工不存在,或者已取消入职或已入职 |
employeeId无值时,employee_no有值时,判断是否存在(已入职和取消入职后不支持更新) | 400 | employee_no员工不存在,或者已取消入职或已入职 |
salaryPlanId是否存在 | 400 | salaryPlanId薪资计划不存在 |
effectDate是否早于入职日期 | 400 | effectDate生效日期不能早于入职日期 |
eventReasonId是否存在 | 400 | eventReasonId薪资异动原因不存在 |
eventReasonId为入职定薪和离职停薪时,不支持更新 | 400 | eventReasonId无法更新入职定薪和离职停薪的异动原因 |
salaryProjectId是否在当前薪资计划中存在 | 400 | salaryProjectId薪资标准项目不存在或者不在当前薪资计划内 |
taxOptionId缴税类型是否存在 | 400 | taxOptionId缴税类型不存在 |
salaryOrgId发薪组织是否存在 | 400 | salaryOrgId发薪组织不存在 |
field_name填写,判断是否存在 | 400 | field_name字段不存在 |
field_name是单行文本/多行文本时,field_value是否超出长度 | 400 | 【field_name】的field_value选项值超出长度,如:离职原因(field_name)的field_value值超出长度 |
field_name是选项类型/是非类型时,field_value是否存在 | 400 | 【field_name】的field_value选项值不存在,如:性别(field_name)的field_value选项值不存在 |
field_name是数字类型/日期类型时,field_value格式是否正常 | 400 | 【field_name】的field_value字段格式不正确,如:首次参加工作时间的field_value字段格式不存在 |
【出参】
字段名称 | 字段类型 | 描述 | 备注 |
data | object | ||
└code | String | 返回结果的状态码 | |
└msg | String | 返回结果的状态信息 | |
└successList | Array | 成功操作的列表 | |
└└index | Integer | 操作的索引值 | |
└└salaryId | Long | 成功操作对应的薪资档案ID | |
└failedList | Array | 失败操作的列表 | |
└└index | Integer | 失败操作的索引值 | |
└└msg | String | 失败原因说明 |
删除员工薪资档案
【入参】
请求参数(以下内容是接口规范主要应用于鉴权,无需业务开发):
字段 | 字段类型 | 是否必填 | 请求方式 | 说明 |
entCode | string | 是 | url中拼接param | 租户编码 |
apiCode | string | 是 | url中拼接param | 接口编码 |
sign | string | 是 | url中拼接param | 电子签名 |
timestamp | long | 是 | url中拼接param | 时间戳,单位:毫秒 |
nonce | string | 是 | url中拼接param | 随机数 |
请求body(业务接口查询参数,需要开发)
字段 | 字段类型 | 是否必填 | 说明 |
employeeId | Long | 否 | 员工id,与employeeNo二选一 |
employeeNo | String | 否 | 工号,与employeeId二选一 |
salaryId | String | 是 | 薪资档案ID |
【写入逻辑】
一次支持删除多个员工的多条薪资档案,成功则落地,失败的返回数组ID
生成薪资档案操作记录(来源为:外部接口,操作人为:系统管理员)
【参与校验】
错误校验逻辑 | 错误编码 | 错误提示 |
salaryId是否存在 | 400 | salaryId薪资档案ID不存在 |
employeeId未填写且employee_no未填写 | 400 | employeeId员工ID或者工号至少填写一个 |
employeeId有值时,判断是否存在(已入职和取消入职后不支持更新) | 400 | employeeId员工不存在,或者已取消入职或已入职 |
employeeId无值时,employee_no有值时,判断是否存在(已入职和取消入职后不支持更新) | 400 | employee_no员工不存在,或者已取消入职或已入职 |
【出参】
字段名称 | 字段类型 | 描述 | 备注 |
data | object | ||
└code | String | 返回结果的状态码 | |
└msg | String | 返回结果的状态信息 | |
└successList | Array | 成功操作的列表 | |
└└index | Integer | 操作的索引值 | |
└└salaryId | Long | 成功操作对应的薪资档案ID | |
└failedList | Array | 失败操作的列表 | |
└└index | Integer | 失败操作的索引值 | |
└└msg | String | 失败原因说明 |
升级内容 3:新增活动回写接口
业务场景&问题:
客户有自己的EHR,希望把算薪结果回写至系统,方便管理者在报表和我的团队看板等应用场景使用
解决方案:
获取薪资核算规则
【入参】
请求参数(以下内容是接口规范主要应用于鉴权,无需业务开发):
字段 | 字段类型 | 是否必填 | 请求方式 | 说明 |
entCode | string | 是 | url中拼接param | 租户编码 |
apiCode | string | 是 | url中拼接param | 接口编码 |
sign | string | 是 | url中拼接param | 电子签名 |
timestamp | long | 是 | url中拼接param | 时间戳,单位:毫秒 |
nonce | string | 是 | url中拼接param | 随机数 |
请求body(业务接口查询参数,需要开发)
字段 | 字段类型 | 是否必填 | 说明 |
salaryRuleId | string | 否 | 薪资核算规则Id |
【查询逻辑】
支持全量的薪资核算规则
【参与校验】
错误校验逻辑 | 错误编码 | 错误提示 |
salaryRuleId是否存在 | 400 | salaryRuleId薪资核算规则不存在 |
【出参】
字段名称 | 字段类型 | 描述 | 备注 |
code | string | 返回结果的状态码 | |
msg | string | 返回结果的状态信息 | |
data | Array | 结果集 | |
└salaryRuleId | string | 薪资核算规则Id | |
└salaryRuleName | string | 薪资核算规则名称 | |
└salaryFrequency | string | 薪资核算规则频率 枚举研发提供 | |
└salaryCycle | String | 计薪周期 枚举研发提供 | |
└attendanceCycle | String | 关联考勤周期 枚举研发提供 | |
└taxCycle | string | 个税所属期 枚举研发提供 | |
└fields | Array | 核算活动字段结果集 | |
└└fieldId | string | 字段Id | |
└└fieldName | string | 字段名称 | |
└└fieldType | string | 字段类型 | |
└└fieldDecimalPlace | String | 小数位 | |
└└groupId | String | 所属分组id | |
└└groupName | string | 所属分组名称 |
添加薪酬活动
【入参】
请求参数(以下内容是接口规范主要应用于鉴权,无需业务开发):
字段 | 字段类型 | 是否必填 | 请求方式 | 说明 |
entCode | string | 是 | url中拼接param | 租户编码 |
apiCode | string | 是 | url中拼接param | 接口编码 |
sign | string | 是 | url中拼接param | 电子签名 |
timestamp | long | 是 | url中拼接param | 时间戳,单位:毫秒 |
nonce | string | 是 | url中拼接param | 随机数 |
请求body(业务接口查询参数,需要开发)
字段 | 字段类型 | 是否必填 | 说明 |
salaryRuleId | String | 是 | 薪酬核算规则Id |
salaryMonth | String | 是 | 发薪所属年月,格式为"YYYY-MM" |
salaryRecordName | String | 否 | 薪酬核算活动名称 |
salaryScope | string | 否 | 算薪范围 研发给出枚举 |
└salaryOrgId | Array | 否 | 发薪组织id |
taxMonth | string | 否 | 个税所属年月,格式为"YYYY-MM" |
└displayFieldId | Array | 否 | 列表展示项目 |
【写入逻辑】
一次仅支持添加一个薪酬核算活动
薪酬核算活动名称无值时,按默认生成
【参与校验】
错误校验逻辑 | 错误编码 | 错误提示 |
salaryMonth同一个salaryRuleId是否已存在相同发薪所属年月 | 400 | salaryMonth已存在当月薪酬核算活动 |
salaryRecordName有值时,是否已存在 | 400 | salaryRecordName薪酬核算活动名称已存在 |
salaryScope有值时,是否存在 | 400 | salaryScope算薪范围不存在 |
salaryOrgId有值时,是否存在 | 400 | salaryOrgId发薪组织不存在 |
displayFieldId有值时,是否存在 | 400 | displayFieldId列表展示项目不存在 |
【出参】
字段名称 | 字段类型 | 描述 | 备注 |
data | object | ||
└code | String | 返回结果的状态码 | |
└msg | String | 返回结果的状态信息 | |
└recordId | Long | 成功操作对应的薪酬核算活动ID |
归档薪酬核算活动
【入参】
请求参数(以下内容是接口规范主要应用于鉴权,无需业务开发):
字段 | 字段类型 | 是否必填 | 请求方式 | 说明 |
entCode | string | 是 | url中拼接param | 租户编码 |
apiCode | string | 是 | url中拼接param | 接口编码 |
sign | string | 是 | url中拼接param | 电子签名 |
timestamp | long | 是 | url中拼接param | 时间戳,单位:毫秒 |
nonce | string | 是 | url中拼接param | 随机数 |
请求body(业务接口查询参数,需要开发)
字段 | 字段类型 | 是否必填 | 说明 |
recordId | Long | 是 | 薪酬核算活动ID |
recordStatus | String | 是 | 薪酬核算活动状态 研发给出枚举 |
【写入逻辑】
支持归档薪酬核算活动,不支持取消归档
【参与校验】
错误校验逻辑 | 错误编码 | 错误提示 |
recordId是否存在 | 400 | recordId薪酬核算活动不存在 |
recordStatus是否存在 | 400 | recordStatus薪酬核算活动状态不存在 |
【出参】
字段名称 | 字段类型 | 描述 | 备注 |
data | object | ||
└code | String | 返回结果的状态码 | |
└msg | String | 返回结果的状态信息 |
删除薪酬核算活动
【入参】
请求参数(以下内容是接口规范主要应用于鉴权,无需业务开发):
字段 | 字段类型 | 是否必填 | 请求方式 | 说明 |
entCode | string | 是 | url中拼接param | 租户编码 |
apiCode | string | 是 | url中拼接param | 接口编码 |
sign | string | 是 | url中拼接param | 电子签名 |
timestamp | long | 是 | url中拼接param | 时间戳,单位:毫秒 |
nonce | string | 是 | url中拼接param | 随机数 |
请求body(业务接口查询参数,需要开发)
字段 | 字段类型 | 是否必填 | 说明 |
recordId | Long | 是 | 薪酬核算活动ID |
【写入逻辑】
支持未归档的薪酬核算活动删除
【参与校验】
错误校验逻辑 | 错误编码 | 错误提示 |
recordId是否存在 | 400 | recordId薪酬核算活动不存在 |
recordId是否已归档 | 400 | recordId薪酬核算活动已归档 |
【出参】
字段名称 | 字段类型 | 描述 | 备注 |
data | object | ||
└code | String | 返回结果的状态码 | |
└msg | String | 返回结果的状态信息 |