You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
195 lines
17 KiB
195 lines
17 KiB
|
1 month ago
|
-- 同步全系统功能权限到 t_menu(角色管理-功能权限树数据源)
|
||
|
|
-- 依据前后端 @SaCheckPermission / v-privilege 审计补全 menu_type=3 记录
|
||
|
|
-- web_perms 全局唯一:已存在则跳过
|
||
|
|
|
||
|
|
BEGIN;
|
||
|
|
|
||
|
|
CREATE TEMP TABLE tmp_sync_perm (
|
||
|
|
web_perms VARCHAR(128) PRIMARY KEY,
|
||
|
|
api_perms VARCHAR(128) NOT NULL,
|
||
|
|
menu_name VARCHAR(64) NOT NULL,
|
||
|
|
parent_path VARCHAR(256) NOT NULL,
|
||
|
|
sort_num INT NOT NULL DEFAULT 100
|
||
|
|
) ON COMMIT DROP;
|
||
|
|
|
||
|
|
TRUNCATE tmp_sync_perm;
|
||
|
|
|
||
|
|
-- ========== 接报案中心 ==========
|
||
|
|
INSERT INTO tmp_sync_perm (web_perms, api_perms, menu_name, parent_path, sort_num) VALUES
|
||
|
|
('alarm:view', 'alarm:detail', '查看', '/business/alarm/alarm-reception-list', 15),
|
||
|
|
('alarm:audit:query', 'alarm:query', '查询', '/business/alarm/audit-list', 10),
|
||
|
|
('alarm:audit:do', 'alarm:audit', '审核表决', '/business/alarm/audit-list', 20),
|
||
|
|
('alarm:extract:query', 'alarm:query', '查询', '/business/alarm/alarm-extract-list', 10),
|
||
|
|
('alarm:extract:do', 'alarm:query', '110抽取', '/business/alarm/alarm-extract-list', 20),
|
||
|
|
('alarm:extract:transfer', 'alarm:extract:transfer', '流转', '/business/alarm/alarm-extract-list', 30),
|
||
|
|
('alarm:extract:mark', 'alarm:query', '标记分类', '/business/alarm/alarm-extract-list', 40),
|
||
|
|
('alarm:material:query', 'alarm:query', '查询', '/business/alarm/material-view', 10),
|
||
|
|
('alarm:material:download', 'alarm:query', '下载', '/business/alarm/material-view', 20),
|
||
|
|
('alarm:material:preview', 'alarm:query', '预览', '/business/alarm/material-view', 30),
|
||
|
|
('monitor:control', 'alarm:query', '监控控制', '/business/alarm/center-monitor', 20);
|
||
|
|
|
||
|
|
-- ========== 案件管理 ==========
|
||
|
|
INSERT INTO tmp_sync_perm (web_perms, api_perms, menu_name, parent_path, sort_num) VALUES
|
||
|
|
('case-supervision:query', 'case-supervision:query', '查询', '/case-management/supervision', 10),
|
||
|
|
('case-supervision:add', 'case-supervision:add', '新增', '/case-management/supervision', 20),
|
||
|
|
('case-supervision:view', 'case-supervision:view', '查看', '/case-management/supervision', 30),
|
||
|
|
('case-supervision:supervise', 'case-supervision:supervise', '督办', '/case-management/supervision', 40),
|
||
|
|
('evaluation:add', 'evaluation:add', '新增', '/case-management/evaluation', 20),
|
||
|
|
('evaluation:view', 'evaluation:view', '查看详情', '/case-management/evaluation', 30),
|
||
|
|
('risk-warning:query', 'risk-warning:query', '查询', '/case-management/risk-warning', 10),
|
||
|
|
('risk-warning:view', 'risk-warning:view', '统计查看', '/case-management/risk-warning', 20),
|
||
|
|
('risk-warning:process', 'risk-warning:process', '处理', '/case-management/risk-warning', 30),
|
||
|
|
('risk-warning:ignore', 'risk-warning:ignore', '忽略', '/case-management/risk-warning', 40),
|
||
|
|
('enterprise-record:query', 'enterprise-record:query', '查询', '/case-management/enterprise-record', 10),
|
||
|
|
('enterprise-record:add', 'enterprise-record:add', '新增', '/case-management/enterprise-record', 20),
|
||
|
|
('enterprise-record:view', 'enterprise-record:view', '查看详情', '/case-management/enterprise-record', 30),
|
||
|
|
('leader-record:query', 'leader-record:query', '查询', '/case-management/leader-record', 10),
|
||
|
|
('leader-record:add', 'leader-record:add', '新增', '/case-management/leader-record', 20),
|
||
|
|
('leader-record:update', 'leader-record:update', '更新进展', '/case-management/leader-record', 30),
|
||
|
|
('file-management:query', 'file-management:query', '查询', '/case-management/file-management', 10),
|
||
|
|
('file-management:add', 'file-management:add', '新增', '/case-management/file-management', 20),
|
||
|
|
('file-management:borrow', 'file-management:borrow', '借阅', '/case-management/file-management', 30),
|
||
|
|
('file-management:view-online','file-management:view-online','电子查阅', '/case-management/file-management', 40);
|
||
|
|
|
||
|
|
-- ========== 审议流程 ==========
|
||
|
|
INSERT INTO tmp_sync_perm (web_perms, api_perms, menu_name, parent_path, sort_num) VALUES
|
||
|
|
('review:general:query', 'review:general:query', '查询', '/review/general-list', 10),
|
||
|
|
('review:general:add', 'review:general:add', '新增', '/review/general-list', 20),
|
||
|
|
('review:general:approve', 'review:general:approve', '审议', '/review/general-list', 30),
|
||
|
|
('review:general:view', 'review:general:view', '查看', '/review/general-list', 40),
|
||
|
|
('review:supervision:query', 'review:supervision:query', '查询', '/review/supervision', 10),
|
||
|
|
('review:supervision:add', 'review:supervision:add', '新增', '/review/supervision', 20),
|
||
|
|
('review:supervision:urge', 'review:supervision:urge', '催办', '/review/supervision', 30),
|
||
|
|
('review:supervision:close', 'review:supervision:close', '结案', '/review/supervision', 40),
|
||
|
|
('review:opinion:query', 'review:opinion:query', '查询', '/review/opinion-flow', 10),
|
||
|
|
('review:opinion:detail', 'review:opinion:detail', '查看流转', '/review/opinion-flow', 20),
|
||
|
|
('review:group:query', 'review:group:query', '查询', '/review/group-config', 10),
|
||
|
|
('review:group:add', 'review:group:add', '新增', '/review/group-config', 20),
|
||
|
|
('review:group:edit', 'review:group:edit', '编辑成员', '/review/group-config', 30),
|
||
|
|
('review:group:status', 'review:group:status', '启用停用', '/review/group-config', 40),
|
||
|
|
('review:process:query', 'review:process:query', '查询', '/review/process-list', 10),
|
||
|
|
('review:process:add', 'review:process:add', '新增', '/review/process-list', 20),
|
||
|
|
('review:process:view', 'review:process:view', '查看设计', '/review/process-list', 30),
|
||
|
|
('review:process:toggle', 'review:process:toggle', '启用停用', '/review/process-list', 40),
|
||
|
|
('review:process:version', 'review:process:version', '版本管理', '/review/process-list', 50);
|
||
|
|
|
||
|
|
-- ========== 涉案资金 ==========
|
||
|
|
INSERT INTO tmp_sync_perm (web_perms, api_perms, menu_name, parent_path, sort_num) VALUES
|
||
|
|
('fund:management:query', 'fund:management:query', '查询', '/fund/management', 10),
|
||
|
|
('fund:management:add', 'fund:management:add', '新增', '/fund/management', 20),
|
||
|
|
('fund:management:export', 'fund:management:export', '导出', '/fund/management', 30),
|
||
|
|
('fund:management:unfreeze', 'fund:management:unfreeze', '解冻', '/fund/management', 40),
|
||
|
|
('fund:management:detail', 'fund:management:detail', '详情', '/fund/management', 50),
|
||
|
|
('fund:analysis:query', 'fund:analysis:query', '查询', '/fund/analysis', 10),
|
||
|
|
('fund:evidence:query', 'fund:evidence:query', '查询', '/fund/evidence', 10),
|
||
|
|
('fund:evidence:add', 'fund:evidence:add', '新增', '/fund/evidence', 20),
|
||
|
|
('fund:evidence:analyze', 'fund:evidence:analyze', '分析', '/fund/evidence', 30),
|
||
|
|
('fund:evidence:export', 'fund:evidence:export', '导出', '/fund/evidence', 40);
|
||
|
|
|
||
|
|
-- ========== 流程管理(路径以库中为准,兼容 /flow/definition 与 /flow/definition/list) ==========
|
||
|
|
INSERT INTO tmp_sync_perm (web_perms, api_perms, menu_name, parent_path, sort_num) VALUES
|
||
|
|
('flow:definition:query', 'flow:definition:query', '查询', '/flow/definition', 10),
|
||
|
|
('flow:definition:add', 'flow:definition:add', '新增', '/flow/definition', 20),
|
||
|
|
('flow:definition:edit', 'flow:definition:edit', '编辑', '/flow/definition', 30),
|
||
|
|
('flow:definition:remove', 'flow:definition:remove', '删除', '/flow/definition', 40),
|
||
|
|
('flow:definition:publish', 'flow:definition:publish', '发布', '/flow/definition', 50),
|
||
|
|
('flow:definition:importDefinition', 'flow:definition:importDefinition','导入', '/flow/definition', 60),
|
||
|
|
('flow:definition:exportDefinition', 'flow:definition:exportDefinition','导出', '/flow/definition', 70),
|
||
|
|
('flow:definition:upPublish', 'flow:definition:publish', '上架发布', '/flow/definition', 80),
|
||
|
|
('flow:definition:design', 'flow:definition:edit', '流程设计', '/flow/definition', 90),
|
||
|
|
('flow:execute:startTask', 'flow:execute:startTask', '发起流程', '/flow/definition', 100),
|
||
|
|
('flow:execute:approve', 'flow:execute:approve', '审批', '/flow/definition', 110),
|
||
|
|
('flow:execute:goAnyNode', 'flow:execute:goAnyNode', '跳转节点', '/flow/definition', 120);
|
||
|
|
|
||
|
|
-- ========== 系统设置(SmartAdmin 标准权限,补全可能缺失的功能点) ==========
|
||
|
|
INSERT INTO tmp_sync_perm (web_perms, api_perms, menu_name, parent_path, sort_num) VALUES
|
||
|
|
('system:employee:add', 'system:employee:add', '添加成员', '/employee/list', 10),
|
||
|
|
('system:employee:update', 'system:employee:update', '编辑', '/employee/list', 20),
|
||
|
|
('system:employee:delete', 'system:employee:delete', '删除', '/employee/list', 30),
|
||
|
|
('system:employee:disabled', 'system:employee:disabled', '启用禁用', '/employee/list', 40),
|
||
|
|
('system:employee:department:update', 'system:employee:department:update', '调整部门', '/employee/list', 50),
|
||
|
|
('system:employee:password:reset', 'system:employee:password:reset', '重置密码', '/employee/list', 60),
|
||
|
|
('system:department:add', 'system:department:add', '添加', '/department/list', 10),
|
||
|
|
('system:department:update', 'system:department:update', '编辑', '/department/list', 20),
|
||
|
|
('system:department:delete', 'system:department:delete', '删除', '/department/list', 30),
|
||
|
|
('support:department:query', 'system:department:add', '查询', '/department/list', 5),
|
||
|
|
('system:menu:add', 'system:menu:add', '添加', '/menu/list', 10),
|
||
|
|
('system:menu:update', 'system:menu:update', '编辑', '/menu/list', 20),
|
||
|
|
('system:menu:batchDelete', 'system:menu:batchDelete', '删除', '/menu/list', 30),
|
||
|
|
('system:role:add', 'system:role:add', '添加', '/role/list', 10),
|
||
|
|
('system:role:update', 'system:role:update', '编辑', '/role/list', 20),
|
||
|
|
('system:role:delete', 'system:role:delete', '删除', '/role/list', 30),
|
||
|
|
('system:role:menu:update', 'system:role:menu:update', '保存权限', '/role/list', 40),
|
||
|
|
('system:role:employee:add', 'system:role:employee:add', '添加员工', '/role/list', 50),
|
||
|
|
('system:role:employee:delete', 'system:role:employee:delete', '移除员工', '/role/list', 60),
|
||
|
|
('system:role:employee:batch:delete', 'system:role:employee:batch:delete', '批量移除', '/role/list', 70),
|
||
|
|
('system:role:dataScope:update', 'system:role:dataScope:update', '保存数据范围','/role/list', 80),
|
||
|
|
('system:message:send', 'system:message:send', '发送', '/message/list', 10),
|
||
|
|
('system:message:query', 'system:message:query', '查询', '/message/list', 20),
|
||
|
|
('system:message:delete', 'system:message:delete', '删除', '/message/list', 30),
|
||
|
|
('support:config:query', 'support:config:query', '查询', '/config/list', 10),
|
||
|
|
('support:config:add', 'support:config:add', '添加', '/config/list', 20),
|
||
|
|
('support:config:update', 'support:config:update', '编辑', '/config/list', 30),
|
||
|
|
('support:dict:query', 'support:dict:query', '查询', '/dict/list', 10),
|
||
|
|
('support:dict:add', 'support:dict:add', '添加', '/dict/list', 20),
|
||
|
|
('support:dict:update', 'support:dict:update', '编辑', '/dict/list', 30),
|
||
|
|
('support:dict:updateDisabled', 'support:dict:updateDisabled', '启禁', '/dict/list', 40),
|
||
|
|
('support:dict:delete', 'support:dict:delete', '删除', '/dict/list', 50),
|
||
|
|
('support:dictData:query', 'support:dictData:query', '字典项查询', '/dict/list', 60),
|
||
|
|
('support:dictData:add', 'support:dictData:add', '字典项添加', '/dict/list', 70),
|
||
|
|
('support:dictData:update', 'support:dictData:update', '字典项编辑', '/dict/list', 80),
|
||
|
|
('support:dictData:updateDisabled', 'support:dictData:updateDisabled', '字典项启禁', '/dict/list', 90),
|
||
|
|
('support:dictData:delete', 'support:dictData:delete', '字典项删除', '/dict/list', 100),
|
||
|
|
('support:cache:keys', 'support:cache:keys', '查看Keys', '/cache/list', 10),
|
||
|
|
('support:cache:delete', 'support:cache:delete', '清除缓存', '/cache/list', 20),
|
||
|
|
('support:operateLog:query', 'support:operateLog:query', '查询', '/operate-log/list', 10),
|
||
|
|
('support:operateLog:detail', 'support:operateLog:detail', '详情', '/operate-log/list', 20),
|
||
|
|
('support:loginLog:query', 'support:loginLog:query', '查询', '/login-log/list', 10),
|
||
|
|
('support:changeLog:query', 'support:changeLog:add', '查询', '/change-log/list', 10),
|
||
|
|
('support:changeLog:add', 'support:changeLog:add', '添加', '/change-log/list', 20),
|
||
|
|
('support:changeLog:update', 'support:changeLog:update', '编辑', '/change-log/list', 30),
|
||
|
|
('support:changeLog:delete', 'support:changeLog:delete', '删除', '/change-log/list', 40),
|
||
|
|
('support:changeLog:batchDelete', 'support:changeLog:batchDelete', '批量删除', '/change-log/list', 50);
|
||
|
|
|
||
|
|
-- 批量写入 t_menu(按页面 path 挂载)
|
||
|
|
INSERT INTO t_menu (menu_name, menu_type, parent_id, sort, frame_flag, cache_flag, visible_flag, disabled_flag,
|
||
|
|
perms_type, api_perms, web_perms, context_menu_id, deleted_flag, create_user_id, create_time, update_time)
|
||
|
|
SELECT p.menu_name, 3, m.menu_id, p.sort_num, false, false, true, false,
|
||
|
|
1, p.api_perms, p.web_perms, m.menu_id, false, 1, NOW(), NOW()
|
||
|
|
FROM tmp_sync_perm p
|
||
|
|
INNER JOIN t_menu m ON m.path = p.parent_path AND m.menu_type = 2 AND m.deleted_flag = 0
|
||
|
|
WHERE NOT EXISTS (
|
||
|
|
SELECT 1 FROM t_menu x WHERE x.web_perms = p.web_perms AND x.deleted_flag = 0
|
||
|
|
);
|
||
|
|
|
||
|
|
-- 兼容流程定义菜单 path 变体
|
||
|
|
INSERT INTO t_menu (menu_name, menu_type, parent_id, sort, frame_flag, cache_flag, visible_flag, disabled_flag,
|
||
|
|
perms_type, api_perms, web_perms, context_menu_id, deleted_flag, create_user_id, create_time, update_time)
|
||
|
|
SELECT p.menu_name, 3, m.menu_id, p.sort_num, false, false, true, false,
|
||
|
|
1, p.api_perms, p.web_perms, m.menu_id, false, 1, NOW(), NOW()
|
||
|
|
FROM tmp_sync_perm p
|
||
|
|
INNER JOIN t_menu m ON m.path IN ('/flow/definition/list', '/flow/definition/index')
|
||
|
|
AND m.menu_type = 2 AND m.deleted_flag = 0
|
||
|
|
WHERE p.web_perms LIKE 'flow:%'
|
||
|
|
AND NOT EXISTS (
|
||
|
|
SELECT 1 FROM t_menu x WHERE x.web_perms = p.web_perms AND x.deleted_flag = 0
|
||
|
|
);
|
||
|
|
|
||
|
|
-- 修正已存在但 api_perms 与后端不一致的关键权限
|
||
|
|
UPDATE t_menu SET api_perms = 'alarm:audit', update_time = NOW()
|
||
|
|
WHERE web_perms = 'alarm:audit:do' AND deleted_flag = 0 AND COALESCE(api_perms, '') <> 'alarm:audit';
|
||
|
|
|
||
|
|
UPDATE t_menu SET api_perms = 'alarm:query', update_time = NOW()
|
||
|
|
WHERE web_perms = 'alarm:audit:query' AND deleted_flag = 0 AND COALESCE(api_perms, '') <> 'alarm:query';
|
||
|
|
|
||
|
|
UPDATE t_menu SET api_perms = 'alarm:detail', update_time = NOW()
|
||
|
|
WHERE web_perms = 'alarm:view' AND deleted_flag = 0 AND COALESCE(api_perms, '') <> 'alarm:detail';
|
||
|
|
|
||
|
|
-- 验证:执行后仍缺少父页面的权限(应无结果;flow 类若菜单 path 未入库需先在菜单管理补页面)
|
||
|
|
SELECT p.web_perms, p.menu_name, p.parent_path
|
||
|
|
FROM tmp_sync_perm p
|
||
|
|
WHERE NOT EXISTS (SELECT 1 FROM t_menu x WHERE x.web_perms = p.web_perms AND x.deleted_flag = 0)
|
||
|
|
ORDER BY p.parent_path, p.web_perms;
|
||
|
|
|
||
|
|
COMMIT;
|