| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161 |
- -- ==========================================
- -- 物业报修管理完整权限配置脚本
- -- 功能:为报修管理模块添加完整的权限配置到sys_menu表
- -- 时间:2025-06-30
- -- 说明:解决报修管理接口权限访问问题
- -- ==========================================
- -- 清理可能存在的旧数据(谨慎使用)
- -- DELETE FROM sys_role_menu WHERE menu_id BETWEEN 2100 AND 2199;
- -- DELETE FROM sys_menu WHERE menu_id BETWEEN 2100 AND 2199;
- -- ==========================================
- -- 第一部分:主菜单 - 物业管理
- -- ==========================================
- INSERT INTO sys_menu (
- menu_id, menu_name, parent_id, order_num, path, component,
- query_param, is_frame, is_cache, menu_type, visible, status,
- perms, icon, create_by, create_time, update_by, update_time, remark
- ) VALUES (
- 2100, '物业管理', 0, 6, 'pm', NULL,
- '', 1, 0, 'M', '0', '0',
- '', 'tool', 1, sysdate(), 1, sysdate(), '物业管理模块'
- );
- -- ==========================================
- -- 第二部分:报修管理菜单和权限
- -- ==========================================
- -- 报修管理主菜单
- INSERT INTO sys_menu (
- menu_id, menu_name, parent_id, order_num, path, component,
- query_param, is_frame, is_cache, menu_type, visible, status,
- perms, icon, create_by, create_time, update_by, update_time, remark
- ) VALUES (
- 2110, '报修管理', 2100, 1, 'repairOrder', 'pm/repairOrder/index',
- '', 1, 0, 'C', '0', '0',
- 'pm:repairOrder:list', 'form', 1, sysdate(), 1, sysdate(), '报修工单管理'
- );
- -- 报修管理功能权限按钮
- INSERT INTO sys_menu (
- menu_id, menu_name, parent_id, order_num, path, component,
- query_param, is_frame, is_cache, menu_type, visible, status,
- perms, icon, create_by, create_time, update_by, update_time, remark
- ) VALUES
- -- 基础CRUD权限
- (2111, '报修查询', 2110, 1, '', '', '', 1, 0, 'F', '0', '0', 'pm:repairOrder:query', '#', 1, sysdate(), 1, sysdate(), '查询报修工单详情'),
- (2112, '报修新增', 2110, 2, '', '', '', 1, 0, 'F', '0', '0', 'pm:repairOrder:add', '#', 1, sysdate(), 1, sysdate(), '新增报修工单'),
- (2113, '报修修改', 2110, 3, '', '', '', 1, 0, 'F', '0', '0', 'pm:repairOrder:edit', '#', 1, sysdate(), 1, sysdate(), '修改报修工单'),
- (2114, '报修删除', 2110, 4, '', '', '', 1, 0, 'F', '0', '0', 'pm:repairOrder:remove', '#', 1, sysdate(), 1, sysdate(), '删除报修工单'),
- (2115, '报修导出', 2110, 5, '', '', '', 1, 0, 'F', '0', '0', 'pm:repairOrder:export', '#', 1, sysdate(), 1, sysdate(), '导出报修工单'),
- -- 业务流程权限
- (2116, '工单分派', 2110, 6, '', '', '', 1, 0, 'F', '0', '0', 'pm:repairOrder:assign', '#', 1, sysdate(), 1, sysdate(), '分派维修工单'),
- (2117, '开始维修', 2110, 7, '', '', '', 1, 0, 'F', '0', '0', 'pm:repairOrder:start', '#', 1, sysdate(), 1, sysdate(), '开始维修工单'),
- (2118, '完成维修', 2110, 8, '', '', '', 1, 0, 'F', '0', '0', 'pm:repairOrder:finish', '#', 1, sysdate(), 1, sysdate(), '完成维修工单'),
- (2119, '取消工单', 2110, 9, '', '', '', 1, 0, 'F', '0', '0', 'pm:repairOrder:cancel', '#', 1, sysdate(), 1, sysdate(), '取消维修工单'),
- -- 统计和工具权限
- (2120, '统计数据', 2110, 10, '', '', '', 1, 0, 'F', '0', '0', 'pm:repairOrder:statistics', '#', 1, sysdate(), 1, sysdate(), '获取报修统计数据'),
- (2121, '生成工单号', 2110, 11, '', '', '', 1, 0, 'F', '0', '0', 'pm:repairOrder:generateOrderNo', '#', 1, sysdate(), 1, sysdate(), '生成工单编号');
- -- ==========================================
- -- 第三部分:维修分类菜单和权限
- -- ==========================================
- -- 维修分类主菜单
- INSERT INTO sys_menu (
- menu_id, menu_name, parent_id, order_num, path, component,
- query_param, is_frame, is_cache, menu_type, visible, status,
- perms, icon, create_by, create_time, update_by, update_time, remark
- ) VALUES (
- 2130, '维修分类', 2100, 2, 'repairCategory', 'pm/repairCategory/index',
- '', 1, 0, 'C', '0', '0',
- 'pm:category:list', 'tree', 1, sysdate(), 1, sysdate(), '维修分类管理'
- );
- -- 维修分类功能权限按钮
- INSERT INTO sys_menu (
- menu_id, menu_name, parent_id, order_num, path, component,
- query_param, is_frame, is_cache, menu_type, visible, status,
- perms, icon, create_by, create_time, update_by, update_time, remark
- ) VALUES
- -- 基础CRUD权限
- (2131, '分类查询', 2130, 1, '', '', '', 1, 0, 'F', '0', '0', 'pm:category:query', '#', 1, sysdate(), 1, sysdate(), '查询维修分类详情'),
- (2132, '分类新增', 2130, 2, '', '', '', 1, 0, 'F', '0', '0', 'pm:category:add', '#', 1, sysdate(), 1, sysdate(), '新增维修分类'),
- (2133, '分类修改', 2130, 3, '', '', '', 1, 0, 'F', '0', '0', 'pm:category:edit', '#', 1, sysdate(), 1, sysdate(), '修改维修分类'),
- (2134, '分类删除', 2130, 4, '', '', '', 1, 0, 'F', '0', '0', 'pm:category:remove', '#', 1, sysdate(), 1, sysdate(), '删除维修分类'),
- (2135, '分类导出', 2130, 5, '', '', '', 1, 0, 'F', '0', '0', 'pm:category:export', '#', 1, sysdate(), 1, sysdate(), '导出维修分类'),
- -- 特殊功能权限
- (2136, '分类树查询', 2130, 6, '', '', '', 1, 0, 'F', '0', '0', 'pm:category:tree', '#', 1, sysdate(), 1, sysdate(), '获取维修分类树形结构'),
- (2137, '分类选项', 2130, 7, '', '', '', 1, 0, 'F', '0', '0', 'pm:category:options', '#', 1, sysdate(), 1, sysdate(), '获取维修分类下拉选项');
- -- ==========================================
- -- 第四部分:为admin角色分配权限
- -- ==========================================
- -- 为admin角色(role_id=1)分配所有物业管理权限
- INSERT INTO sys_role_menu (role_id, menu_id)
- SELECT 1, menu_id FROM sys_menu WHERE menu_id BETWEEN 2100 AND 2199
- ON DUPLICATE KEY UPDATE role_id = role_id; -- 避免重复插入
- -- ==========================================
- -- 第五部分:验证和清理
- -- ==========================================
- -- 验证权限配置是否正确
- SELECT
- '=== 菜单权限配置验证 ===' AS section,
- NULL AS menu_id, NULL AS menu_name, NULL AS menu_type, NULL AS perms, NULL AS has_role_permission
- UNION ALL
- SELECT
- CASE
- WHEN m.menu_type = 'M' THEN '📁 主菜单'
- WHEN m.menu_type = 'C' THEN '📄 页面菜单'
- WHEN m.menu_type = 'F' THEN '🔘 功能按钮'
- ELSE '❓ 未知类型'
- END AS section,
- m.menu_id,
- m.menu_name,
- m.menu_type,
- m.perms,
- CASE WHEN rm.role_id IS NOT NULL THEN '✅ 已分配' ELSE '❌ 未分配' END AS has_role_permission
- FROM sys_menu m
- LEFT JOIN sys_role_menu rm ON m.menu_id = rm.menu_id AND rm.role_id = 1
- WHERE m.menu_id BETWEEN 2100 AND 2199
- ORDER BY m.menu_id;
- -- 统计权限配置结果
- SELECT
- '权限配置统计' AS summary,
- COUNT(*) AS total_menus,
- SUM(CASE WHEN menu_type = 'M' THEN 1 ELSE 0 END) AS main_menus,
- SUM(CASE WHEN menu_type = 'C' THEN 1 ELSE 0 END) AS page_menus,
- SUM(CASE WHEN menu_type = 'F' THEN 1 ELSE 0 END) AS function_buttons,
- SUM(CASE WHEN perms IS NOT NULL AND perms != '' THEN 1 ELSE 0 END) AS with_permissions
- FROM sys_menu
- WHERE menu_id BETWEEN 2100 AND 2199;
- -- 检查admin角色权限分配
- SELECT
- '权限分配统计' AS summary,
- COUNT(rm.menu_id) AS assigned_permissions,
- (SELECT COUNT(*) FROM sys_menu WHERE menu_id BETWEEN 2100 AND 2199) AS total_permissions,
- CONCAT(
- ROUND(COUNT(rm.menu_id) * 100.0 / (SELECT COUNT(*) FROM sys_menu WHERE menu_id BETWEEN 2100 AND 2199), 2),
- '%'
- ) AS assignment_rate
- FROM sys_role_menu rm
- WHERE rm.role_id = 1 AND rm.menu_id BETWEEN 2100 AND 2199;
- -- 重要提示信息
- SELECT
- '🎉 物业报修管理权限配置完成!' AS message,
- '请执行以下步骤完成配置:' AS next_steps,
- '1. 重新登录系统刷新权限缓存' AS step1,
- '2. 修改Controller权限注解' AS step2,
- '3. 重启后端服务' AS step3,
- '4. 测试API接口访问' AS step4;
|