报表
升级内容 1:公式增加按公历或者农历获取指定时间周年
业务场景&问题:
希望查询员工未来30天的生日日期,存在农历和公历不同的情况,目前没有函数来支撑
解决方案:
函数名称 | 函数逻辑 | 示例 |
获取指定日期下一次周年日期 get_nxt_anniv() | 获取指定日期农历周年时,若农历为闰月,则会返回闰月的第一月日期,若农历日期在当年没有,则会返回前一天(大年三十和大年二十九),获取指定日期公历周年时,若对应日期当年没有,则会返回前一天(2月28和2月29) 日历类型: 1 – 公历 2 – 农历 | 当前时间为2025-01-01,出生日期为1998年8月2号,农历为七月初一,get_nxt_anniv(出生日期,2)=2025.08.23 |
获取指定日期指定年份周年日期 get_specified_yr_anniv() | 获取指定日期农历周年时,若农历为闰月,则会返回闰月的第一月日期,若农历日期在当年没有,则会返回前一天(大年三十和大年二十九),获取指定日期公历周年时,若对应日期当年没有,则会返回前一天(2月28和2月29) 日历类型: 1 – 公历 2 – 农历 指定年份: YYYY | 出生日期为1998-08-02,农历为七月初一,get_specified_yr_anniv(出生日期,2,2025)=2025.08.23 |
获取指定日期对应的农历 get_lunar_date() | 返回指定日期农历月日的字符串,例如七月初一、廿九 | 出生日期为1998-08-02,get_lunar_date(出生日期) = 七月初一 |
升级内容 2:公式增加取整和通用时间变量
业务场景&问题:
公式复杂计算时,需要在计算过程中取整
公式需要增加通用时间来解决类似指定时间的司龄计算问题 ,公式里不支持引用通用时间
时间筛选不支持自定义相对周期
解决方案:
函数名称 | 函数逻辑 | 示例 |
四舍五入 round() 向上舍入 round_up() 向下舍去 round_down() | 括号中数字字段值四舍五入、向上舍入、向下舍去到指定小数位,仅支持数字类型字段,小数位可保留0~9位 | |
通用时间 universal_time() | 根据参数返回通用时间的对应日期 F – 第一天 L – 最后一天 |
筛选条件 | 交互逻辑 | 示例 |
其他日期筛选时,选择与通用时间比较时,增加更多通用时间的相对时间返回,影响范围(报表制作、自定义字段筛选、报表/看板查询时筛选) | ||
日期字段筛选时(报表制作、自定义字段筛选、报表/看板查询时筛选),选择相对时间的自定义增加以下几个选项 |
计算时,根据相对时间进行计算,若选择的月份没有对应的日期,例如上月是2月,没有31日,返回2月最后一天,2月28日 |
升级内容 3:数据源增加默认筛选条件并支持隐藏字段
业务场景&问题:
数据源下实体较多,实体关系如何正确连接无法保证,尤其是系统内较多实体均具备时间轴,如何保证不同实体的时间轴在同一个时间线上,需要在配置报表时增加子查询,客户基本用不懂,经常导致统计数字膨胀
同一个数据源下,引入的实体存在重复字段,客户不知道使用哪个字段进行统计和筛选,导致最终数字统计不正确
数据源较多,不太清楚要使用哪个数据源可以生成想要的报表且目前数据源的选择入口比较深
解决方案:
解决方案的来源 | People的实体大概分为三类
什么时候会出现数据膨胀: 主表和关联表的连接字段缺少关联表的主键信息 例如:员工异动记录(异动后)和员工异动记录(异动前),若仅关联了员工ID,则查询异动后数据时,就会出现数据数据膨胀,若关联了员工ID和异动记录ID,则每一条异动后的数据仅会返回一会异动前记录,不会出现数据膨胀 解决数据膨胀的办法:
|
【数据源-实体】
实体连接保存后,右侧实体支持设置默认连接关系
条件字段:仅支持选择右侧实体有权限的字段
条件内容:支持选择左侧实体有权限的字段比较和标准的绝对值比较
说明:默认筛选条件的设置能够确保左侧实体和右侧实体的字段同时查询时,左侧实体的字段不会重复展示或重复计算
示例:员工异动记录有30行数据,异动类型为入职的有5行,为异动的有15行,为离职的有5行,为数据调整的有5行,默认筛选异动类型不包含数据调整的信息,则数据源仅会返回25条
实体连接关系删除后,对应的默认筛选条件会同时被删除
实体删除后,默认筛选条件会同时被删除
【实体连接关系】
实体连接关系,增加常用实体使用说明常用实体使用说明.adoc
连接关系保存后,基于右侧实体进行校验,是否所有主键字段均被关联,若有缺失实体上增加预警
自定义实体没有主键概念,暂时无需增加预警提示
右侧实体具备主键时进行校验,否则不进行校验
预警hover提示文案:
【XXX实体(左侧实体名称)和XXX实体(有侧实体名称)的字段同时查询时,XXX实体(左侧实体名称)的字段会重复展示或重复计算】
【可通过修改连接关系或者设置默认筛选条件调整】
当实体设置了默认筛选条件后,可隐藏预警提示
【字段管理】
增加实体字段的展示和隐藏,默认按实体进行分组,无权限的实体仅展示实体名称(无权限),不展示字段
已经被报表引用的字段,不支持隐藏
可设置的字段需要基于实体字段权限仅过滤,无权限字段看不到也设置不了
支持设置字段的别名,同一个实体下,字段名称和别名不允许重复,否则提示【XXX字段名已存在】
支持设置实体下的字段排序,当前实体和字段的顺序保持与创建报表时一致
报表创建和查询时,优先返回报表别名
字段管理在ATS需要支持多语言,即展示中文和英文的字段原始名称并支持设置字段的中文和英文名称,在英文环境下,若英文别名为空,优先返回英文字段原始名称
假勤
升级内容 1:出差规则支持多版本配置
业务场景&问题:
当前仅支持配置一套出差规则,不满足客户需要对不同考勤组或不同时间的出差申请适用不同的出差规则的场景,且当前修改出差规则后立即对所有出差审批生效,导致审批中的流程不满足新规则限制时,无法正常进行审批。
解决方案:
支持配置多套出差规则
历史租户已配置的出差规则整合为【默认出差规则】,并关联至所有考勤组
列表展示按创建时间降序展示,支持按规则名称搜索,按【启用中/已停用】筛选
添加或编辑规则时会校验名称不可重复
编辑出差规则时,若出差规则有关联的考勤组,则会提示:出差规则已关联考勤组,编辑后将立即生效。会导致「审批中」的出差申请,无法正常审批。若需要调整今后的出差规则,建议添加新规则后,前往「考勤组管理」调整考勤组的「出差规则」
点击确认时,若该出差规则存在审批中的出差申请,则会有二次确认弹窗,展示将会受到影响的审批名称及编号,点击「查看审批」跳转至出差记录查看流程详情
若无查看审批的权限,则展示无权限界面
员工提交、修改出差审批时,按申请人出差开始时间所在考勤组版本对应的出差规则进行校验
提交出差申请时会校验同行人的出差规则是否一致,若不一致则报错:{同行人姓名}与申请人出差规则不同,不可同时提交出差
出差申请存在多条明细组时
出差总时长展示单位:若出差单位均为小时时,以小时为单位展示。若存在有天时,则统一换算为天进行展示
本月/年累计出差时长:以申请人当前日期所在考勤组版本的出差单位进行展示
出差规则配置后,若还未关联考勤组,需在「考勤组设置」中关联出差规则使用,出差规则与关联的考勤组生效日期一致
修改出差规则时
若预期对过去考勤日期生效,则可直接修改考勤组中的出差规则,出差规则会自动按已关联的考勤组的生效日期自动生效
由于审批时会再次校验出差规则,可能导致现有流程中的出差申请无法继续审批,需要撤销后按新规则重新提交
若预期仅对未来考勤日期生效,则需新建出差规则,在「考勤组设置」中找到需要使用新的出差规则的考勤组,新增变更版本,并关联新的出差规则,可实现考勤组变更版本的生效日期之前使用原规则,之后使用新配置的出差规则
升级内容 2:支持员工所属考勤组及考勤组信息接口查询、排班结果接口写入
业务场景&问题:
客户使用其他系统进行排班,需要依据Moka中员工所在考勤组及适用的班次信息进行排班,并将排班结果写入到Moka.
解决方案:
1、员工所属考勤组查询接口
【接口形式】
请求方式POST
【接口授权】
统一走标准授权认证:OPEN API
【接口说明】:通过此接口,可以查询考勤组信息及适用的班次信息,可查询最近半年的员工所属考勤组信息。
请求体 Request Body
startDate | 是 | String | 开始日期,格式:yyyy-MM-dd |
endDate | 是 | String | 结束日期,格式:yyyy-MM-dd |
employeeUniqueIdentifierList | 是 | Array | 员工唯一标识列表 |
uniqueIdentifierType | 是 | int | 员工唯一标识类型 0:员工id 1:公司邮箱 2:员工工号 3:钉钉userid 4 :飞书userid(user_id) 5 :微信userid(明文) 默认为0(员工id) |
响应体 Response Body
字段 | 类型 | 描述 |
code | String | 返回结果的状态码 |
msg | String | 返回结果的状态信息 |
data | Json |
返回考勤组id和时间范围
返回结果data说明
字段 | 类型 | 描述 | |
startDate | 是 | String | 开始日期,格式:yyyy-MM-dd |
endDate | 是 | String | 结束日期,格式:yyyy-MM-dd |
employeeUniqueIdentifierList | 是 | Array | 员工唯一标识列表 |
publicId | 是 | Long | 公共ID,用于标识不同规则数据同一个版本 (考勤组id) |
ruleId | 是 | Long | 考勤规则id |
2、考勤组信息查询接口
【接口形式】
请求方式POST
【接口授权】
统一走标准授权认证:OPEN API
【接口说明】:通过此接口,可以查询排考勤组信息及适用的班次信息,可查询最近半年的考勤组信息。
请求体 Request Body
字段 | 必填 | 类型 | 描述 |
ruleList | 是 | Array | 考勤规则ID列表 |
employeeIdType | 否 | int | 返回员工时,需要的员工唯一标识类型 |
响应体 Response Body
字段 | 类型 | 描述 |
code | String | 返回结果的状态码 |
msg | String | 返回结果的状态信息 |
data | Json |
返回结果data说明
同一天中需要展示多个员工的班次,则date中展示多条记录
字段 | 类型 | 描述 | |
ruleId | Long | 考勤规则ID | |
publicId | Long | 公共ID,用于标识不同规则数据同一个版本 | |
buId | Long | 业务单元ID | |
entId | Long | 企业ID | |
name | String | 考勤组名称 | |
workHours | Decimal | 工时 | |
effectDate | String | 生效时间(yyyy-MM-dd) | |
expiredDate | String | 失效时间(yyyy-MM-dd) | |
attendanceType | int | 出勤规则类型(1:固定班 2:不打卡 3:排班 4:大小周) | |
weekDayShifts | Array | 工作日班次配置 | |
└weekday | int | 工作日(1星期一 2星期二 3星期三 4星期四 5星期五 6星期六 7星期日) | |
└shiftId | Long | 班次ID | |
shiftIdList | Array | 班次列表 | |
scheduleLeaderList | Array | 排班组长列表 | |
checkingAttendance | boolean | 是否考勤 | |
needClock | boolean | 是否打卡 | |
openGps | boolean | 是否开启GPS打卡 | |
gpsList | Array | GPS打卡地址列表 | |
allowOutsideClock | boolean | 是否允许外勤打卡 | |
outSideNeedAttachment | boolean | 外勤打卡附件是否必传 | |
faceCompare | boolean | 是否开启人脸识别 | |
outsideFaceCompare | boolean | 外勤是否开启人脸识别 | |
openWifi | boolean | 是否开启WIFI打卡 | |
wifiList | Array | WIFI打卡地址列表 | |
status | int | 是否启用(0否 1是) | |
clockNeedAttachment | boolean | 打卡是否需要附件 |
3、排班信息添加接口
【接口形式】
由客户主动推送排班数据过来,请求方式POST
【接口授权】
统一走标准授权认证:OPEN API
【接口说明】:
通过此接口,可以新增/更新员工排班信息(排班结果、操作时间等),可写入最近半年的排班信息。
排班写入和页面编辑同时进行时,以发布时间较晚的结果为准
支持写入多个考勤组的排班结果
【接口参数】
参数名称 | 是否必填 | 类型 | 备注 |
publicId | 是 | Long | 公共规则id(考勤组ID) |
uniqueIdentifierType | 是 | int | 用于指定传入的员工唯一标识类型 |
operatorId | 否 | Long | 操作人ID(如果不传,默认随机取一个超管) |
scheduleRecordList | 是 | Array | 员工排班列表 |
└employeeUniqueIdentifier | 是 | String | 员工唯一标识 |
└shiftId | 否 | Long | 班次ID(无班次时传null) |
└shiftDate | 是 | String | 排班日期,格式:yyyy-MM-dd |
响应体 Response Body
字段 | 类型 | 描述 | 备注 |
code | String | 返回结果的状态码 | |
msg | String | 返回结果的状态信息 | |
data | Json |
返回结果data
字段 | 类型 | 描述 | |
scheduleSuccess | boolean | 排班是否成功 | |
errorEmployeeUniqueIdentifierList | Array | 失败的员工唯一标识列表 | |
errorTips | String | 失败时的错误信息 |
【接口验证内容】
错误校验 | 校验内容 | 提示信息 |
必填校验 | 必填字段是否校验, | 请求失败,XXX必填字段内容缺失 |
员工 | 是否存在 | 请求失败,员工{id}不存在 |
员工的排班日期状态为已离职 | 请求失败,员工{id}xxxx年xx月xx日已离职 | |
员工的排班日期所在考勤组为固定班制 | 请求失败,员工{id},xxx年xx月xx日为固定班制,不可进行排班 | |
班次id | 应为员工当前考勤规则中关联的班次 | 请求失败,员工{id}不适用该班次 |
排班列表 | 仅校验关联的禁止发布的排班合规性规则 | 请求失败,工时不足,xxx年xx月xx日-xxxx年xx月xx日,有x人排班工时小于…(同排班合规性阻断提示),禁止发布,请重新调整,人员列表为:xx、xx…… |
员工同一天排了两条不同的班次 | 请求失败,员工{id}xxxx年xx月xx日存在两个不同班次,请重新调整 | |
考勤日期 | 员工当前没有出勤规则 | 出勤规则不存在 |
【数据落地】
需生成排班记录,变更来源为【接口写入】
操作时间以写入时间为准
升级内容 3:假期到期提醒支持适用范围配置
业务场景&问题:
当前假期过期提醒通知是对某个假期类型有余额的所有员工推送通知,不支持仅对其中部分员工推送通知的场景
解决方案:
假期过期提醒支持配置适用范围,默认为全体员工
支持配置多个条件组
若设置了适用范围,则仅符合适用范围条件的员工可收到假期过期提醒
该配置为租户级设置,不会校验配置人的管理范围,以员工最新信息进行展示
添加、修改适用范围后规则将实时生效
若员工发送通知时在适用范围内,修改规则后不符合适用范围,则员工已收到的通知不会自动撤回。
升级内容 4:休息班次记录时间支持自定义配置
业务场景&问题:
当前出差、请假、加班对于无班次或休息班次的时间定义不一致且规则隐藏,导致员工申请出差、按天申请请假/加班时,可能存在考勤统计差异。
解决方案:
增加休息班次记录时间配置(非必填)
若没有配置则以原逻辑为准,若配置了记录时间则以配置的记录时间为准
开始时间为当日00:00-23:59;结束时间为当日或次日00:00~23:59。时间范围不可超过24小时
半天划分时间需在记录时间范围内
该时间仅影响以下出勤事件的记录时间点,不影响考勤统计时长
出勤事件 | 方式 | 单位 | 休息班次记录时间 | |
无配置(以原逻辑为准) | 有配置 | |||
请假 | 按自然日请假,当天无班次时 | 天 | 上午:当日6:00~当日18:00 下午:当日18:00~次日5:59 全天:当日6:00~次日5:59 | 上午:【开始时间】~【半天时间】 下午:【半天时间】~【结束时间】 全天:【开始时间】~【结束时间】 |
加班 | 公休日/节假日加班 结算方式为「按申请时长结算,无需打卡」 | 天 | 上午:当日8:00~当日8:00+0.5*标准工时 下午:当日14:00~当日14:00+0.5*标准工时 全天:当日8:00~当日8:00+标准工时 | |
出差 | 公休日或节假日出差 | 天 | 上午:当日9:00~当日12:00 下午:当日12:00~当日17:00 全天:当日9:00~当日17:00 | |
小时 | 非连续多天出差:【出差申请开始时间】~【出差申请结束时间】 连续多天出差时: 出差首日:【出差申请开始时间】~17:00 中间日期:当日9:00~当日17:00 出差末日:当日9:00~【出差申请结束时间】 | 非连续多天出差:【出差申请开始时间】~【出差申请结束时间】 连续多天出差时: 出差首日:【出差申请开始时间】~【结束时间】 中间日期:【开始时间】~【结束时间】 出差末日:【开始时间】~【出差申请结束时间】 |
薪酬
升级内容 1:薪资档案逻辑优化
业务场景&问题:
薪资标准项目及薪资计划变更后,薪资档案不会自动变更,需要手动编辑员工的薪资档案才会生效,需增加同步更新的机制及提醒
调薪记录中的字段与薪资档案中的逻辑有白名单控制,字段取值逻辑不外显;
薪资档案列表查看时存在部分问题,如:未跟任职记录关联,可筛选字段缺失,批量停薪入口缺失
解决方案:
1、薪资标准项目优化
薪资标准项目支持查看薪资标准项目关联的薪资计划,若有关联的生效中的薪资计划时,不允许停用,并提示:已关联薪资计划,无法停用;点击可查看具体关联的薪资计划
编辑已关联了薪资计划的薪资标准项目时,若修改了「类型」、「发放频率」和「试用期标准」时,增加提醒:项目内容变更,请更新关联薪资计划的「年度总收入」公式配置
点击保存后会将有关联的薪资计划提醒出来,可点击跳转后直接修改更新
点击编辑后可查看推荐的系统公式,可一键引用推荐公式
在薪资标准项目的设置,增加【取值规则】配置,支持设置【试用期前后的调薪取值规则】
注意:该配置项,所有字段均只能选择一样的配置,若改配置时, 提示:所有试用期标准字段均会统一更新
薪资档案中若存在试用期标准字段时,薪资取值的逻辑增加提示:
薪资标准项目字段及薪资档案字段添加/编辑时,需同时校验「薪资标准项目」+「薪资档案」停用及启用中的字段名称,若有重复,则字段下方提示
2、薪资计划优化
薪资标准项目存在调整后,薪资计划列表中会提示待更新
添加/编辑薪资计划时,不再支持设置生效日期
注意:历史的薪资计划创建过多个版本的情况下,历史版本实际使用时是不可用的,调整为了仅可查看不可编辑
编辑时,默认需更新关联该薪资计划的员工生效中及未来生效的薪资档案,若编辑时修改了「薪资构成」和「总收入」时,保存时有强提醒内容,内容会根据修改的内容详细提醒
若是「编辑」类型的操作,会增加选项,客户可自行选择是否要更新员工的薪资档案
注意:未来生效的含审批中使用该薪资计划的员工的薪资档案信息
tips:若部分字段编辑后希望全员生效,部分希望保留员工薪资档案的原薪资,可分开编辑两次保存
点击关联了该薪资计划的员工人数,可穿透查看具体的员工信息
若不希望更新员工的薪资计划,则需要返回薪资计划列表页,可复制该薪资计划后,关联到需要更新薪资计划的员工薪资档案上
3、薪资档案优化
补充必要的人员信息分组:个人概况、离职信息、所属成本中心
包括自定义列和筛选项;
更新的列表有:全部档案、定薪管理、调薪管理、停薪管理列表
停薪管理页面增加停薪导入入口
手动停薪时,停薪原因仅取启用中的停薪原因
薪资档案中-全部档案、定薪管理、调薪管理、停薪管理的记录需要根据每条记录的生效日期对应员工的任职信息的转正日期及试用期截止日期进行判断展示对应薪资项目的数值进行展示
如员工2024年4月1日入职定薪,2024年9月1日转正调薪,2024年12月1日离职停薪;2025年2月1日重新入职定薪,2025年5月1日调薪
则全部档案内展示员工2025年2月1日重新入职后的定薪记录,调薪管理中会有2024年9月1日及2025年5月1日的2条调薪记录,数据展示对应的调薪的薪资数据;停薪管理中有2024年12月1日离职停薪记录
薪资档案内,对于当前未定薪的员工(含再次入职但还未定薪的人员),增加「发起定薪」按钮
4、操作记录
增加「薪酬设置-薪资计划」及「薪酬设置-薪资标准项目」的操作记录
升级内容 2:工资表字段及薪酬核算规则字段配置保持一致性业务场景&问题:
薪酬核算活动中字段顺序与薪酬核算规则中的顺序不一致
工资表结构的字段编辑/停用逻辑不清晰,大量字段不允许编辑,需要放开限制
工资表字段和薪酬核算字段小数位设置不一致,优先级的逻辑不清晰
工资表结构可引用的员工信息字段缺失,需要补齐必要的信息
工资表字段停用,影响薪酬核算规则配置,无相关校验
解决方案:
1、工资表结构优化
工资表结构项目若在薪酬核算规则中被使用,则不允许停用,可查看关联的薪酬核算规则
部分字段为预置字段,不论是否关联薪酬核算规则,均无法停用:姓名、工号、部门、法人公司、证件类型、性别、证件、国籍、出生日期、计薪开始日期、计薪结束日期、个税所属期、发薪组织
除以上字段外,其他字段若未关联薪酬核算规则时,允许停用
字段均允许编辑调整分组
若为「员工信息」和「考勤结果」字段,名称不允许在工资项目中修改,会引导至相关人事或考勤页面进行操作
「考勤结果」字段也支持修改小数位数
分组的「停用」需判断该分组下是否有禁止停用的字段,若有则禁止停用
分组停用时会整个分组下的字段均停用
分组启用时会整个分组下的字段均启用
支持筛选无分组的工资项目
初始化时不再预置「津补贴、奖金、考勤结果」的字段及分组
2、薪酬核算规则优化
薪酬核算规则-编辑工资项目时,支持调整分组顺序及无分组字段的顺序
注意:无分组的字段可以单独跟分组进行排序,字段顺序会与设置的一致
调整顺序后并保存后,相关页面的顺序对应调整:
薪酬核算活动-薪资计算列表页
薪酬核算活动-薪资计算-计算详情
薪酬核算活动-结果发放-计算详情
自定义字段及预置的字段均支持小数位为10位
注意:小数位这与工资表项目的小数位设置联动,若工资表结构设置了4位小数,则薪酬核算规则仅可设置4位小数;
若薪酬核算规则设置的小数位与工资项目字段的小数位不一致时,增加提示:小数位数与工资项目配置不一致,以薪酬核算规则的配置进行计算
数字类型的字段计算方式为「薪酬核算时录入」时,支持设置取整规则
薪酬核算规则与工资表结构字段的小数位不一致时,以薪酬核算规则为准
薪酬核算活动导入时,需要按配置的小数位进行校验;
编辑接口算税的映射字段时,增加提示:
已归档或者已经用历史核算规则计算的薪酬核算活动中,存在工资表字段及工资表字段分组停用,工资表字段或分组停用后不可影响已归档的数据,会显示为字段名称(已停用)或分组名称(已停用)
培训
升级内容 1:支持开通绚星云平台
业务场景&问题:
支持对接绚星云平台(即云学堂)培训平台,数据支持回写到people
解决方案:
具体见:标准版-对接绚星云学习
试用期
升级内容 1:试用期管理轮次时支持按指定时间开启
业务场景&问题:
客户需要使用试用期多轮考核的能力,但每个人每轮的开启时间不一样,只能完成一轮后再手动添加一轮,并在第二天开启,但当前轮次只能添加相对时间,无法选择具体日期
解决方案:
如下图,当前在「试用期管理」中,对某个员工添加轮次、或者修改未发起的轮次时,轮次发起时间新增「指定时间」,可以选择具体的某一天发起
可以选择过去或未来时间,若选择过去,则会在保存管理轮次后立即发起(需要上一轮考核完成)
注:当前仅前台的「试用期管理」中支持「指定时间」,在「转正方案」中对轮次暂不支持「指定时间」
绩效
升级内容 1:执行人为本人校验逻辑优化
业务场景&问题:
若模板中设定的环节执行人 ≠ 被评估人,为防止执行人错误,当前系统默认不允许执行人为本人,例如部门负责人校准,不能校准自己;为本人的执行人系统会进行拦截,这会导致两个问题:
1、例如在目标制定环节,用户在修改执行人时,原执行人不是本人,但想修改成本人去制定目标,无法修改
2、某些客户允许部门负责人在校准部门绩效时,一并校准自己的绩效(自己在自己负责的部门)
解决方案:
1、模板配置:
放开执行人不能为本人的系统限制逻辑,允许客户自行选择:当执行人为本人时是否视为异常
对于执行人 = 部门角色(例如所属部门的部门负责人)、或者工作关系(即员工任职信息里自定义的「人员」字段,例如「导师」)、或者指定人员(例如下图的「章建平」):新增「执行人为本人」的自动处理规则:不视为异常,流程正常流转
2、绩效活动中异常提醒:
仅当模板中环节的执行人设置为「视为异常,HR在活动中手动处理」时,对于自动获取的执行人,方会在下图的「执行人为空」和「执行人为本人」中显示
3、活动或者待办中修改执行人:
在活动中操作「调整执行人」或者在待办中操作「转交」,即使模板中配置的执行人 ≠ 被评估人,也不再强阻断不能修改为本人,改为提醒,如下图,由用户自行选择是否要修改为本人:
升级内容 2:新增花名册添加绩效结果接口
业务场景&问题:
当前开放接口中,添加绩效结果仅有在活动中写入结果的接口,无花名册直接添加绩效结果的接口。客户从外部写入结果不想创建活动,故目前能力不满足需求
解决方案:
新增花名册添加绩效结果接口,可以在不创建活动的情况下写入绩效结果,效果等同于通过界面操作在花名册添加绩效结果,接口文档详见开放平台:https://people.mokahr.com/docs/api/view/v1.html#-227
【入参】
请求参数(以下内容是接口规范主要应用于鉴权,无需业务开发):
字段 | 字段类型 | 是否必填 | 请求方式 | 说明 |
entCode | string | 是 | url中拼接param | 租户编码 |
apiCode | string | 是 | url中拼接param | 接口编码 |
sign | string | 是 | url中拼接param | 电子签名 |
timestamp | long | 是 | url中拼接param | 时间戳,单位:毫秒 |
nonce | string | 是 | url中拼接param | 随机数 |
请求body(业务接口查询参数,需要开发)
字段 | 字段类型 | 是否必填 | 说明 |
└resultPlanId | string | 是 | 绩效结果方案ID |
└overallRatingList | Array | 是 | 绩效等级规则列表 |
└└resultTypeId | Integer | 是 | 绩效结果类别ID |
└└overallRatingId | Integer | 是 | 绩效等级规则ID |
└employeeId | string | 是 | 员工ID |
└periodSection | Array | 是 | 评估周期 |
└└periodSectionYear | Integer | 是 | 评估周期年度 |
└└periodSectionCategory | Integer | 是 | 评估周期子类:(1, "年度"), (2, "上半年"), (3, "下半年"), (4, "第一季度"), (5, "第二季度"), (6, "第三季度"), (7, "第四季度"), (8, "一月~二月"), (9, "三月~四月"), (10, "五月~六月"), (11, "七月~八月"), (12, "九月~十月"), (13, "十一月~十二月"), (15, "一月"), (16, "二月"), (17, "三月"), (18, "四月"), (19, "五月"), (20, "六月"), (21, "七月"), (22, "八月"), (23, "九月"), (24, "十月"), (26, "十一月"), (27, "十二月"), (28, "自定义") |
└periodTime | Array | 是 | 实际评估起止时间 |
└└periodStart | Date | 是 | 实际评估开始时间 (pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") |
└└periodEnd | Date | 是 | 实际评估结束时间 (pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") |
└resultTypeList | Array | 是 | 绩效结果 |
└└resultType | Array | 是 | 结果类别 |
└└└resultTypeId | Integer | 是 | 绩效结果类别ID |
└└└overallRatingRangeId | integer | 否 | 最终评级ID |
└└└score | integer | 否 | 最终评分 |
└comments | string | 否 | 整体评语 |
└resultVisibleForEmployee | bool | 是 | 该绩效结果是否对员工本人可见 |
【参与校验】
错误校验逻辑 | 错误提示 |
必填字段未填写 | {字段名称}未填写 |
employeeId无权限 | 员工无权限 |
「评估结束时间」是否 晚于等于「评估开始时间」 | 评估结束日期应晚于或等于评估开始日期,请更正后再次尝试 |
判断「评估年度」是否是合法年度数据:需要是 1900-3000 中的整数 | 年度输入不正确,请更正后再次尝试 |
【出参】
字段名称 | 字段类型 | 描述 | 备注 |
code | string | 返回结果的状态码 | |
msg | string | 返回结果的状态信息 | |
data | Array | 结果集 | 无 |
【写入逻辑】
数据落地:
添加后,若某个被评估人相同周期内存在手动添加/导入的结果,则进行覆盖;如果没有则新增该结果
相同周期定义:「评估年度」「评估周期」「评估开始日期」「评估结束日期」均相同方视为相同
接口
升级内容 1:人事接口查询和回写优化
业务场景&问题:
当前任职信息查询接口缺少员工个人信息下的自定义分组数据
查询是枚举返回的是数据库ID,回写人事档案时,枚举要求回写业务枚举ID,规则不一致
添加和更新员工接口回写时,员工附件字段不支持一个字段多个值
解决方案:
【当前任职信息接口增加个人信息自定义分组查询】
支持返回个人信息-自定义分组的字段
【元数据查询接口支持返回枚举的业务ID】
返回增加idx
员工添加、更新接口说明文档增加单选类型字段枚举需要使用idx
【添加和更新员工接口支持一个附件字段多个值】
个人信息-附件信息中的字段,支持一个字段多个值
由于接口定义变化,存量客户如果想要使用对应能力,需要重新对接新版接口