Skip to content

fr_user_post

@title 帆软用户所在部门及其职位的视图 @author 2023072432 @date 20240829 @reference 帆软11表结构(https://help.fanruan.com/finereport/doc-view-3151.html)

SELECT M.userId,M.roleId
	,FU.userName,FU.realAlias,FU.realName
	,FR.department,FR.post,FR.departmentId,FR.fullPath
	,SUBSTRING(FR.fullPath,1,36) AS F1
	,(SELECT name FROM fine_department WHERE id = SUBSTRING(FR.fullPath,1,36)) AS F1T
	,SUBSTRING(FR.fullPath,39+1,36) AS F2
	,(SELECT name FROM fine_department WHERE id = SUBSTRING(FR.fullPath,39+1,36)) AS F2T
	,SUBSTRING(FR.fullPath,39*2+1,36) AS F3
	,(SELECT name FROM fine_department WHERE id = SUBSTRING(FR.fullPath,39*2+1,36)) AS F3T
	,SUBSTRING(FR.fullPath,39*3+1,36) AS F4
	,(SELECT name FROM fine_department WHERE id = SUBSTRING(FR.fullPath,39*3+1,36)) AS F4T
FROM (SELECT roleId,userId FROM fine_user_role_middle WHERE roleType = '1') M -- 用户角色中间表,1表示部门职位
LEFT JOIN (SELECT id,userAlias,userName,realAlias,realName FROM fine_user) FU ON M.userId = FU.id --用户表
LEFT JOIN (
	SELECT FDR.id,FDR.fullPath,FD.id AS departmentId,FD.name AS department,FP.name AS post 
	FROM (SELECT id,departmentId,postId,fullPath FROM fine_dep_role) FDR -- 部门职位的中间表
	LEFT JOIN (SELECT id,name,parentId FROM fine_department) FD ON FDR.departmentId = FD.id -- 部门表
	LEFT JOIN (SELECT id,name FROM fine_post) FP ON FDR.postId = FP.id -- 职位表
) FR ON M.roleId = FR.id

fr_report_department

@title 帆软报表部门视图 @author 2023072432 @date 20240918 @reference 帆软11表结构(https://help.fanruan.com/finereport/doc-view-3151.html)

SELECT * FROM (
	SELECT *
		,ISNULL((SELECT displayName FROM fine_authority_object WHERE id = SUBSTRING(Z.fullPath,27,36)),'/') AS F1T
		,ISNULL((SELECT displayName FROM fine_authority_object WHERE id = SUBSTRING(Z.fullPath,27 + 39*1,36)),'/') AS F2T
		,ISNULL((SELECT displayName FROM fine_authority_object WHERE id = SUBSTRING(Z.fullPath,27 + 39*2,36)),'/') AS F3T
		,ISNULL((SELECT displayName FROM fine_authority_object WHERE id = SUBSTRING(Z.fullPath,27 + 39*3,36)),'/') AS F4T
	FROM (
		SELECT ISNULL(FA.authorityEntityId,FO.id) AS authorityEntityId
			,FO.fullPath,FO.displayName,FO.path,FO.sortIndex
			-- ,FA.roleId
			-- ,FR.fullPath,FR.departmentId
			,FR.department + '-' + ISNULL(FR.post,'') AS DEPART
		FROM (
			SELECT authorityEntityId,roleType,roleId FROM fine_authority -- 权限表,只记录当前目录被授予的权限
			WHERE authority = 2 -- 允许访问
			AND authorityType = 1 -- 查看权限
			AND authorityEntityType = 0 -- 目录权限
			AND roleType = 1 -- 只查部门职位
		) FA 
		LEFT JOIN (
			SELECT FDR.id,FDR.fullPath,FD.id AS departmentId,FD.name AS department,FP.name AS post 
			FROM (SELECT id,departmentId,postId,fullPath FROM fine_dep_role) FDR -- 部门职位的中间表
			LEFT JOIN (SELECT id,name,parentId FROM fine_department) FD ON FDR.departmentId = FD.id -- 部门表
			LEFT JOIN (SELECT id,name FROM fine_post) FP ON FDR.postId = FP.id -- 职位表
		) FR ON FA.roleId = FR.id
		RIGHT JOIN ( -- 以已挂载报表为准
			SELECT id,expandType,displayName,fullPath,path,sortIndex FROM fine_authority_object -- 已挂载报表
			WHERE expandType = '102' -- 报表文件
			AND fullPath NOT LIKE 'decision-directory-root-_-c1107973-c11d-42ac-b192-a2d70c81b4b3%' -- 去除DEMO路径
		) FO ON FA.authorityEntityId = FO.id
	) Z
) Z
-- WHERE displayName LIKE '%桶收发%'
-- ORDER BY LEFT(path,3),F1T,F2T,F3T,F4T,sortIndex,DEPART

fr_customer_role

@title 帆软自定义角色视图 @author 2023072432 @date 20240830 @reference 帆软11表结构(https://help.fanruan.com/finereport/doc-view-3151.html)

SELECT M.userId,M.roleId
	,FU.userName,FU.realAlias,FU.realName
	,FCR.name
FROM (SELECT roleId,userId FROM fine_user_role_middle WHERE roleType = '2') M -- 用户角色中间表,2表示自定义角色
LEFT JOIN (SELECT id,userAlias,userName,realAlias,realName FROM fine_user) FU ON M.userId = FU.id -- 用户表
LEFT JOIN (SELECT * FROM FINE_CUSTOM_ROLE WHERE enable = 1) FCR ON M.roleId = FCR.id -- 角色表