th-tenant-menu-seed.sql
12.8 KB
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
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
-- 泰额版 menu 菜单初始化脚本(平台主库 / 租户业务库通用)
-- 执行库示例:antis-foodlabeling-host(平台主库);租户业务库按需切换
-- 禁止对 antis-foodlabeling-us 执行(美国版)
--
-- MenuType: 0=目录, 1=菜单, 2=组件/按钮
-- MenuSource: 0=Ruoyi, 1=Pure, 2=Vben5;当前固定 Ruoyi(0)
-- 根菜单 ParentId 用 '0';子菜单 ParentId 用父菜单 Guid
--
-- ========== 固定 Guid 对照表(名称 → Id) ==========
-- 首页概览 f0010001-0001-4000-8000-000000000001
-- 平台管理 f0010002-0001-4000-8000-000000000002
-- SAAS 公司 f0010003-0001-4000-8000-000000000003
-- 标签管理 f0010010-0001-4000-8000-000000000010
-- 标签 f0010011-0001-4000-8000-000000000011
-- 标签分类 f0010012-0001-4000-8000-000000000012
-- 标签类型 f0010013-0001-4000-8000-000000000013
-- 标签模板 f0010014-0001-4000-8000-000000000014
-- 多选选项集 f0010015-0001-4000-8000-000000000015
-- 业务模块 f0010020-0001-4000-8000-000000000020
-- 培训 f0010021-0001-4000-8000-000000000021
-- 告警 f0010022-0001-4000-8000-000000000022
-- 任务 f0010023-0001-4000-8000-000000000023
-- 传感器 f0010024-0001-4000-8000-000000000024
-- 食物浪费 f0010025-0001-4000-8000-000000000025
-- 电子标签 f0010026-0001-4000-8000-000000000026
-- 管理 f0010030-0001-4000-8000-000000000030
-- 账户管理 f0010031-0001-4000-8000-000000000031
-- 系统菜单 f0010032-0001-4000-8000-000000000032
-- 菜单管理 f0010033-0001-4000-8000-000000000033
-- 设备 f0010034-0001-4000-8000-000000000034
-- 报表 f0010035-0001-4000-8000-000000000035
-- 发票 f0010036-0001-4000-8000-000000000036
-- 二维码 f0010037-0001-4000-8000-000000000037
-- 支持 f0010038-0001-4000-8000-000000000038
-- API f0010039-0001-4000-8000-000000000039
-- ==================================================
-- 1a) 物理删除非法 Id(th-menu-*),避免留下脏数据行
DELETE FROM `rolemenu` WHERE `MenuId` LIKE 'th-menu-%';
DELETE FROM `menu` WHERE `Id` LIKE 'th-menu-%';
-- 1b) 同 PermissionCode 的其它旧行(非本脚本固定 Guid)做逻辑删除
UPDATE `menu`
SET `IsDeleted` = 1,
`LastModificationTime` = NOW()
WHERE `IsDeleted` = 0
AND (
(
`PermissionCode` IN (
'menu.dashboard.analytics',
'menu.platform',
'menu.platform.tenants',
'menu.labeling',
'menu.labeling.labels',
'menu.labeling.categories',
'menu.labeling.types',
'menu.labeling.templates',
'menu.labeling.multiple-options',
'menu.modules',
'menu.modules.training',
'menu.modules.alerts',
'menu.modules.tasks',
'menu.modules.sensors',
'menu.modules.food-waste',
'menu.modules.e-label',
'menu.management',
'menu.management.account',
'menu.management.system-menu',
'menu.management.menu',
'menu.management.devices',
'menu.management.reports',
'menu.management.invoices',
'menu.management.qr-codes',
'menu.management.support',
'menu.management.api'
)
AND `Id` NOT IN (
'f0010001-0001-4000-8000-000000000001',
'f0010002-0001-4000-8000-000000000002',
'f0010003-0001-4000-8000-000000000003',
'f0010010-0001-4000-8000-000000000010',
'f0010011-0001-4000-8000-000000000011',
'f0010012-0001-4000-8000-000000000012',
'f0010013-0001-4000-8000-000000000013',
'f0010014-0001-4000-8000-000000000014',
'f0010015-0001-4000-8000-000000000015',
'f0010020-0001-4000-8000-000000000020',
'f0010021-0001-4000-8000-000000000021',
'f0010022-0001-4000-8000-000000000022',
'f0010023-0001-4000-8000-000000000023',
'f0010024-0001-4000-8000-000000000024',
'f0010025-0001-4000-8000-000000000025',
'f0010026-0001-4000-8000-000000000026',
'f0010030-0001-4000-8000-000000000030',
'f0010031-0001-4000-8000-000000000031',
'f0010032-0001-4000-8000-000000000032',
'f0010033-0001-4000-8000-000000000033',
'f0010034-0001-4000-8000-000000000034',
'f0010035-0001-4000-8000-000000000035',
'f0010036-0001-4000-8000-000000000036',
'f0010037-0001-4000-8000-000000000037',
'f0010038-0001-4000-8000-000000000038',
'f0010039-0001-4000-8000-000000000039'
)
)
);
-- 2) 插入 / 更新 26 条食品 SaaS 菜单(合法 Guid)
INSERT INTO `menu`
(
`Id`,
`IsDeleted`,
`CreationTime`,
`CreatorId`,
`LastModifierId`,
`LastModificationTime`,
`OrderNum`,
`State`,
`MenuName`,
`RouterName`,
`MenuType`,
`PermissionCode`,
`ParentId`,
`MenuIcon`,
`Router`,
`IsLink`,
`IsCache`,
`IsShow`,
`Remark`,
`Component`,
`MenuSource`,
`Query`,
`ConcurrencyStamp`
)
VALUES
('f0010001-0001-4000-8000-000000000001', 0, NOW(), NULL, NULL, NULL, -1, 1, '首页概览', 'FoodLabelingDashboard', 1, 'menu.dashboard.analytics', '0', 'lucide:layout-dashboard', '/analytics', 0, 0, 1, NULL, '/food-labeling/dashboard/index', 0, NULL, UUID()),
('f0010002-0001-4000-8000-000000000002', 0, NOW(), NULL, NULL, NULL, 5, 1, '平台管理', 'FoodLabelingPlatform', 0, 'menu.platform', '0', 'lucide:cloud-cog', '/platform', 0, 0, 1, NULL, NULL, 0, NULL, UUID()),
('f0010003-0001-4000-8000-000000000003', 0, NOW(), NULL, NULL, NULL, 6, 1, 'SAAS 公司', 'FoodLabelingPlatformTenants', 1, 'menu.platform.tenants', 'f0010002-0001-4000-8000-000000000002', 'lucide:building', '/platform/tenants', 0, 0, 1, NULL, '/food-labeling/platform/tenants/index', 0, NULL, UUID()),
('f0010010-0001-4000-8000-000000000010', 0, NOW(), NULL, NULL, NULL, 10, 1, '标签管理', 'FoodLabelingLabeling', 0, 'menu.labeling', '0', 'lucide:tags', '/labeling', 0, 0, 1, NULL, NULL, 0, NULL, UUID()),
('f0010011-0001-4000-8000-000000000011', 0, NOW(), NULL, NULL, NULL, 11, 1, '标签', 'FoodLabelingLabels', 1, 'menu.labeling.labels', 'f0010010-0001-4000-8000-000000000010', 'lucide:tag', '/labels', 0, 0, 1, NULL, '/food-labeling/labeling/labels/index', 0, NULL, UUID()),
('f0010012-0001-4000-8000-000000000012', 0, NOW(), NULL, NULL, NULL, 12, 1, '标签分类', 'FoodLabelingLabelCategories', 1, 'menu.labeling.categories', 'f0010010-0001-4000-8000-000000000010', 'lucide:folder-tree', '/label-categories', 0, 0, 1, NULL, '/food-labeling/labeling/label-categories/index', 0, NULL, UUID()),
('f0010013-0001-4000-8000-000000000013', 0, NOW(), NULL, NULL, NULL, 13, 1, '标签类型', 'FoodLabelingLabelTypes', 1, 'menu.labeling.types', 'f0010010-0001-4000-8000-000000000010', 'lucide:layers', '/label-types', 0, 0, 1, NULL, '/food-labeling/labeling/label-types/index', 0, NULL, UUID()),
('f0010014-0001-4000-8000-000000000014', 0, NOW(), NULL, NULL, NULL, 14, 1, '标签模板', 'FoodLabelingLabelTemplates', 1, 'menu.labeling.templates', 'f0010010-0001-4000-8000-000000000010', 'lucide:layout-template', '/label-templates', 0, 0, 1, NULL, '/food-labeling/labeling/label-templates/index', 0, NULL, UUID()),
('f0010015-0001-4000-8000-000000000015', 0, NOW(), NULL, NULL, NULL, 15, 1, '多选选项集', 'FoodLabelingMultipleOptions', 1, 'menu.labeling.multiple-options', 'f0010010-0001-4000-8000-000000000010', 'lucide:list-checks', '/multiple-options', 0, 0, 1, NULL, '/food-labeling/labeling/multiple-options/index', 0, NULL, UUID()),
('f0010020-0001-4000-8000-000000000020', 0, NOW(), NULL, NULL, NULL, 15, 1, '业务模块', 'FoodLabelingModules', 0, 'menu.modules', '0', 'lucide:boxes', '/modules', 0, 0, 1, NULL, NULL, 0, NULL, UUID()),
('f0010021-0001-4000-8000-000000000021', 0, NOW(), NULL, NULL, NULL, 16, 1, '培训', 'FoodLabelingTraining', 1, 'menu.modules.training', 'f0010020-0001-4000-8000-000000000020', 'lucide:graduation-cap', '/training', 0, 0, 1, NULL, '/food-labeling/modules/training/index', 0, NULL, UUID()),
('f0010022-0001-4000-8000-000000000022', 0, NOW(), NULL, NULL, NULL, 17, 1, '告警', 'FoodLabelingAlerts', 1, 'menu.modules.alerts', 'f0010020-0001-4000-8000-000000000020', 'lucide:bell', '/alerts', 0, 0, 1, NULL, '/food-labeling/modules/alerts/index', 0, NULL, UUID()),
('f0010023-0001-4000-8000-000000000023', 0, NOW(), NULL, NULL, NULL, 18, 1, '任务', 'FoodLabelingTasks', 1, 'menu.modules.tasks', 'f0010020-0001-4000-8000-000000000020', 'lucide:list-todo', '/tasks', 0, 0, 1, NULL, '/food-labeling/modules/tasks/index', 0, NULL, UUID()),
('f0010024-0001-4000-8000-000000000024', 0, NOW(), NULL, NULL, NULL, 19, 1, '传感器', 'FoodLabelingSensors', 1, 'menu.modules.sensors', 'f0010020-0001-4000-8000-000000000020', 'lucide:activity', '/sensors', 0, 0, 1, NULL, '/food-labeling/modules/sensors/index', 0, NULL, UUID()),
('f0010025-0001-4000-8000-000000000025', 0, NOW(), NULL, NULL, NULL, 20, 1, '食物浪费', 'FoodLabelingFoodWaste', 1, 'menu.modules.food-waste', 'f0010020-0001-4000-8000-000000000020', 'lucide:apple', '/food-waste', 0, 0, 1, NULL, '/food-labeling/modules/food-waste/index', 0, NULL, UUID()),
('f0010026-0001-4000-8000-000000000026', 0, NOW(), NULL, NULL, NULL, 21, 1, '电子标签', 'FoodLabelingELabelModule', 1, 'menu.modules.e-label', 'f0010020-0001-4000-8000-000000000020', 'lucide:file-digit', '/e-label-module', 0, 0, 1, NULL, '/food-labeling/modules/e-label/index', 0, NULL, UUID()),
('f0010030-0001-4000-8000-000000000030', 0, NOW(), NULL, NULL, NULL, 20, 1, '管理', 'FoodLabelingManagement', 0, 'menu.management', '0', 'lucide:building-2', '/management', 0, 0, 1, NULL, NULL, 0, NULL, UUID()),
('f0010031-0001-4000-8000-000000000031', 0, NOW(), NULL, NULL, NULL, 21, 1, '账户管理', 'FoodLabelingAccountManagement', 1, 'menu.management.account', 'f0010030-0001-4000-8000-000000000030', 'lucide:users', '/account-management', 0, 0, 1, NULL, '/food-labeling/management/account-management/index', 0, NULL, UUID()),
('f0010032-0001-4000-8000-000000000032', 0, NOW(), NULL, NULL, NULL, 22, 1, '系统菜单', 'FoodLabelingSystemMenu', 1, 'menu.management.system-menu', 'f0010030-0001-4000-8000-000000000030', 'lucide:menu-square', '/system-menu', 0, 0, 1, NULL, '/food-labeling/management/system-menu/index', 0, NULL, UUID()),
('f0010033-0001-4000-8000-000000000033', 0, NOW(), NULL, NULL, NULL, 23, 1, '菜单管理', 'FoodLabelingMenuManagement', 1, 'menu.management.menu', 'f0010030-0001-4000-8000-000000000030', 'lucide:utensils', '/menu-management', 0, 0, 1, NULL, '/food-labeling/management/menu-management/index', 0, NULL, UUID()),
('f0010034-0001-4000-8000-000000000034', 0, NOW(), NULL, NULL, NULL, 24, 1, '设备', 'FoodLabelingDevices', 1, 'menu.management.devices', 'f0010030-0001-4000-8000-000000000030', 'lucide:smartphone', '/devices', 0, 0, 1, NULL, '/food-labeling/modules/devices/index', 0, NULL, UUID()),
('f0010035-0001-4000-8000-000000000035', 0, NOW(), NULL, NULL, NULL, 25, 1, '报表', 'FoodLabelingReports', 1, 'menu.management.reports', 'f0010030-0001-4000-8000-000000000030', 'lucide:file-bar-chart', '/reports', 0, 0, 1, NULL, '/food-labeling/management/reports/index', 0, NULL, UUID()),
('f0010036-0001-4000-8000-000000000036', 0, NOW(), NULL, NULL, NULL, 26, 1, '发票', 'FoodLabelingInvoices', 1, 'menu.management.invoices', 'f0010030-0001-4000-8000-000000000030', 'lucide:receipt', '/invoices', 0, 0, 1, NULL, '/food-labeling/modules/invoices/index', 0, NULL, UUID()),
('f0010037-0001-4000-8000-000000000037', 0, NOW(), NULL, NULL, NULL, 27, 1, '二维码', 'FoodLabelingQrCodes', 1, 'menu.management.qr-codes', 'f0010030-0001-4000-8000-000000000030', 'lucide:qr-code', '/qr-codes', 0, 0, 1, NULL, '/food-labeling/modules/qr-codes/index', 0, NULL, UUID()),
('f0010038-0001-4000-8000-000000000038', 0, NOW(), NULL, NULL, NULL, 28, 1, '支持', 'FoodLabelingSupport', 1, 'menu.management.support', 'f0010030-0001-4000-8000-000000000030', 'lucide:life-buoy', '/support', 0, 0, 1, NULL, '/food-labeling/management/support/index', 0, NULL, UUID()),
('f0010039-0001-4000-8000-000000000039', 0, NOW(), NULL, NULL, NULL, 29, 1, 'API', 'FoodLabelingApi', 1, 'menu.management.api', 'f0010030-0001-4000-8000-000000000030', 'lucide:code-2', '/api-settings', 0, 0, 1, NULL, '/food-labeling/modules/api/index', 0, NULL, UUID())
ON DUPLICATE KEY UPDATE
`IsDeleted` = VALUES(`IsDeleted`),
`LastModificationTime` = NOW(),
`OrderNum` = VALUES(`OrderNum`),
`State` = VALUES(`State`),
`MenuName` = VALUES(`MenuName`),
`RouterName` = VALUES(`RouterName`),
`MenuType` = VALUES(`MenuType`),
`PermissionCode` = VALUES(`PermissionCode`),
`ParentId` = VALUES(`ParentId`),
`MenuIcon` = VALUES(`MenuIcon`),
`Router` = VALUES(`Router`),
`IsLink` = VALUES(`IsLink`),
`IsCache` = VALUES(`IsCache`),
`IsShow` = VALUES(`IsShow`),
`Remark` = VALUES(`Remark`),
`Component` = VALUES(`Component`),
`MenuSource` = VALUES(`MenuSource`),
`Query` = VALUES(`Query`),
`ConcurrencyStamp` = UUID();
-- 导入后可执行下面语句检查:
-- SELECT Id, ParentId, MenuName, RouterName, Router, MenuType, MenuSource, OrderNum, IsShow, State
-- FROM `menu`
-- WHERE IsDeleted = 0
-- ORDER BY OrderNum ASC, MenuName ASC;