一、功能概述
产品新发布了「干审表取数配置」功能,该功能主要是用于定义干部任免审批表中的取数规则。
根据中组部的填写要求和格式规范,标准预置了一套最新的取数规则及格式模板,企业用户可依据实际情况,直接采用这套预置规则,或在其基础上进行必要的调整与优化,以确保最终生成的干部任免审批表完全符合相关规定。
项目上如何评估是否需要换新版干审表?
1.老项目且干审表已经上线使用了---无需替换,因为干审表的模版是统一的,取数规则也基本不会发生变化,新功能只是让干审表每个单元格的配置更加灵活和易上手,减少二开配置
2.新项目/老项目但还未上线干审表---使用新版的干审表,新版干审表的取数接口按照中组部的填写要求进行了优化,后续使用新版干审表的需求Jira 都提到产品部进行评估,更大程度上保障标准化~
之前人事有两套标准取数接口,现在我们统一使用本接口应对项目需求,尽量减少二开老师工作量。
二、操作说明
操作路径:【干部管理】-【干部信息】-【干审表取数配置】
按功能位置打开,进入功能界面,系统显示如下:
1、功能主页面包含干审表各个单元格的取数规则,干审表字段、条件类型、取数模型、取数字段;
2、本功能支持:1)初始化取数规则;2)编辑取数规则;3)公式类规则计算;4)公式类规则选取人员测试;5)选取人员进行干审表预览;6)初始化系统内人员等;详细内容将在下文讲解~
2.1 初始化取数规则
正常来说,干审表的取数规则及样式都是由中组部固化好的,项目上可以直接使用标准的取数接口,基本来说是都可以满足的。
取数规则初始化初接口,需手动执行api/cadre.form.init.update(直接提交即可)。
暂时先手动执行,后续将会把该接口放到自动初始化脚本中。
2.2 编辑取数规则
既然标准的取数规则基本是都可以满足的,那么本功能主要是为了满足哪些业务场景呢?
因为产品部之前跟项目上也进行了调研,发现普遍存在一些二开的需求功能,比如:学历学位没有用标准字段,标准的取数接口返回不了,需要通过云函数去干预,等等。
支持本功能之后,假设项目上没有用标准字段,在本功能里面把对应的标准取数模型、字段替换掉即可,也就是说如果不是特殊情况,我们是不需要使用复杂条件做配置的,直接用标准规则就可以了。
标准提供三种取数方式,字段、公式、列表子集,若需调整标准取数规则,可选用这三种类型的取数规则进行替换,以下是取数方式的不同之处:
2.2.1 字段类型
获取配置中对应取数模型的字段,适用于直接表单取数,无特殊规则的单元格,如姓名、性别;
需要注意:
1、cadreForm列表场景中需要有该字段(Employee.meta.list.cadreForm.json)
2、传字段路径,即元数据配置中fields部分的字段取数路径“field”,如姓名传name,如果是id类型字段,如political_landscape,则传<political_landsc.name>
2.2.2 公式类型
使用标准预置公式,或者v2版公式编辑取数规则 ,公式需计算(需注意返回值格式)
标准预置公式:
名称 | 公式 | 适用场景 | 举个例子 |
---|---|---|---|
获取满足条件的字段 | SUBSET_GET_DATA("模型名","字段名","排序:选填","取数条件:选填,获取符合条件的第一条数据,如 {"name":"张三"} ") | 获取列表子集制定条件的一条数据上的某个字段,如全日制学历获取“第一学历”为“是”的那条数据的学历字段 | 全日制学历 SUBSET_GET_DATA("EmployeeEducation","education",None,{"is_first":"1","education_form":"全日制教育"}) |
转换简称 | CONVERT_EMPLOYEE_ABBREVIATION("字段",'字段类型","代码项名称") | 主要应用于籍贯、出生地等需要转换代码项的单元格 | 籍贯 CONVERT_EMPLOYEE_ABBREVIATION("native_place",'2',"common_basic_tree_item_data.中国行政区划") |
现任职务 | GET_CURRENT_JOB() | 获取最新一条简历中的履历内容(即简历按时间倒序排,获取第一条的履历内容) | 无需传参 |
入党时间 | CAL_PARTY_TIME("模型名",["政治面貌取数字段路径"],["加入时间字段"],"政治面貌代码项") | 仅适用于干审表中“入党时间”的取数,该公式内置逻辑: 1.获取的政治面貌模型中政治面貌名称为“中共党员”、“中共预备党员”的数据,取加入时间; (上述加下划线的字段为公式中传入的字段,其他为公式内置逻辑) | CAL_PARTY_TIME("EmployeePoliticalLandscape",["political_landsc","name"],["begin_date"],"common_basic_item_data.政治面貌") |
专业技术职务 | CAL_TECHNICAL("模型名",["职称名称字段路径"],["职称等级名称字段"],["取得时间字段"],"场景") | 仅适用于干审表中“专业技术职务”的取数,该公式内置逻辑: 1)先获取职称等级为“正高级”的职称名称,没有则获取“副高级”的职称名称,再没有则获取“中级”的职称名称; (上述加下划线的字段为公式中传入的字段,其他为公式内置逻辑) | CAL_TECHNICAL("TechnicalSkills",["technical_skills_n","name"],["technical_title_level"],["recruit_begin_date"]) |
目前产品预制了5个取数公式,此外还不满足的可通过V2公式实现
2.2.3 列表子集类型
适用于简历、家庭信息这种由多条数据构成的,可自定义配置取数字段
- 简历
若直接走标准取数接口,则无需修改,取数模型为空即可;
若简历项目上自定义了个新模型,可配置取数模型和对应弹性字段,(如下图)
另外对简历单元格还单独支持了云函数模式,如以上无法满足可直接传入云函数名称,云函数中需要返回list为 [{'begin_date':'','end_date':'','resume':'','des1':'','des2':''},{},{}...] ,其中des1为“备注说明(其间)”、des2为“备注说明(跨阶段)”,这两个参数可以不返回。
- 家庭信息:对应模型cadreForm场景上存在字段,可以直接对应到如下称谓、姓名、出生日期等字段,将“配置字段”替换为相应的字段路径即可。
以上三种定义取数规则的类型(字段/公式/列表)看具体的使用场景选择相应的模式,另外三者还存在区别:
字段和列表是直接取对应模型的列表数据,数据没有另外存储;而公式是通过计算将转换后的数据存储在CadreAppointForm表中,这样在预览干审表时可以直接获取指定数据,无需计算,提升预览速度。正常系统上线后人员数据发生修改时,系统会自动调用插件触发公式的计算,但当配置阶段手动修改了公式,则需要手动触发一下所有人的公式计算(当计算人数较多时,计算速度可能较慢,不要着急~前台可以看到计算进程)
产品预制的取数规则具体描述如下:
干审表字段 | 条件类型 | 取数规则 |
---|---|---|
姓名 | 字段 | 取Employee表的姓名(name)字段 |
性别 | 字段 | 取Employee表的性别(gender)字段 |
出生年月 | 公式 | 取Employee表的出生日期(birthday)字段,并转换时间格式 YYYYMM,如200808 |
年龄 | 字段 | 取Employee表的年龄(age_count)字段 |
民族 | 字段 | 取Employee表的民族(nation)字段 |
籍贯 | 公式 | 取Employee表的籍贯(native_place)字段,并根据代码项<common_basic_tree_item_data.中国行政区划>取代码项中对应的简称,如山东省济南市--->山东济南 |
出生地 | 公式 | 取Employee表的出生地(birth_place)字段,并根据代码项<common_basic_tree_item_data.中国行政区划>取代码项中对应的简称,如山东省济南市--->山东济南 |
入党时间 | 公式 | 1.获取政治面貌子集“中共党员“的加入时间,按照"YYYYMM"格式显示; |
参加工作时间 | 公式 | 取Employee表的参加工作时间(take_work_time)字段,并转换时间格式 YYYYMM,如200808 |
健康状况 | 字段 | 取Employee表的健康状况(health)字段 |
专业技术职务 | 公式 | 1.【专业技术职务】根据等级排序,取等级最高的职称 |
熟悉专业有何特长 | 字段 | 取Employee表的熟悉专业有何特长(specialty_hcm)字段 |
照片 | 字段 | 取Employee表的照片(photo)字段 |
全日制学历 | 公式 | 取教育经历子集(EmployeeEducation)中“是否第一学历”为是,并且“教育类型”为“全日制教育”的学历 |
全日制学位 | 公式 | 获取第一学历为"是"的学位,再查询是否存在同等级的学位,存在的话则拼接显示 同等级判断规则:根据预制的学位树形码表,当属于同一父级码表时,则属于同等级学位 |
全日制毕业院校系及专业 | 公式 | 获取上述全日制学历和学位所在的毕业院校和专业,如果存在多个学位的情况显示多个,学历的毕业院校及专业在上,学位的在下; 高中及以下学历,“毕业院校系及专业”栏不显示 |
在职学历 | 公式 | 获取“是否最高学历”为是,并且“教育类型”为“在职教育”的学历 |
在职学位 | 公式 | 获取“是否最高学历”为是,并且“教育类型”为“在职教育”的学位,再查询是否存在同等级的学位,存在的话则拼接显示 |
在职毕业院校系及专业 | 公式 | 获取上述在职学历和在职学位所在的毕业院校和专业,如果存在多个学位的情况显示多个,学历的毕业院校及专业在上,学位的在下; 高中及以下学历,“毕业院校系及专业”栏不显示 |
现任职务 | 公式 | JobInformation的cadre列表场景中: 获取当前所有任职,并将单位、部门、岗位合并显示,用中文逗号隔开,默认显示机构全称,如果单位、部门相同则合并展示 |
简历 | 列表子集 |
|
奖惩信息 | 公式 | 取RewardInformation-奖励信息、EmployeePunishmentInfo-惩处子集的数据,拼接规则如下:
|
考核意见 | 公式 | 获取绩效结果(PerfCycle)子集中周期cycle为"年度"的数据,取近两年的绩效结果,升序排序;多条数据中间用;隔开 |
家庭信息 | 列表子集 |
|
2.3 测试
在我们配置“公式”类型的取数时,若需要验证公式配置是否正确,逻辑是否合理,可选择指定人员对单个公式进行测试:
专员可点击操作列【测试】,在弹窗中选择专员业务范围下的员工,点击【确定】进行规则测试;测试时按照最新的公式和数据触发计算
取数规则的计算结果将返回在“测试结果”中。
2.4 干审表预览
在所有取数规则配置完成后,可在该功能中选择人员预览最终生成的干审表效果
- 点击列表上的干审表预览,选择测试人员,点击“重新计算”,此时会对该人员的按照最新公式规则进行重新计算,并返回接口数据
- 点击弹窗上的干审表预览,打开干审表预览页面,查看最终效果
2.5 初始化人员
所有取数规则测试没有问题之后,需要将所有员工都按照最新定义的取数公式计算一遍数据;
调用标准提供了接口:api/cadre.appoint.form.init.all,执行后将创建后台任务在后台执行,用来初始化人员并计算。
当人数较多时,执行可能较慢,请耐心等待,建议不要重复多次执行,有问题可联系我们~
2.6 计算
若“公式类”的干审表取数规则有调整,需要针对规则进行全员计算,计算后才生效。
勾选“公式类”的单个规则,点击【计算】,计算完成后即可。
2.7 修改信息实时同步
如上面所述,员工信息更新时会自动触发干审表数据更新,这个是通过数据插件实现的(若张三调整了人员信息中的入党时间,如何让干审表中的入党时间也可以同步更新呢?)
人事在Employee、JobInformationMaster、OuterExperience、EmployeeEducation、FamilyInformation、EmployeePoliticalLandscape、RewardInformation、EmployeePunishmentInfo、TechnicalSkills、EmpQualification等多个表中预制了自动同步的数据插件,默认隐藏以防止对不用更新干审表的项目产生影响,项目上需要在与干审表取数相关的子集上配置上同样的插件,标准子集只需要配置"meta_disabled":false,自定义子集将这段插件的配置直接粘贴到对应的model.json中即可
以Employee表为例,
在Employee.json中将TagInformation_post_create_tag_update、TagInformation_post_edit_tag_update、TagInformation_post_remove_tag_update三个插件开启。
2.8 新增人员
开启Employee.json中预置的CadreAppointForm_post_create_data插件,在新增人员时即可自动往干审表相关模型CadreAppointForm执行初始化
三、套打模版
套打模版直接上传标准模版即可,无需再进行调整(套打标识:emp_appoint:)。
标准已经预置好了插入域,格式要求都按照中组部要求应用了框架格式,基本上项目可以直接拿来用的。
lrmx格式下载模板为(套打标识lrmx:)