插入点名称: insight_analysis_result_param_plugin (此插入点名称为固定写法, 类型选择其他即可, 一个公司下只需要配置一个即可, 多个过滤条件均可写在此云函数内)
示例: 中建三局一公司有个功能是对人员进行用工类型的限制, 即限制某些人员只能查看特定的用工类型人员, 有如下相关信息:
表明是希望当前用户oliver只能查看用工类型为 局自有 的人员信息
需求: 希望人力洞察该用户能分析的人员用工类型和此处配置的相同
解决方案: 在人力洞察中添加insight_analysis_result_param_plugin云函数, 云函数中通过获取上述功能中此人员的用工类型, 然后将此用工类型添加到过滤信息中
云函数代码如下:
代码块 |
---|
class DynamicCondition(object):
def execute(self, analysis_id, org, current_date, param,appoint_date=None):
emp_category_id_list = [] # EmpCategoryPower为人员用工类型功能的存储模型
emp_category_power_list = \
CustomerUtil.call_open_api("hcm.model.list", param={"model": "EmpCategoryPower", "filter_dict": {
"employee_id": CustomerUtil.get_current_context().employee.id}})['list'] # 获取EmpCategoryPower模型中于当前用户有关的相关信息
for item in emp_category_power_list:
if item.get("employee_category_id") not in emp_category_id_list:
emp_category_id_list.append(item.get("employee_category_id")) # 获取当前用户允许访问的用工类型id
if emp_category_id_list and len(emp_category_id_list)>0:#为空的话不过滤
# 添加过滤条件到人力洞察的分析参数中
param['filter'].append({"key":"emp.s_employee_category","name":"用工类型","selected_text":"","value":emp_category_id_list})
logging.info("insight_plugin:{}:{}".format(emp_category_id_list,param))
return param |