核心变更: 1. 新增模块 - 评估报告模块 (evaluationreport): 报告生成与编辑 - 快捷评语模块 (quickcomment): 常用评语管理 - 报告模板模块 (reporttemplate): 报告模板配置 - 预警模块 (warning): 风险预警功能 - 风险模块 (risk): 风险分析功能 - 情况模块 (situation): 服刑情况跟踪 2. 功能增强 - 危险评估模块完善: 支持多种评估方法 - 问卷模块重构: 调查问卷整合到答题记录 - 罪犯模块: 新增Workbench工作台页面 - 计分考核: 新增计分规则管理 3. 枚举与配置 - 新增评估相关枚举: AssessmentType, EvaluationCycle等 - 统一风险等级枚举 - 更新字典数据类型常量 4. 数据库 - 新增 evaluation_report.sql - 新增 report_module.sql - 新增 prison_situation_warning_risk.sql Co-Authored-By: Claude <noreply@anthropic.com>
265 lines
18 KiB
SQL
265 lines
18 KiB
SQL
-- =====================================================
|
||
-- XL监狱综合管理平台 - 狱情模块数据库脚本
|
||
-- 生成时间: 2026-01-16
|
||
-- =====================================================
|
||
|
||
-- =====================================================
|
||
-- 9. 狱情收集表 (prison_situation)
|
||
-- =====================================================
|
||
CREATE TABLE IF NOT EXISTS `prison_situation` (
|
||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '狱情ID',
|
||
`title` varchar(200) NOT NULL COMMENT '标题',
|
||
`content` text COMMENT '详情内容',
|
||
`category` tinyint NOT NULL DEFAULT 1 COMMENT '分类:1-监管安全 2-教育改造 3-生活卫生 4-生产安全 5-狱内案件 6-其他',
|
||
`level` tinyint NOT NULL DEFAULT 1 COMMENT '等级:1-一般 2-重要 3-紧急',
|
||
`source` tinyint NOT NULL DEFAULT 1 COMMENT '来源:1-民警报告 2-监控系统 3-举报 4-罪犯自首 5-其他',
|
||
`status` tinyint NOT NULL DEFAULT 1 COMMENT '状态:1-待处理 2-处理中 3-已处理',
|
||
`area_id` bigint DEFAULT NULL COMMENT '关联监区ID',
|
||
`cell_id` bigint DEFAULT NULL COMMENT '关联监室ID',
|
||
`reporter` varchar(50) DEFAULT NULL COMMENT '报告人',
|
||
`handler` varchar(50) DEFAULT NULL COMMENT '处理人',
|
||
`handle_time` datetime DEFAULT NULL COMMENT '处理时间',
|
||
`handle_result` text COMMENT '处理结果',
|
||
`occur_time` datetime DEFAULT NULL COMMENT '发生时间',
|
||
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
|
||
`creator` varchar(64) DEFAULT '' COMMENT '创建者',
|
||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
`updater` varchar(64) DEFAULT '' COMMENT '更新者',
|
||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
`deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
|
||
`tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
|
||
PRIMARY KEY (`id`),
|
||
KEY `idx_prison_situation_status` (`status`),
|
||
KEY `idx_prison_situation_category` (`category`),
|
||
KEY `idx_prison_situation_level` (`level`),
|
||
KEY `idx_prison_situation_area_id` (`area_id`),
|
||
KEY `idx_prison_situation_cell_id` (`cell_id`),
|
||
KEY `idx_prison_situation_occur_time` (`occur_time`)
|
||
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='狱情收集表';
|
||
|
||
-- =====================================================
|
||
-- 10. 预警管理表 (prison_warning)
|
||
-- =====================================================
|
||
CREATE TABLE IF NOT EXISTS `prison_warning` (
|
||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '预警ID',
|
||
`title` varchar(200) NOT NULL COMMENT '预警标题',
|
||
`content` text COMMENT '预警内容',
|
||
`type` tinyint NOT NULL DEFAULT 1 COMMENT '预警类型:1-安全预警 2-监管预警 3-改造预警 4-生产预警 5-生活卫生预警 6-其他',
|
||
`level` tinyint NOT NULL DEFAULT 1 COMMENT '预警等级:1-一般 2-重要 3-紧急 4-严重',
|
||
`status` tinyint NOT NULL DEFAULT 1 COMMENT '预警状态:1-待核实 2-已核实 3-已处置 4-已解除',
|
||
`source` tinyint NOT NULL DEFAULT 1 COMMENT '预警来源:1-民警报告 2-监控系统 3-举报 4-罪犯自首 5-智能分析 6-其他',
|
||
`situation_id` bigint DEFAULT NULL COMMENT '关联狱情ID',
|
||
`area_id` bigint DEFAULT NULL COMMENT '关联监区ID',
|
||
`cell_id` bigint DEFAULT NULL COMMENT '关联监室ID',
|
||
`alert_time` datetime DEFAULT NULL COMMENT '预警时间',
|
||
`verify_time` datetime DEFAULT NULL COMMENT '核实时间',
|
||
`verifier` varchar(50) DEFAULT NULL COMMENT '核实人',
|
||
`verify_result` text COMMENT '核实结果',
|
||
`handle_time` datetime DEFAULT NULL COMMENT '处置时间',
|
||
`handler` varchar(50) DEFAULT NULL COMMENT '处置人',
|
||
`handle_method` varchar(200) DEFAULT NULL COMMENT '处置方式',
|
||
`handle_result` text COMMENT '处置结果',
|
||
`release_time` datetime DEFAULT NULL COMMENT '解除时间',
|
||
`releaser` varchar(50) DEFAULT NULL COMMENT '解除人',
|
||
`release_reason` text COMMENT '解除原因',
|
||
`occur_time` datetime DEFAULT NULL COMMENT '发生时间',
|
||
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
|
||
`creator` varchar(64) DEFAULT '' COMMENT '创建者',
|
||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
`updater` varchar(64) DEFAULT '' COMMENT '更新者',
|
||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
`deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
|
||
`tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
|
||
PRIMARY KEY (`id`),
|
||
KEY `idx_prison_warning_status` (`status`),
|
||
KEY `idx_prison_warning_level` (`level`),
|
||
KEY `idx_prison_warning_type` (`type`),
|
||
KEY `idx_prison_warning_situation_id` (`situation_id`),
|
||
KEY `idx_prison_warning_area_id` (`area_id`),
|
||
KEY `idx_prison_warning_cell_id` (`cell_id`),
|
||
KEY `idx_prison_warning_alert_time` (`alert_time`)
|
||
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='预警管理表';
|
||
|
||
-- =====================================================
|
||
-- 11. 风险评估表 (prison_risk)
|
||
-- =====================================================
|
||
CREATE TABLE IF NOT EXISTS `prison_risk` (
|
||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '评估ID',
|
||
`prisoner_id` bigint NOT NULL COMMENT '罪犯ID',
|
||
`prisoner_no` varchar(50) NOT NULL COMMENT '罪犯编号',
|
||
`prisoner_name` varchar(50) DEFAULT NULL COMMENT '罪犯姓名',
|
||
`assessment_type` tinyint NOT NULL DEFAULT 1 COMMENT '评估类型:1-入监评估 2-定期评估 3-专项评估 4-出监评估',
|
||
`assessment_date` date NOT NULL COMMENT '评估日期',
|
||
`overall_score` decimal(5,2) DEFAULT NULL COMMENT '综合风险得分',
|
||
`risk_level` tinyint DEFAULT NULL COMMENT '风险等级:1-低风险 2-中风险 3-高风险 4-极高风险',
|
||
`mental_state` varchar(500) DEFAULT NULL COMMENT '精神状态评估',
|
||
`escape_risk` varchar(500) DEFAULT NULL COMMENT '脱逃风险评估',
|
||
`violence_risk` varchar(500) DEFAULT NULL COMMENT '暴力倾向评估',
|
||
`revolt_risk` varchar(500) DEFAULT NULL COMMENT '抗改风险评估',
|
||
`self_harm_risk` varchar(500) DEFAULT NULL COMMENT '自杀自伤风险评估',
|
||
`recommendation` text COMMENT '评估建议',
|
||
`assessor` varchar(50) DEFAULT NULL COMMENT '评估人',
|
||
`assess_method` tinyint DEFAULT NULL COMMENT '评估方式:1-问卷评估 2-量表评估 3-综合评估',
|
||
`item_scores` text COMMENT '评估项目得分JSON',
|
||
`conclusion` text COMMENT '评估结论',
|
||
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
|
||
`creator` varchar(64) DEFAULT '' COMMENT '创建者',
|
||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
`updater` varchar(64) DEFAULT '' COMMENT '更新者',
|
||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
`deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
|
||
`tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
|
||
PRIMARY KEY (`id`),
|
||
KEY `idx_prison_risk_prisoner_id` (`prisoner_id`),
|
||
KEY `idx_prison_risk_prisoner_no` (`prisoner_no`),
|
||
KEY `idx_prison_risk_assessment_type` (`assessment_type`),
|
||
KEY `idx_prison_risk_assessment_date` (`assessment_date`),
|
||
KEY `idx_prison_risk_risk_level` (`risk_level`)
|
||
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='风险评估表';
|
||
|
||
-- =====================================================
|
||
-- 菜单权限 SQL (2026-01-16)
|
||
-- 注意: 请将 5047 替换为实际的父菜单ID
|
||
-- =====================================================
|
||
|
||
-- 9. 狱情收集管理菜单
|
||
INSERT INTO system_menu (name, permission, type, sort, parent_id, path, icon, component, status, component_name)
|
||
VALUES ('狱情收集管理', '', 2, 9, 5047, 'situation', '', 'prison/situation/index', 0, 'Situation');
|
||
SELECT @situationParentId := LAST_INSERT_ID();
|
||
INSERT INTO system_menu (name, permission, type, sort, parent_id, path, icon, component, status)
|
||
VALUES ('狱情收集查询', 'prison:situation:query', 3, 1, @situationParentId, '', '', '', 0);
|
||
INSERT INTO system_menu (name, permission, type, sort, parent_id, path, icon, component, status)
|
||
VALUES ('狱情收集创建', 'prison:situation:create', 3, 2, @situationParentId, '', '', '', 0);
|
||
INSERT INTO system_menu (name, permission, type, sort, parent_id, path, icon, component, status)
|
||
VALUES ('狱情收集更新', 'prison:situation:update', 3, 3, @situationParentId, '', '', '', 0);
|
||
INSERT INTO system_menu (name, permission, type, sort, parent_id, path, icon, component, status)
|
||
VALUES ('狱情收集删除', 'prison:situation:delete', 3, 4, @situationParentId, '', '', '', 0);
|
||
INSERT INTO system_menu (name, permission, type, sort, parent_id, path, icon, component, status)
|
||
VALUES ('狱情收集导出', 'prison:situation:export', 3, 5, @situationParentId, '', '', '', 0);
|
||
|
||
-- 10. 预警管理菜单
|
||
INSERT INTO system_menu (name, permission, type, sort, parent_id, path, icon, component, status, component_name)
|
||
VALUES ('预警管理', '', 2, 10, 5047, 'warning', '', 'prison/warning/index', 0, 'Warning');
|
||
SELECT @warningParentId := LAST_INSERT_ID();
|
||
INSERT INTO system_menu (name, permission, type, sort, parent_id, path, icon, component, status)
|
||
VALUES ('预警查询', 'prison:warning:query', 3, 1, @warningParentId, '', '', '', 0);
|
||
INSERT INTO system_menu (name, permission, type, sort, parent_id, path, icon, component, status)
|
||
VALUES ('预警创建', 'prison:warning:create', 3, 2, @warningParentId, '', '', '', 0);
|
||
INSERT INTO system_menu (name, permission, type, sort, parent_id, path, icon, component, status)
|
||
VALUES ('预警更新', 'prison:warning:update', 3, 3, @warningParentId, '', '', '', 0);
|
||
INSERT INTO system_menu (name, permission, type, sort, parent_id, path, icon, component, status)
|
||
VALUES ('预警删除', 'prison:warning:delete', 3, 4, @warningParentId, '', '', '', 0);
|
||
INSERT INTO system_menu (name, permission, type, sort, parent_id, path, icon, component, status)
|
||
VALUES ('预警导出', 'prison:warning:export', 3, 5, @warningParentId, '', '', '', 0);
|
||
|
||
-- 11. 风险评估菜单
|
||
INSERT INTO system_menu (name, permission, type, sort, parent_id, path, icon, component, status, component_name)
|
||
VALUES ('风险评估', '', 2, 11, 5047, 'risk', '', 'prison/risk/index', 0, 'Risk');
|
||
SELECT @riskParentId := LAST_INSERT_ID();
|
||
INSERT INTO system_menu (name, permission, type, sort, parent_id, path, icon, component, status)
|
||
VALUES ('风险评估查询', 'prison:risk:query', 3, 1, @riskParentId, '', '', '', 0);
|
||
INSERT INTO system_menu (name, permission, type, sort, parent_id, path, icon, component, status)
|
||
VALUES ('风险评估创建', 'prison:risk:create', 3, 2, @riskParentId, '', '', '', 0);
|
||
INSERT INTO system_menu (name, permission, type, sort, parent_id, path, icon, component, status)
|
||
VALUES ('风险评估更新', 'prison:risk:update', 3, 3, @riskParentId, '', '', '', 0);
|
||
INSERT INTO system_menu (name, permission, type, sort, parent_id, path, icon, component, status)
|
||
VALUES ('风险评估删除', 'prison:risk:delete', 3, 4, @riskParentId, '', '', '', 0);
|
||
INSERT INTO system_menu (name, permission, type, sort, parent_id, path, icon, component, status)
|
||
VALUES ('风险评估导出', 'prison:risk:export', 3, 5, @riskParentId, '', '', '', 0);
|
||
|
||
-- =====================================================
|
||
-- 字典数据 SQL (2026-01-16)
|
||
-- =====================================================
|
||
|
||
-- 狱情分类字典
|
||
INSERT INTO system_dict_type (name, type, status, creator, create_time) VALUES ('狱情分类', 'prison_situation_category', 0, 'admin', NOW());
|
||
INSERT INTO system_dict_data (dict_type, sort, label, value, color_type, css_class, status, creator, create_time) VALUES
|
||
('prison_situation_category', 1, '监管安全', '1', 'danger', '', 0, 'admin', NOW()),
|
||
('prison_situation_category', 2, '教育改造', '2', 'warning', '', 0, 'admin', NOW()),
|
||
('prison_situation_category', 3, '生活卫生', '3', 'success', '', 0, 'admin', NOW()),
|
||
('prison_situation_category', 4, '生产安全', '4', 'info', '', 0, 'admin', NOW()),
|
||
('prison_situation_category', 5, '狱内案件', '5', 'danger', '', 0, 'admin', NOW()),
|
||
('prison_situation_category', 6, '其他', '6', '', '', 0, 'admin', NOW());
|
||
|
||
-- 狱情等级字典
|
||
INSERT INTO system_dict_type (name, type, status, creator, create_time) VALUES ('狱情等级', 'prison_situation_level', 0, 'admin', NOW());
|
||
INSERT INTO system_dict_data (dict_type, sort, label, value, color_type, css_class, status, creator, create_time) VALUES
|
||
('prison_situation_level', 1, '一般', '1', 'success', '', 0, 'admin', NOW()),
|
||
('prison_situation_level', 2, '重要', '2', 'warning', '', 0, 'admin', NOW()),
|
||
('prison_situation_level', 3, '紧急', '3', 'danger', '', 0, 'admin', NOW());
|
||
|
||
-- 狱情来源字典
|
||
INSERT INTO system_dict_type (name, type, status, creator, create_time) VALUES ('狱情来源', 'prison_situation_source', 0, 'admin', NOW());
|
||
INSERT INTO system_dict_data (dict_type, sort, label, value, color_type, css_class, status, creator, create_time) VALUES
|
||
('prison_situation_source', 1, '民警报告', '1', '', '', 0, 'admin', NOW()),
|
||
('prison_situation_source', 2, '监控系统', '2', '', '', 0, 'admin', NOW()),
|
||
('prison_situation_source', 3, '举报', '3', '', '', 0, 'admin', NOW()),
|
||
('prison_situation_source', 4, '罪犯自首', '4', '', '', 0, 'admin', NOW()),
|
||
('prison_situation_source', 5, '其他', '5', '', '', 0, 'admin', NOW());
|
||
|
||
-- 狱情状态字典
|
||
INSERT INTO system_dict_type (name, type, status, creator, create_time) VALUES ('狱情状态', 'prison_situation_status', 0, 'admin', NOW());
|
||
INSERT INTO system_dict_data (dict_type, sort, label, value, color_type, css_class, status, creator, create_time) VALUES
|
||
('prison_situation_status', 1, '待处理', '1', 'warning', '', 0, 'admin', NOW()),
|
||
('prison_situation_status', 2, '处理中', '2', 'info', '', 0, 'admin', NOW()),
|
||
('prison_situation_status', 3, '已处理', '3', 'success', '', 0, 'admin', NOW());
|
||
|
||
-- 预警类型字典
|
||
INSERT INTO system_dict_type (name, type, status, creator, create_time) VALUES ('预警类型', 'prison_warning_type', 0, 'admin', NOW());
|
||
INSERT INTO system_dict_data (dict_type, sort, label, value, color_type, css_class, status, creator, create_time) VALUES
|
||
('prison_warning_type', 1, '安全预警', '1', 'danger', '', 0, 'admin', NOW()),
|
||
('prison_warning_type', 2, '监管预警', '2', 'warning', '', 0, 'admin', NOW()),
|
||
('prison_warning_type', 3, '改造预警', '3', 'info', '', 0, 'admin', NOW()),
|
||
('prison_warning_type', 4, '生产预警', '4', '', '', 0, 'admin', NOW()),
|
||
('prison_warning_type', 5, '生活卫生预警', '5', 'success', '', 0, 'admin', NOW()),
|
||
('prison_warning_type', 6, '其他', '6', '', '', 0, 'admin', NOW());
|
||
|
||
-- 预警等级字典
|
||
INSERT INTO system_dict_type (name, type, status, creator, create_time) VALUES ('预警等级', 'prison_warning_level', 0, 'admin', NOW());
|
||
INSERT INTO system_dict_data (dict_type, sort, label, value, color_type, css_class, status, creator, create_time) VALUES
|
||
('prison_warning_level', 1, '一般', '1', 'success', '', 0, 'admin', NOW()),
|
||
('prison_warning_level', 2, '重要', '2', 'warning', '', 0, 'admin', NOW()),
|
||
('prison_warning_level', 3, '紧急', '3', 'danger', '', 0, 'admin', NOW()),
|
||
('prison_warning_level', 4, '严重', '4', 'danger', '', 0, 'admin', NOW());
|
||
|
||
-- 预警状态字典
|
||
INSERT INTO system_dict_type (name, type, status, creator, create_time) VALUES ('预警状态', 'prison_warning_status', 0, 'admin', NOW());
|
||
INSERT INTO system_dict_data (dict_type, sort, label, value, color_type, css_class, status, creator, create_time) VALUES
|
||
('prison_warning_status', 1, '待核实', '1', 'warning', '', 0, 'admin', NOW()),
|
||
('prison_warning_status', 2, '已核实', '2', 'info', '', 0, 'admin', NOW()),
|
||
('prison_warning_status', 3, '已处置', '3', 'success', '', 0, 'admin', NOW()),
|
||
('prison_warning_status', 4, '已解除', '4', '', '', 0, 'admin', NOW());
|
||
|
||
-- 预警来源字典
|
||
INSERT INTO system_dict_type (name, type, status, creator, create_time) VALUES ('预警来源', 'prison_warning_source', 0, 'admin', NOW());
|
||
INSERT INTO system_dict_data (dict_type, sort, label, value, color_type, css_class, status, creator, create_time) VALUES
|
||
('prison_warning_source', 1, '民警报告', '1', '', '', 0, 'admin', NOW()),
|
||
('prison_warning_source', 2, '监控系统', '2', '', '', 0, 'admin', NOW()),
|
||
('prison_warning_source', 3, '举报', '3', '', '', 0, 'admin', NOW()),
|
||
('prison_warning_source', 4, '罪犯自首', '4', '', '', 0, 'admin', NOW()),
|
||
('prison_warning_source', 5, '智能分析', '5', '', '', 0, 'admin', NOW()),
|
||
('prison_warning_source', 6, '其他', '6', '', '', 0, 'admin', NOW());
|
||
|
||
-- 风险评估类型字典
|
||
INSERT INTO system_dict_type (name, type, status, creator, create_time) VALUES ('风险评估类型', 'prison_risk_assessment_type', 0, 'admin', NOW());
|
||
INSERT INTO system_dict_data (dict_type, sort, label, value, color_type, css_class, status, creator, create_time) VALUES
|
||
('prison_risk_assessment_type', 1, '入监评估', '1', 'info', '', 0, 'admin', NOW()),
|
||
('prison_risk_assessment_type', 2, '定期评估', '2', 'success', '', 0, 'admin', NOW()),
|
||
('prison_risk_assessment_type', 3, '专项评估', '3', 'warning', '', 0, 'admin', NOW()),
|
||
('prison_risk_assessment_type', 4, '出监评估', '4', '', '', 0, 'admin', NOW());
|
||
|
||
-- 风险等级字典
|
||
INSERT INTO system_dict_type (name, type, status, creator, create_time) VALUES ('风险等级', 'prison_risk_level', 0, 'admin', NOW());
|
||
INSERT INTO system_dict_data (dict_type, sort, label, value, color_type, css_class, status, creator, create_time) VALUES
|
||
('prison_risk_level', 1, '低风险', '1', 'success', '', 0, 'admin', NOW()),
|
||
('prison_risk_level', 2, '中风险', '2', 'warning', '', 0, 'admin', NOW()),
|
||
('prison_risk_level', 3, '高风险', '3', 'danger', '', 0, 'admin', NOW()),
|
||
('prison_risk_level', 4, '极高风险', '4', 'danger', '', 0, 'admin', NOW());
|
||
|
||
-- 评估方式字典
|
||
INSERT INTO system_dict_type (name, type, status, creator, create_time) VALUES ('评估方式', 'prison_risk_assess_method', 0, 'admin', NOW());
|
||
INSERT INTO system_dict_data (dict_type, sort, label, value, color_type, css_class, status, creator, create_time) VALUES
|
||
('prison_risk_assess_method', 1, '问卷评估', '1', '', '', 0, 'admin', NOW()),
|
||
('prison_risk_assess_method', 2, '量表评估', '2', '', '', 0, 'admin', NOW()),
|
||
('prison_risk_assess_method', 3, '综合评估', '3', '', '', 0, 'admin', NOW());
|