- 新增AI监控仪表盘相关接口(监狱概况统计、重点人员查询) - 新增监管对象位置字段(province/city/district)到各DO实体 - 新增重点人员页面相关VO(FocusPersonPageReqVO、FocusPersonVO) - 新增AI监控入口菜单SQL脚本 - 新增监管对象位置升级SQL脚本 - 完善监控仪表盘服务实现(实时数据、统计分析、风险预警) Co-Authored-By: Claude <noreply@anthropic.com>
269 lines
16 KiB
SQL
269 lines
16 KiB
SQL
-- ============================================
|
||
-- XL监狱综合管理平台 - 数据库初始化脚本
|
||
-- ============================================
|
||
|
||
-- 罪犯信息表
|
||
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 '释放类型:0-未知 1-刑满释放 2-假释 3-保外就医 4-减刑 5-暂予监外执行 6-特赦 7-死亡 8-其他',
|
||
`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 '刑期',
|
||
`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='罪犯信息表';
|
||
|
||
-- 监区信息表
|
||
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-禁闭室',
|
||
`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`)
|
||
) ENGINE=InnoDB COMMENT='监区信息表';
|
||
|
||
-- 监室信息表
|
||
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='监室信息表';
|
||
|
||
-- 计分考核表
|
||
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-已驳回',
|
||
`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='计分考核表';
|
||
|
||
-- 危险评估表
|
||
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='危险评估表';
|
||
|
||
-- 消费记录表
|
||
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 '罪犯编号',
|
||
`type` tinyint NOT NULL COMMENT '类型:1-存款 2-消费 3-转账',
|
||
`amount` decimal(12,2) NOT NULL COMMENT '金额',
|
||
`balance` decimal(12,2) DEFAULT 0.00 COMMENT '账户余额',
|
||
`goods_name` varchar(100) DEFAULT NULL COMMENT '商品名称',
|
||
`goods_count` int DEFAULT 1 COMMENT '商品数量',
|
||
`order_no` varchar(64) DEFAULT NULL 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='消费记录表';
|
||
|
||
-- 问卷模板表
|
||
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-已禁用',
|
||
`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='问卷模板表';
|
||
|
||
-- 问卷问题表
|
||
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-评分',
|
||
`options` text COMMENT '选项JSON:[{label:"选项1",score:10},...]',
|
||
`score` decimal(10,2) DEFAULT 0.00 COMMENT '分值',
|
||
`sort` int DEFAULT 0 COMMENT '排序',
|
||
`is_required` bit(1) DEFAULT b'1' 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='问卷问题表';
|
||
|
||
-- 问卷答题记录表
|
||
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',
|
||
`prisoner_id` bigint NOT NULL COMMENT '罪犯ID',
|
||
`prisoner_no` varchar(50) NOT NULL COMMENT '罪犯编号',
|
||
`total_score` decimal(10,2) DEFAULT 0.00 COMMENT '得分',
|
||
`pass_status` tinyint DEFAULT NULL COMMENT '是否及格:1-及格 2-不及格',
|
||
`answer_time` datetime NOT 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_questionnaire_id` (`questionnaire_id`),
|
||
KEY `idx_prisoner_id` (`prisoner_id`)
|
||
) ENGINE=InnoDB COMMENT='问卷答题记录表';
|
||
|
||
-- 罪犯监区变动记录表
|
||
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',
|
||
`from_area_id` bigint DEFAULT NULL COMMENT '原监区ID',
|
||
`from_cell_id` bigint DEFAULT NULL COMMENT '原监室ID',
|
||
`to_area_id` bigint NOT NULL COMMENT '新监区ID',
|
||
`to_cell_id` bigint NOT NULL COMMENT '新监室ID',
|
||
`change_type` varchar(20) NOT NULL COMMENT '变动类型:调监区、调监室、入监、出监',
|
||
`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='罪犯监区变动记录表';
|
||
|
||
|