...
代码块 | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
class EmployeeEducationChecker(DynamicCheckBase): """ 云函数校验器示例,在对象新增,修改时会校验 """ def check(self, info): # ☆☆☆model:为校验的模型名,可根据实际情况修改☆☆☆ model = "EmployeeEducation" employee_id = info['employee_id'] info_list = CustomerUtil.call_open_api('hcm.model.list', { "model": model, "filter_dict": { "employee_id": employee_id }, "page_index": 1, "page_size": 200, "extra_property": {"sorts": []} })['list'] # ☆☆☆校验项,根据实际情况修改(请配置校验字段的key以及该字段值为“是”和“否”的实际存储值)☆☆☆ # ☆☆☆以下示例为校验多项字段的配置,如只校验单一字段,请去掉多余字段☆☆☆ check_item_dict_list = [ { "key ": "is_highest", # 是否最高学历的key "yes_flag": 1, # 是否最高学历为“是” "no_flag": 0 # 是否最高学历“否” }, { "key ": "is_highest_deg", # 是否最高学位的key "yes_flag": "1", # 是否最高学位为“是” "no_flag": "0" # 是否最高学位“否” }, { "key ": "full_highest_edu", # 是否全日制最高学历的key "yes_flag": 1, # 是否全日制最高学历为“是” "no_flag": 0 # 是否全日制最高学历“否” }, { "key ": "full_highest_deg", # 是否全日制最高学位的key "yes_flag": 1, # 是否全日制最高学位为“是” "no_flag": 0 # 是否全日制最高学位“否” } ] total_result = self.total_check(info, info_list, check_item_dict_list) return {"success": total_result} # ★★★无需修改★★★ def total_check(self, info, info_list, check_item_dict_list): for item in check_item_dict_list: key = item['key'] yes_flag = item['yes_flag'] no_flag = item['no_flag'] item_result = self.item_check(info, info_list, key, yes_flag, no_flag) if not item_result: return False return True # ★★★无需修改★★★ def item_check(self, info, info_list, key, yes_flag, no_flag): list_id = info.get('id') flag = info.get(key) if len(info_list) == 0: return True else: id_list = [item['id'] for item in info_list] # 如果id列表不包含表单的id(新增) if list_id not in id_list: for item in info_list: if item[key] == yes_flag and flag == yes_flag: return False return True # 如果id列表中包含表单的id(修改) else: if flag == no_flag: return True else: for item in info_list: if item['id'] == list_id: continue if item[key] == yes_flag and flag == yes_flag: return False return True |
附:查看实际存储值的方法(字段强烈推荐使用布尔型,就不用这么麻烦的来看实际存储值,布尔型的yes_flag为True,no_flag为False)
1.枚举项为Mask里面的key
2.接口hcm.model.list中查看(界面F12查看控制台,点击右上角刷新,控制台选择NetWork查看hcm.model.list接口,查看右侧Preview数据项即可)