业务场景:员工进行跨公司调动,从A公司调动到B公司后,B公司专员不能看到调动前的合同信息??
分析:员工信息维护-劳动合同信息页签默认按合同表上的行政组织进了权限过滤。
解决方案:
系统针对劳动合同信息、其他合同信息、职业信息、任职经历、等页签预置了5种数据过滤规则,分别是:
--过滤规则
public static final String ALL_SHARE_FILTER_VALUE = "ALL_SHARE_FILTER";//alias=全局共享
public static final String COMPANYORG_FILTER_VALUE = "COMPANYORG_FILTER";//alias=公司范围隔离
public static final String HRORG_FILTER_VALUE = "HRORG_FILTER";//alias=HR组织隔离
public static final String COMPANY_HRO_FILTER_VALUE = "COMPANY_HRO_FILTER";//alias=行政组织+HR组织隔离
public static final String COMPANY_RANGE_TIME_FILTER_VALUE = "COMPANY_RANGE_TIME_FILTER";//alias=按日期隔离
以员工信息维护-劳动合同页签为例,默认根据公司过滤,具体逻辑是“过滤有权限的公司生效日期前的所有记录。先根据公司过滤出最大生效日期,再按照生效日期过滤这个人以前的所有记录”。如果不想按照公司过滤,可以通过执行sql语句,把过滤规则改成全局共享:
--去掉过滤(只影响查看)
UPDATE T_HR_EmpPageDataFilter SET FFilterRule='ALL_SHARE_FILTER'where fname_l2='劳动合同信息';
UPDATE T_HR_EmpPageDataFilter SET FFilterRule='ALL_SHARE_FILTER'where fname_l2='职业信息管控过滤';
--加上过滤
UPDATE T_HR_EmpPageDataFilter SET FFilterRule='COMPANYORG_FILTER'where fname_l2='劳动合同信息';
UPDATE T_HR_EmpPageDataFilter SET FFilterRule='COMPANYORG_FILTER'where fname_l2='职业信息管控过滤';
其他页签,其他过滤规则的设置同理
推荐阅读