铜陵经侦
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.
 
 
 
 

79 lines
4.7 KiB

-- 作废审核独立菜单 + 审批角色授权(PostgreSQL / Kingbase)
-- 执行前需已存在「接报案中心」目录及作废相关角色
-- 1. 独立二级菜单「作废审核」
INSERT INTO t_menu (menu_name, menu_type, parent_id, sort, path, component,
frame_flag, cache_flag, visible_flag, disabled_flag,
perms_type, icon, deleted_flag, create_user_id, create_time, update_time)
SELECT '作废审核', 2, p.menu_id, 6,
'/business/alarm/void-audit-list',
'/business/alarm/void-audit-list.vue',
false, false, true, false, 1, 'AuditOutlined', false, 1, NOW(), NOW()
FROM t_menu p
WHERE p.menu_name = '接报案中心' AND p.menu_type = 1 AND p.deleted_flag = 0
AND NOT EXISTS (
SELECT 1 FROM t_menu x WHERE x.path = '/business/alarm/void-audit-list' AND x.deleted_flag = 0
);
-- 2. 功能点
INSERT INTO t_menu (menu_name, menu_type, parent_id, 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 '查询', 3, m.menu_id, false, false, true, false, 1, 'alarm:void:query', 'alarm:void:query', m.menu_id, false, 1, NOW(), NOW()
FROM t_menu m
WHERE m.menu_name = '作废审核' AND m.path = '/business/alarm/void-audit-list' AND m.deleted_flag = 0
AND NOT EXISTS (SELECT 1 FROM t_menu x WHERE x.web_perms = 'alarm:void:query' AND x.deleted_flag = 0);
INSERT INTO t_menu (menu_name, menu_type, parent_id, 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 '作废审核', 3, m.menu_id, false, false, true, false, 1, 'alarm:void:audit', 'alarm:void:audit', m.menu_id, false, 1, NOW(), NOW()
FROM t_menu m
WHERE m.menu_name = '作废审核' AND m.path = '/business/alarm/void-audit-list' AND m.deleted_flag = 0
AND NOT EXISTS (SELECT 1 FROM t_menu x WHERE x.web_perms = 'alarm:void:audit' AND x.parent_id = m.menu_id AND x.menu_type = 3 AND x.deleted_flag = 0);
INSERT INTO t_menu (menu_name, menu_type, parent_id, 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 '查看详情', 3, m.menu_id, false, false, true, false, 1, 'alarm:detail', 'alarm:detail', m.menu_id, false, 1, NOW(), NOW()
FROM t_menu m
WHERE m.menu_name = '作废审核' AND m.path = '/business/alarm/void-audit-list' AND m.deleted_flag = 0
AND NOT EXISTS (
SELECT 1 FROM t_menu x WHERE x.web_perms = 'alarm:detail' AND x.parent_id = m.menu_id AND x.deleted_flag = 0
);
-- 3. 接报案大厅保留「发起作废」功能点(若尚未创建)
INSERT INTO t_menu (menu_name, menu_type, parent_id, 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 '发起作废', 3, m.menu_id, false, false, true, false, 1, 'alarm:void:apply', 'alarm:void:apply', m.menu_id, false, 1, NOW(), NOW()
FROM t_menu m
WHERE m.menu_name = '接报案大厅' AND m.deleted_flag = 0
AND NOT EXISTS (SELECT 1 FROM t_menu x WHERE x.web_perms = 'alarm:void:apply' AND x.deleted_flag = 0);
-- 4. 移除挂在「审核监督」下的作废审批功能点(改为独立菜单)
UPDATE t_menu SET deleted_flag = 1, update_time = NOW()
WHERE web_perms = 'alarm:void:audit'
AND menu_type = 3
AND parent_id IN (SELECT menu_id FROM t_menu WHERE menu_name = '审核监督' AND deleted_flag = 0);
-- 5. 审批角色绑定菜单:市局主任、区县大队长、经侦管理员
-- 说明:超级管理员(admin 账号,administrator_flag=1)登录后自动拥有全部菜单,无需 role_menu 绑定
INSERT INTO t_role_menu (role_id, menu_id)
SELECT r.role_id, m.menu_id
FROM t_role r
JOIN t_menu m ON m.deleted_flag = 0
WHERE r.role_code IN ('alarm_city_director', 'alarm_district_captain', 'JZ_ADMIN')
AND (
m.path = '/business/alarm/void-audit-list'
OR m.parent_id IN (SELECT menu_id FROM t_menu WHERE path = '/business/alarm/void-audit-list' AND deleted_flag = 0)
)
AND NOT EXISTS (
SELECT 1 FROM t_role_menu rm WHERE rm.role_id = r.role_id AND rm.menu_id = m.menu_id
);
-- 6. 接警员角色绑定「发起作废」
INSERT INTO t_role_menu (role_id, menu_id)
SELECT r.role_id, m.menu_id
FROM t_role r
JOIN t_menu m ON m.web_perms = 'alarm:void:apply' AND m.deleted_flag = 0
WHERE r.role_code IN ('alarm_city_receiver', 'alarm_district_receiver')
AND NOT EXISTS (
SELECT 1 FROM t_role_menu rm WHERE rm.role_id = r.role_id AND rm.menu_id = m.menu_id
);