Files
zkxw/docs/sql/migrations/2026-06-10-basic-experiment-menu.sql
T
2026-06-11 15:42:58 +08:00

110 lines
3.9 KiB
SQL

-- ============================================================
-- 基础实验:sys_menu 菜单数据 + 隐藏临床应用菜单
-- 与 web-admin/src/router/modules/sqxp.ts、backend/app/api/menu.py 对齐
-- ============================================================
-- 1. 一级菜单:基础实验(挂在 Web 端虚拟根「2」下,order_num=4 接替临床应用位置)
INSERT INTO `sys_menu` (
`id`, `menu_name`, `parent_id`, `menu_type`, `path`, `component`, `perms`,
`is_frame`, `visible`, `status`, `tenant_no`, `order_num`, `remark`,
`create_by`, `create_dept_id`, `create_time`, `update_by`, `update_time`, `del_flag`
) VALUES (
'BEX00000000000000000000000000001', '基础实验', '2', 'M', '/basic-experiment', '/index/index', NULL,
1, '1', '1', 'zkxw', 4, NULL,
NULL, '', NOW(), NULL, NOW(), 0
)
ON DUPLICATE KEY UPDATE
`menu_name` = VALUES(`menu_name`),
`parent_id` = VALUES(`parent_id`),
`menu_type` = VALUES(`menu_type`),
`path` = VALUES(`path`),
`component` = VALUES(`component`),
`visible` = '1',
`status` = '1',
`order_num` = VALUES(`order_num`),
`update_time` = NOW(),
`del_flag` = 0;
-- 2. 二级菜单
INSERT INTO `sys_menu` (
`id`, `menu_name`, `parent_id`, `menu_type`, `path`, `component`, `perms`,
`is_frame`, `visible`, `status`, `tenant_no`, `order_num`, `remark`,
`create_by`, `create_dept_id`, `create_time`, `update_by`, `update_time`, `del_flag`
) VALUES
(
'BEX00000000000000000000000000002', '基础实验申请单', 'BEX00000000000000000000000000001', 'C',
'application', '/pilot-service/pilot-application/index', 'basic-experiment:application:list',
1, '1', '1', 'zkxw', 1, NULL,
NULL, '', NOW(), NULL, NOW(), 0
),
(
'BEX00000000000000000000000000003', '缴退费财务确认', 'BEX00000000000000000000000000001', 'C',
'payment-confirm', '/pilot-service/clinical-payment-confirm/index', 'basic-experiment:payment-confirm:list',
1, '1', '1', 'zkxw', 2, NULL,
NULL, '', NOW(), NULL, NOW(), 0
),
(
'BEX00000000000000000000000000004', '出库放行审核', 'BEX00000000000000000000000000001', 'C',
'outbound-release-review', '/pilot-service/outbound-release-review/index', 'basic-experiment:outbound-release-review:list',
1, '1', '1', 'zkxw', 3, NULL,
NULL, '', NOW(), NULL, NOW(), 0
)
ON DUPLICATE KEY UPDATE
`menu_name` = VALUES(`menu_name`),
`parent_id` = VALUES(`parent_id`),
`path` = VALUES(`path`),
`component` = VALUES(`component`),
`perms` = VALUES(`perms`),
`visible` = '1',
`status` = '1',
`order_num` = VALUES(`order_num`),
`update_time` = NOW(),
`del_flag` = 0;
-- 3. 隐藏临床应用菜单(侧栏不展示,与 sqxp.ts isHide 一致)
UPDATE `sys_menu`
SET `visible` = '0', `update_time` = NOW()
WHERE `id` IN (
'CLI00000000000000000000000000001',
'CLI00000000000000000000000000002',
'CLI00000000000000000000000000006',
'CLI00000000000000000000000000008'
)
AND `del_flag` = 0;
-- 4. 为已授权「中试服务」一级菜单的角色,自动授予「基础实验」一级菜单(含子菜单需在角色管理中勾选,或执行下方扩展)
INSERT INTO `sys_role_menu` (
`id`, `role_id`, `menu_id`, `tenant_no`, `order_num`, `remark`,
`create_by`, `create_dept_id`, `create_time`, `update_by`, `update_time`, `del_flag`
)
SELECT
UPPER(REPLACE(UUID(), '-', '')),
rm.`role_id`,
m.`id`,
'zkxw',
0,
'基础实验菜单迁移自动授权',
NULL,
'',
NOW(),
NULL,
NOW(),
0
FROM `sys_role_menu` rm
CROSS JOIN (
SELECT 'BEX00000000000000000000000000001' AS id UNION ALL
SELECT 'BEX00000000000000000000000000002' UNION ALL
SELECT 'BEX00000000000000000000000000003' UNION ALL
SELECT 'BEX00000000000000000000000000004'
) m
WHERE rm.`menu_id` = 'PIL00000000000000000000000000001'
AND rm.`del_flag` = 0
AND rm.`tenant_no` = 'zkxw'
AND NOT EXISTS (
SELECT 1 FROM `sys_role_menu` x
WHERE x.`role_id` = rm.`role_id`
AND x.`menu_id` = m.`id`
AND x.`del_flag` = 0
AND x.`tenant_no` = 'zkxw'
);