Files
shanxia2.0/docs/sql/migrations/2026-08-08-quote-contract-approval-menus.sql
T
2026-08-08 20:43:48 +08:00

147 lines
4.7 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
-- 报价单/合同:审批视图拆为独立菜单
-- 1) 插入「报价单审批」「合同审批」
-- 2) 调整 CRM 侧栏 order_num,使审批紧挨对应管理菜单
-- 3) 曾拥有 list 菜单的角色,幂等挂上 approve(权限仍可在角色管理中单独收回)
-- 注意:web-admin 开发环境默认 VITE_ACCESS_MODE=frontend,侧栏还依赖
-- web-admin/src/router/modules/sqxp.ts 中的新路由。
-- 报价单审批(紧挨报价单管理)
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 (
'CRM3000000000000000000000000016',
'报价单审批',
'CRM00000000000000000000000000001',
'C',
'quote-approval',
'/crm/quote/approval/index',
'crm:quote:approve',
1, '1', '1', 'shanxia2.0', 6,
'报价单待审批/已审批独立入口',
'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`),
`visible` = '1',
`status` = '1',
`order_num` = VALUES(`order_num`),
`remark` = VALUES(`remark`),
`del_flag` = 0,
`update_time` = NOW();
-- 合同审批(紧挨合同管理;合同管理 order_num 同步调整为 7)
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 (
'CRM3000000000000000000000000021',
'合同审批',
'CRM00000000000000000000000000001',
'C',
'contract-approval',
'/crm/contract/approval/index',
'crm:contract:approve',
1, '1', '1', 'shanxia2.0', 8,
'合同待审批/已审批独立入口',
'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`),
`visible` = '1',
`status` = '1',
`order_num` = VALUES(`order_num`),
`remark` = VALUES(`remark`),
`del_flag` = 0,
`update_time` = NOW();
-- 侧栏顺序:报价管理 5、报价审批 6、合同管理 7、合同审批 8、调价函 9、客户 10、主体危化品 11
UPDATE `sys_menu` SET `order_num` = 5, `update_time` = NOW()
WHERE `id` = 'CRM3000000000000000000000000010' AND `del_flag` = 0;
UPDATE `sys_menu` SET `order_num` = 7, `update_time` = NOW()
WHERE `id` = 'CRM3000000000000000000000000020' AND `del_flag` = 0;
UPDATE `sys_menu` SET `order_num` = 9, `update_time` = NOW()
WHERE `id` = 'CRM3000000000000000000000000030' AND `del_flag` = 0;
UPDATE `sys_menu` SET `order_num` = 10, `update_time` = NOW()
WHERE `id` = 'CRM1000000000000000000000000002' AND `del_flag` = 0;
UPDATE `sys_menu` SET `order_num` = 11, `update_time` = NOW()
WHERE `id` = 'CRM3000000000000000000000000040' AND `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
CONCAT('RMQ16_', UPPER(MD5(CONCAT(t.`role_id`, '|CRM3000000000000000000000000016')))),
t.`role_id`,
'CRM3000000000000000000000000016',
t.`tenant_no`,
0,
'migrated from crm:quote:list for quote approval menu',
'system',
'',
NOW(),
NULL,
NOW(),
0
FROM (
SELECT DISTINCT `role_id`, `tenant_no`
FROM `sys_role_menu`
WHERE `menu_id` = 'CRM3000000000000000000000000010'
AND `del_flag` = 0
) t
WHERE NOT EXISTS (
SELECT 1
FROM `sys_role_menu` x
WHERE x.`role_id` = t.`role_id`
AND x.`menu_id` = 'CRM3000000000000000000000000016'
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
CONCAT('RMC21_', UPPER(MD5(CONCAT(t.`role_id`, '|CRM3000000000000000000000000021')))),
t.`role_id`,
'CRM3000000000000000000000000021',
t.`tenant_no`,
0,
'migrated from crm:contract:list for contract approval menu',
'system',
'',
NOW(),
NULL,
NOW(),
0
FROM (
SELECT DISTINCT `role_id`, `tenant_no`
FROM `sys_role_menu`
WHERE `menu_id` = 'CRM3000000000000000000000000020'
AND `del_flag` = 0
) t
WHERE NOT EXISTS (
SELECT 1
FROM `sys_role_menu` x
WHERE x.`role_id` = t.`role_id`
AND x.`menu_id` = 'CRM3000000000000000000000000021'
AND x.`del_flag` = 0
);