xiaoyi
10 天以前 fae95228037f0c1304c1917ae5fff452f2160c5a
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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
-- ============================================================
-- 安全生产模块 - 菜单 + 角色授权
-- 生成时间:2026-10-29
-- 说明:顶级菜单「安全生产」/safety,sort=67(排在能耗管理 65 与售后管理 70 之间)
--       本脚本幂等,可重复执行
-- ============================================================
 
-- ---------- 1. 顶级菜单 ----------
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 (1075600, '安全生产', '', 1, 67, 0, '/safety', 'ep:first-aid-kit', '', '', 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0')
ON DUPLICATE KEY UPDATE `name`=VALUES(`name`), `sort`=VALUES(`sort`), `path`=VALUES(`path`), `icon`=VALUES(`icon`), `status`=0, `deleted`=b'0';
 
-- ---------- 2. 二级目录 ----------
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
(1075601, '安全组织架构', '', 2, 1, 1075600, 'org', 'ep:user-filled', 'safety/org/index', 'SafetyOrg', 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0'),
(1075602, '特种作业证', '', 2, 2, 1075600, 'cert', 'ep:postcard', 'safety/cert/index', 'SafetyCert', 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0'),
(1075603, '安全巡检', '', 1, 3, 1075600, 'inspection', 'ep:view', '', '', 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0'),
(1075604, '隐患闭环', '', 1, 4, 1075600, 'hazard', 'ep:warning-filled', '', '', 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0'),
(1075605, '高危作业票', '', 2, 5, 1075600, 'permit', 'ep:document-checked', 'safety/permit/index', 'SafetyPermit', 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0'),
(1075606, '应急物资', '', 1, 6, 1075600, 'material', 'ep:box', '', '', 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0'),
(1075607, '培训演练', '', 1, 7, 1075600, 'training', 'ep:reading', '', '', 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0'),
(1075608, '事故登记', '', 2, 8, 1075600, 'accident', 'ep:first-aid-kit', 'safety/accident/index', 'SafetyAccident', 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0'),
(1075609, '标准化台账', '', 2, 9, 1075600, 'ledger', 'ep:files', 'safety/ledger/index', 'SafetyLedger', 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0')
ON DUPLICATE KEY UPDATE `name`=VALUES(`name`), `sort`=VALUES(`sort`), `path`=VALUES(`path`), `component`=VALUES(`component`), `component_name`=VALUES(`component_name`), `status`=0, `deleted`=b'0';
 
-- ---------- 3. 三级页面 ----------
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
(1075610, '巡检点位', '', 2, 1, 1075603, 'point', 'ep:location', 'safety/inspection/point/index', 'SafetyInspectionPoint', 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0'),
(1075611, '巡检记录', '', 2, 2, 1075603, 'record', 'ep:tickets', 'safety/inspection/record/index', 'SafetyInspectionRecord', 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0'),
(1075612, '隐患台账', '', 2, 1, 1075604, 'list', 'ep:list', 'safety/hazard/index', 'SafetyHazard', 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0'),
(1075613, '物资台账', '', 2, 1, 1075606, 'list', 'ep:goods', 'safety/material/index', 'SafetyMaterial', 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0'),
(1075614, '出入库流水', '', 2, 2, 1075606, 'stock', 'ep:sort', 'safety/material/stock/index', 'SafetyMaterialStock', 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0'),
(1075615, '安全培训', '', 2, 1, 1075607, 'training', 'ep:notebook', 'safety/training/index', 'SafetyTraining', 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0'),
(1075616, '消防演练', '', 2, 2, 1075607, 'drill', 'ep:alarm-clock', 'safety/drill/index', 'SafetyDrill', 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0')
ON DUPLICATE KEY UPDATE `name`=VALUES(`name`), `sort`=VALUES(`sort`), `path`=VALUES(`path`), `component`=VALUES(`component`), `component_name`=VALUES(`component_name`), `status`=0, `deleted`=b'0';
 
-- ---------- 4. 按钮权限 ----------
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
-- 组织架构
(1075620, '组织查询', 'safety:org:query', 3, 1, 1075601, '', '', '', '', 0, b'1', b'0', b'1', '1', NOW(), '1', NOW(), b'0'),
(1075621, '组织新增', 'safety:org:create', 3, 2, 1075601, '', '', '', '', 0, b'1', b'0', b'1', '1', NOW(), '1', NOW(), b'0'),
(1075622, '组织修改', 'safety:org:update', 3, 3, 1075601, '', '', '', '', 0, b'1', b'0', b'1', '1', NOW(), '1', NOW(), b'0'),
(1075623, '组织删除', 'safety:org:delete', 3, 4, 1075601, '', '', '', '', 0, b'1', b'0', b'1', '1', NOW(), '1', NOW(), b'0'),
-- 特种作业证
(1075624, '证件查询', 'safety:cert:query', 3, 1, 1075602, '', '', '', '', 0, b'1', b'0', b'1', '1', NOW(), '1', NOW(), b'0'),
(1075625, '证件新增', 'safety:cert:create', 3, 2, 1075602, '', '', '', '', 0, b'1', b'0', b'1', '1', NOW(), '1', NOW(), b'0'),
(1075626, '证件修改', 'safety:cert:update', 3, 3, 1075602, '', '', '', '', 0, b'1', b'0', b'1', '1', NOW(), '1', NOW(), b'0'),
(1075627, '证件删除', 'safety:cert:delete', 3, 4, 1075602, '', '', '', '', 0, b'1', b'0', b'1', '1', NOW(), '1', NOW(), b'0'),
(1075628, '证件导出', 'safety:cert:export', 3, 5, 1075602, '', '', '', '', 0, b'1', b'0', b'1', '1', NOW(), '1', NOW(), b'0'),
-- 巡检点位
(1075629, '点位查询', 'safety:inspection-point:query', 3, 1, 1075610, '', '', '', '', 0, b'1', b'0', b'1', '1', NOW(), '1', NOW(), b'0'),
(1075630, '点位新增', 'safety:inspection-point:create', 3, 2, 1075610, '', '', '', '', 0, b'1', b'0', b'1', '1', NOW(), '1', NOW(), b'0'),
(1075631, '点位修改', 'safety:inspection-point:update', 3, 3, 1075610, '', '', '', '', 0, b'1', b'0', b'1', '1', NOW(), '1', NOW(), b'0'),
(1075632, '点位删除', 'safety:inspection-point:delete', 3, 4, 1075610, '', '', '', '', 0, b'1', b'0', b'1', '1', NOW(), '1', NOW(), b'0'),
-- 巡检记录
(1075633, '巡检查询', 'safety:inspection:query', 3, 1, 1075611, '', '', '', '', 0, b'1', b'0', b'1', '1', NOW(), '1', NOW(), b'0'),
(1075634, '巡检新增', 'safety:inspection:create', 3, 2, 1075611, '', '', '', '', 0, b'1', b'0', b'1', '1', NOW(), '1', NOW(), b'0'),
(1075635, '巡检修改', 'safety:inspection:update', 3, 3, 1075611, '', '', '', '', 0, b'1', b'0', b'1', '1', NOW(), '1', NOW(), b'0'),
(1075636, '巡检删除', 'safety:inspection:delete', 3, 4, 1075611, '', '', '', '', 0, b'1', b'0', b'1', '1', NOW(), '1', NOW(), b'0'),
(1075637, '巡检导出', 'safety:inspection:export', 3, 5, 1075611, '', '', '', '', 0, b'1', b'0', b'1', '1', NOW(), '1', NOW(), b'0'),
-- 隐患
(1075638, '隐患查询', 'safety:hazard:query', 3, 1, 1075612, '', '', '', '', 0, b'1', b'0', b'1', '1', NOW(), '1', NOW(), b'0'),
(1075639, '隐患上报', 'safety:hazard:create', 3, 2, 1075612, '', '', '', '', 0, b'1', b'0', b'1', '1', NOW(), '1', NOW(), b'0'),
(1075640, '隐患修改', 'safety:hazard:update', 3, 3, 1075612, '', '', '', '', 0, b'1', b'0', b'1', '1', NOW(), '1', NOW(), b'0'),
(1075641, '隐患分派', 'safety:hazard:assign', 3, 4, 1075612, '', '', '', '', 0, b'1', b'0', b'1', '1', NOW(), '1', NOW(), b'0'),
(1075642, '隐患整改', 'safety:hazard:rectify', 3, 5, 1075612, '', '', '', '', 0, b'1', b'0', b'1', '1', NOW(), '1', NOW(), b'0'),
(1075643, '隐患复查', 'safety:hazard:recheck', 3, 6, 1075612, '', '', '', '', 0, b'1', b'0', b'1', '1', NOW(), '1', NOW(), b'0'),
(1075644, '隐患删除', 'safety:hazard:delete', 3, 7, 1075612, '', '', '', '', 0, b'1', b'0', b'1', '1', NOW(), '1', NOW(), b'0'),
(1075645, '隐患导出', 'safety:hazard:export', 3, 8, 1075612, '', '', '', '', 0, b'1', b'0', b'1', '1', NOW(), '1', NOW(), b'0'),
-- 高危作业票
(1075646, '作业票查询', 'safety:permit:query', 3, 1, 1075605, '', '', '', '', 0, b'1', b'0', b'1', '1', NOW(), '1', NOW(), b'0'),
(1075647, '作业票申请', 'safety:permit:create', 3, 2, 1075605, '', '', '', '', 0, b'1', b'0', b'1', '1', NOW(), '1', NOW(), b'0'),
(1075648, '作业票修改', 'safety:permit:update', 3, 3, 1075605, '', '', '', '', 0, b'1', b'0', b'1', '1', NOW(), '1', NOW(), b'0'),
(1075649, '作业票审批', 'safety:permit:approve', 3, 4, 1075605, '', '', '', '', 0, b'1', b'0', b'1', '1', NOW(), '1', NOW(), b'0'),
(1075650, '作业票删除', 'safety:permit:delete', 3, 5, 1075605, '', '', '', '', 0, b'1', b'0', b'1', '1', NOW(), '1', NOW(), b'0'),
(1075651, '作业票导出', 'safety:permit:export', 3, 6, 1075605, '', '', '', '', 0, b'1', b'0', b'1', '1', NOW(), '1', NOW(), b'0'),
-- 物资台账
(1075652, '物资查询', 'safety:material:query', 3, 1, 1075613, '', '', '', '', 0, b'1', b'0', b'1', '1', NOW(), '1', NOW(), b'0'),
(1075653, '物资新增', 'safety:material:create', 3, 2, 1075613, '', '', '', '', 0, b'1', b'0', b'1', '1', NOW(), '1', NOW(), b'0'),
(1075654, '物资修改', 'safety:material:update', 3, 3, 1075613, '', '', '', '', 0, b'1', b'0', b'1', '1', NOW(), '1', NOW(), b'0'),
(1075655, '物资删除', 'safety:material:delete', 3, 4, 1075613, '', '', '', '', 0, b'1', b'0', b'1', '1', NOW(), '1', NOW(), b'0'),
(1075656, '物资导出', 'safety:material:export', 3, 5, 1075613, '', '', '', '', 0, b'1', b'0', b'1', '1', NOW(), '1', NOW(), b'0'),
-- 出入库流水
(1075657, '流水查询', 'safety:material-stock:query', 3, 1, 1075614, '', '', '', '', 0, b'1', b'0', b'1', '1', NOW(), '1', NOW(), b'0'),
(1075658, '入库登记', 'safety:material-stock:in', 3, 2, 1075614, '', '', '', '', 0, b'1', b'0', b'1', '1', NOW(), '1', NOW(), b'0'),
(1075659, '出库登记', 'safety:material-stock:out', 3, 3, 1075614, '', '', '', '', 0, b'1', b'0', b'1', '1', NOW(), '1', NOW(), b'0'),
(1075660, '流水导出', 'safety:material-stock:export', 3, 4, 1075614, '', '', '', '', 0, b'1', b'0', b'1', '1', NOW(), '1', NOW(), b'0'),
-- 培训
(1075661, '培训查询', 'safety:training:query', 3, 1, 1075615, '', '', '', '', 0, b'1', b'0', b'1', '1', NOW(), '1', NOW(), b'0'),
(1075662, '培训新增', 'safety:training:create', 3, 2, 1075615, '', '', '', '', 0, b'1', b'0', b'1', '1', NOW(), '1', NOW(), b'0'),
(1075663, '培训修改', 'safety:training:update', 3, 3, 1075615, '', '', '', '', 0, b'1', b'0', b'1', '1', NOW(), '1', NOW(), b'0'),
(1075664, '培训删除', 'safety:training:delete', 3, 4, 1075615, '', '', '', '', 0, b'1', b'0', b'1', '1', NOW(), '1', NOW(), b'0'),
(1075665, '培训导出', 'safety:training:export', 3, 5, 1075615, '', '', '', '', 0, b'1', b'0', b'1', '1', NOW(), '1', NOW(), b'0'),
-- 演练
(1075666, '演练查询', 'safety:drill:query', 3, 1, 1075616, '', '', '', '', 0, b'1', b'0', b'1', '1', NOW(), '1', NOW(), b'0'),
(1075667, '演练新增', 'safety:drill:create', 3, 2, 1075616, '', '', '', '', 0, b'1', b'0', b'1', '1', NOW(), '1', NOW(), b'0'),
(1075668, '演练修改', 'safety:drill:update', 3, 3, 1075616, '', '', '', '', 0, b'1', b'0', b'1', '1', NOW(), '1', NOW(), b'0'),
(1075669, '演练删除', 'safety:drill:delete', 3, 4, 1075616, '', '', '', '', 0, b'1', b'0', b'1', '1', NOW(), '1', NOW(), b'0'),
(1075670, '演练导出', 'safety:drill:export', 3, 5, 1075616, '', '', '', '', 0, b'1', b'0', b'1', '1', NOW(), '1', NOW(), b'0'),
-- 事故
(1075671, '事故查询', 'safety:accident:query', 3, 1, 1075608, '', '', '', '', 0, b'1', b'0', b'1', '1', NOW(), '1', NOW(), b'0'),
(1075672, '事故登记', 'safety:accident:create', 3, 2, 1075608, '', '', '', '', 0, b'1', b'0', b'1', '1', NOW(), '1', NOW(), b'0'),
(1075673, '事故修改', 'safety:accident:update', 3, 3, 1075608, '', '', '', '', 0, b'1', b'0', b'1', '1', NOW(), '1', NOW(), b'0'),
(1075674, '事故删除', 'safety:accident:delete', 3, 4, 1075608, '', '', '', '', 0, b'1', b'0', b'1', '1', NOW(), '1', NOW(), b'0'),
(1075675, '事故导出', 'safety:accident:export', 3, 5, 1075608, '', '', '', '', 0, b'1', b'0', b'1', '1', NOW(), '1', NOW(), b'0'),
-- 标准化台账
(1075676, '台账查询', 'safety:ledger:query', 3, 1, 1075609, '', '', '', '', 0, b'1', b'0', b'1', '1', NOW(), '1', NOW(), b'0'),
(1075677, '台账导出', 'safety:ledger:export', 3, 2, 1075609, '', '', '', '', 0, b'1', b'0', b'1', '1', NOW(), '1', NOW(), b'0'),
-- 附件上传(移动端拍照)
(1075678, '附件上传', 'safety:file:upload', 3, 1, 1075600, '', '', '', '', 0, b'1', b'0', b'1', '1', NOW(), '1', NOW(), b'0')
ON DUPLICATE KEY UPDATE `name`=VALUES(`name`), `permission`=VALUES(`permission`), `status`=0, `deleted`=b'0';
 
-- ---------- 5. 超管角色授权(role_id=1 为超级管理员,实际由 hasAnySuperAdmin 兜底;此处授权给普通角色 2) ----------
INSERT INTO `system_role_menu` (`role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`)
SELECT 2, m.`id`, '1', NOW(), '1', NOW(), b'0', 1
FROM `system_menu` m
LEFT JOIN `system_role_menu` rm ON rm.`role_id` = 2 AND rm.`menu_id` = m.`id` AND rm.`deleted` = b'0' AND rm.`tenant_id` = 1
WHERE m.`id` BETWEEN 1075600 AND 1075678 AND m.`deleted` = b'0' AND rm.`id` IS NULL;
 
-- ---------- 6. 校验 ----------
SELECT COUNT(*) AS safety_menus FROM `system_menu` WHERE `id` BETWEEN 1075600 AND 1075678 AND `deleted` = b'0';
SELECT `id`, `name`, `parent_id`, `path`, `component` FROM `system_menu` WHERE `id` BETWEEN 1075600 AND 1075616 AND `deleted` = b'0' ORDER BY `id`;