| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- -- ==========================================
- -- 维修角色权限分配脚本
- -- 功能:为维修人员和物业维修管理员分配适当的功能权限
- -- 时间: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;
|