Blame view

项目相关文档/th-tenant-menu-seed.sql 12.8 KB
acf259d5   李曜臣   2026-07-24
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) 物理删除非法 Idth-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;