星瀚HR——人员档案列表调整过滤条件原创
14人赞赏了该文章
385次浏览
编辑于2024年06月25日 08:56:03
场景1:常用过滤字段对值进行过滤(比如用工关系类型不显示禁用的值)
解决方式:
1、扩展人员档案列表元数据(hspm_erfilelist),在扩展的元数据上绑定二开插件
2、在插件中,重写filterColumnSetFilter方法,对数据进行过滤,可参考以下代码:
public class Test extends AbstractListPlugin { @Override public void filterColumnSetFilter(SetFilterEvent evt) { super.filterColumnSetFilter(evt); // 获取过滤字段控件映射的实体字段名 String fieldName = evt.getFieldName(); if (HRStringUtils.equals(fieldName, "hrpi_empentrel.laborreltype.name")) { // 查询可用状态的用工关系类型 HRBaseServiceHelper helper = new HRBaseServiceHelper("hbss_laborreltype"); QFilter qFilter = new QFilter("enable", QCP.equals, "1"); DynamicObjectCollection collection = helper.queryOriginalCollection("name", new QFilter[]{qFilter}); List<String> nameList = new ArrayList<>(); if (null != collection && !collection.isEmpty()) { nameList = collection.stream().map(dy -> dy.getString("name")).collect(Collectors.toList()); } // 常用过滤视图下的用工关系类型只显示可用状态的数据 evt.addCustomQFilter(new QFilter("name", QFilter.in, nameList)); } } }
场景2:常用过滤字段设置默认值(比如默认选中离职档案外的所有档案类型)
解决方式:
1、扩展人员档案列表元数据(hspm_erfilelist),在扩展的元数据上绑定二开插件
2、在插件中,重写filterContainerInit方法,在该方法中判断如果过滤字段是档案类型,对档案类型设置默认值,可参考以下代码:
public class Test extends AbstractListPlugin { @Override public void filterContainerInit(FilterContainerInitArgs args) { super.filterContainerInit(args); List<FilterColumn> commonFilterColumns = args.getCommonFilterColumns(); commonFilterColumns.get(0).setDefaultValues(); // 常用条件中的档案类型,默认选中离职档案外的所有类型 FilterColumn filterColumn = args.getFilterColumn("filetype.name"); if (filterColumn != null) { HRBaseServiceHelper helper = new HRBaseServiceHelper("hspm_erfiletype"); QFilter qFilter = new QFilter("number", QCP.not_equals, "1050_S"); DynamicObjectCollection collection = helper.queryOriginalCollection("id", new QFilter[]{qFilter}); List<String> nameList; if (null != collection && !collection.isEmpty()) { nameList = collection.stream().map(dy -> dy.getString("id")).collect(Collectors.toList()); filterColumn.setDefaultValues(nameList.toString()); } } } }
场景3:删除常用过滤/方案查询中的查询字段(比如删除常用条件中的任职类型、方案查询字段中的常驻工作地)
解决方式:
1、扩展人员档案列表元数据(hspm_erfilelist),在扩展的元数据上绑定二开插件
2、在插件中,重写filterContainerInit方法,在方法中可以分别获取到方案查询中的字段和常用条件中的字段,然后根据需要将对应的字段移除。,可参考以下代码:
public class Test extends AbstractListPlugin { @Override public void filterContainerInit(FilterContainerInitArgs args) { super.filterContainerInit(args); // 方案查询字段中删除常驻工作地 args.getSchemeFilterColumns().removeIf(col -> (HRStringUtils.equals(col.getFieldName(), "hrpi_empposorgrel.workplace.name"))); // 常用查询条件中任职类型 args.getCommonFilterColumns().removeIf(col -> (HRStringUtils.equals(col.getFieldName(), "hrpi_empposorgrel.postype.name"))); } }
赞 14
14人点赞
还没有人点赞,快来当第一个点赞的人吧!
打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!
您的鼓励与嘉奖将成为创作者们前进的动力,如果觉得本文还不错,可以给予作者创作打赏哦!
请选择打赏金币数 *
10金币20金币30金币40金币50金币60金币
可用金币: 0