155 lines
6.2 KiB
SQL
155 lines
6.2 KiB
SQL
-- 运输管理菜单二级分组(与 web-admin pl.ts 对齐)
|
|
-- 1. 新增 6 个二级目录
|
|
-- 2. 调整三级菜单 parent_id / 名称 / 排序
|
|
-- 3. 为已有叶子权限的角色补全二级目录 role_menu
|
|
|
|
-- ── 1. 二级分组目录 ──
|
|
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_GROUP_PLAN', '运输计划', 'PL_MENU_ROOT', 'M', 'plan-module', NULL, NULL, 1, '1', '1', 'shanxia2.0', 1, NULL, 'system', '', NOW(), NULL, NOW(), 0),
|
|
('PL_GROUP_CERT', '购买证上传', 'PL_MENU_ROOT', 'M', 'cert-upload', NULL, NULL, 1, '1', '1', 'shanxia2.0', 2, NULL, 'system', '', NOW(), NULL, NOW(), 0),
|
|
('PL_GROUP_FREIGHT', '运输费用', 'PL_MENU_ROOT', 'M', 'freight-fee', NULL, NULL, 1, '1', '1', 'shanxia2.0', 3, NULL, 'system', '', NOW(), NULL, NOW(), 0),
|
|
('PL_GROUP_VEHICLE', '车辆管理', 'PL_MENU_ROOT', 'M', 'vehicle-mgmt', NULL, NULL, 1, '1', '1', 'shanxia2.0', 4, NULL, 'system', '', NOW(), NULL, NOW(), 0),
|
|
('PL_GROUP_DOC', '证件提醒', 'PL_MENU_ROOT', 'M', 'document-reminder-module', NULL, NULL, 1, '1', '1', 'shanxia2.0', 5, NULL, 'system', '', NOW(), NULL, NOW(), 0),
|
|
('PL_GROUP_BASE', '基础信息库', 'PL_MENU_ROOT', 'M', 'base-info', NULL, NULL, 1, '1', '1', 'shanxia2.0', 6, NULL, 'system', '', NOW(), NULL, NOW(), 0)
|
|
ON DUPLICATE KEY UPDATE
|
|
menu_name = VALUES(menu_name),
|
|
parent_id = VALUES(parent_id),
|
|
path = VALUES(path),
|
|
order_num = VALUES(order_num),
|
|
update_time = NOW();
|
|
|
|
-- ── 2. 三级菜单挂到对应分组 ──
|
|
UPDATE sys_menu SET parent_id = 'PL_GROUP_PLAN', order_num = 1, update_time = NOW()
|
|
WHERE id = 'PL_PLAN' AND del_flag = 0;
|
|
|
|
UPDATE sys_menu SET parent_id = 'PL_GROUP_PLAN', order_num = 2, update_time = NOW()
|
|
WHERE id = 'PL_PLAN_ARCHIVE' AND del_flag = 0;
|
|
|
|
UPDATE sys_menu SET parent_id = 'PL_GROUP_CERT', menu_name = '购买证上传', order_num = 1, update_time = NOW()
|
|
WHERE id = 'PL_PLAN_CERT' AND del_flag = 0;
|
|
|
|
UPDATE sys_menu SET parent_id = 'PL_GROUP_FREIGHT', order_num = 1, update_time = NOW()
|
|
WHERE id = 'PL_FREIGHT' AND del_flag = 0;
|
|
|
|
UPDATE sys_menu SET parent_id = 'PL_GROUP_FREIGHT', order_num = 2, update_time = NOW()
|
|
WHERE id = 'PL_FREIGHT_APPROVAL' AND del_flag = 0;
|
|
|
|
UPDATE sys_menu SET parent_id = 'PL_GROUP_FREIGHT', order_num = 3, update_time = NOW()
|
|
WHERE id = 'PL_FREIGHT_DISBURSE_MENU' AND del_flag = 0;
|
|
|
|
UPDATE sys_menu SET parent_id = 'PL_GROUP_VEHICLE', order_num = 1, update_time = NOW()
|
|
WHERE id = 'PL_VEH_RECHARGE_APPLY' AND del_flag = 0;
|
|
|
|
UPDATE sys_menu SET parent_id = 'PL_GROUP_VEHICLE', order_num = 2, update_time = NOW()
|
|
WHERE id = 'PL_VEH_RECHARGE_RECORD' AND del_flag = 0;
|
|
|
|
UPDATE sys_menu SET parent_id = 'PL_GROUP_VEHICLE', order_num = 3, update_time = NOW()
|
|
WHERE id = 'PL_VEH_MAINT_APPLY' AND del_flag = 0;
|
|
|
|
UPDATE sys_menu SET parent_id = 'PL_GROUP_VEHICLE', order_num = 4, update_time = NOW()
|
|
WHERE id = 'PL_VEH_MAINT_PROCESS' AND del_flag = 0;
|
|
|
|
UPDATE sys_menu SET parent_id = 'PL_GROUP_VEHICLE', order_num = 5, update_time = NOW()
|
|
WHERE id = 'PL_VEH_UREA_APPLY' AND del_flag = 0;
|
|
|
|
UPDATE sys_menu SET parent_id = 'PL_GROUP_VEHICLE', order_num = 6, update_time = NOW()
|
|
WHERE id = 'PL_VEH_UREA_DISBURSE' AND del_flag = 0;
|
|
|
|
UPDATE sys_menu SET parent_id = 'PL_GROUP_DOC', order_num = 1, update_time = NOW()
|
|
WHERE id = 'PL_DOC_REMINDER' AND del_flag = 0;
|
|
|
|
UPDATE sys_menu SET order_num = 6, update_time = NOW()
|
|
WHERE id = 'PL_GROUP_BASE' AND del_flag = 0;
|
|
|
|
UPDATE sys_menu SET parent_id = 'PL_GROUP_BASE', menu_name = '承运商信息', order_num = 1, update_time = NOW()
|
|
WHERE id = 'PL_CARRIER' AND del_flag = 0;
|
|
|
|
UPDATE sys_menu SET parent_id = 'PL_GROUP_BASE', menu_name = '全部车辆信息', order_num = 2, update_time = NOW()
|
|
WHERE id = 'PL_VEHICLE' AND del_flag = 0;
|
|
|
|
UPDATE sys_menu SET parent_id = 'PL_GROUP_BASE', order_num = 3, update_time = NOW()
|
|
WHERE id = 'PL_SELF_VEHICLE' AND del_flag = 0;
|
|
|
|
UPDATE sys_menu SET parent_id = 'PL_GROUP_BASE', menu_name = '驾押人员信息', order_num = 4, update_time = NOW()
|
|
WHERE id = 'PL_DRIVER' AND del_flag = 0;
|
|
|
|
UPDATE sys_menu SET parent_id = 'PL_GROUP_BASE', menu_name = '运输地址库', order_num = 5, update_time = NOW()
|
|
WHERE id = 'PL_TRANSPORT_ADDRESS' AND del_flag = 0;
|
|
|
|
-- ── 3. 角色已授权叶子菜单时,补全二级目录(及运输管理根) ──
|
|
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 DISTINCT
|
|
CONCAT('PLGRM_', SUBSTRING(MD5(CONCAT(rm.role_id, '-', grp.id)), 1, 24)),
|
|
rm.role_id,
|
|
grp.id,
|
|
COALESCE(rm.tenant_no, 'shanxia2.0'),
|
|
0,
|
|
'pl menu group auto grant',
|
|
'system',
|
|
'',
|
|
NOW(),
|
|
NULL,
|
|
NOW(),
|
|
0
|
|
FROM sys_role_menu rm
|
|
INNER JOIN sys_menu leaf ON leaf.id = rm.menu_id AND leaf.del_flag = 0
|
|
INNER JOIN sys_menu grp ON grp.id = leaf.parent_id AND grp.id LIKE 'PL_GROUP_%' AND grp.del_flag = 0
|
|
WHERE rm.del_flag = 0
|
|
AND NOT EXISTS (
|
|
SELECT 1
|
|
FROM sys_role_menu x
|
|
WHERE x.role_id = rm.role_id
|
|
AND x.menu_id = grp.id
|
|
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 DISTINCT
|
|
CONCAT('PLGRR_', SUBSTRING(MD5(CONCAT(rm.role_id, '-PL_MENU_ROOT')), 1, 24)),
|
|
rm.role_id,
|
|
'PL_MENU_ROOT',
|
|
COALESCE(rm.tenant_no, 'shanxia2.0'),
|
|
0,
|
|
'pl menu root auto grant',
|
|
'system',
|
|
'',
|
|
NOW(),
|
|
NULL,
|
|
NOW(),
|
|
0
|
|
FROM sys_role_menu rm
|
|
INNER JOIN sys_menu m ON m.id = rm.menu_id AND m.del_flag = 0
|
|
WHERE rm.del_flag = 0
|
|
AND (
|
|
m.id = 'PL_MENU_ROOT'
|
|
OR m.parent_id = 'PL_MENU_ROOT'
|
|
OR m.parent_id IN (
|
|
'PL_GROUP_PLAN', 'PL_GROUP_CERT', 'PL_GROUP_FREIGHT', 'PL_GROUP_VEHICLE', 'PL_GROUP_DOC', 'PL_GROUP_BASE'
|
|
)
|
|
OR EXISTS (
|
|
SELECT 1 FROM sys_menu p
|
|
WHERE p.id = m.parent_id
|
|
AND p.parent_id IN (
|
|
'PL_GROUP_PLAN', 'PL_GROUP_CERT', 'PL_GROUP_FREIGHT', 'PL_GROUP_VEHICLE', 'PL_GROUP_DOC', 'PL_GROUP_BASE'
|
|
)
|
|
AND p.del_flag = 0
|
|
)
|
|
)
|
|
AND NOT EXISTS (
|
|
SELECT 1
|
|
FROM sys_role_menu x
|
|
WHERE x.role_id = rm.role_id
|
|
AND x.menu_id = 'PL_MENU_ROOT'
|
|
AND x.del_flag = 0
|
|
);
|