feat: 新增监狱综合管理平台数据库迁移脚本

- 创建了完整的数据库迁移脚本,包含罪犯信息、监区信息、监室信息、计分考核、考核规则、消费记录等多个表的定义
- 每个表均包含详细的字段定义和注释,确保数据结构清晰
- 关闭外键检查以支持表的创建,最后恢复外键检查

此脚本为后续系统功能实现提供了基础数据结构支持。
This commit is contained in:
tangweijie 2026-01-22 09:29:05 +08:00
parent 6063256883
commit cff7832d5e

View File

@ -0,0 +1,793 @@
-- ============================================
-- XL监狱综合管理平台 - 数据库迁移脚本 V1
-- 版本: 1.0
-- 日期: 2026-01-21
-- 说明: 基于实体类DO生成包含所有表的完整字段定义
-- ============================================
-- 开启外键检查(可选,根据需求调整)
SET FOREIGN_KEY_CHECKS = 0;
-- ============================================
-- 1. 罪犯信息表 (prison_prisoner)
-- ============================================
DROP TABLE IF EXISTS `prison_prisoner`;
CREATE TABLE IF NOT EXISTS `prison_prisoner` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '罪犯ID',
`tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
`prisoner_no` varchar(50) NOT NULL COMMENT '罪犯编号',
`name` varchar(50) NOT NULL COMMENT '姓名',
`gender` tinyint NOT NULL COMMENT '性别1-男 2-女',
`birthday` date DEFAULT NULL COMMENT '出生日期',
`id_card` varchar(18) DEFAULT NULL COMMENT '身份证号',
`ethnicity` varchar(50) DEFAULT NULL COMMENT '民族',
`native_place` varchar(100) DEFAULT NULL COMMENT '籍贯',
`education` tinyint DEFAULT NULL COMMENT '文化程度1-文盲 2-小学 3-初中 4-高中 5-中专 6-大专 7-本科 8-硕士 9-博士',
`occupation` varchar(50) DEFAULT NULL COMMENT '入狱前职业',
`address` varchar(500) DEFAULT NULL COMMENT '家庭住址',
`crime` varchar(200) NOT NULL COMMENT '罪名',
`sentence_years` int DEFAULT 0 COMMENT '刑期(年)',
`sentence_months` int DEFAULT 0 COMMENT '刑期(月)',
`life_imprisonment` tinyint DEFAULT 0 COMMENT '是否无期0-否 1-是',
`death_sentence_reprieve` tinyint DEFAULT 0 COMMENT '是否死缓0-否 1-是',
`court_name` varchar(100) DEFAULT NULL COMMENT '判决法院',
`judgment_date` date DEFAULT NULL COMMENT '判决日期',
`judgment_no` varchar(50) DEFAULT NULL COMMENT '判决书编号',
`original_sentence` varchar(100) DEFAULT NULL COMMENT '原判刑期',
`imprisonment_date` date DEFAULT NULL COMMENT '入狱日期',
`release_date` date DEFAULT NULL COMMENT '释放日期',
`release_type` tinyint DEFAULT 0 COMMENT '释放类型1-刑满 2-假释 3-暂予监外执行 4-减刑 5-移交 6-死亡',
`release_reason` varchar(500) DEFAULT NULL COMMENT '释放原因',
`photo` varchar(512) DEFAULT NULL COMMENT '照片URL',
`supervision_level` tinyint DEFAULT 2 COMMENT '监管等级1-严管 2-普管 3-宽管',
`risk_level` tinyint DEFAULT 1 COMMENT '风险等级1-低风险 2-中风险 3-高风险 4-极高风险',
`prison_area_id` bigint DEFAULT NULL COMMENT '监区ID',
`sub_area_id` bigint DEFAULT NULL COMMENT '分区ID',
`prison_cell_id` bigint DEFAULT NULL COMMENT '监室ID',
`marital_status` tinyint DEFAULT NULL COMMENT '婚姻状态1-未婚 2-已婚 3-离异 4-丧偶',
`crime_type` varchar(100) DEFAULT NULL COMMENT '罪名类型',
`sentence` varchar(100) DEFAULT NULL COMMENT '刑期',
`children` varchar(500) DEFAULT NULL COMMENT '子女情况',
`status` tinyint NOT NULL DEFAULT 1 COMMENT '状态1-在押 2-已释放 3-已死亡 4-假释',
`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 '是否删除',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_prisoner_no` (`prisoner_no`, `tenant_id`),
KEY `idx_name` (`name`),
KEY `idx_id_card` (`id_card`),
KEY `idx_status` (`status`)
) ENGINE=InnoDB COMMENT='罪犯信息表';
-- ============================================
-- 2. 监区信息表 (prison_area)
-- ============================================
DROP TABLE IF EXISTS `prison_area`;
CREATE TABLE IF NOT EXISTS `prison_area` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '监区ID',
`tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
`name` varchar(50) NOT NULL COMMENT '监区名称',
`code` varchar(50) NOT NULL COMMENT '监区编码',
`type` tinyint DEFAULT NULL COMMENT '监区类型1-普通监区 2-严管监区 3-集训监区 4-出监监区 5-医院 6-禁闭室',
`parent_id` bigint DEFAULT 0 COMMENT '父级ID0表示顶级监区',
`level` tinyint DEFAULT 1 COMMENT '级别1-监区(大队) 2-分监区(中队)',
`capacity` int DEFAULT NULL COMMENT '容纳人数',
`current_count` int DEFAULT 0 COMMENT '当前人数',
`sort` int DEFAULT 0 COMMENT '排序',
`status` tinyint NOT NULL DEFAULT 1 COMMENT '状态1-启用 2-禁用',
`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 '是否删除',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_code` (`code`, `tenant_id`),
KEY `idx_sort` (`sort`),
KEY `idx_parent_id` (`parent_id`)
) ENGINE=InnoDB COMMENT='监区信息表';
-- ============================================
-- 3. 监室信息表 (prison_cell)
-- ============================================
DROP TABLE IF EXISTS `prison_cell`;
CREATE TABLE IF NOT EXISTS `prison_cell` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '监室ID',
`tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
`area_id` bigint NOT NULL COMMENT '所属监区ID',
`name` varchar(50) NOT NULL COMMENT '监室名称',
`code` varchar(50) NOT NULL COMMENT '监室编码',
`capacity` int DEFAULT NULL COMMENT '床位数量',
`current_count` int DEFAULT 0 COMMENT '当前人数',
`sort` int DEFAULT 0 COMMENT '排序',
`status` tinyint NOT NULL DEFAULT 1 COMMENT '状态1-启用 2-禁用',
`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 '是否删除',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_code` (`code`, `tenant_id`),
KEY `idx_area_id` (`area_id`)
) ENGINE=InnoDB COMMENT='监室信息表';
-- ============================================
-- 4. 计分考核表 (prison_score)
-- ============================================
DROP TABLE IF EXISTS `prison_score`;
CREATE TABLE IF NOT EXISTS `prison_score` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '记录ID',
`tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
`prisoner_id` bigint NOT NULL COMMENT '罪犯ID',
`prisoner_no` varchar(50) NOT NULL COMMENT '罪犯编号',
`year` int NOT NULL COMMENT '考核年份',
`month` int NOT NULL COMMENT '考核月份',
`base_score` decimal(10,2) DEFAULT 0.00 COMMENT '基础分',
`reward_score` decimal(10,2) DEFAULT 0.00 COMMENT '加分',
`penalty_score` decimal(10,2) DEFAULT 0.00 COMMENT '扣分',
`total_score` decimal(10,2) DEFAULT 0.00 COMMENT '总分',
`level` tinyint DEFAULT NULL COMMENT '考核等级1-优秀 2-良好 3-合格 4-不合格',
`assessor_id` bigint DEFAULT NULL COMMENT '考核人ID',
`assessor_name` varchar(50) DEFAULT NULL COMMENT '考核人姓名',
`status` tinyint NOT NULL DEFAULT 1 COMMENT '状态1-待审核 2-已通过 3-已驳回',
`prison_area_id` bigint DEFAULT NULL COMMENT '监区ID',
`prison_cell_id` bigint DEFAULT NULL COMMENT '监室ID',
`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 '是否删除',
PRIMARY KEY (`id`),
KEY `idx_prisoner_id` (`prisoner_id`),
KEY `idx_year_month` (`year`, `month`)
) ENGINE=InnoDB COMMENT='计分考核表';
-- ============================================
-- 5. 考核规则配置表 (prison_score_rule)
-- ============================================
DROP TABLE IF EXISTS `prison_score_rule`;
CREATE TABLE IF NOT EXISTS `prison_score_rule` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '规则ID',
`tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
`category` tinyint NOT NULL COMMENT '类别1-劳动改造 2-教育改造 3-日常行为 4-卫生纪律 5-加分项 6-扣分项',
`item_name` varchar(100) NOT NULL COMMENT '项目名称',
`item_code` varchar(50) NOT NULL COMMENT '项目编码(唯一)',
`score` decimal(10,2) NOT NULL COMMENT '分值(加分正数,扣分负数)',
`max_daily_score` decimal(10,2) DEFAULT NULL COMMENT '日最高分限制',
`max_monthly_score` decimal(10,2) DEFAULT NULL COMMENT '月最高分限制',
`description` varchar(500) DEFAULT NULL COMMENT '规则说明',
`status` tinyint NOT NULL DEFAULT 1 COMMENT '状态1-启用 2-禁用',
`sort` int DEFAULT 0 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 '是否删除',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_item_code` (`item_code`, `tenant_id`),
KEY `idx_category` (`category`),
KEY `idx_status` (`status`)
) ENGINE=InnoDB COMMENT='考核规则配置表';
-- ============================================
-- 6. 考核记录明细表 (prison_score_detail)
-- ============================================
DROP TABLE IF EXISTS `prison_score_detail`;
CREATE TABLE IF NOT EXISTS `prison_score_detail` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '记录ID',
`tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
`prisoner_id` bigint NOT NULL COMMENT '罪犯ID',
`prisoner_no` varchar(50) NOT NULL COMMENT '罪犯编号',
`record_date` date NOT NULL COMMENT '记录日期',
`rule_id` bigint DEFAULT NULL COMMENT '规则ID',
`score` decimal(10,2) NOT NULL COMMENT '得分',
`score_type` tinyint NOT NULL COMMENT '类型1-加分 2-扣分',
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
`recorder_id` bigint DEFAULT NULL COMMENT '记录人ID',
`recorder_name` varchar(50) DEFAULT NULL COMMENT '记录人姓名',
`status` tinyint NOT NULL DEFAULT 1 COMMENT '状态1-有效 2-作废',
`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 '是否删除',
PRIMARY KEY (`id`),
KEY `idx_prisoner_id` (`prisoner_id`),
KEY `idx_record_date` (`record_date`),
KEY `idx_rule_id` (`rule_id`)
) ENGINE=InnoDB COMMENT='考核记录明细表';
-- ============================================
-- 7. 危险评估表 (prison_risk_assessment)
-- ============================================
DROP TABLE IF EXISTS `prison_risk_assessment`;
CREATE TABLE IF NOT EXISTS `prison_risk_assessment` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '评估ID',
`tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
`prisoner_id` bigint NOT NULL COMMENT '罪犯ID',
`prisoner_no` varchar(50) NOT NULL COMMENT '罪犯编号',
`assessment_type` tinyint NOT NULL COMMENT '评估类型1-入狱评估 2-定期评估 3-专项评估',
`assessment_date` date NOT NULL COMMENT '评估日期',
`violence_score` decimal(10,2) DEFAULT 0.00 COMMENT '暴力倾向得分',
`escape_score` decimal(10,2) DEFAULT 0.00 COMMENT '脱逃倾向得分',
`suicide_score` decimal(10,2) DEFAULT 0.00 COMMENT '自杀倾向得分',
`total_score` decimal(10,2) DEFAULT 0.00 COMMENT '综合得分',
`risk_level` tinyint NOT NULL COMMENT '风险等级1-低风险 2-中风险 3-高风险 4-极高风险',
`risk_factors` varchar(500) DEFAULT NULL COMMENT '风险因素',
`suggestions` varchar(500) DEFAULT NULL COMMENT '管控建议',
`assessor_id` bigint DEFAULT NULL COMMENT '评估人ID',
`assessor_name` varchar(50) DEFAULT NULL COMMENT '评估人姓名',
`next_assessment_date` date DEFAULT NULL COMMENT '下次评估日期',
`status` tinyint NOT NULL DEFAULT 1 COMMENT '状态1-待审核 2-已通过',
`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 '是否删除',
PRIMARY KEY (`id`),
KEY `idx_prisoner_id` (`prisoner_id`),
KEY `idx_assessment_date` (`assessment_date`)
) ENGINE=InnoDB COMMENT='危险评估表';
-- ============================================
-- 8. 消费记录表 (prison_consumption)
-- ============================================
DROP TABLE IF EXISTS `prison_consumption`;
CREATE TABLE IF NOT EXISTS `prison_consumption` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '消费ID',
`tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
`prisoner_id` bigint NOT NULL COMMENT '罪犯ID',
`prisoner_no` varchar(50) NOT NULL COMMENT '罪犯编号',
`order_no` varchar(64) DEFAULT NULL COMMENT '订单号',
`type` tinyint NOT NULL COMMENT '类型1-购物 2-餐饮 3-医疗 4-通讯 5-其他',
`total_amount` decimal(12,2) NOT NULL COMMENT '订单总金额',
`balance` decimal(12,2) DEFAULT 0.00 COMMENT '账户余额(消费后)',
`trade_time` datetime NOT NULL COMMENT '交易时间',
`status` tinyint NOT NULL DEFAULT 1 COMMENT '状态1-成功 2-失败',
`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 '是否删除',
PRIMARY KEY (`id`),
KEY `idx_prisoner_id` (`prisoner_id`),
KEY `idx_trade_time` (`trade_time`),
KEY `idx_type` (`type`)
) ENGINE=InnoDB COMMENT='消费记录表';
-- ============================================
-- 9. 问卷模板表 (prison_questionnaire)
-- ============================================
DROP TABLE IF EXISTS `prison_questionnaire`;
CREATE TABLE IF NOT EXISTS `prison_questionnaire` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '问卷ID',
`tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
`title` varchar(200) NOT NULL COMMENT '问卷标题',
`type` tinyint NOT NULL COMMENT '问卷类型1-心理测评 2-行为评估 3-满意度调查',
`description` varchar(500) DEFAULT NULL COMMENT '问卷说明',
`total_score` decimal(10,2) DEFAULT 100.00 COMMENT '总分',
`pass_score` decimal(10,2) DEFAULT 60.00 COMMENT '及格分',
`status` tinyint NOT NULL DEFAULT 1 COMMENT '状态1-草稿 2-已发布 3-已禁用',
`cover_image` varchar(500) DEFAULT NULL COMMENT '封面图片URL',
`instruction` varchar(1000) DEFAULT NULL COMMENT '填写说明',
`estimated_time` int DEFAULT NULL COMMENT '预计耗时(分钟)',
`part_count` tinyint DEFAULT 1 COMMENT '分区数量',
`allow_anonymous` tinyint DEFAULT 0 COMMENT '是否允许匿名0-不允许 1-允许',
`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 '是否删除',
PRIMARY KEY (`id`),
KEY `idx_type` (`type`),
KEY `idx_status` (`status`)
) ENGINE=InnoDB COMMENT='问卷模板表';
-- ============================================
-- 10. 问卷问题表 (prison_question)
-- ============================================
DROP TABLE IF EXISTS `prison_question`;
CREATE TABLE IF NOT EXISTS `prison_question` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '问题ID',
`tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
`questionnaire_id` bigint NOT NULL COMMENT '所属问卷ID',
`title` varchar(500) NOT NULL COMMENT '问题标题',
`type` tinyint NOT NULL COMMENT '问题类型1-单选 2-多选 3-填空 4-评分 5-日期 6-数字',
`options` text COMMENT '选项JSON[{label:"选项1",score:10,isOther:false},...]',
`score` decimal(10,2) DEFAULT 0.00 COMMENT '分值',
`sort` int DEFAULT 0 COMMENT '排序',
`is_required` tinyint DEFAULT 1 COMMENT '是否必答0-否 1-是',
`part_name` varchar(50) DEFAULT NULL COMMENT '分区名称Part名称用于将问题分组',
`part_sort` tinyint DEFAULT 0 COMMENT '分区排序(同一问卷内的分区序号)',
`help_text` varchar(500) DEFAULT NULL COMMENT '帮助说明文字',
`placeholder` varchar(200) DEFAULT NULL COMMENT '占位提示(填空题/数字题显示)',
`default_value` varchar(200) DEFAULT NULL COMMENT '默认值',
`auto_fill_type` varchar(20) DEFAULT 'NONE' COMMENT '自动填充类型NONE-无 AUTO-系统自动填充 MANUAL-手动输入',
`auto_fill_source` varchar(100) DEFAULT NULL COMMENT '自动填充来源dict:字典类型 / field:字段名',
`display_condition` text COMMENT '显示条件JSON{"field":"字段名","operator":">=","value":"值"}',
`min_value` int DEFAULT NULL COMMENT '最小值(数字/评分题)',
`max_value` int 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 '是否删除',
PRIMARY KEY (`id`),
KEY `idx_questionnaire_id` (`questionnaire_id`)
) ENGINE=InnoDB COMMENT='问卷问题表';
-- ============================================
-- 11. 问卷答题记录表 (prison_questionnaire_record)
-- ============================================
DROP TABLE IF EXISTS `prison_questionnaire_record`;
CREATE TABLE IF NOT EXISTS `prison_questionnaire_record` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '记录ID',
`tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
`questionnaire_id` bigint NOT NULL COMMENT '问卷ID',
`questionnaire_name` varchar(200) DEFAULT NULL COMMENT '问卷名称',
`prisoner_id` bigint NOT NULL COMMENT '罪犯ID',
`prisoner_no` varchar(50) NOT NULL COMMENT '罪犯编号',
`prisoner_name` varchar(50) DEFAULT NULL COMMENT '罪犯姓名',
`status` tinyint NOT NULL DEFAULT 1 COMMENT '状态1-待测评 2-测评中 3-已完成 4-已过期 5-已取消',
`start_time` datetime DEFAULT NULL COMMENT '开始时间',
`end_time` datetime DEFAULT NULL COMMENT '结束时间',
`answer_time` datetime DEFAULT NULL COMMENT '答题时间',
`deadline` datetime DEFAULT NULL COMMENT '截止日期',
`objective_score` decimal(10,2) DEFAULT 0.00 COMMENT '客观题得分',
`subjective_score` decimal(10,2) DEFAULT 0.00 COMMENT '主观题得分',
`total_score` decimal(10,2) DEFAULT 0.00 COMMENT '总分',
`pass_score` decimal(10,2) DEFAULT NULL COMMENT '及格分数',
`pass_status` tinyint DEFAULT NULL COMMENT '及格状态1-及格 2-不及格 3-待评阅',
`risk_level` tinyint DEFAULT NULL COMMENT '风险等级1-高风险 2-中风险 3-低风险',
`evaluator_id` bigint DEFAULT NULL COMMENT '评阅人ID',
`evaluator_name` varchar(50) DEFAULT NULL COMMENT '评阅人姓名',
`evaluate_time` datetime DEFAULT NULL COMMENT '评阅时间',
`participant_count` int DEFAULT 0 COMMENT '参与人数',
`completed_count` int DEFAULT 0 COMMENT '完成人数',
`duration` int DEFAULT 0 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 '是否删除',
PRIMARY KEY (`id`),
KEY `idx_questionnaire_id` (`questionnaire_id`),
KEY `idx_prisoner_id` (`prisoner_id`),
KEY `idx_status` (`status`)
) ENGINE=InnoDB COMMENT='问卷答题记录表';
-- ============================================
-- 12. 问卷答题详情表 (prison_answer)
-- ============================================
DROP TABLE IF EXISTS `prison_answer`;
CREATE TABLE IF NOT EXISTS `prison_answer` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '答题记录ID',
`tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
`assessment_record_id` bigint NOT NULL COMMENT '测评记录ID',
`question_id` bigint NOT NULL COMMENT '问题ID',
`questionnaire_id` bigint NOT NULL COMMENT '问卷ID冗余',
`prisoner_id` bigint NOT NULL COMMENT '罪犯ID',
`question_type` tinyint NOT NULL COMMENT '问题类型1-单选 2-多选 3-填空 4-评分 5-日期 6-数字',
`answer_text` text COMMENT '答案内容(填空题、评分题等)',
`option_ids` text COMMENT '选项ID列表JSON数组如 [1,2,3]',
`score` decimal(10,2) DEFAULT 0.00 COMMENT '得分',
`is_correct` tinyint DEFAULT NULL COMMENT '是否正确null-未评分 0-错误 1-正确',
`duration` int DEFAULT 0 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 '是否删除',
PRIMARY KEY (`id`),
KEY `idx_assessment_record_id` (`assessment_record_id`),
KEY `idx_question_id` (`question_id`),
KEY `idx_prisoner_id` (`prisoner_id`)
) ENGINE=InnoDB COMMENT='问卷答题详情表';
-- ============================================
-- 13. 罪犯监区变动记录表 (prison_prisoner_area_log)
-- ============================================
DROP TABLE IF EXISTS `prison_prisoner_area_log`;
CREATE TABLE IF NOT EXISTS `prison_prisoner_area_log` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
`prisoner_id` bigint NOT NULL COMMENT '罪犯ID',
`prisoner_no` varchar(50) NOT NULL COMMENT '罪犯编号',
`from_area_id` bigint DEFAULT NULL COMMENT '原监区ID',
`from_sub_area_id` bigint DEFAULT NULL COMMENT '原分监区ID',
`from_cell_id` bigint DEFAULT NULL COMMENT '原监室ID',
`to_area_id` bigint NOT NULL COMMENT '新监区ID',
`to_sub_area_id` bigint DEFAULT NULL COMMENT '新分监区ID',
`to_cell_id` bigint NOT NULL COMMENT '新监室ID',
`change_type` tinyint NOT NULL COMMENT '变动类型1-调入 2-调出 3-临时安置 4-医疗回监 5-初始分配',
`reason` varchar(500) DEFAULT NULL COMMENT '变动原因',
`approve_no` varchar(50) DEFAULT NULL COMMENT '批准文号',
`operate_by` bigint NOT NULL COMMENT '操作人ID',
`operate_name` varchar(50) DEFAULT NULL COMMENT '操作人姓名',
`operate_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP 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 '是否删除',
PRIMARY KEY (`id`),
KEY `idx_prisoner_id` (`prisoner_id`),
KEY `idx_operate_time` (`operate_time`)
) ENGINE=InnoDB COMMENT='罪犯监区变动记录表';
-- ============================================
-- 14. 预警信息表 (prison_warning)
-- ============================================
DROP TABLE IF EXISTS `prison_warning`;
CREATE TABLE IF NOT EXISTS `prison_warning` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '预警ID',
`tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
`title` varchar(200) NOT NULL COMMENT '预警标题',
`content` text COMMENT '预警内容',
`type` tinyint NOT NULL COMMENT '预警类型1-安全预警 2-监管预警 3-改造预警 4-生产预警 5-生活卫生预警 6-其他',
`level` tinyint NOT NULL COMMENT '预警等级1-一般 2-重要 3-紧急 4-严重',
`status` tinyint NOT NULL DEFAULT 1 COMMENT '预警状态1-待核实 2-已核实 3-已处置 4-已解除',
`source` tinyint DEFAULT NULL 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 NOT NULL COMMENT '预警时间',
`verify_time` datetime DEFAULT NULL COMMENT '核实时间',
`verifier` varchar(50) DEFAULT NULL COMMENT '核实人',
`verify_result` varchar(500) DEFAULT NULL COMMENT '核实结果',
`handle_time` datetime DEFAULT NULL COMMENT '处置时间',
`handler` varchar(50) DEFAULT NULL COMMENT '处置人',
`handle_method` varchar(200) DEFAULT NULL COMMENT '处置方式',
`handle_result` varchar(500) DEFAULT NULL COMMENT '处置结果',
`release_time` datetime DEFAULT NULL COMMENT '解除时间',
`releaser` varchar(50) DEFAULT NULL COMMENT '解除人',
`release_reason` varchar(500) DEFAULT NULL 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 '是否删除',
PRIMARY KEY (`id`),
KEY `idx_type` (`type`),
KEY `idx_level` (`level`),
KEY `idx_status` (`status`),
KEY `idx_area_id` (`area_id`),
KEY `idx_alert_time` (`alert_time`)
) ENGINE=InnoDB COMMENT='预警信息表';
-- ============================================
-- 15. 狱情收集信息表 (prison_situation)
-- ============================================
DROP TABLE IF EXISTS `prison_situation`;
CREATE TABLE IF NOT EXISTS `prison_situation` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '狱情ID',
`tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
`title` varchar(200) NOT NULL COMMENT '标题',
`content` text COMMENT '详情内容',
`category` tinyint NOT NULL COMMENT '分类1-监管安全 2-教育改造 3-生活卫生 4-生产安全 5-狱内案件 6-其他',
`level` tinyint NOT NULL COMMENT '等级1-一般 2-重要 3-紧急',
`source` tinyint DEFAULT NULL 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` varchar(500) DEFAULT NULL COMMENT '处理结果',
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
`occur_time` datetime DEFAULT NULL COMMENT '发生时间',
`type` varchar(50) DEFAULT NULL COMMENT '类型',
`location` varchar(200) 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 '是否删除',
PRIMARY KEY (`id`),
KEY `idx_category` (`category`),
KEY `idx_level` (`level`),
KEY `idx_status` (`status`),
KEY `idx_area_id` (`area_id`),
KEY `idx_occur_time` (`occur_time`)
) ENGINE=InnoDB COMMENT='狱情收集信息表';
-- ============================================
-- 16. 评估报告表 (prison_evaluation_report)
-- ============================================
DROP TABLE IF EXISTS `prison_evaluation_report`;
CREATE TABLE IF NOT EXISTS `prison_evaluation_report` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '报告ID',
`tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
`report_no` varchar(50) NOT NULL COMMENT '报告编号',
`prisoner_id` bigint NOT NULL COMMENT '罪犯ID',
`prisoner_no` varchar(50) NOT NULL COMMENT '罪犯编号',
`prisoner_name` varchar(50) DEFAULT NULL COMMENT '罪犯姓名',
`template_id` bigint DEFAULT NULL COMMENT '模板ID',
`template_name` varchar(100) DEFAULT NULL COMMENT '模板名称',
`evaluation_type` tinyint DEFAULT NULL COMMENT '评估类型1-心理评估 2-危险性评估 3-改造表现评估 4-综合评估',
`evaluation_cycle` tinyint DEFAULT NULL COMMENT '评估周期1-月评 2-季评 3-半年评 4-年终评 5-入监评估 6-出监评估',
`evaluation_date` datetime DEFAULT NULL COMMENT '评估日期',
`evaluator_id` bigint DEFAULT NULL COMMENT '评估人员ID',
`evaluator_name` varchar(50) DEFAULT NULL COMMENT '评估人员姓名',
`area_id` bigint DEFAULT NULL COMMENT '监区ID',
`area_name` varchar(100) DEFAULT NULL COMMENT '监区名称',
`total_score` decimal(10,2) DEFAULT 0.00 COMMENT '总分',
`level` tinyint DEFAULT NULL COMMENT '评级1-优秀 2-良好 3-一般 4-较差 5-危险',
`risk_level` tinyint DEFAULT NULL COMMENT '风险等级1-低风险 2-中风险 3-高风险 4-极高风险',
`risk_score` decimal(10,2) DEFAULT 0.00 COMMENT '风险得分',
`ai_status` tinyint DEFAULT 1 COMMENT 'AI生成状态1-待生成 2-生成中 3-已完成 4-生成失败',
`ai_content` text COMMENT 'AI生成内容',
`ai_report_content` text COMMENT 'AI生成报告内容',
`status` tinyint NOT NULL DEFAULT 1 COMMENT '报告状态1-草稿 2-待审核 3-已审核 4-已作废',
`auditor_id` bigint DEFAULT NULL COMMENT '审核人ID',
`auditor_name` varchar(50) DEFAULT NULL COMMENT '审核人姓名',
`audit_time` datetime DEFAULT NULL COMMENT '审核时间',
`audit_opinion` varchar(500) DEFAULT NULL COMMENT '审核意见',
`conclusion` text COMMENT '报告结论',
`suggestions` text COMMENT '改造建议',
`pdf_path` varchar(500) DEFAULT NULL COMMENT '报告PDF路径',
`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 '是否删除',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_report_no` (`report_no`, `tenant_id`),
KEY `idx_prisoner_id` (`prisoner_id`),
KEY `idx_evaluation_date` (`evaluation_date`),
KEY `idx_status` (`status`)
) ENGINE=InnoDB COMMENT='评估报告表';
-- ============================================
-- 17. 快速点评表 (prison_quick_comment)
-- ============================================
DROP TABLE IF EXISTS `prison_quick_comment`;
CREATE TABLE IF NOT EXISTS `prison_quick_comment` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '点评ID',
`tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
`title` varchar(100) NOT NULL COMMENT '点评标题',
`content` varchar(500) NOT NULL COMMENT '点评内容',
`category_id` bigint DEFAULT NULL COMMENT '分类ID',
`sort` int DEFAULT 0 COMMENT '排序',
`status` tinyint NOT NULL DEFAULT 1 COMMENT '状态1-启用 2-禁用',
`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 '是否删除',
PRIMARY KEY (`id`),
KEY `idx_category_id` (`category_id`)
) ENGINE=InnoDB COMMENT='快速点评表';
-- ============================================
-- 18. 快速点评分类表 (prison_comment_category)
-- ============================================
DROP TABLE IF EXISTS `prison_comment_category`;
CREATE TABLE IF NOT EXISTS `prison_comment_category` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '分类ID',
`tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
`name` varchar(50) NOT NULL COMMENT '分类名称',
`sort` int DEFAULT 0 COMMENT '排序',
`status` tinyint NOT NULL DEFAULT 1 COMMENT '状态1-启用 2-禁用',
`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 '是否删除',
PRIMARY KEY (`id`)
) ENGINE=InnoDB COMMENT='快速点评分类表';
-- ============================================
-- 19. 报告模板表 (prison_report_template)
-- ============================================
DROP TABLE IF EXISTS `prison_report_template`;
CREATE TABLE IF NOT EXISTS `prison_report_template` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '模板ID',
`tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
`name` varchar(100) NOT NULL COMMENT '模板名称',
`type` tinyint NOT NULL COMMENT '模板类型1-评估报告 2-月度报告 3-季度报告',
`content` text COMMENT '模板内容HTML或Markdown',
`fields` text COMMENT '字段配置JSON',
`status` tinyint NOT NULL DEFAULT 1 COMMENT '状态1-启用 2-禁用',
`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 '是否删除',
PRIMARY KEY (`id`),
KEY `idx_type` (`type`)
) ENGINE=InnoDB COMMENT='报告模板表';
-- ============================================
-- 20. 报告表 (prison_report)
-- ============================================
DROP TABLE IF EXISTS `prison_report`;
CREATE TABLE IF NOT EXISTS `prison_report` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '报告ID',
`tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
`title` varchar(200) NOT NULL COMMENT '报告标题',
`type` tinyint NOT NULL COMMENT '报告类型1-日报告 2-周报告 3-月报告 4-季度报告 5-年度报告',
`content` text COMMENT '报告内容',
`prison_area_id` bigint DEFAULT NULL COMMENT '监区ID',
`report_date` date DEFAULT NULL COMMENT '报告日期',
`status` tinyint NOT NULL DEFAULT 1 COMMENT '状态1-草稿 2-已发布 3-已归档',
`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 '是否删除',
PRIMARY KEY (`id`),
KEY `idx_type` (`type`),
KEY `idx_report_date` (`report_date`)
) ENGINE=InnoDB COMMENT='报告表';
-- ============================================
-- 21. 释放登记信息表 (prison_release)
-- ============================================
DROP TABLE IF EXISTS `prison_release`;
CREATE TABLE IF NOT EXISTS `prison_release` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '释放ID',
`tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
`prisoner_id` bigint NOT NULL COMMENT '罪犯ID',
`prisoner_no` varchar(50) NOT NULL COMMENT '罪犯编号',
`release_type` tinyint NOT NULL COMMENT '释放类型1-刑满释放 2-假释 3-保外就医 4-减刑 5-暂予监外执行 6-特赦 7-死亡 8-其他',
`release_date` date NOT NULL COMMENT '释放日期',
`release_reason` varchar(500) DEFAULT NULL COMMENT '释放原因',
`approve_no` varchar(50) DEFAULT NULL COMMENT '批准文号',
`destination` varchar(200) DEFAULT NULL COMMENT '释放去向',
`contact_phone` varchar(20) DEFAULT NULL COMMENT '联系电话',
`emergency_contact` varchar(100) DEFAULT NULL COMMENT '紧急联系人',
`emergency_phone` varchar(20) DEFAULT NULL COMMENT '紧急联系人电话',
`status` tinyint NOT NULL DEFAULT 1 COMMENT '状态1-待释放 2-已释放 3-已取消',
`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 '是否删除',
PRIMARY KEY (`id`),
KEY `idx_prisoner_id` (`prisoner_id`),
KEY `idx_release_date` (`release_date`)
) ENGINE=InnoDB COMMENT='释放登记信息表';
-- ============================================
-- 22. 风险评估维度表 (prison_risk)
-- ============================================
DROP TABLE IF EXISTS `prison_risk`;
CREATE TABLE IF NOT EXISTS `prison_risk` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '维度ID',
`tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
`name` varchar(50) NOT NULL COMMENT '维度名称',
`code` varchar(50) NOT NULL COMMENT '维度编码',
`description` varchar(500) DEFAULT NULL COMMENT '维度描述',
`weight` decimal(5,2) DEFAULT NULL COMMENT '权重',
`max_score` decimal(10,2) DEFAULT 100.00 COMMENT '最高分值',
`status` tinyint NOT NULL DEFAULT 1 COMMENT '状态1-启用 2-禁用',
`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 '是否删除',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_code` (`code`, `tenant_id`)
) ENGINE=InnoDB COMMENT='风险评估维度表';
-- ============================================
-- 23. 评估报告维度表 (prison_evaluation_dimension)
-- ============================================
DROP TABLE IF EXISTS `prison_evaluation_dimension`;
CREATE TABLE IF NOT EXISTS `prison_evaluation_dimension` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '维度ID',
`tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
`report_id` bigint NOT NULL COMMENT '报告ID',
`dimension_name` varchar(100) NOT NULL COMMENT '维度名称',
`dimension_code` varchar(50) DEFAULT NULL COMMENT '维度编码',
`score` decimal(10,2) DEFAULT 0.00 COMMENT '得分',
`max_score` decimal(10,2) DEFAULT 100.00 COMMENT '满分',
`level` varchar(20) DEFAULT NULL COMMENT '评级',
`description` text COMMENT '维度描述',
`suggestion` text COMMENT '建议',
`sort` int DEFAULT 0 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 '是否删除',
PRIMARY KEY (`id`),
KEY `idx_report_id` (`report_id`)
) ENGINE=InnoDB COMMENT='评估报告维度表';
-- ============================================
-- 24. 评估报告维度数据表 (prison_evaluation_dimension_data)
-- ============================================
DROP TABLE IF EXISTS `prison_evaluation_dimension_data`;
CREATE TABLE IF NOT EXISTS `prison_evaluation_dimension_data` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '数据ID',
`tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
`dimension_id` bigint NOT NULL COMMENT '维度ID',
`data_type` varchar(50) NOT NULL COMMENT '数据类型score-得分 evidence-证据 behavior-行为',
`content` text COMMENT '内容',
`score` decimal(10,2) DEFAULT 0.00 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 '是否删除',
PRIMARY KEY (`id`),
KEY `idx_dimension_id` (`dimension_id`)
) ENGINE=InnoDB COMMENT='评估报告维度数据表';
-- ============================================
-- 25. 报告评价表 (prison_report_comment)
-- ============================================
DROP TABLE IF EXISTS `prison_report_comment`;
CREATE TABLE IF NOT EXISTS `prison_report_comment` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '评价ID',
`tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
`report_id` bigint NOT NULL COMMENT '报告ID',
`type` tinyint NOT NULL COMMENT '评价类型1-总体评价 2-优点 3-不足 4-建议',
`content` text NOT NULL COMMENT '评价内容',
`score` decimal(10,2) DEFAULT NULL COMMENT '评价得分',
`sort` int DEFAULT 0 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 '是否删除',
PRIMARY KEY (`id`),
KEY `idx_report_id` (`report_id`)
) ENGINE=InnoDB COMMENT='报告评价表';
-- ============================================
-- 26. 消费明细表 (prison_consumption_detail)
-- ============================================
DROP TABLE IF EXISTS `prison_consumption_detail`;
CREATE TABLE IF NOT EXISTS `prison_consumption_detail` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '明细ID',
`tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
`consumption_id` bigint NOT NULL COMMENT '消费ID',
`goods_name` varchar(100) NOT NULL COMMENT '商品名称',
`goods_code` varchar(50) DEFAULT NULL COMMENT '商品编码',
`quantity` int DEFAULT 1 COMMENT '数量',
`unit_price` decimal(10,2) NOT NULL COMMENT '单价',
`total_price` decimal(10,2) NOT 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 '是否删除',
PRIMARY KEY (`id`),
KEY `idx_consumption_id` (`consumption_id`)
) ENGINE=InnoDB COMMENT='消费明细表';
-- 恢复外键检查
SET FOREIGN_KEY_CHECKS = 1;
-- ============================================
-- 索引优化建议
-- ============================================
-- 为常用查询添加复合索引
-- ALTER TABLE prison_prisoner ADD INDEX idx_area_cell (prison_area_id, prison_cell_id);
-- ALTER TABLE prison_score ADD INDEX idx_prisoner_year_month (prisoner_id, year, month);
-- ALTER TABLE prison_warning ADD INDEX idx_type_level_status (type, level, status);
-- ============================================
-- 字段注释更新脚本(可选)
-- ============================================
-- COMMENT ON COLUMN prison_prisoner.children IS '子女情况';
-- COMMENT ON COLUMN prison_questionnaire.cover_image IS '封面图片URL';
-- COMMENT ON COLUMN prison_questionnaire.instruction IS '填写说明';
-- COMMENT ON COLUMN prison_questionnaire.estimated_time IS '预计耗时(分钟)';
-- COMMENT ON COLUMN prison_questionnaire.part_count IS '分区数量';
-- COMMENT ON COLUMN prison_questionnaire.allow_anonymous IS '是否允许匿名0-不允许 1-允许';