76 lines
4.5 KiB
SQL
76 lines
4.5 KiB
SQL
-- 基础资料导入导出:MySQL 8 单次菜单增量。
|
|
-- 执行前必须停写并完成备份。由 DBA 审核后在明确选定的目标库单次执行。
|
|
-- 本脚本仅随代码交付,不在应用启动时执行;本次开发未连接数据库、未运行 SQL。
|
|
-- 权限只新增 sys_menu,不写 sys_role_menu;上线后由管理员按现场职责手动授权。
|
|
|
|
DELIMITER $$
|
|
CREATE PROCEDURE migrate_master_excel_20261009()
|
|
BEGIN
|
|
DECLARE EXIT HANDLER FOR SQLEXCEPTION
|
|
BEGIN
|
|
ROLLBACK;
|
|
RESIGNAL;
|
|
END;
|
|
|
|
IF DATABASE() IS NULL THEN
|
|
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Select the target database before migration';
|
|
END IF;
|
|
IF SUBSTRING_INDEX(VERSION(), '.', 1) <> '8' THEN
|
|
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'MySQL 8 is required';
|
|
END IF;
|
|
IF EXISTS (
|
|
SELECT 1 FROM sys_menu
|
|
WHERE menu_id BETWEEN 1120 AND 1133
|
|
OR perms IN (
|
|
'master:strain:import', 'master:strain:export',
|
|
'master:customer:import', 'master:customer:export',
|
|
'master:site:import', 'master:site:export',
|
|
'master:line:import', 'master:line:export',
|
|
'master:warehouse:import', 'master:warehouse:export',
|
|
'master:pallet:import', 'master:pallet:export',
|
|
'master:tunnel:import', 'master:tunnel:export'
|
|
)
|
|
) THEN
|
|
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Master excel menu ids or permissions already exist';
|
|
END IF;
|
|
IF EXISTS (SELECT 1 FROM sys_role_menu WHERE menu_id BETWEEN 1120 AND 1133) THEN
|
|
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Orphan role grants for master excel menus must be reviewed first';
|
|
END IF;
|
|
IF (SELECT COUNT(*) FROM sys_menu
|
|
WHERE (menu_id = 502 AND perms = 'master:strain:list' AND menu_type = 'C')
|
|
OR (menu_id = 503 AND perms = 'master:customer:list' AND menu_type = 'C')
|
|
OR (menu_id = 504 AND perms = 'master:site:list' AND menu_type = 'C')
|
|
OR (menu_id = 505 AND perms = 'master:line:list' AND menu_type = 'C')
|
|
OR (menu_id = 506 AND perms = 'master:warehouse:list' AND menu_type = 'C')
|
|
OR (menu_id = 507 AND perms = 'master:pallet:list' AND menu_type = 'C')
|
|
OR (menu_id = 520 AND perms = 'master:tunnel:list' AND menu_type = 'C')) <> 7 THEN
|
|
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Master parent menus do not match the expected contract';
|
|
END IF;
|
|
|
|
START TRANSACTION;
|
|
INSERT INTO sys_menu (
|
|
menu_id, menu_name, parent_id, order_num, path, component, query, route_name,
|
|
is_frame, is_cache, menu_type, visible, status, perms, icon, create_by,
|
|
create_time, update_by, update_time, remark
|
|
) VALUES
|
|
(1120, '菌种导入', 502, 4, '', '', '', '', 1, 0, 'F', '0', '0', 'master:strain:import', '#', 'admin', SYSDATE(), '', NULL, ''),
|
|
(1121, '菌种导出', 502, 5, '', '', '', '', 1, 0, 'F', '0', '0', 'master:strain:export', '#', 'admin', SYSDATE(), '', NULL, ''),
|
|
(1122, '客户导入', 503, 4, '', '', '', '', 1, 0, 'F', '0', '0', 'master:customer:import', '#', 'admin', SYSDATE(), '', NULL, ''),
|
|
(1123, '客户导出', 503, 5, '', '', '', '', 1, 0, 'F', '0', '0', 'master:customer:export', '#', 'admin', SYSDATE(), '', NULL, ''),
|
|
(1124, '现场导入', 504, 6, '', '', '', '', 1, 0, 'F', '0', '0', 'master:site:import', '#', 'admin', SYSDATE(), '', NULL, ''),
|
|
(1125, '现场导出', 504, 7, '', '', '', '', 1, 0, 'F', '0', '0', 'master:site:export', '#', 'admin', SYSDATE(), '', NULL, ''),
|
|
(1126, '产线导入', 505, 4, '', '', '', '', 1, 0, 'F', '0', '0', 'master:line:import', '#', 'admin', SYSDATE(), '', NULL, ''),
|
|
(1127, '产线导出', 505, 5, '', '', '', '', 1, 0, 'F', '0', '0', 'master:line:export', '#', 'admin', SYSDATE(), '', NULL, ''),
|
|
(1128, '仓库导入', 506, 6, '', '', '', '', 1, 0, 'F', '0', '0', 'master:warehouse:import', '#', 'admin', SYSDATE(), '', NULL, ''),
|
|
(1129, '仓库导出', 506, 7, '', '', '', '', 1, 0, 'F', '0', '0', 'master:warehouse:export', '#', 'admin', SYSDATE(), '', NULL, ''),
|
|
(1130, '托盘导入', 507, 6, '', '', '', '', 1, 0, 'F', '0', '0', 'master:pallet:import', '#', 'admin', SYSDATE(), '', NULL, ''),
|
|
(1131, '托盘导出', 507, 7, '', '', '', '', 1, 0, 'F', '0', '0', 'master:pallet:export', '#', 'admin', SYSDATE(), '', NULL, ''),
|
|
(1132, '隧道导入', 520, 4, '', '', '', '', 1, 0, 'F', '0', '0', 'master:tunnel:import', '#', 'admin', SYSDATE(), '', NULL, ''),
|
|
(1133, '隧道导出', 520, 5, '', '', '', '', 1, 0, 'F', '0', '0', 'master:tunnel:export', '#', 'admin', SYSDATE(), '', NULL, '');
|
|
COMMIT;
|
|
END$$
|
|
DELIMITER ;
|
|
|
|
CALL migrate_master_excel_20261009();
|
|
DROP PROCEDURE migrate_master_excel_20261009;
|