08_fix_delivery_add_permission.sql 2.38 KB
-- Apple经销商ERP系统 - 修复出库新增权限
-- 创建时间: 2025-01-27
-- 版本: v1.0

-- 设置数据库和字符集
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

-- 使用数据库
USE apple_erp;

-- =========================================
-- 1. 添加缺失的出库新增权限
-- =========================================

-- 检查是否已存在出库新增权限
SET @delivery_add_exists = (SELECT COUNT(*) FROM t_sys_menu WHERE perms = 'delivery:add' AND del_flag = '0');

-- 如果不存在,则添加出库新增权限
INSERT INTO t_sys_menu (menu_id, parent_id, menu_name, menu_type, path, icon, sort, status, perms, create_by, create_time, update_by, update_time, del_flag) 
SELECT 302, 3, '出库新增', '2', '', '', 2, '1', 'delivery:add', 'admin', NOW(), 'admin', NOW(), '0'
WHERE @delivery_add_exists = 0;

-- =========================================
-- 2. 为所有角色分配出库新增权限
-- =========================================

-- 获取ADMIN角色ID
SET @admin_role_id = (SELECT role_id FROM t_sys_role WHERE role_code = 'ADMIN' AND del_flag = '0' LIMIT 1);

-- 为ADMIN角色分配出库新增权限
INSERT IGNORE INTO t_sys_role_menu (role_id, menu_id, create_by, create_time, update_by, update_time, del_flag) 
SELECT @admin_role_id, menu_id, 'admin', NOW(), 'admin', NOW(), '0'
FROM t_sys_menu 
WHERE perms = 'delivery:add' AND del_flag = '0';

-- 获取OPERATOR角色ID
SET @operator_role_id = (SELECT role_id FROM t_sys_role WHERE role_code = 'OPERATOR' AND del_flag = '0' LIMIT 1);

-- 为OPERATOR角色分配出库新增权限
INSERT IGNORE INTO t_sys_role_menu (role_id, menu_id, create_by, create_time, update_by, update_time, del_flag) 
SELECT @operator_role_id, menu_id, 'admin', NOW(), 'admin', NOW(), '0'
FROM t_sys_menu 
WHERE perms = 'delivery:add' AND del_flag = '0';

-- 获取DEALER_MANAGER角色ID
SET @dealer_manager_role_id = (SELECT role_id FROM t_sys_role WHERE role_code = 'DEALER_MANAGER' AND del_flag = '0' LIMIT 1);

-- 为DEALER_MANAGER角色分配出库新增权限
INSERT IGNORE INTO t_sys_role_menu (role_id, menu_id, create_by, create_time, update_by, update_time, del_flag) 
SELECT @dealer_manager_role_id, menu_id, 'admin', NOW(), 'admin', NOW(), '0'
FROM t_sys_menu 
WHERE perms = 'delivery:add' AND del_flag = '0';

-- 重置外键检查
SET FOREIGN_KEY_CHECKS = 1;

-- 输出完成信息
SELECT '出库新增权限修复完成!' AS message;