审批
升级内容 1:审批支持按照审批定义维度授权
业务场景&问题
优化前仅支持按审批类型进行授权,无法支持客户自定义流程授权,比如同一类型的审批流,需要按流程分配不同的管理员。本次优化,新审批支持按照审批定义(即审批流)维度进行授权。
用户角色
管理员
解决方案
如图所示,改动主要如下:
将审批查看权限细化至审批类型(审批模板)维度,可具体分配该模板下的审批定义。
因历史“查看”权限默认绑定了“导出”的权限,因此本次优化,将“查看”调整为“导出”,历史数据有查看权限的默认拥有“导出”权限。
新审批支持按定义维度授权,老审批兼容逻辑为:该模板勾选“查看”,即该模板下所有老审批有查看权限。
升级内容 2:支持管理员批量操作:批量撤回/转交/催办
业务场景&问题
优化前,审批管理员进行管理操作(催办/转交/撤回)时,仅能逐条逐个操作处理,效率较低。优化后,支持管理员批量操作,提高处理效率。
用户角色
管理员
解决方案
如图所示
支持批量选中审批实例,进行批量操作。最多选中200条。
批量处理逻辑
催办:批量催办审批实例当前的任务未完成人员
转交:批量将所有未完成的待办任务转交给同一个人
撤回:管理员批量撤回所有选中的审批任务&实例。
批量处理,部分实例失败,不影响其他允许操作的实例。失败的场景是由于规则校验,如不能在1小时内重复催办。
升级内容 3:列表增加“审批结束时间”并支持筛选
业务场景&问题
客户需要按审批结束时间进行筛选流程,进行数据分析。
用户角色
管理员
解决方案
如图,列表支持额外展示“审批结束时间”,左侧筛选条件支持“审批结束时间”维度的筛选。
业务场景&问题:
审批人长时间请假的情况(如休产假),需要将审批人权限临时转交给其他同事进行审批处理
有些流程按规则会到特定审批人,比如请假流程连续向上两层审批,会到总经理;考勤流程审批人不想审批,需要授权其他人代审。
升级内容4:审批代理
用户角色:
管理员
解决方案:
进入代理设置页面
入口:设置-审批设置-代理设置
添加代理人
点击右上角“添加代理人”进行操作
参数说明:
字段 | 说明 |
代理人 | 即要将审批待办任务委托的人员,如A要休假,需要将审批委托给B代理审批,即B为代理人 |
审批人/任务办理人 | 即流程上配置的原审批人/任务办理人,如A要休假,需要将审批委托给B代理审批,即A为审批人/任务办理人 |
是否允许原审批人审批 |
|
代理开始日期-代理结束日期 | 配置时间范围内,原审批人的待办将委托给代理人审批,时间范围外生成的待办仍然为原审批人审批 |
代理流程 | 配置代理的流程 管理员仅可配置自己负责的流程 |
查看代理列表
可以查看设置的代理记录,仅未生效的代理记录支持编辑。
另外支持代理人/原审批人的搜索,以及代理开始时间和状态的筛选。
薪酬
升级内容 1:填报任务设置优化
业务场景&问题:
填报能力通用化后,客户反馈存在直接指定填报人的场景。
用户角色:
HR
解决方案:
1、谁来填报扩展:在已有角色选项增加人员选择,可直接指定人员作为填报人
2、逻辑调整:
原逻辑:全部覆盖
新逻辑:新增逻辑,具体为对于已存在的填报人则更新,对于不存在的填报人则新增
升级内容2:转正未调薪处理逻辑优化
业务场景&问题:
客户在试用期内给员工做了一次调薪。后续从薪资档案-转正未调薪进入,生成调薪记录时,当前逻辑是根据入职定薪记录的转正后标准生成调薪记录的,客户反馈有逻辑bug。
用户角色:
HR
解决方案:
转正未调薪的判断
当前:员工已转正,但未有转正调薪记录,且入职定薪记录有试用期和转正后标准
优化:员工已转正,但未有转正调薪记录,且当前生效的薪资档案记录有试用期和转正后标准
点击生成调薪记录
当前:根据入职定薪记录生成转正调薪记录
优化:根据员工当前生效的薪资档案生成转正调薪记录
文案修改
当前:已选择n人,将按定薪时录入的转正后标准生成调薪记录
优化:已选择n人,将按员工当前生效的薪资档案的转正后标准生成调薪记录
升级内容 4:【写接口】待入职员工支持更新定薪数据
业务场景&问题:
用户需要给待入职员工完成定薪,定薪前需要获取薪资计划
用户角色:
IT、二开
解决方案:
新增获取薪资计划详情接口
【入参】
请求参数(以下内容是接口规范主要应用于鉴权,无需业务开发):
字段 | 字段类型 | 是否必填 | 请求方式 | 说明 |
entCode | string | 是 | url中拼接param | 租户编码 |
apiCode | string | 是 | url中拼接param | 接口编码 |
sign | string | 是 | url中拼接param | 电子签名 |
timestamp | long | 是 | url中拼接param | 时间戳,单位:毫秒 |
nonce | string | 是 | url中拼接param | 随机数 |
请求body(业务接口查询参数,需要开发)
字段 | 字段类型 | 是否必填 | 说明 |
salaryPlanId | string | 否 | 薪资计划Id |
【查询逻辑】
支持指定薪资计划查询,不传入薪资计划Id时,返回当前租户所有启用中的薪资计划
【参与校验】
错误校验逻辑 | 错误编码 | 错误提示 |
salaryPlanId是否存在 | 400 | salaryPlanId薪资计划不存在 |
【出参】
字段名称 | 字段类型 | 描述 | 备注 |
code | string | 返回结果的状态码 |
|
msg | string | 返回结果的状态信息 |
|
data | Array | 结果集 |
|
└salaryPlanId | string | 薪资计划ID |
|
└salaryPlanName | string | 薪资计划名称 |
|
└salaryProjectList | Array | 薪资标准项目 |
|
└└salaryProjectId | string | 薪资标准项目ID |
|
└└salaryProjectName | string | 薪资标准项目名称 |
|
└└salaryProjectType | string | 薪资标准项目定薪方式 | 1:手动定薪 2:固定标准 3:薪资等级表 |
└└salaryProjectValue | int | 固定标准值,单位元 |
|
新增获取发薪组织接口
【入参】
请求参数(以下内容是接口规范主要应用于鉴权,无需业务开发):
字段 | 字段类型 | 是否必填 | 请求方式 | 说明 |
entCode | string | 是 | url中拼接param | 租户编码 |
apiCode | string | 是 | url中拼接param | 接口编码 |
sign | string | 是 | url中拼接param | 电子签名 |
timestamp | long | 是 | url中拼接param | 时间戳,单位:毫秒 |
nonce | string | 是 | url中拼接param | 随机数 |
请求body(业务接口查询参数,需要开发)
字段 | 字段类型 | 是否必填 | 说明 |
salaryOrgId | string | 否 | 发薪组织Id |
【查询逻辑】
支持指定发薪组织查询,不传入发薪组织Id时,返回当前租户所有启用中的发薪组织
【参与校验】
错误校验逻辑 | 错误编码 | 错误提示 |
salaryOrgId是否存在 | 400 | salaryOrgId发薪组织不存在 |
【出参】
字段名称 | 字段类型 | 描述 | 备注 |
code | string | 返回结果的状态码 |
|
msg | string | 返回结果的状态信息 |
|
data | Array | 结果集 |
|
└salaryOrgId | string | 发薪组织ID |
|
└salaryOrgName | string | 发薪组织名称 |
|
└effectDate | String | 生效日期 |
|
└salaryOrgDirector | Array | 发薪组织负责人 |
|
└└salaryOrgDirectorId | string | 发薪组织负责人Id |
|
└└salaryOrgDirectorNo | string | 发薪组织负责人工号 |
|
└remar | string | 备注 |
|
新增待入职员工薪资档案写接口
【入参】
请求参数(以下内容是接口规范主要应用于鉴权,无需业务开发):
字段 | 字段类型 | 是否必填 | 请求方式 | 说明 |
apiCode | string | 是 | url中拼接param | 接口编码 |
timestamp | long | 是 | url中拼接param | 时间戳,单位:毫秒 |
sign | string | 是 | url中拼接param | 电子签名 |
entCode | string | 是 | url中拼接param | 租户编码 |
nonce | string | 是 | url中拼接param | 随机数 |
请求body(业务接口查询参数,需要开发)
字段 | 字段类型 | 是否必填 | 说明 |
onBoardingUid | Long | 否 | 待入职员工id,与employeeNo二选一 |
employeeNo | String | 否 | 工号,与onBoardingUid二选一 |
startDate | String | 是 | 起薪日期 |
salaryPlanId | string | 否 | 薪资计划Id |
└salaryProjectList | Array | 是 | 薪资标准项目 |
└└salaryProjectId | string | 是 | 薪资标准项目ID |
└└probation | Boolean | 是 | 是否有试用期标准 枚举值 true:是 false:否 |
└└probateSalary | int | 否 | 试用期薪资标准 |
└└regularSalary | int | 是 | 转正后薪资标准 |
tax_option_id | int | 是 | 缴税类型 研发给出枚举 |
salaryOrgId | string | 否 | 发薪组织Id |
remark | string | 否 | 备注 |
└extendFields | Array | 否 | 其他自定义字段 |
└└fieldName | String | 否 | 字段唯一name |
└└fieldValue | String | 否 | 字段值 |
【写入逻辑】
一次支持一个员工的薪资档案更新,落地时无数据则创建,有数据则更新
薪资异动默认为入职定薪
【参与校验】
错误校验逻辑 | 错误编码 | 错误提示 |
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待入职员工不存在,或者已取消入职或已入职 |
salaryPlanId是否存在 | 400 | salaryPlanId薪资计划不存在 |
startDate是否早于入职日期 | 400 | startDate起薪日期不能早于入职日期 |
salaryProjectId是否在当前薪资计划中存在 | 400 | salaryProjectId薪资标准项目不存在或者不在当前薪资计划内 |
tax_option_id缴税类型是否存在 | 400 | tax_option_id缴税类型不存在 |
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 | 返回结果的状态信息 |
|
绩效
升级内容 1:目标制定时支持拖拽调整目标顺序
业务场景&问题:
当前在制定目标时,目标顺序由添加目标的先后决定,无法在填写完目标后再调整顺序,导致用户需要删除目标后重新填写
用户角色:
员工
解决方案:
如下图:在目标制定 / 目标审核修改目标时,目标旁会显示「拖拽顺序」按钮,鼠标按住即可拖拽调整顺序
O、指标可以在维度内调整顺序
一个 O 下的不同 KR 可以在这个 O 下调整顺序
暂仅支持 PC 端调整顺序,移动端暂不支持
升级内容 2:分布规则支持多层明细规则
业务场景&问题:
如下图,假设绩效等级是 S A B C D,当前分布规则支持配置 S+A+B ≤ 20% 且 S≤5%,即后者是前者的明细规则;但当前明细规则仅支持一层,不支持多层,例如无法配置为:S+A+B ≤ 20% 且 S+A ≤ 10% 且 S≤5%;但客户会有多层的需求
用户角色:
绩效管理员
解决方案:
如下图,在添加明细规则时,我们支持添加多层明细规则:
例如:规则为 S+A+B ≤ 20%,可以往下一层明细规则:S+A ≤ 10%,该规则可以再往下创建一层明细规则:S≤5%
在待办中实际校验分布时,每层规则都会校验
升级内容 3:支持设置目标默认可见范围规则
业务场景&问题:
如下图:目前目标可见的范围,由目标制定人或者所属人自己设定,其中「所有上级」+「本人」默认可见目标,但这会存在部分问题:
有时候目标可能不能对本人可见,比如纯 360 评估的活动
有时候可能还需要其他角色需要默认可见目标:例如 HRBP
有时候某些部门的目标也期望默认对他人可见:例如产品部的目标默认对运营部可见
当前上述这些场景现在无法满足
用户角色:
绩效 HR、SSC
解决方案:
如下图,在活动中,支持设置目标可见范围的「默认规则」,即员工的目标默认对哪些人可见:
「默认规则」包含两块:
按角色(基础规则):根据汇报关系、部门关系选择默认可见的角色:
例如本人、上级、部门负责人、部门 HRBP 等
默认勾选本人和上级,可取消勾选或者勾选其他角色
自定义规则(高级规则):
可以选择 XXX 的目标默认对 YYY 可见
其中 XXX、YYY 都是可以自定义设定条件组合(适用范围),例如下图 4:产研中心的目标 默认对 市场运营中台 可见
可以添加多条自定义规则
可见范围规则可以随时修改,修改后会实时生效
目标可见范围的默认规则员工不能修改,始终均会生效,即目标最终的可见范围 = 默认规则 + 员工自行选择的范围
升级内容 4:团队绩效中支持隐藏 360 评估人
业务场景&问题:
当前在【绩效待办 - 查看团队成员的绩效】和【我的团队 - 绩效】中,管理者查看下属的绩效时,可以查看绩效的全部内容,但有些内容可能比较敏感需要隐藏,例如 360 评估人
用户角色:
绩效 HR、SSC
解决方案:
如下图,在创建活动/编辑活动时支持设置 360 评估是「实名 / 匿名展示」
当设置为「匿名」后,在团队绩效中无法看到评估人姓名,只能看到评价:
人事
升级内容 1:花名册筛选支持职位族/职位类型/职位子类/部门负责人/HRBP
业务场景&问题:
花名册列表可以通过职位族、职位类进行搜索
用户角色:
HR SSC
解决方案:
花名册/历史花名册,支持职位族/职位类型/职位子类/部门负责人/HRBP进行筛选
升级内容 2:【事件通知】待入职信息变更通知
业务场景&问题:
员工进入待入职后,如果管理员修改了入职日期,能够在接口层面给个事件通知,二开团队根据该通知和客户下游系统集成,客户在待入职阶段会提前把人员在8点加入飞书,做一些与预入职的沟通,但如果改了入职日期,需要把这个人从飞书退出来,等到入职当天再加入飞书
用户角色:
IT 、二开
解决方案:
【标准版】/【旗舰版】新增待入职信息变更和取消入职接口
升级内容3:入职信息采集审批支持组合字段的自定义字段展示
业务场景&问题:
组合字段中的自定义字段,信息采集可以填写,但是审批不展示
用户角色:
HR SSC
解决方案:
修复信息采集审批展示组合字段全部字段信息
【Breaking change】升级内容 4:异动申请流程表单优化
业务场景&问题:
异动流程不一定非要调薪/换签,目前启用后就是必填,需要实施增加自定义字段,且存在由于维护了数据又隐藏了表单,导致也是理解不调薪/换签,但数据无法落地
异动时,希望删除员工任职的部分字段,如绩效环节评估人等等,目前为空代表无变化
用户角色:
HR SSC
解决方案:
分组 | 新增字段 | 系统规则 | 备注 |
调薪申请 | 薪资是否调整 | 必填,不允许删除 | 默认为否 默认联动规则:为否时,异动调薪其他字段均不展示,为是时,再展示所有异动调薪字段 如果先维护了是,并且维护了薪酬数据,又改成了否,则清空所有薪酬信息 |
换签合同 | 合同是否换签 | 必填,不允许删除 | 默认为否 默认联动规则:为否时,异动换签其他字段均不展示,为是时,再展示所有异动换签字段 如果先维护了是,并且维护了合同数据,又改成了否,则清空所有合同信息 |
异动信息 | 空值是否删除
| 必填,允许删除 | 选项:
PS:此字段支持用户不启用,落地为空时,默认按字段值为空待办不变的逻辑落地,必填字段为空默认不变化 |
【Breaking change】
异动流程,系统会增加【薪资是否调整】、【合同是否换签】的默认联动字段,当用户异动流程升级时,建议用户把自定义的字段去掉使用系统字段(需要调整流程配置)
假勤
升级内容 1:考勤确认支持0值隐藏
业务场景&问题:
目前考勤确认时,数据均会显示,但实际0值的数据是不需要额外确认的,员工查看数据时不够清晰
用户角色:
员工、考勤HR
解决方案:
在【考勤统计设置-我的出勤字段-设置可见范围时】若设置了【按周或按月查看】时,可对应显示配置项【数值为0时隐藏】
字段配置增加提示:仅按周、按月查看时隐藏,可设置数据统计内设置的字段
若设置了隐藏的字段,在我的出勤页面则不展示
升级内容 2:打卡提醒需结合弹性及出勤情况
业务场景&问题:
请假、或者出差不需要打卡的情况,员工当天是不需要打卡的,目前系统还是会按班次的上下班时间去发送打卡提醒
员工按弹性的时间上班后,下班的打卡提醒还是按班次的下班时间通知,不会按照实际弹性的时间进行提醒
用户角色:
员工、考勤HR
解决方案:
考勤组中打卡提醒设置,支持设置按【员工实际应出勤时间】计算,默认为按【班次工作时间】
选择按员工应出勤时间计算时,会有对应的info说明,需结合打卡提醒设置提前几分钟或立即提醒,联动显示打卡提醒时间
若配置了按应出勤时间进行打卡提醒时,以下情况会影响到打卡提醒时间:
考勤组内设置:
请假出差外出,设置了免打卡的规则;
入离职日期设置了免打卡的规则
班次设置:
设置了弹性考勤
设置了晚走补偿且为抵扣下一工作日时长的情况
出勤情况:
审批通过的请假记录
审批通过的出差外出,且出差外出时不需要打卡
员工打卡或补卡后
注意:
出勤日报-特殊日期考勤设置不会影响打卡提醒时间
自由工时班次不会发送打卡提醒
升级内容 3:考勤封账之后默认自动撤销在途考勤流程并提醒申请人
业务场景&问题:
考勤封账后,在途的审批流程不会受影响,客户希望能强管控封账后在途流程自动撤回
用户角色:
员工、考勤HR
解决方案:
考勤统计设置时,支持设置是否撤销假勤相关流程
假勤相关流程是指归属于假期的审批模板创建的审批定义
流程的撤销逻辑:
仅对在考勤周期内,归属于该考勤统计规则的员工生效;员工当月跨考勤组的情况,是归属于最后一天所在考勤统计规则
例如:2024年5月1日-15日,员工在考勤统计A,2024年5月16日起在考勤统计规则B,则以考勤统计规则B的设置进行控制
模板 | 撤销逻辑 |
请假 |
|
批量请假 |
|
出差 |
|
外出 |
|
加班 |
|
补卡 |
|
集体加班 |
|
注意:
若休假规则设置按工作日计算时,当请假时间与考勤账期有交集时间仅有公休日时,因对统计没有影响,此时不会撤销流程。
例如:考勤账期为自然月,员工提交了06月30日(周日)到7月3日的请假申请,若7月封存6月的数据时,因6月30日为公休日并未计算请假时长,故不会撤销该请假申请。
若申请提交日期对应的班次为跨天班次时,以申请时间对应考勤日期进行判断
例如如下图场景是统计在06月15日上
提前封存的情况也是通过整个考勤账期判断的
因考勤账期封存导致的审批中途撤销,在审批流程需展示对应的撤销提示文案:
撤销人:考勤统计规则中对应的管理员姓名,多个时默认取第一个
撤销原因:YYYY-MM-DD至YYYY-MM-DD的考勤账期数据已于{封存时间}封存,该流程未审批完成,已无法继续审批,流程自动撤销。
撤销后申请人需要收到对应流程撤销的消息通知