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

576 lines
31 KiB

-- ============================================================================
-- 经侦案件智慧管理系统 — 菜单 + 角色 + 权限 初始化SQL(PostgreSQL版)
-- ============================================================================
-- 说明:
-- 1. 本脚本基于框架 t_menu / t_role / t_role_menu 表结构生成
-- 2. menu_type: 1=目录, 2=菜单(页面), 3=功能点(按钮权限)
-- 3. web_perms 字段对应前端 v-privilege 指令 和后端 @SaCheckPermission 注解
-- 4. 使用 PL/pgSQL 匿名块处理变量引用和自增ID获取
-- 5. 执行前请确认数据库中不存在同名菜单(或先清理)
-- ============================================================================
DO $$
DECLARE
-- 一级目录 ID
v_report_center_id BIGINT;
v_case_mgmt_id BIGINT;
v_fund_id BIGINT;
v_property_id BIGINT;
v_review_id BIGINT;
v_bigscreen_id BIGINT;
-- 二级菜单 ID
v_reception_id BIGINT;
v_extract_id BIGINT;
v_audit_list_id BIGINT;
v_material_view_id BIGINT;
v_monitor_id BIGINT;
-- 案件管理子菜单 ID
v_cs1 BIGINT; v_cs2 BIGINT; v_cs3 BIGINT; v_cs4 BIGINT;
v_cs5 BIGINT; v_cs6 BIGINT;
-- 卷宗管理(一级菜单)
v_file_mgmt_id BIGINT;
-- 涉案资金子菜单 ID
v_f1 BIGINT; v_f2 BIGINT; v_f3 BIGINT;
-- 涉案财物子菜单 ID
v_p1 BIGINT;
v_p2 BIGINT;
v_p3 BIGINT;
v_p4 BIGINT;
-- 审议流程子菜单 ID
v_r1 BIGINT; v_r2 BIGINT; v_r3 BIGINT; v_r4 BIGINT; v_r5 BIGINT;
-- 数据大屏子菜单 ID
v_bs1 BIGINT;
-- 角色 ID
v_jz_admin_role_id BIGINT;
v_jz_user_role_id BIGINT;
v_jz_auditor_role_id BIGINT;
BEGIN
RAISE NOTICE '========== 开始初始化经侦案件菜单与权限 ==========';
-- 先清理已存在的旧数据(避免主键冲突)
DELETE FROM t_role_menu WHERE role_id IN (SELECT role_id FROM t_role WHERE role_code IN ('JZ_ADMIN','JZ_USER','JZ_AUDITOR'));
DELETE FROM t_role WHERE role_code IN ('JZ_ADMIN','JZ_USER','JZ_AUDITOR');
-- 删除所有匹配的菜单(包括逻辑删除的),避免序列号冲突
DELETE FROM t_menu WHERE (
menu_name IN ('接报案中心','案件管理','涉案资金','涉案财物','审议流程','数据大屏',
'接报案大厅','数据互通','审核监督','材料预览','视频监控',
'案件监督','执法考评','两书一单','风险预警','涉企案件','领办包保','卷宗管理',
'资金管理','资金分析','金析为证','财物管理','财物调用','财物归还','财物出库',
'一般审议','监督督办','审核意见','审核组配置','流程列表','综合数据大屏')
OR web_perms LIKE 'alarm:%' OR web_perms LIKE 'evidence:%' OR web_perms LIKE 'suspect:%'
OR web_perms LIKE 'alarm-extract:%' OR web_perms LIKE 'alarm-audit:%'
OR web_perms LIKE 'material:%' OR web_perms LIKE 'monitor:%'
OR web_perms LIKE 'case:%' OR web_perms LIKE 'evaluation:%'
OR web_perms LIKE 'property:%'
);
-- 重置自增序列到当前最大值之后
PERFORM setval('t_menu_menu_id_seq', COALESCE((SELECT MAX(menu_id) FROM t_menu), 0) + 1, false);
PERFORM setval('t_role_role_id_seq', COALESCE((SELECT MAX(role_id) FROM t_role), 0) + 1, false);
PERFORM setval('t_role_menu_role_menu_id_seq', COALESCE((SELECT MAX(role_menu_id) FROM t_role_menu), 0) + 1, false);
RAISE NOTICE '旧数据清理完成,开始插入新数据';
-- ============================================================================
-- 一、一级目录菜单(6个)
-- ============================================================================
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)
VALUES ('接报案中心', 1, 0, 1, '/report-center', NULL,
false, false, true, false, 1, 'FormOutlined', false, 1)
RETURNING menu_id INTO v_report_center_id;
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)
VALUES ('案件管理', 1, 0, 2, '/case-management', NULL,
false, false, true, false, 1, 'SolutionOutlined', false, 1)
RETURNING menu_id INTO v_case_mgmt_id;
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)
VALUES ('涉案资金', 1, 0, 3, '/fund', NULL,
false, false, true, false, 1, 'WalletOutlined', false, 1)
RETURNING menu_id INTO v_fund_id;
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)
VALUES ('涉案财物', 1, 0, 4, '/property', NULL,
false, false, true, false, 1, 'BoxPlotOutlined', false, 1)
RETURNING menu_id INTO v_property_id;
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)
VALUES ('卷宗管理', 2, 0, 5,
'/case-management/file-management',
'/business/case-management/file-management.vue',
false, false, true, false, 1, 'FolderOpenOutlined', false, 1)
RETURNING menu_id INTO v_file_mgmt_id;
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)
VALUES ('审议流程', 1, 0, 6, '/review', NULL,
false, false, true, false, 1, 'AuditOutlined', false, 1)
RETURNING menu_id INTO v_review_id;
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)
VALUES ('数据大屏', 1, 0, 7, '/bigscreen', NULL,
false, false, true, false, 1, 'DashboardOutlined', false, 1)
RETURNING menu_id INTO v_bigscreen_id;
RAISE NOTICE '一级目录创建完成: 接报案中心=%, 案件管理=%, 涉案资金=%, 涉案财物=%, 卷宗管理=%, 审议流程=%, 数据大屏=%',
v_report_center_id, v_case_mgmt_id, v_fund_id, v_property_id, v_file_mgmt_id, v_review_id, v_bigscreen_id;
-- ============================================================================
-- 二、二级子菜单 + 三级功能点
-- ============================================================================
-- ==================== 接报案中心 下属 ====================
-- 2.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)
VALUES ('接报案大厅', 2, v_report_center_id, 1,
'/business/alarm/alarm-reception-list',
'/business/alarm/alarm-reception-list.vue',
false, false, true, false, 1, 'AlertOutlined', false, 1)
RETURNING menu_id INTO v_reception_id;
-- 接报案大厅功能点
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) VALUES
('查询', 3, v_reception_id, false, false, true, false, 1, 'alarm:query', 'alarm:query', v_reception_id, false, 1),
('新增登记', 3, v_reception_id, false, false, true, false, 1, 'alarm:add', 'alarm:add', v_reception_id, false, 1),
('编辑', 3, v_reception_id, false, false, true, false, 1, 'alarm:update', 'alarm:update', v_reception_id, false, 1),
('删除', 3, v_reception_id, false, false, true, false, 1, 'alarm:delete', 'alarm:delete', v_reception_id, false, 1),
('查看详情', 3, v_reception_id, false, false, true, false, 1, 'alarm:detail', 'alarm:detail', v_reception_id, false, 1),
('审核', 3, v_reception_id, false, false, true, false, 1, 'alarm:audit', 'alarm:audit', v_reception_id, false, 1);
RAISE NOTICE '接报案大厅创建完成: id=%', v_reception_id;
-- 2.2 数据互通/110抽取
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)
VALUES ('数据互通', 2, v_report_center_id, 2,
'/business/alarm/alarm-extract-list',
'/business/alarm/alarm-extract-list.vue',
false, false, true, false, 1, 'SwapOutlined', false, 1)
RETURNING menu_id INTO v_extract_id;
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) VALUES
('查询', 3, v_extract_id, false, false, true, false, 1, 'alarm-extract:query', 'alarm-extract:query', v_extract_id, false, 1),
('110抽取', 3, v_extract_id, false, false, true, false, 1, 'alarm-extract:extract', 'alarm-extract:extract', v_extract_id, false, 1),
('分类', 3, v_extract_id, false, false, true, false, 1, 'alarm-extract:classify', 'alarm-extract:classify', v_extract_id, false, 1),
('流转', 3, v_extract_id, false, false, true, false, 1, 'alarm-extract:transfer', 'alarm-extract:transfer', v_extract_id, false, 1),
('回传', 3, v_extract_id, false, false, true, false, 1, 'alarm-extract:return', 'alarm-extract:return', v_extract_id, false, 1);
RAISE NOTICE '数据互通创建完成: id=%', v_extract_id;
-- 2.3 审核监督
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)
VALUES ('审核监督', 2, v_report_center_id, 3,
'/business/alarm/audit-list',
'/business/alarm/audit-list.vue',
false, false, true, false, 1, 'SafetyCertificateOutlined', false, 1)
RETURNING menu_id INTO v_audit_list_id;
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) VALUES
('查询', 3, v_audit_list_id, false, false, true, false, 1, 'alarm:query', 'alarm:audit:query', v_audit_list_id, false, 1),
('审核表决', 3, v_audit_list_id, false, false, true, false, 1, 'alarm:audit', 'alarm:audit:do', v_audit_list_id, false, 1),
('查看详情', 3, v_audit_list_id, false, false, true, false, 1, 'alarm:detail', 'alarm:detail', v_audit_list_id, false, 1);
RAISE NOTICE '审核监督创建完成: id=%', v_audit_list_id;
-- 2.4 材料预览
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)
VALUES ('材料预览', 2, v_report_center_id, 4,
'/business/alarm/material-view',
'/business/alarm/material-view.vue',
false, false, true, false, 1, 'FileTextOutlined', false, 1)
RETURNING menu_id INTO v_material_view_id;
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) VALUES
('查询', 3, v_material_view_id, false, false, true, false, 1, 'material:view', 'material:view', v_material_view_id, false, 1);
RAISE NOTICE '材料预览创建完成: id=%', v_material_view_id;
-- 2.5 视频监控
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)
VALUES ('视频监控', 2, v_report_center_id, 5,
'/business/alarm/center-monitor',
'/business/alarm/center-monitor.vue',
false, false, true, false, 1, 'VideoCameraOutlined', false, 1)
RETURNING menu_id INTO v_monitor_id;
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) VALUES
('查看', 3, v_monitor_id, false, false, true, false, 1, 'monitor:view', 'monitor:view', v_monitor_id, false, 1);
RAISE NOTICE '视频监控创建完成: id=%', v_monitor_id;
-- ==================== 案件管理 下属 ====================
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)
VALUES ('案件监督', 2, v_case_mgmt_id, 1,
'/case-management/supervision',
'/business/case-management/case-supervision.vue',
false, false, true, false, 1, 'EyeOutlined', false, 1)
RETURNING menu_id INTO v_cs1;
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) VALUES
('查询', 3, v_cs1, false, false, true, false, 1, 'case:query', 'case:query', v_cs1, false, 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)
VALUES ('执法考评', 2, v_case_mgmt_id, 2,
'/case-management/evaluation',
'/business/case-management/evaluation.vue',
false, false, true, false, 1, 'StarOutlined', false, 1)
RETURNING menu_id INTO v_cs2;
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) VALUES
('查询', 3, v_cs2, false, false, true, false, 1, 'evaluation:query', 'evaluation:query', v_cs2, false, 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)
VALUES ('两书一单', 2, v_case_mgmt_id, 3,
'/case-management/two-books-one-form',
'/business/case-management/two-books-one-form.vue',
false, false, true, false, 1, 'FileProtectOutlined', false, 1)
RETURNING menu_id INTO v_cs3;
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)
VALUES ('风险预警', 2, v_case_mgmt_id, 4,
'/case-management/risk-warning',
'/case-management/risk-warning.vue',
false, false, true, false, 1, 'WarningOutlined', false, 1)
RETURNING menu_id INTO v_cs4;
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)
VALUES ('涉企案件', 2, v_case_mgmt_id, 5,
'/case-management/enterprise-record',
'/business/case-management/enterprise-record.vue',
false, false, true, false, 1, 'BankOutlined', false, 1)
RETURNING menu_id INTO v_cs5;
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)
VALUES ('领办包保', 2, v_case_mgmt_id, 6,
'/case-management/leader-record',
'/business/case-management/leader-record.vue',
false, false, true, false, 1, 'CrownOutlined', false, 1)
RETURNING menu_id INTO v_cs6;
RAISE NOTICE '案件管理6个子菜单创建完成';
-- ==================== 涉案资金 下属 ====================
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)
VALUES ('资金管理', 2, v_fund_id, 1,
'/fund/management',
'/business/fund/fund-management.vue',
false, false, true, false, 1, 'MoneyCollectOutlined', false, 1)
RETURNING menu_id INTO v_f1;
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)
VALUES ('资金分析', 2, v_fund_id, 2,
'/fund/analysis',
'/business/fund/fund-analysis.vue',
false, false, true, false, 1, 'LineChartOutlined', false, 1)
RETURNING menu_id INTO v_f2;
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)
VALUES ('金析为证', 2, v_fund_id, 3,
'/fund/evidence',
'/business/fund/fund-evidence.vue',
false, false, true, false, 1, 'ExperimentOutlined', false, 1)
RETURNING menu_id INTO v_f3;
RAISE NOTICE '涉案资金3个子菜单创建完成';
-- ==================== 涉案财物 下属 ====================
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)
VALUES ('财物管理', 2, v_property_id, 1,
'/property/management',
'/business/property/property-management.vue',
false, false, true, false, 1, 'InboxOutlined', false, 1)
RETURNING menu_id INTO v_p1;
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)
VALUES ('财物调用', 2, v_property_id, 2,
'/property/transfer',
'/business/property/property-transfer-list.vue',
false, false, true, false, 1, 'SwapOutlined', false, 1)
RETURNING menu_id INTO v_p2;
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)
VALUES ('财物归还', 2, v_property_id, 3,
'/property/return',
'/business/property/property-return-list.vue',
false, false, true, false, 1, 'RollbackOutlined', false, 1)
RETURNING menu_id INTO v_p3;
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)
VALUES ('财物出库', 2, v_property_id, 4,
'/property/checkout',
'/business/property/property-checkout-list.vue',
false, false, true, false, 1, 'ExportOutlined', false, 1)
RETURNING menu_id INTO v_p4;
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) VALUES
('查询', 3, v_p1, false, false, true, false, 1, 'property:management:query', 'property:management:query', v_p1, false, 1),
('新增录入', 3, v_p1, false, false, true, false, 1, 'property:management:add', 'property:management:add', v_p1, false, 1),
('查看详情', 3, v_p1, false, false, true, false, 1, 'property:management:detail', 'property:management:detail', v_p1, false, 1),
('出库', 3, v_p1, false, false, true, false, 1, 'property:management:checkout', 'property:management:checkout', v_p1, false, 1),
('调用', 3, v_p1, false, false, true, false, 1, 'property:management:invoke', 'property:management:invoke', v_p1, false, 1);
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) VALUES
('查询', 3, v_p2, false, false, true, false, 1, 'property:transfer:query', 'property:transfer:query', v_p2, false, 1),
('查看详情', 3, v_p2, false, false, true, false, 1, 'property:transfer:detail', 'property:transfer:detail', v_p2, false, 1),
('调用审核', 3, v_p2, false, false, true, false, 1, 'property:transfer:audit', 'property:transfer:audit', v_p2, false, 1);
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) VALUES
('查询', 3, v_p3, false, false, true, false, 1, 'property:return:query', 'property:return:query', v_p3, false, 1),
('查看详情', 3, v_p3, false, false, true, false, 1, 'property:return:detail', 'property:return:detail', v_p3, false, 1),
('确认归还', 3, v_p3, false, false, true, false, 1, 'property:return:submit', 'property:return:submit', v_p3, false, 1);
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) VALUES
('查询', 3, v_p4, false, false, true, false, 1, 'property:checkout:query', 'property:checkout:query', v_p4, false, 1),
('查看详情', 3, v_p4, false, false, true, false, 1, 'property:checkout:detail', 'property:checkout:detail', v_p4, false, 1),
('确认出库', 3, v_p4, false, false, true, false, 1, 'property:checkout:submit', 'property:checkout:submit', v_p4, false, 1);
RAISE NOTICE '涉案财物子菜单创建完成';
-- ==================== 审议流程 下属 ====================
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)
VALUES ('一般审议', 2, v_review_id, 1,
'/review/general-list',
'/business/review/general-list.vue',
false, false, true, false, 1, 'UnorderedListOutlined', false, 1)
RETURNING menu_id INTO v_r1;
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)
VALUES ('监督督办', 2, v_review_id, 2,
'/review/supervision',
'/business/review/supervision.vue',
false, false, true, false, 1, 'TeamOutlined', false, 1)
RETURNING menu_id INTO v_r2;
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)
VALUES ('审核意见', 2, v_review_id, 3,
'/review/opinion-flow',
'/business/review/opinion-flow.vue',
false, false, true, false, 1, 'MessageOutlined', false, 1)
RETURNING menu_id INTO v_r3;
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)
VALUES ('审核组配置', 2, v_review_id, 4,
'/review/group-config',
'/business/review/group-config.vue',
false, false, true, false, 1, 'SettingOutlined', false, 1)
RETURNING menu_id INTO v_r4;
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)
VALUES ('流程列表', 2, v_review_id, 5,
'/review/process-list',
'/business/review/process-list.vue',
false, false, true, false, 1, 'ApartmentOutlined', false, 1)
RETURNING menu_id INTO v_r5;
RAISE NOTICE '审议流程5个子菜单创建完成';
-- ==================== 数据大屏 下属 ====================
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)
VALUES ('综合数据大屏', 2, v_bigscreen_id, 1,
'/bigscreen/data-bigscreen',
'/business/alarm/data-bigscreen.vue',
false, false, true, false, 1, 'DashboardTwoTone', false, 1)
RETURNING menu_id INTO v_bs1;
RAISE NOTICE '数据大屏子菜单创建完成';
-- ============================================================================
-- 三、证据材料/嫌疑人 功能点(挂接在接报案大厅下)
-- ============================================================================
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) VALUES
('证据查询', 3, v_reception_id, false, false, true, false, 1, 'evidence:query', 'evidence:query', v_reception_id, false, 1),
('证据新增', 3, v_reception_id, false, false, true, false, 1, 'evidence:add', 'evidence:add', v_reception_id, false, 1),
('证据编辑', 3, v_reception_id, false, false, true, false, 1, 'evidence:update', 'evidence:update', v_reception_id, false, 1),
('证据删除', 3, v_reception_id, false, false, true, false, 1, 'evidence:delete', 'evidence:delete', v_reception_id, false, 1),
('嫌疑人新增',3, v_reception_id, false, false, true, false, 1, 'suspect:add', 'suspect:add', v_reception_id, false, 1),
('嫌疑人删除',3, v_reception_id, false, false, true, false, 1, 'suspect:delete', 'suspect:delete', v_reception_id, false, 1);
RAISE NOTICE '证据/嫌疑人功能点创建完成';
-- ============================================================================
-- 四、角色定义
-- ============================================================================
INSERT INTO t_role (role_name, role_code, remark)
VALUES ('经侦管理员', 'JZ_ADMIN', '经侦案件智慧管理系统管理员,拥有所有模块权限')
RETURNING role_id INTO v_jz_admin_role_id;
INSERT INTO t_role (role_name, role_code, remark)
VALUES ('经侦用户', 'JZ_USER', '经侦案件普通用户,可查看和登记警情')
RETURNING role_id INTO v_jz_user_role_id;
INSERT INTO t_role (role_name, role_code, remark)
VALUES ('审核员', 'JZ_AUDITOR', '负责警情审核工作的人员')
RETURNING role_id INTO v_jz_auditor_role_id;
RAISE NOTICE '角色创建完成: 管理员=%, 用户=%, 审核员=%',
v_jz_admin_role_id, v_jz_user_role_id, v_jz_auditor_role_id;
-- ============================================================================
-- 五、角色-菜单关联(给角色分配权限)
-- ============================================================================
-- 5.1 经侦管理员 → 所有菜单
INSERT INTO t_role_menu (role_id, menu_id)
SELECT v_jz_admin_role_id, menu_id FROM t_menu WHERE deleted_flag = false;
RAISE NOTICE '管理员角色已分配所有菜单权限';
-- 5.2 经侦用户 → 接报案中心 + 数据大屏(部分权限)
INSERT INTO t_role_menu (role_id, menu_id)
SELECT v_jz_user_role_id, menu_id FROM t_menu
WHERE menu_name IN ('接报案中心','数据大屏') AND deleted_flag = false;
INSERT INTO t_role_menu (role_id, menu_id)
SELECT v_jz_user_role_id, m.menu_id FROM t_menu m
WHERE m.parent_id IN (
SELECT menu_id FROM t_menu WHERE menu_name IN ('接报案中心','数据大屏') AND deleted_flag = false
) AND m.deleted_flag = false;
-- 功能点:只分配查询/新增/编辑/查看详情
INSERT INTO t_role_menu (role_id, menu_id)
SELECT v_jz_user_role_id, menu_id FROM t_menu
WHERE parent_id = v_reception_id AND menu_type = 3
AND web_perms IN ('alarm:query','alarm:add','alarm:update','alarm:detail',
'evidence:query','evidence:add','evidence:update')
AND deleted_flag = false;
-- 数据互通功能点全开
INSERT INTO t_role_menu (role_id, menu_id)
SELECT v_jz_user_role_id, menu_id FROM t_menu
WHERE parent_id = v_extract_id AND menu_type = 3 AND deleted_flag = false;
RAISE NOTICE '用户角色权限分配完成';
-- 5.3 审核员 → 接报案中心 + 审核/查看权限
INSERT INTO t_role_menu (role_id, menu_id)
SELECT v_jz_auditor_role_id, menu_id FROM t_menu
WHERE menu_name = '接报案中心' AND deleted_flag = false;
INSERT INTO t_role_menu (role_id, menu_id)
SELECT v_jz_auditor_role_id, menu_id FROM t_menu
WHERE parent_id = v_report_center_id AND deleted_flag = false;
INSERT INTO t_role_menu (role_id, menu_id)
SELECT v_jz_auditor_role_id, menu_id FROM t_menu
WHERE parent_id = v_reception_id AND menu_type = 3
AND web_perms IN ('alarm:query','alarm:audit','alarm:detail','evidence:query')
AND deleted_flag = false;
INSERT INTO t_role_menu (role_id, menu_id)
SELECT v_jz_auditor_role_id, menu_id FROM t_menu
WHERE parent_id = v_audit_list_id AND menu_type = 3 AND deleted_flag = false;
RAISE NOTICE '审核员角色权限分配完成';
RAISE NOTICE '========== 初始化完成 ==========';
END $$;