ForgeFlow-ERP/backend/sql/add_system_permission_management_patch.sql
2026-06-14 21:05:49 +08:00

89 lines
2.6 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

USE jiaheng_erp;
SET NAMES utf8mb4;
START TRANSACTION;
SET @schema_name := DATABASE();
SET @sql := (
SELECT IF(
EXISTS (
SELECT 1
FROM information_schema.columns
WHERE table_schema = @schema_name
AND table_name = 'sys_department'
AND column_name = 'org_node_type'
),
'SELECT 1',
'ALTER TABLE sys_department ADD COLUMN org_node_type VARCHAR(32) NOT NULL DEFAULT ''DEPARTMENT'' COMMENT ''组织节点类型COMPANY/BRANCH/DEPARTMENT'' AFTER parent_id'
)
);
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
SET @sql := (
SELECT IF(
EXISTS (
SELECT 1
FROM information_schema.columns
WHERE table_schema = @schema_name
AND table_name = 'sys_department'
AND column_name = 'manager_employee_id'
),
'SELECT 1',
'ALTER TABLE sys_department ADD COLUMN manager_employee_id BIGINT NULL COMMENT ''负责人员工ID'' AFTER manager_name'
)
);
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
SET @sql := (
SELECT IF(
EXISTS (
SELECT 1
FROM information_schema.statistics
WHERE table_schema = @schema_name
AND table_name = 'sys_department'
AND index_name = 'idx_department_parent_sort'
),
'SELECT 1',
'CREATE INDEX idx_department_parent_sort ON sys_department(parent_id, sort_no, id)'
)
);
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
INSERT INTO sys_permission (permission_code, permission_name, module_code, action_code, status)
SELECT 'MENU_SYSTEM_PERMISSION', '系统权限管理菜单', 'SYSTEM_PERMISSION', 'VIEW', 'ACTIVE'
FROM DUAL
WHERE NOT EXISTS (SELECT 1 FROM sys_permission WHERE permission_code = 'MENU_SYSTEM_PERMISSION');
UPDATE sys_role
SET role_name = '超级管理员', remark = '系统全局权限、角色、人员账号维护'
WHERE role_code = 'ADMIN';
UPDATE sys_role
SET role_name = '采购专员', remark = '供应商、采购订单、到货和采购相关库存查询'
WHERE role_code = 'PURCHASER';
UPDATE sys_role
SET role_name = '仓库管理人员', remark = '到货、质检、百华仓库、发货台账相关作业'
WHERE role_code = 'WAREHOUSE';
UPDATE sys_role
SET role_name = '销售人员', remark = '客户、销售订单、发货台账查询与协同'
WHERE role_code = 'SALES';
INSERT INTO sys_role_permission (role_id, permission_id)
SELECT r.id, p.id
FROM sys_role r
JOIN sys_permission p ON p.permission_code IN ('MENU_SYSTEM_PERMISSION', 'MENU_SYSTEM_EXTENSION')
LEFT JOIN sys_role_permission existing ON existing.role_id = r.id AND existing.permission_id = p.id
WHERE r.role_code = 'ADMIN' AND existing.id IS NULL;
COMMIT;