83 lines
3.1 KiB
SQL
83 lines
3.1 KiB
SQL
-- ==========================================
|
|
-- 维修角色权限分配脚本
|
|
-- 功能:为维修人员和物业维修管理员分配适当的功能权限
|
|
-- 时间:2025-06-30 13:50:00
|
|
-- 说明:基于业务需求分配差异化权限
|
|
-- ==========================================
|
|
|
|
-- 第一步:为维修人员(role_id: 5)分配权限
|
|
-- 维修人员需要:查看工单、处理自己的维修任务、查看维修分类
|
|
INSERT IGNORE INTO sys_role_menu (role_id, menu_id) VALUES
|
|
-- 报修管理基础权限
|
|
(5, 2110), -- 报修管理页面
|
|
(5, 2111), -- 报修查询
|
|
(5, 2117), -- 开始维修
|
|
(5, 2118), -- 完成维修
|
|
(5, 2121), -- 生成工单号
|
|
-- 维修分类查看权限
|
|
(5, 2130), -- 维修分类页面
|
|
(5, 2131), -- 分类查询
|
|
(5, 2136), -- 分类树查询
|
|
(5, 2137); -- 分类选项
|
|
|
|
-- 第二步:为物业维修管理员(role_id: 6)分配权限
|
|
-- 物业维修管理员需要:管理所有工单、分配任务、查看统计、管理分类
|
|
INSERT IGNORE INTO sys_role_menu (role_id, menu_id) VALUES
|
|
-- 报修管理全权限(除删除外)
|
|
(6, 2110), -- 报修管理页面
|
|
(6, 2111), -- 报修查询
|
|
(6, 2112), -- 报修新增
|
|
(6, 2113), -- 报修修改
|
|
(6, 2115), -- 报修导出
|
|
(6, 2116), -- 工单分派
|
|
(6, 2117), -- 开始维修
|
|
(6, 2118), -- 完成维修
|
|
(6, 2119), -- 取消工单
|
|
(6, 2120), -- 统计数据
|
|
(6, 2121), -- 生成工单号
|
|
-- 维修分类管理权限
|
|
(6, 2130), -- 维修分类页面
|
|
(6, 2131), -- 分类查询
|
|
(6, 2132), -- 分类新增
|
|
(6, 2133), -- 分类修改
|
|
(6, 2135), -- 分类导出
|
|
(6, 2136), -- 分类树查询
|
|
(6, 2137); -- 分类选项
|
|
|
|
-- 第三步:为两个角色分配物业管理主菜单权限(如果存在)
|
|
-- 确保用户能看到物业管理菜单入口
|
|
INSERT IGNORE INTO sys_role_menu (role_id, menu_id)
|
|
SELECT 5, menu_id FROM sys_menu WHERE menu_name = '物业管理' AND menu_type = 'M'
|
|
UNION ALL
|
|
SELECT 6, menu_id FROM sys_menu WHERE menu_name = '物业管理' AND menu_type = 'M';
|
|
|
|
-- 第四步:验证权限分配结果
|
|
SELECT '权限分配验证' as message,
|
|
'维修人员权限数' as role_type,
|
|
(SELECT COUNT(*) FROM sys_role_menu WHERE role_id = 5) as permission_count
|
|
UNION ALL
|
|
SELECT '权限分配验证' as message,
|
|
'物业维修管理员权限数' as role_type,
|
|
(SELECT COUNT(*) FROM sys_role_menu WHERE role_id = 6) as permission_count;
|
|
|
|
-- 详细权限分配情况
|
|
SELECT
|
|
r.role_name as '角色名称',
|
|
m.menu_name as '菜单/功能名称',
|
|
m.perms as '权限标识',
|
|
CASE m.menu_type
|
|
WHEN 'M' THEN '目录'
|
|
WHEN 'C' THEN '菜单'
|
|
WHEN 'F' THEN '按钮'
|
|
END as '权限类型'
|
|
FROM sys_role_menu rm
|
|
JOIN sys_role r ON rm.role_id = r.role_id
|
|
JOIN sys_menu m ON rm.menu_id = m.menu_id
|
|
WHERE rm.role_id IN (5, 6)
|
|
AND m.perms LIKE 'pm:%'
|
|
ORDER BY r.role_id, m.menu_id;
|
|
|
|
-- 第五步:权限差异化说明
|
|
SELECT '权限设计说明' as info_type, '维修人员:只能处理维修任务,无管理权限' as description
|
|
UNION ALL
|
|
SELECT '权限设计说明' as info_type, '物业维修管理员:可管理工单、分配任务、查看统计' as description; |