...
• 因待入职人员信息、信息采集人员信息实际是共用一套模型(PreEmployee)的,程序在场景中做了特殊处理以区分是入职还是采集,此处不赘述。
一个子集要同时在人员管理、入职、采集中使用,需要配置成3个子集吗?——是的,后续会规划做同步生成。一个子集要同时在人员管理、入职、采集中使用,需要配置成3个子集吗?——不用,产品已支持同步生成。
信息 | ||
---|---|---|
| ||
1、在「人员信息集管理」中配置完子集后,要结合「010214 人员信息集分配」这个功能将子集进行授权,才能在对应功能中看到该子集 |
...
子集信息 | 子集分配 | |||||||
---|---|---|---|---|---|---|---|---|
名称 | 显示名称 | 模型 | meta场景 | 子集类型 | 子集适用场景 | 适用组织 | 适用用工类型 | 授权角色 |
联系信息(本人查看) | 联系信息 | ContactInformation | owner | 人员信息 | 员工资料(本人查看) | 乘风破浪有限公司 | 正式工,派遣工 | 员工 |
联系信息(管理者查看员工) | 联系信息 | ContactInformation | manager | 人员信息 | 员工资料(管理者查看员工) | 乘风破浪有限公司 | 正式工,派遣工 | 员工 |
联系信息(员工互查) | 联系信息 | ContactInformation | employee | 人员信息 | 员工资料(员工互查) | 乘风破浪有限公司 | 正式工,派遣工 | 员工 |
子集拆分原则
1、不同的【子集类型】,要建成不同的子集:如同样是【教育经历】,在人员信息、入职管理、信息采集中都要使用,要建成3个子集。(后面产品会做便捷创建功能)。1、不同的【子集类型】,可建成相同的子集:如同样是【教育经历】,在人员信息、入职管理、信息采集中都要使用,可建成1个子集。(产品做了便捷创建功能)。
2、相同的子集类型,在不同的应用场景下,配置不同,要建成不同的子集:如【教育经历】,在人员信息管理中,需要显示全部字段,但在我的资料中显示少量字段,且有特殊的列表布局样式,这时候要拆成2个子集(不同的场景)。
...
入职/采集中子集必填 → 人员数据校验方案
之前在入职/采集的base模板中,可以配置子集是否必填(required属性),使用子集管理后,该配置需要使用【人员数据校验方案】(开发中)实现,配置可视化,且扩展性极大增强,将满足更加复杂的数据校验规则。采集的base模板中,可以配置子集是否必填(required属性),使用子集管理后,该配置需要使用【数据校验方案】实现,配置可视化,且扩展性极大增强,将满足更加复杂的数据校验规则。
产品初始化说明
打算使用子集管理的项目,请先详细阅读以上产品说明,再按照下面初始化说明进行操作,如有疑问,可先与产品部联系。
...
执行初始化接口:https://项目地址/api/sub.set.apply.state.init.state
子集管理中没有数据的话直接提交即可,有数据的话传参数“force_init”子集管理中没有数据的话直接提交即可,有数据的话传参数"force_init":true,删除现有子集信息重新生成
3、切换为走子集管理的功能逻辑
...
信息 |
---|
以上是各个功能分别对应开启的明细模版,若想把所有人员、入职、采集、我的资料全部开启子集管理,只需开以下2个模版即可: (1)Employee.meta.base.json (2)PreEmployee.meta.base..json |
4、如何新增一个自定义子集?
维护子集基本信息
弹性子集注意model命名方式 :employee_dynamic_subset.XXX (人员); pre_employee_dynamic_subset.XXX (待入职/采集)
子集分配
在功能「人员信息集分配」中,对该子集进行分配
在人员管理中查看,并维护该子集中的字段信息
5、快速创建入职和采集的子集
之前配置子集要在人员管理、入职和采集中配置3遍;
现在子集管理中,提供了快速创建子集的小工具,一键将人员信息中的子集生成到入职和采集中,通过按钮[生成到待入职]、[生成到采集]
6、?
自定义子集配置好后,会发现在主界面切换至自定义子集后,点击跳转有问题。例如:自定义“职业标签”子集,在主界面切换到“职业标签”子集后、点击数据跳转页面会出错。
需要在该子集的元数据配置中,进行如下配置:获取到人员id
切换为走子集管理还有一个好处是可以支持子集分组,可在功能界面或对象管理中开启分组插件subset_group_base_function:
代码块 | ||
---|---|---|
| ||
{
"functional_state": | ||
代码块 | ||
| ||
fields:[{ "key": "employeesubset_group_idbase_idfunction", "fieldname": [ "core.base.subset.meta_plugin.SubsetGroupMetaPlugin", "employeeplugin_idtype" ]: "standard", "hidemeta_disabled": truefalse }] |
7、?
新增的自定义子集,如果想要在人员主页进行权限控制(组织树切换),可在场景中配置关联组织树。
} |
入职对应模版:PreEmployee.meta.base.entry.json;PreEmployee.meta.base.entryPersonal.json
采集对应模版:PreEmployee.meta.base.collect.json;PreEmployee.meta.base.collectPersonal.json
人员信息对应模版:Employee.meta.base.inside.json;
类似地,若想把所有人员、入职、采集全部开启分组,只需开以下2个模版即可:
(1)Employee.meta.base.json
(2)PreEmployee.meta.base..json
启动分组后,在人员信息集管理页面点击【子集分组】,维护上子集组的名称,子集类型和适用场景,组内子集等相关信息,
这时再打开人员信息,入职和采集的页面后就会发现已经是分组后的显示了,见下图。
4、如何新增一个自定义子集?
维护子集基本信息
弹性子集注意model命名方式 :employee_dynamic_subset.XXX (人员); pre_employee_dynamic_subset.XXX (待入职/采集)
(1)先在系统设置-扩展管理-对象管理器中,点击新增创建一个人员子集弹性模型:
- 类型:
人员子集——人员子集弹性模型
待入职/采集子集——入职采集弹性模型
(2)在人员信息集管理中新增一个子集,模型名称选择在对象管理器中定义好的子集名称。
子集分配
在功能「人员信息集分配」中,对该子集进行分配
在人员管理中查看,并维护该子集中的字段信息
5、快速创建入职和采集的子集
之前配置子集要在人员管理、入职和采集中配置3遍;
现在子集管理中,提供了快速创建子集的小工具,一键将人员信息中的子集生成到入职和采集中,通过按钮[生成到待入职]、[生成到采集]
其他常用功能说明
在使用子集管理时,会有一些常用功能或应用场景,可参考以下内容进行相应配置。
1、?
自定义子集配置好后,会发现在主界面切换至自定义子集后,点击跳转有问题。例如:自定义“职业标签”子集,在主界面切换到“职业标签”子集后、点击数据跳转页面会出错。
需要在该子集的元数据配置中,进行如下配置:获取到人员id
代码块 | ||
---|---|---|
| ||
{
"fields":[{
"key": "employee_id_id",
"field": [
"employee_id"
],
"hide": true
}]
} |
2、?
新增的自定义子集,如果想要在人员主页进行权限控制(组织树切换),可在场景中配置关联组织树。
代码块 | ||
---|---|---|
| ||
{
"fields": [{
"key": "employee_id_id",
"field": [
"employee_id"
],
"hide": true
}],
"actions": [{
"key": "new",
"hide": true
},
{
"key": "edit",
"hide": true
},
{
"key": "delete",
"hide": true | ||
代码块 | ||
| ||
{ "fields": [{ "key": "employee_id_id"}, "field": [ { "action": "employeeCOMMON_idEXPORT", ], "key": "COMMON_EXPORT", "hidelabel": true"页面导出查询结果", }], "actionsdata": [{ "keyfile_name": "new页面结果导出", "hidecelery_mode": true }, } { } ], "keyrelations": "edit",[{ "hidefilter": true{ }, {"employee.id": ":employee_id" "key": "delete"}, "hidemodel": true"Employee", }, {"name": "人员基础信息", "actionkey": "COMMON_EXPORT", employee" }, "key": "COMMON_EXPORT", { "labelfilter": "页面导出查询结果",{ "data "job_info.employee_id": {":employee_id", "file_namejob_info.begin_date": "页面结果导出", { "celery_modelte": true "=date_" } } ], "relations": [{ "filterjob_info.end_date": { "employee.id": ":employee_id" },"gt": "=date_" "model": "Employee" }, "name "job_info.position_type": "人员基础信息"1, "key "job_info.on_job": "employee1" }, {}, "filtermodel": { "JobInformation", "job_info.employee_id"name": ":employee_id任职信息", "key": "job_info.begin_date": { }, "lte": "=date_" { },"filter": { "job_info.endposition_dateid": { ":position.origin_id", "gt"position.begin_date": "=date_"{ }, "lte": "=date_" "job_info.position_type": 1 }, "job_infoposition.onend_jobdate": "1"{ }, "modelgt": "JobInformation=date_", "name": "任职信息", } "key": "job_info" }, }, {"model": "OrgPositionHistory", "filtertype": { "outer", "job_info.position_id"name": ":position.origin_id岗位信息", "key": "position" "position.begin_date": { }, { "ltefilter": "=date_"{ } "position.parent_id": ":department.origin_id", "positiondepartment.endbegin_date": { "gtlte": "=date_" }, "department.end_date": { }, "modelgt": "OrgPositionHistory=date_", "type": "outer", } "name": "岗位信息"}, "keymodel": "positionOrgDepartmentHistory", }, {"type": "outer", "filtername": { "部门信息", "position.parent_idkey": ":department.origin_id", }, "department.begin_date": { "ltefilter": "=date_"{ } "department.subordinate_unit_id": ":unit.origin_id", "departmentunit.endbegin_date": { "gtlte": "=date_" }, }, "unit.end_date": { "modelgt": "OrgDepartmentHistory=date_", "type": "outer", } "name": "部门信息" }, "keymodel": "departmentOrgUnitHistory", }, {"type": "outer", "filtername": { "单位信息", "department.subordinate_unit_idkey": ":unit.origin_id", } ], "unit.begin_daterole": { "role": "cm-org-emp.emp", "ltefield": "=datedepartment.origin_id" }, "unit.end_date": { "gt": "=date_" } }, } } |
配置好后,可实现在主界面切换子集时,进行权限控制。
3、任职子集只显示年月?
任职子集的“开始日期”在列表界面只展示到年月,不展示具体日期:
a.列表界面
在JobInformationMaster.meta.list.inside.json中该字段的fields里配置元数据:
代码块 |
---|
"fieldFunc": "=function(_row,col,value){if(value){return value.slice(0,7);}
else{return null;}}" |
b.编辑界面
JobInformationMaster.meta.info.inside.json中该字段的fields里元数据配置:
代码块 |
---|
"format": "yyyy-MM" |
此时,会发现点击info页面保存时报错;因为数据库中必须存到日,可在底层JobInformationMaster.json中加一个插件解决:
代码块 | ||
---|---|---|
| ||
"plugins": [ { "modelkey": "OrgUnitHistoryEmployeeSubDataConvert_pre_edit_data", "type": "outerpost_pre_data", "name": "apps.emp.emp_model_plugin.ModelPlugInEmployeeSubDataConvert", "nameplugin_type": "单位信息standard", }, { "key": "unit" } EmployeeSubDataConvert_pre_create_data", ], "roletype": { "pre_create_data", "rolename": "cm-org-apps.emp.emp_model_plugin.ModelPlugInEmployeeSubDataConvert", "fieldplugin_type": "department.origin_idstandard" } } |
配置好后,可实现在主界面切换子集时,进行权限控制。
] |
4、员工修改走审批
在员工资料的本人查看场景,预制了开放员工修改走审批的按钮,开放后会自动开启对应流程并在我的资料中配置修改按钮。要注意的是,如果要取消员工修改走审批,不仅要手动删除或禁用对应流程,还要在我的资料中删除对应子集的元数据按钮配置。