1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
| -- =============================================
| -- HRM 权限码对齐初始化脚本(可重复执行)
| -- 背景:后端 @PreAuthorize 使用的权限码在 system_menu 中不存在,
| -- 导致非超级管理员调用接口时一律 403(菜单可见但"没有操作权限")。
| -- 处理:为这些权限码补齐 type=3 的按钮权限点(不显示在侧栏),并授权给现有角色。
| -- 菜单可见性仍由各模块父菜单的 role_menu 控制,不会因此扩大可见范围。
| -- =============================================
| SET NAMES utf8mb4;
|
| INSERT INTO `system_menu`
| (`id`,`name`,`permission`,`type`,`sort`,`parent_id`,`path`,`icon`,`component`,`component_name`,
| `status`,`visible`,`keep_alive`,`always_show`,`creator`,`create_time`,`updater`,`update_time`,`deleted`)
| VALUES
| -- 考勤管理(6010 下的子菜单)
| (602800,'考勤规则查询','hrm:attendance-rule:query',3,10,6013,'','','',NULL,0,b'1',b'1',b'1','1',NOW(),'1',NOW(),b'0'),
| (602801,'考勤记录查询','hrm:attendance-record:query',3,10,6011,'','','',NULL,0,b'1',b'1',b'1','1',NOW(),'1',NOW(),b'0'),
| (602802,'考勤异常查询','hrm:attendance-exception:query',3,10,6012,'','','',NULL,0,b'1',b'1',b'1','1',NOW(),'1',NOW(),b'0'),
| (602803,'考勤异常修改','hrm:attendance-exception:update',3,11,6012,'','','',NULL,0,b'1',b'1',b'1','1',NOW(),'1',NOW(),b'0'),
| (602804,'考勤异常删除','hrm:attendance-exception:delete',3,12,6012,'','','',NULL,0,b'1',b'1',b'1','1',NOW(),'1',NOW(),b'0'),
| (602805,'节假日配置查询','hrm:attendance-holiday:query',3,10,6014,'','','',NULL,0,b'1',b'1',b'1','1',NOW(),'1',NOW(),b'0'),
| (602806,'考勤统计查询','hrm:attendance-summary:query',3,10,6015,'','','',NULL,0,b'1',b'1',b'1','1',NOW(),'1',NOW(),b'0'),
| -- 人事审批(6002 下的子菜单)
| (602807,'请假申请导出','hrm:leave:export',3,10,6003,'','','',NULL,0,b'1',b'1',b'1','1',NOW(),'1',NOW(),b'0'),
| (602808,'调岗申请查询','hrm:transfer:query',3,10,6004,'','','',NULL,0,b'1',b'1',b'1','1',NOW(),'1',NOW(),b'0'),
| (602809,'调岗申请导出','hrm:transfer:export',3,11,6004,'','','',NULL,0,b'1',b'1',b'1','1',NOW(),'1',NOW(),b'0'),
| (602810,'离职申请查询','hrm:resignation:query',3,10,6005,'','','',NULL,0,b'1',b'1',b'1','1',NOW(),'1',NOW(),b'0'),
| (602811,'离职申请导出','hrm:resignation:export',3,11,6005,'','','',NULL,0,b'1',b'1',b'1','1',NOW(),'1',NOW(),b'0'),
| (602812,'加班申请查询','hrm:overtime:query',3,10,1065211,'','','',NULL,0,b'1',b'1',b'1','1',NOW(),'1',NOW(),b'0'),
| -- 员工合同
| (602813,'合同导入','hrm:employee-contract:import',3,10,1063105,'','','',NULL,0,b'1',b'1',b'1','1',NOW(),'1',NOW(),b'0'),
| -- 薪酬核算(6021)
| (602814,'薪酬核算查询','hrm:salary-calculation:query',3,10,6021,'','','',NULL,0,b'1',b'1',b'1','1',NOW(),'1',NOW(),b'0'),
| (602815,'薪酬核算删除','hrm:salary-calculation:delete',3,11,6021,'','','',NULL,0,b'1',b'1',b'1','1',NOW(),'1',NOW(),b'0'),
| -- 薪资发放(6022)
| (602816,'薪资发放查询','hrm:salary-payment:query',3,10,6022,'','','',NULL,0,b'1',b'1',b'1','1',NOW(),'1',NOW(),b'0'),
| (602817,'薪资发放生成','hrm:salary-payment:generate',3,11,6022,'','','',NULL,0,b'1',b'1',b'1','1',NOW(),'1',NOW(),b'0'),
| (602818,'薪资发放删除','hrm:salary-payment:delete',3,12,6022,'','','',NULL,0,b'1',b'1',b'1','1',NOW(),'1',NOW(),b'0'),
| -- 员工社保公积金档案(6023)
| (602819,'社保档案查询','hrm:employee-social-security:query',3,10,6023,'','','',NULL,0,b'1',b'1',b'1','1',NOW(),'1',NOW(),b'0'),
| -- 社保公积金方案(602445)
| (602820,'社保方案查询','hrm:social-security-scheme:query',3,10,602445,'','','',NULL,0,b'1',b'1',b'1','1',NOW(),'1',NOW(),b'0'),
| -- 社保配置(挂在薪酬管理 6020)
| (602821,'社保配置查询','hrm:social-security-config:query',3,30,6020,'','','',NULL,0,b'1',b'1',b'1','1',NOW(),'1',NOW(),b'0'),
| (602822,'社保配置新增','hrm:social-security-config:create',3,31,6020,'','','',NULL,0,b'1',b'1',b'1','1',NOW(),'1',NOW(),b'0'),
| (602823,'社保配置修改','hrm:social-security-config:update',3,32,6020,'','','',NULL,0,b'1',b'1',b'1','1',NOW(),'1',NOW(),b'0'),
| (602824,'社保配置删除','hrm:social-security-config:delete',3,33,6020,'','','',NULL,0,b'1',b'1',b'1','1',NOW(),'1',NOW(),b'0'),
| -- 个税税率配置(6024)
| (602825,'个税税率查询','hrm:tax-rate-config:query',3,10,6024,'','','',NULL,0,b'1',b'1',b'1','1',NOW(),'1',NOW(),b'0'),
| -- 薪酬结构(菜单中暂无该页面,权限点挂薪酬管理下)
| (602826,'薪酬结构查询','hrm:salary-structure:query',3,40,6020,'','','',NULL,0,b'1',b'1',b'1','1',NOW(),'1',NOW(),b'0'),
| (602827,'薪酬结构新增','hrm:salary-structure:create',3,41,6020,'','','',NULL,0,b'1',b'1',b'1','1',NOW(),'1',NOW(),b'0'),
| (602828,'薪酬结构修改','hrm:salary-structure:update',3,42,6020,'','','',NULL,0,b'1',b'1',b'1','1',NOW(),'1',NOW(),b'0'),
| (602829,'薪酬结构删除','hrm:salary-structure:delete',3,43,6020,'','','',NULL,0,b'1',b'1',b'1','1',NOW(),'1',NOW(),b'0')
| ON DUPLICATE KEY UPDATE
| `name` = VALUES(`name`), `permission` = VALUES(`permission`), `type` = VALUES(`type`),
| `parent_id` = VALUES(`parent_id`), `status` = VALUES(`status`), `deleted` = b'0';
|
| -- 授权给现有全部角色(菜单可见性仍由父菜单控制,不会因此扩大可见范围)
| INSERT INTO `system_role_menu` (`role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
| SELECT r.id, m.id, '1', NOW(), '1', NOW(), b'0'
| FROM `system_role` r
| JOIN `system_menu` m ON m.id BETWEEN 602800 AND 602829 AND m.deleted = b'0'
| WHERE r.deleted = b'0'
| AND NOT EXISTS (
| SELECT 1 FROM `system_role_menu` rm
| WHERE rm.role_id = r.id AND rm.menu_id = m.id AND rm.deleted = b'0'
| );
|
| SELECT 'HRM 权限码对齐初始化完成' AS result;
|
|