【BOS基础系统_权限】权限常见问题之-指定主管权限解析

1、首先直接上指定主管权限sql查询逻辑:
-- 1)、在指定主管权限表中 查出 当前登录用户 在当前组织的 所属CU 是被指定为 ${那些行政组织范围}内 的数据,若查不到则当前登录用户此时不受指定主管权限控制
SELECT *, userOrgRange.org.id
FROM t_pm_specialdirectorperm
WHERE bizObjectType = '12A6526A'
AND userOrgRange.user.id = '256c221a-0106-1000-e000-10d7c0a813f413B7DE7F'
AND CU.id = '00000000-0000-0000-0000-000000000000CCE7AED4'
--2)、查出{$那些行政组织范围}的负责人职位与上级职位的汇报关系(FLongNumber)
SELECT
PositionHierarchy.FLongNumber
FROM
T_ORG_PositionHierarchy PositionHierarchy
INNER JOIN
T_ORG_Admin Admin
ON PositionHierarchy.FChildID = Admin.FResponPositionID //(汇报关系的子节点职位 = 行政组织的负责人职位)
WHERE
Admin.FID = 'vqsAAAAAcpnM567U'
AND PositionHierarchy.FHierarchyID = '00000000-0000-0000-0000-000000000001396FCAD0'
--备注 职位汇报关系查询
SELECT * FROM T_ORG_POSITIONHIERARCHY where flongnumber = 'ZJTX-M001!ZJTX-M008-013'
SELECT * FROM T_ORG_POSITION where fnumber = 'ZJTX-M001'
SELECT * FROM T_ORG_POSITION where fnumber = 'ZJTX-M008-013'
--3)、查找这些汇报关系的职位以及职位的所有下级职位的员工创建的单据 com.kingdee.eas.base.permission.app.service.SpecialDataPermissionHandler.getDirectorRule(UserInfo, SpecialDataPermInfo)
WHERE
creator.id = 'CU3uLOmXRpK3axrk4oLkAxO33n8='
OR creator.id IN (
SELECT
DISTINCT U.FID
FROM
T_PM_USER U
INNER JOIN
T_BD_Person Person
ON Person.FID = U.FPersonID
INNER JOIN
T_ORG_PositionMember PositionMember
ON Person.FID = PositionMember.FPersonID
INNER JOIN
T_ORG_Position Position
O
【BOS基础系统_权限】权限常见问题之-指定主管权限解析
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。



