Files
shanxia2.0/backend/scripts/migrate_20260820_pl_plan_contract_complete_menu.sql
T
2026-08-21 09:35:11 +08:00

111 lines
3.0 KiB
SQL

-- backend/scripts/migrate_20260820_pl_plan_contract_complete_menu.sql
-- 运输计划合同完善:挂在 PL_GROUP_PLAN 下,order_num=3;按钮权限保存合同关联
-- 可重复执行(幂等)
-- 1) 菜单 C:运输计划合同完善
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 (
'PL_PLAN_CONTRACT',
'运输计划合同完善',
'PL_GROUP_PLAN',
'C',
'plan-contract',
'pl/plan-contract/index',
'pl:plan-contract:list',
1, '1', '1', 'shanxia2.0', 3,
'缺合同运输计划补齐',
'system', '', 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`),
`order_num`=VALUES(`order_num`),
`visible`=VALUES(`visible`),
`status`=VALUES(`status`);
-- 2) 菜单 F:保存合同关联
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 (
'PL_PLAN_CONTRACT_UPD',
'保存合同关联',
'PL_PLAN_CONTRACT',
'F',
'',
NULL,
'pl:plan-contract:update',
1, '1', '1', 'shanxia2.0', 1,
NULL,
'system', '', NOW(), NULL, NOW(), 0
)
ON DUPLICATE KEY UPDATE
`menu_name`=VALUES(`menu_name`),
`perms`=VALUES(`perms`),
`parent_id`=VALUES(`parent_id`);
-- 3) 角色授权:复制已有 PL_PLAN 的角色集合
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
-- 勿用 UUID():同句多行 INSERT 易撞主键;按 role+menu 生成确定性 id
MD5(CONCAT(`role_id`, '#PL_PLAN_CONTRACT')),
`role_id`,
'PL_PLAN_CONTRACT',
`tenant_no`,
0,
NULL,
`create_by`,
`create_dept_id`,
NOW(),
`update_by`,
NOW(),
0
FROM `sys_role_menu`
WHERE `menu_id` = 'PL_PLAN'
AND `del_flag` = 0
AND NOT EXISTS (
SELECT 1
FROM `sys_role_menu` x
WHERE x.`role_id` = `sys_role_menu`.`role_id`
AND x.`menu_id` = 'PL_PLAN_CONTRACT'
AND x.`del_flag` = 0
);
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
MD5(CONCAT(`role_id`, '#PL_PLAN_CONTRACT_UPD')),
`role_id`,
'PL_PLAN_CONTRACT_UPD',
`tenant_no`,
0,
NULL,
`create_by`,
`create_dept_id`,
NOW(),
`update_by`,
NOW(),
0
FROM `sys_role_menu`
WHERE `menu_id` = 'PL_PLAN'
AND `del_flag` = 0
AND NOT EXISTS (
SELECT 1
FROM `sys_role_menu` x
WHERE x.`role_id` = `sys_role_menu`.`role_id`
AND x.`menu_id` = 'PL_PLAN_CONTRACT_UPD'
AND x.`del_flag` = 0
);