​金蝶s-HR Cloud关于视图配置domain指令对列表数据过滤说明原创
金蝶云社区-杨天罡
杨天罡
10人赞赏了该文章 326次浏览 未经作者许可,禁止转载编辑于2024年08月27日 11:12:15
summary-icon摘要由AI智能服务提供

金蝶s-HR Cloud增加了视图配置domain指令,用于列表过滤。该指令通过CDATA包裹数组实现,支持AND和OR逻辑操作符,每个过滤条件由列属性、比较符和比较值组成。系统预置了多种domainFilter供使用,并提供了二开filter的规范,包括实现接口、包路径前缀、注解和部署位置。

金蝶s-HR Cloud针对列表过滤,增加视图配置domain指令,格式大致如下:

<domain>
<![CDATA[
[
('&',
('adminOrgUnit.id','=','$UserAdminRangeFilter'),
(...)
)
]
]]>
</domain>

具体说明:

domain指令通过包装CDATA来完成配置

CDATA里面包含数组

数组用一对()包起来,第一位值目前只支持2中值配置:&和|,&表示后面的过滤条件在where条件中表示并且(AND),|表示后面的过滤条件在where条件中表示或者(OR)


后面是每一个过滤条件,使用()包起来,多个用逗号连接

每一个过滤里面格式是:列的属性,比较符,比较的值


目前产品预置了一些固定的domainFilter供使用

"HROFilter"="com.kingdee.shr.base.syssetting.app.filter.HROFilter"  //获取当前上下文HR业务组织ID
"CUIFilter"="com.kingdee.shr.base.syssetting.app.filter.CUIFilter"//获取当前上下文CU管理单元ID
"UserAdminRangeFilter"="com.kingdee.shr.base.syssetting.app.filter.UserAdminRangeFilter" //当前用户的行政组织范围
"UserHRORangeFilter"="com.kingdee.shr.base.syssetting.app.filter.UserHRORangeFilter" //当前用户的HR业务组织范围
"HROAndUserRangeFilter"="com.kingdee.shr.base.syssetting.app.filter.HROAndUserRangeFilter" //当前用户的HR业务组织和行政组织交集范围
"EmployeeHRAndAdminOrgRangeFilter"="com.kingdee.shr.base.syssetting.app.filter.EmployeeHRAndAdminOrgRangeFilter" //人事当前用户的HR业务组织和行政组织交集范围
"AllHRAndAdminOrgRangeFilter"="com.kingdee.shr.base.syssetting.app.filter.AllHRAndAdminOrgRangeFilter"//用户所有hr与行政组织交集
"EmpPosOrgRelaEFFDTFilter"="com.kingdee.shr.base.syssetting.app.filter.EmpPosOrgRelaEFFDTFilter" //人事生效日期过滤
"EmpPosOrgRelaLEFFDTFilter"="com.kingdee.shr.base.syssetting.app.filter.EmpPosOrgRelaLEFFDTFilter" //人事失效日期过滤
"PPEFFDTFilter"="com.kingdee.shr.base.syssetting.app.filter.PPEFFDTFilter"//人事生效日期过滤
"PPLEFFDTFilter"="com.kingdee.shr.base.syssetting.app.filter.PPLEFFDTFilter"//人事失效日期过滤
"PartTimeInfoFilter"="com.kingdee.shr.base.syssetting.app.filter.PartTimeInfoFilter"//时间过滤器
"PersonOrgNavigationFilter"="com.kingdee.shr.base.syssetting.app.filter.PersonOrgNavigationFilter"//组织人员导航filter
"TreeLongNumberFilter"="com.kingdee.shr.base.syssetting.app.filter.TreeLongNumberFilter"// tree longNumber filter
"EmpPageTreeFilter"="com.kingdee.shr.base.syssetting.app.filter.EmpPageTreeFilter"//人事树页面过滤
"CurrentPersonFilter"="com.kingdee.shr.base.syssetting.app.filter.CurrentPersonFilter" //当前用户对应职员过滤
"CurrentUserFilter"="com.kingdee.shr.base.syssetting.app.filter.CurrentUserFilter"//过滤当前用户所建单据
"SHRBasicItemFilter"="com.kingdee.shr.base.syssetting.app.filter.SHRBasicItemFilter"//基础资料表单F7过滤filter,主要用于处理配置的query
"SHRBaseItemForFastFilter"="com.kingdee.shr.base.syssetting.app.filter.SHRBaseItemForFastFilter"//基础资料元数据F7过滤filter,主要用于去重
"ManagerOrgRangeFilter"="com.kingdee.shr.base.syssetting.app.filter.ManagerOrgRangeFilter" //经理人或者分管领导组织范围,不包含下级 
"AtsSHRBasicItemFilter"="com.kingdee.shr.ats.web.filter.AtsSHRBasicItemFilter" //考勤基础资料过滤器
"AtsProBasicItemFilter"="com.kingdee.shr.ats.web.filter.AtsProBasicItemFilter" //考勤基础资料过滤器
"ManagerOrgRangeIncludeSubFilter"="com.kingdee.shr.base.syssetting.app.filter.ManagerOrgRangeIncludeSubFilter"//经理人或者分管领导组织范围,包含下级 
"NotEqualsCurrentPersonFilter"="com.kingdee.shr.base.syssetting.app.filter.NotEqualsCurrentPersonFilter"//不等于当前用户
"NotEqualsCurrentLoginUserPersonIDFilter"="com.kingdee.shr.base.syssetting.app.filter.NotEqualsCurrentLoginUserPersonIDFilter"//不等于人员IDdomainFilter


一个完整参考例子:

<domain>
<![CDATA[
[
('&',
('adminOrgUnit.id','=','$UserAdminRangeFilter'),
('EFFDT','>=','$EmpPosOrgRelaEFFDTFilter'),
('LEFFDT','<','$EmpPosOrgRelaLEFFDTFilter'),
('pp.EFFDT','>=','$EmpPosOrgRelaEFFDTFilter'),
('pp.LEFFDT','<','$EmpPosOrgRelaLEFFDTFilter')
)
]
]]>
</domain>


如果现有的filter,无法满足现有业务,需要进行二开filter

可以参考如下做法:

1、自行实现Filter,该Filter必须实现接口com.kingdee.shr.base.syssetting.app.filter.IHRFilter

2、Filter的包路径前缀,必须是com.kingdee.shr.xxx

3、实现类必须进行注解:@DomainFilterService(filterName="xxxxxxx")

4、二开的Filter需要部署到{安装目录}/eas/server/lib/addon/customer/lib/下


例子:

image.png





图标赞 10
10人点赞
还没有人点赞,快来当第一个点赞的人吧!
图标打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!

您的鼓励与嘉奖将成为创作者们前进的动力,如果觉得本文还不错,可以给予作者创作打赏哦!

请选择打赏金币数 *

10金币20金币30金币40金币50金币60金币
可用金币: 0