161 lines
7.8 KiB
SQL
161 lines
7.8 KiB
SQL
-- ==========================================
|
|
-- 物业报修管理完整权限配置脚本
|
|
-- 功能:为报修管理模块添加完整的权限配置到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; |