xlcp-backend/sql/v1_migration_20260121.sql
tangweijie cff7832d5e feat: 新增监狱综合管理平台数据库迁移脚本
- 创建了完整的数据库迁移脚本,包含罪犯信息、监区信息、监室信息、计分考核、考核规则、消费记录等多个表的定义
- 每个表均包含详细的字段定义和注释,确保数据结构清晰
- 关闭外键检查以支持表的创建,最后恢复外键检查

此脚本为后续系统功能实现提供了基础数据结构支持。
2026-01-22 09:29:05 +08:00

794 lines
46 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

-- ============================================
-- 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-允许';