-- ===================================================================== -- hr-system 权限底座(T08 / F11)初始化 DDL + 种子数据 -- 依赖:rbac 基座已创建 sys_role / sys_user / sys_user_role / -- sys_permission / sys_role_permission(路径级功能权限) -- 本脚本仅补齐本模块专属表 sys_data_scope(如 T01 已建则跳过 DDL 段) -- ===================================================================== -- --------------------------------------------------------------------- -- 1. sys_data_scope 双维度数据范围表(幂等:IF NOT EXISTS) -- --------------------------------------------------------------------- CREATE TABLE IF NOT EXISTS sys_data_scope ( id VARCHAR(32) NOT NULL COMMENT '主键', admin_user_id VARCHAR(32) NULL COMMENT '管理员用户(sys_user.id)', scope_type VARCHAR(16) NULL COMMENT '范围类型(org/field/all)', org_ids_json TEXT NULL COMMENT '组织维度(org_unit.id 列表, 含子树由服务端展开)', field_ids_json TEXT NULL COMMENT '花名册字段维度(roster_field_def.id 白名单)', remark TEXT NULL COMMENT '备注', created_by VARCHAR(32) NULL COMMENT '创建人', updated_by VARCHAR(32) NULL COMMENT '更新人', created_at TIMESTAMP NULL COMMENT '创建时间', updated_at TIMESTAMP NULL COMMENT '更新时间', PRIMARY KEY (id), INDEX idx_admin_user (admin_user_id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='数据范围配置(F11,双维度)'; -- --------------------------------------------------------------------- -- 2. 内置四角色(幂等:INSERT IGNORE,编码唯一) -- --------------------------------------------------------------------- INSERT IGNORE INTO sys_role (id, role_code, role_name, remark, created_by, created_at, updated_at) VALUES ('ROLE_EMPLOYEE', 'employee', '员工自助', '员工本人查看/修改个人档案、发起自助申请', 'system', NOW(), NOW()), ('ROLE_MANAGER', 'manager', '经理', '管理本部门员工、发起并审批本部门人事异动', 'system', NOW(), NOW()), ('ROLE_HR_ADMIN', 'hr_admin', 'HR管理员', '管理全公司人事业务,受数据范围约束', 'system', NOW(), NOW()), ('ROLE_SYS_ADMIN','sys_admin', '系统管理员', '系统配置、角色/管理员/数据范围/审计管理', 'system', NOW(), NOW()); -- --------------------------------------------------------------------- -- 3. 内置 admin 用户(密码由 rbac 初始化流程处理,此处仅建账号) -- --------------------------------------------------------------------- INSERT IGNORE INTO sys_user (id, username, real_name, password, status, created_at, updated_at) VALUES ('USER_ADMIN', 'admin', '系统管理员', '', 1, NOW(), NOW()); -- --------------------------------------------------------------------- -- 4. admin 绑定全部四角色(等价 sys_admin 全量权限) -- --------------------------------------------------------------------- INSERT IGNORE INTO sys_user_role (user_id, role_id) VALUES ('USER_ADMIN', 'ROLE_EMPLOYEE'), ('USER_ADMIN', 'ROLE_MANAGER'), ('USER_ADMIN', 'ROLE_HR_ADMIN'), ('USER_ADMIN', 'ROLE_SYS_ADMIN'); -- --------------------------------------------------------------------- -- 5. 权限底座基线权限点(rbac 路径级) -- --------------------------------------------------------------------- INSERT IGNORE INTO sys_permission (id, perm_code, perm_name, perm_path, created_at) VALUES ('PERM_ROLE_ADMIN', 'hr_system:role_admin', '角色权限配置', '/hr_system/role_admin', NOW()), ('PERM_DATA_SCOPE', 'hr_system:data_scope', '数据范围配置', '/hr_system/data_scope', NOW()), ('PERM_AUDIT_LOG', 'hr_system:audit_log', '操作日志查询', '/hr_system/audit_log', NOW()); -- 系统管理员获得权限底座全部权限点 INSERT IGNORE INTO sys_role_permission (role_id, perm_id) VALUES ('ROLE_SYS_ADMIN', 'PERM_ROLE_ADMIN'), ('ROLE_SYS_ADMIN', 'PERM_DATA_SCOPE'), ('ROLE_SYS_ADMIN', 'PERM_AUDIT_LOG');