本页中的内容:
定义人员编码规则
创建/修改元数据
人员编码生成时机:人员从【入职管理】到【人员信息管理】或者直接在【人员信息管理】新增人员
超级管理员进入【设置】-【对象管理器】-搜索“Employee”
点击选中的此对象,进入对象管理。
点击右上角【元数据编辑】,如果打开之后为空,则直接粘贴以下内容
{ "plugins": [{ "type": "pre_create_data", "name": "employee_number_generator", "key": "pre_create_data" }] }
如果已经存在配置的json文件,如图所示
则在图中粘贴以下内容
"plugins": [{ "type": "pre_create_data", "name": "employee_number_generator", "key": "pre_create_data" }],
人员编码生成时机:【招聘模块】进入到【入职管理】或者直接在【入职管理】新增
如果是从【招聘模块】进入到【入职管理】,对象管理器搜索内容改为【PreEmployee】,而且以上用的代码块的红框内容改为【pre_free_create】
这段代码是在新增人员的时候会执行pre_create_data和pre_free_create方法
name是新建云函数的插入点名称(下一段会介绍如何新增该云函数)
新建employee_number_generator的云函数插入点
点击【云函数管理】-搜索“employee_number_generator”,找不到对应的元数据,点击【新增】
注意:开发提供云函数之后,用开发提供的云函数名称替换【employee_number_generator】,后续步骤都需替换!
填写基本信息后,点击【确定】
名称 | 填写“employee_number_generator” | 类型 | 选择“模型插件” |
描述 | 自动输入,例如“人员排序码按规则自动生成” | 启用 | 勾选“是” |
点击刚建好的云函数
拷贝以下代码,可根据项目情况自行调整以下参数实现自定义编码规则:
serial.order.add是设置编码规则的接口,以下为参数介绍:
order_length | 代表生成规则的位数(不包括group_flag) |
serial_group | 作为识别此排序码的记录标志(一个组织下或者公司有一个特定的编码规则) |
serial_start | 代表编码的起始值 |
serial_digit | 代表每个编码之间的差值 |
group_flag | 代表编码的前缀 |
range_id | 代表范围ID,填写内容与company_id一致即可(inspur4环境的公司ID为140) |
class ModelPlugInEmp(BaseModelPlugIn): def pre(self, company_id, **kwargs): info = kwargs.get('info') info['number']=self.generate_employee_number() return kwargs def generate_employee_number(self): serial_rule = CustomerUtil.call_open_api('serial.order.get.by.serial.group',{'serial_group': "employeeNumber",'range_id': 140}) if serial_rule.get('success') is False: CustomerUtil.call_open_api('serial.order.add', param={"info": {'rule': '{group_flag}{order}', 'order_length': 10, 'fill_char': 0, 'serial_group': 'employeeNumber', 'serial_start': 10000, 'serial_digit': 1, 'range_id': 140 }}) return CustomerUtil.call_open_api('serial.order.detail.next.get.by.group_flag', { 'serial_group': 'employeeNumber', 'range_id': 140, 'group_flag': 'xx', 'map_info': {} })
当我们定义好这个规则的时候,就可以每次在新增时生成想要的编码了~
验证人员编码自动生成
【人员信息管理】中新增人员,即按照设定好的规则自动生成编号。
如果历史数据需要按照最新定义的编码规则生成编号,请联系对应区域产品支持老师提供API修复。
定义岗位编码规则
创建/修改元数据
参考【定义人员编码规则】,对象管理器搜索改为搜索【OrgPosition】
打开为空和已存在配置的情况下分别使用以下两种json配置,具体参考【定义人员编码规则】,不做赘述
1、打开为空
{ "plugins": [{ "type": "pre_create_data", "name": "position_number_generator", "key": "pre_create_data" }] }
2、已存在配置
"plugins": [{ "type": "pre_create_data", "name": "position_number_generator", "key": "pre_create_data" }],
新建position_number_generator的云函数插入点
点击【云函数管理】-搜索“position_number_generator”,找不到对应的元数据,点击【新增】,填写基本信息后,点击【确定】
注意:开发提供云函数之后,用开发提供的云函数名称替换【position_number_generator】,后续步骤都需替换!
名称 | 填写“position_number_generator” | 类型 | 选择“模型插件” |
描述 | 自动输入,例如“岗位排序码按规则自动生成” | 启用 | 勾选“是” |
云函数代码内容:
class ModelPluginPost(BaseModelPlugIn): def pre(self, company_id, **kwargs): info = kwargs.get('info') info['number']=self.generate_position_number() return kwargs def post(self, company_id, result,**kwargs): return result def generate_position_number(self): serial_rule = CustomerUtil.call_open_api('serial.order.get.by.serial.group', {'serial_group': 'PositionNumber', 'range_id': 140}) if serial_rule.get('success') is False: CustomerUtil.call_open_api('serial.order.add', param={"info": {'rule': '{group_flag}{order}', 'order_length': 5, 'fill_char': 0, 'serial_group': 'PositionNumber', 'serial_start': 10000, 'serial_digit': 1, 'range_id': 140 }}) return CustomerUtil.call_open_api('serial.order.detail.next.get.by.group_flag', { 'serial_group': 'PositionNumber', 'range_id': 140, 'group_flag': "xxx", 'map_info': {} })
验证岗位编码自动生成
【岗位管理】中新增岗位,编号将按照设定好的规则自动生成编号(需将岗位编号设置为非必填)
如果历史数据需要按照最新定义的编码规则生成编号,请联系孙伟达老师提供API修复。
定义单位编码规则
创建/修改元数据
参考【定义人员编码规则】,对象管理器搜索改为搜索【OrgUnit】
打开为空和已存在配置的情况下分别使用以下两种json配置,具体参考【定义人员编码规则】,不做赘述
1、打开为空
{ "plugins": [{ "type": "pre_create_data", "name": "orgunit_number_generator", "key": "pre_create_data" }] }
2、已存在配置
"plugins": [{ "type": "pre_create_data", "name": "orgunit_number_generator", "key": "pre_create_data" }],
新建orgunit_number_generator的云函数插入点
点击【云函数管理】-搜索“orgunit_number_generator”,找不到对应的元数据,点击【新增】,填写基本信息后,点击【确定】
注意:开发提供云函数之后,用开发提供的云函数名称替换【orgunit_number_generator】,后续步骤都需替换!
名称 | 填写“orgunit_number_generator” | 类型 | 选择“模型插件” |
描述 | 自动输入,例如“岗位排序码按规则自动生成” | 启用 | 勾选“是” |
云函数代码内容:
class ModelPlugInorgunit(BaseModelPlugIn): def pre(self, company_id, **kwargs): info = kwargs.get('info') info['number']=self.generate_orgunit_number() return kwargs def generate_orgunit_number(self): serial_rule = CustomerUtil.call_open_api('serial.order.get.by.serial.group',{'serial_group': "orgunitNumber",'range_id': 140}) if serial_rule.get('success') is False: CustomerUtil.call_open_api('serial.order.add', param={"info": {'rule': '{group_flag}{order}', 'order_length': 4, 'fill_char': 0, 'serial_group': 'orgunitNumber', 'serial_start': 1000, 'serial_digit': 1, 'range_id': 140 }}) return CustomerUtil.call_open_api('serial.order.detail.next.get.by.group_flag', { 'serial_group': 'orgunitNumber', 'range_id': 140, 'group_flag': 'xx', 'map_info': {} })
定义部门编码规则
创建/修改元数据
参考【定义人员编码规则】,对象管理器搜索改为搜索【OrgDepartment】
打开为空和已存在配置的情况下分别使用以下两种json配置,具体参考【定义人员编码规则】,不做赘述
1、打开为空
{ "plugins": [{ "type": "pre_create_data", "name": "OrgDepartment_number_generator", "key": "pre_create_data" }] }
1、已存在配置
"plugins": [{ "type": "pre_create_data", "name": "OrgDepartment_number_generator", "key": "pre_create_data" }],
新建OrgDepartment_number_generator的云函数插入点
点击【云函数管理】-搜索“OrgDepartment_number_generator”,找不到对应的元数据,点击【新增】,填写基本信息后,点击【确定】
注意:开发提供云函数之后,用开发提供的云函数名称替换【OrgDepartment_number_generator】,后续步骤都需替换!
名称 | 填写“OrgDepartment_number_generator” | 类型 | 选择“模型插件” |
描述 | 自动输入,例如“岗位排序码按规则自动生成” | 启用 | 勾选“是” |
云函数代码内容:
class ModelPlugInOrgDepartment(BaseModelPlugIn): def pre(self, company_id, **kwargs): info = kwargs.get('info') info['number']=self.generate_OrgDepartment_number() return kwargs def generate_OrgDepartment_number(self): serial_rule = CustomerUtil.call_open_api('serial.order.get.by.serial.group',{'serial_group': "OrgDepartmentNumber",'range_id': 140}) if serial_rule.get('success') is False: CustomerUtil.call_open_api('serial.order.add', param={"info": {'rule': '{group_flag}{order}', 'order_length': 6, 'fill_char': 0, 'serial_group': 'OrgDepartmentNumber', 'serial_start': 10000, 'serial_digit': 1, 'range_id': 140 }}) return CustomerUtil.call_open_api('serial.order.detail.next.get.by.group_flag', { 'serial_group': 'OrgDepartmentNumber', 'range_id': 140, 'group_flag': 'xx', 'map_info': {} })
3 评论
连杏杏 发表:
2020-3月-09配置了部门编号规则,但是不生效什么原因呢 提示是顺序号规则未设置,以下是配置的云函数
席圣通 发表:
2020-5月-19配置了岗位编号规则,验证的时候提示“无法加载插件”,这是什么原因呢?
赵杰 发表:
2021-5月-27写的里面刚开始是人员编码,中间内容写的排序码,差点混乱了