159 lines
7.4 KiB
SQL
159 lines
7.4 KiB
SQL
-- =============================================================================
|
|
-- OA 审批菜单注册 + 旧「工作流管理」伪删除
|
|
-- 日期:2026-07-15
|
|
-- 说明:
|
|
-- 1. 在「系统管理」顶级(TOP...00005)下注册「OA审批」及三级页面菜单,
|
|
-- id / path / component / perms 与 web-admin sqxp.ts、backend menu.py 对齐。
|
|
-- 2. 伪删除旧「工作流管理」二级及其三级菜单(OA 已替代),并清理角色菜单关联。
|
|
-- =============================================================================
|
|
|
|
SET NAMES utf8mb4;
|
|
|
|
-- ---------------------------------------------------------------------------
|
|
-- 1. 伪删除旧「工作流管理」及其子菜单
|
|
-- ---------------------------------------------------------------------------
|
|
UPDATE `sys_menu`
|
|
SET `del_flag` = 1,
|
|
`update_time` = NOW()
|
|
WHERE `del_flag` = 0
|
|
AND (
|
|
`id` = 'WKF00000000000000000000000000001'
|
|
OR `parent_id` = 'WKF00000000000000000000000000001'
|
|
OR `id` IN (
|
|
'10000000000000000000000000000wf01',
|
|
'10000000000000000000000000000wf02',
|
|
'10000000000000000000000000000wf03',
|
|
'10000000000000000000000000000wf04',
|
|
'10000000000000000000000000000wf05'
|
|
)
|
|
);
|
|
|
|
DELETE FROM `sys_role_menu`
|
|
WHERE `menu_id` IN (
|
|
'WKF00000000000000000000000000001',
|
|
'10000000000000000000000000000wf01',
|
|
'10000000000000000000000000000wf02',
|
|
'10000000000000000000000000000wf03',
|
|
'10000000000000000000000000000wf04',
|
|
'10000000000000000000000000000wf05'
|
|
);
|
|
|
|
-- ---------------------------------------------------------------------------
|
|
-- 2. 注册「OA审批」二级目录(挂在系统管理顶级下)
|
|
-- ---------------------------------------------------------------------------
|
|
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`
|
|
)
|
|
SELECT
|
|
'OA000000000000000000000000000001', 'OA审批', 'TOP00000000000000000000000000005', 'M',
|
|
'oa-approval', NULL, NULL,
|
|
1, '1', '1', 'zkxw', 2, '钉钉式 OA 审批(替代旧工作流管理)',
|
|
NULL, '', NOW(), NULL, NOW(), 0
|
|
FROM DUAL
|
|
WHERE NOT EXISTS (
|
|
SELECT 1 FROM `sys_menu` WHERE `id` = 'OA000000000000000000000000000001'
|
|
);
|
|
|
|
-- 若曾假删过同 id,则恢复
|
|
UPDATE `sys_menu`
|
|
SET `del_flag` = 0,
|
|
`menu_name` = 'OA审批',
|
|
`parent_id` = 'TOP00000000000000000000000000005',
|
|
`menu_type` = 'M',
|
|
`path` = 'oa-approval',
|
|
`component` = NULL,
|
|
`perms` = NULL,
|
|
`visible` = '1',
|
|
`status` = '1',
|
|
`order_num` = 2,
|
|
`update_time` = NOW()
|
|
WHERE `id` = 'OA000000000000000000000000000001';
|
|
|
|
-- ---------------------------------------------------------------------------
|
|
-- 3. 注册 OA 三级菜单(可见页 + 隐藏详情/设计页)
|
|
-- ---------------------------------------------------------------------------
|
|
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`
|
|
)
|
|
SELECT * FROM (
|
|
SELECT 'OA000000000000000000000000000101' AS id, '审批管理' AS menu_name,
|
|
'OA000000000000000000000000000001' AS parent_id, 'C' AS menu_type,
|
|
'apps' AS path, '/oa-approval/apps/index' AS component, 'oa:apps:list' AS perms,
|
|
1 AS is_frame, '1' AS visible, '1' AS status, 'zkxw' AS tenant_no, 1 AS order_num,
|
|
NULL AS remark, NULL AS create_by, '' AS create_dept_id, NOW() AS create_time,
|
|
NULL AS update_by, NOW() AS update_time, 0 AS del_flag
|
|
UNION ALL
|
|
SELECT 'OA000000000000000000000000000102', '工作流角色',
|
|
'OA000000000000000000000000000001', 'C',
|
|
'roles', '/oa-approval/roles/index', 'oa:roles:list',
|
|
1, '1', '1', 'zkxw', 2, NULL, NULL, '', NOW(), NULL, NOW(), 0
|
|
UNION ALL
|
|
SELECT 'OA000000000000000000000000000103', '发起审批',
|
|
'OA000000000000000000000000000001', 'C',
|
|
'start', '/oa-approval/start/index', 'oa:start',
|
|
1, '1', '1', 'zkxw', 3, NULL, NULL, '', NOW(), NULL, NOW(), 0
|
|
UNION ALL
|
|
SELECT 'OA000000000000000000000000000104', '待办中心',
|
|
'OA000000000000000000000000000001', 'C',
|
|
'pending', '/oa-approval/pending/index', 'oa:pending',
|
|
1, '1', '1', 'zkxw', 4, NULL, NULL, '', NOW(), NULL, NOW(), 0
|
|
UNION ALL
|
|
SELECT 'OA000000000000000000000000000105', '已办中心',
|
|
'OA000000000000000000000000000001', 'C',
|
|
'done', '/oa-approval/done/index', 'oa:done',
|
|
1, '1', '1', 'zkxw', 5, NULL, NULL, '', NOW(), NULL, NOW(), 0
|
|
UNION ALL
|
|
SELECT 'OA000000000000000000000000000106', '我发起的',
|
|
'OA000000000000000000000000000001', 'C',
|
|
'mine', '/oa-approval/mine/index', 'oa:mine',
|
|
1, '1', '1', 'zkxw', 6, NULL, NULL, '', NOW(), NULL, NOW(), 0
|
|
UNION ALL
|
|
SELECT 'OA000000000000000000000000000107', '抄送我的',
|
|
'OA000000000000000000000000000001', 'C',
|
|
'cc', '/oa-approval/cc/index', 'oa:cc',
|
|
1, '1', '1', 'zkxw', 7, NULL, NULL, '', NOW(), NULL, NOW(), 0
|
|
UNION ALL
|
|
SELECT 'OA000000000000000000000000000201', '审批设计',
|
|
'OA000000000000000000000000000001', 'C',
|
|
'designer/:id', '/oa-approval/designer/index', 'oa:designer',
|
|
1, '0', '1', 'zkxw', 8, '隐藏页:从审批管理进入', NULL, '', NOW(), NULL, NOW(), 0
|
|
UNION ALL
|
|
SELECT 'OA000000000000000000000000000202', '审批详情',
|
|
'OA000000000000000000000000000001', 'C',
|
|
'instances/:id', '/oa-approval/instances/detail', 'oa:instance:detail',
|
|
1, '0', '1', 'zkxw', 9, '隐藏页:从任务/列表进入', NULL, '', NOW(), NULL, NOW(), 0
|
|
) AS t
|
|
WHERE NOT EXISTS (
|
|
SELECT 1 FROM `sys_menu` m WHERE m.`id` = t.id
|
|
);
|
|
|
|
-- 幂等:已存在则同步字段并取消伪删除
|
|
UPDATE `sys_menu` m
|
|
JOIN (
|
|
SELECT 'OA000000000000000000000000000101' AS id, '审批管理' AS menu_name, 'apps' AS path,
|
|
'/oa-approval/apps/index' AS component, 'oa:apps:list' AS perms, '1' AS visible, 1 AS order_num
|
|
UNION ALL SELECT 'OA000000000000000000000000000102', '工作流角色', 'roles', '/oa-approval/roles/index', 'oa:roles:list', '1', 2
|
|
UNION ALL SELECT 'OA000000000000000000000000000103', '发起审批', 'start', '/oa-approval/start/index', 'oa:start', '1', 3
|
|
UNION ALL SELECT 'OA000000000000000000000000000104', '待办中心', 'pending', '/oa-approval/pending/index', 'oa:pending', '1', 4
|
|
UNION ALL SELECT 'OA000000000000000000000000000105', '已办中心', 'done', '/oa-approval/done/index', 'oa:done', '1', 5
|
|
UNION ALL SELECT 'OA000000000000000000000000000106', '我发起的', 'mine', '/oa-approval/mine/index', 'oa:mine', '1', 6
|
|
UNION ALL SELECT 'OA000000000000000000000000000107', '抄送我的', 'cc', '/oa-approval/cc/index', 'oa:cc', '1', 7
|
|
UNION ALL SELECT 'OA000000000000000000000000000201', '审批设计', 'designer/:id', '/oa-approval/designer/index', 'oa:designer', '0', 8
|
|
UNION ALL SELECT 'OA000000000000000000000000000202', '审批详情', 'instances/:id', '/oa-approval/instances/detail', 'oa:instance:detail', '0', 9
|
|
) s ON m.id = s.id
|
|
SET m.`del_flag` = 0,
|
|
m.`parent_id` = 'OA000000000000000000000000000001',
|
|
m.`menu_type` = 'C',
|
|
m.`menu_name` = s.menu_name,
|
|
m.`path` = s.path,
|
|
m.`component` = s.component,
|
|
m.`perms` = s.perms,
|
|
m.`visible` = s.visible,
|
|
m.`status` = '1',
|
|
m.`order_num` = s.order_num,
|
|
m.`update_time` = NOW();
|