...
包含页面 | ||||
---|---|---|---|---|
|
4、校验公式
...
(1)SUBSET_NOT_NULL 子集不能为空
代码块 | ||
---|---|---|
| ||
子集不能为空 :param model:比如"Employee" :return: |
该公式通常用于校验入职或采集中某一子集是否必填(相当于之前在base模板中配置的子集required属性)。CHILDS该公式通常用于校验入职或采集中某一子集是否必填(相当于之前在base模板中配置的子集required属性)。SUBSET_NOT_NULL('模型model名称')
(2)FIELD_NOT_NULL 根据元数据配置判断子集中的必填字段是否为空
...
代码块 |
---|
子集时间连续校验 上一条数据的结束时间(end_date)与下一条数据的开始时间(begin_date)连续 :param model: 模型比如"EmployeeEducationPreOuterExperience" :param begin_date_field:必填 开始时间字段 :param end_date_field:必填 结束时间字段 :param check_type: 必填 可选1:后一条的开始日期比前一条结束日期多一天;2:后一条的开始时间与前一条结束时间相等;3:工作经历中的最早时间与工作经历中最晚时间之间没有空档期 :return: |
该公式常用于校验“外部工作经历子集时间连续”等与时间连续有关的校验。SUBSET_TIME_CONTINUITY(model, begin_date_field=’begin_date’, end_date_field=’end_date’)参数含义分别为:该模型中的begin_date和end_date时间连续
...
SUBSET_GET_DATA("PreOuterExperience","begin_date",None,None,[{"key": "begin_date", "type":"asc"}])==EMP_GET_DATA("take_work_time")
...
(8)FIELD_
...
REQUIRED_
...
IN_
...
CONDITIONS 满足条件的数据,指定的字段需要填写完整
代码块 | ||
---|---|---|
| ||
时间日期减一天,用于时间连续操作满足条件的数据,指定的字段需要填写完整 :param model: 模型,如 PreEmployeeEducation :param required_fields: 必填字段列表,如 ['education'] :param filters: 选填,需要校验的数据条件,格式如 {'is_first': 1},不填将校验全部子集数据 :param date:must_null_fields: 选填,必须为空的字段列表 :return: |
该公式用于对时间格式的日期进行处理,在传入日期的基础上减一天,可以嵌套其他公式使用,如DATE_MINUS_ONE_DAY(EMP_GET_DATA("entry_date")) 代表入职日期2020-10-29 减一天,则公式取出来的数据为2020-10-28
常用于校验“工作经历最后一条结束时间与任职开始时间连续”,这个公式比较复杂,结合使用了3个公式:
SUBSET_GIT_DATA("PreOuterExperience","end_date",None,None,[{"key": "begin_date", "type":"desc"}])==DATE_MINUS_ONE_DAY(SUBSET_GIT_DATA("PreJobInformationCurrent","begin_date",None,None,[{"key": "begin_date", "type":"desc"}]))
5、校验仓库
仓库中是一些标准预制的校验条目,可直接把校验条目从仓库中引入下来使用
该公式常用于对符合某条件的字段进行完整性校验,常见场景“标记为第一学历的教育经历学历必填”,"标记为最高学位的教育经历学位必填",“预备党员必须填写加入时间且不能填写转正时间”,如FIELD_REQUIRED_IN_CONDITIONS('PreEmployeeEducation', ['education'], {'is_first': '1'})
“专科及以上学历需要上传证书扫描件”:FIELD_REQUIRED_IN_CONDITIONS('PreEmployeeEducation', ['attach_index'], {'education': ['大学专科', '大学本科', '研究生']})
(9)DATETIME_FIT_COMPARISION 满足提交的数据,日期符合先后关系
代码块 | ||
---|---|---|
| ||
满足提交的数据,日期符合先后关系,注意如果两个日期有一个没有填写则不会校验
:param model: 模型,如 PreEmployeeEducation
:param field1: 时间字段1,如 from_date
:param field2: 时间字段2,如 end_date
:param comparison: 时间关系,支持 >、>=、<、<=、==、!=
:param filters: 选填,需要校验的数据条件,格式如 {'is_first': 1},不填将校验全部子集数据
:return: |
该公式常用于校验两个日期之前的先后关系,常见场景“外部工作经历的结束时间应该晚于开始时间”,如DATETIME_FIT_COMPARISION('PreOuterExperience', 'begin_date', 'end_date', '<')
(10)DATA_EXISTS_IN_CONDITIONS 满足条件的人员必须填写指定的子集
代码块 | ||
---|---|---|
| ||
满足条件的人员必须填写指定的子集
:param model: 模型,如 PreFamilyInformation
:param subset_filters: 选填,存在符合指定条件的子集数据,不指定的话则只要存在任意一条数据即可,如 {'appellation': '夫妻'}
:param emp_filters: 选填,哪些人必须填写符合条件的子集数据,该参数用于指定【人员基本信息】的条件
:return: |
该公式常用于校验某些人员必须填写子集的某条数据,其中第2个参数是指必须填写符合指定条件的子集数据(如果不传就是任意一条数据即可),第3个参数是指,某类人必须要填写上述条件数据,如果不传即所有人。常见场景“已婚需填写家庭信息中的夫妻信息”,如DATA_EXISTS_IN_CONDITIONS('PreFamilyInformation', {'appellation': '夫妻'}, {'married': '已婚'})
(11)DATA_NOT_EXISTS_IN_CONDITIONS 满足条件的人员【不能】填写指定的子集
代码块 | ||
---|---|---|
| ||
满足条件的人员【不能】填写指定的子集
:param model: 模型,如 PreEmployeeEducation
:param subset_filters: 选填,不存在符合指定条件的子集数据,不指定的话则任何数据都不能存在
:param emp_filters: 选填,哪些人不能填写该子集,该参数用于指定【人员基本信息】的条件
:return: |
该公式常用于校验某些人员不必须填写子集的某条数据,参数含义同公式10。常见场景比如“当个人身份为工人时,干部培训子集为空”,如DATA_EXISTS_IN_CONDITIONS('PreTrainingInformation', {'identity_type': '0'})
5、校验仓库
仓库中是一些标准预制的校验条目,可直接把校验条目从仓库中引入下来使用
增加公式检查工具:校验条目-测试
检查项目:(1)计算结果:校验公式是否正确(2)计算结论:该人员校验项是否通过