-- ============================================================ -- 信义门禁系统 建表脚本 -- ============================================================ -- 1. 来访申请主表(人员/车辆共用,apply_type区分) DROP TABLE IF EXISTS `gate_visitor_apply`; CREATE TABLE `gate_visitor_apply` ( `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键', `visitor_apply_id` varchar(36) NOT NULL COMMENT '业务主键UUID', `apply_type` tinyint NOT NULL COMMENT '申请类型:1-外来人员 2-外来车辆', `source_unit` varchar(100) DEFAULT NULL COMMENT '来源单位', `visitor_count` int DEFAULT NULL COMMENT '入场人数', `license_plate` varchar(20) DEFAULT NULL COMMENT '车牌号(车辆申请时填写)', `vehicle_type` varchar(50) DEFAULT NULL COMMENT '车型(车辆申请时填写)', `purpose` varchar(500) DEFAULT NULL COMMENT '入场事由', `apply_start_time` datetime DEFAULT NULL COMMENT '申请开始时间', `apply_end_time` datetime DEFAULT NULL COMMENT '申请结束时间', `audit_dept_id` bigint DEFAULT NULL COMMENT '审批部门ID', `status` tinyint NOT NULL DEFAULT '0' COMMENT '申请状态:0未提交 1待审核 2待审批 3待确认 4已进场 5已出场 6审核被打回 7审批被打回 8待归档 9已归档 10已过期', `reject_reason` varchar(500) DEFAULT NULL COMMENT '拒绝原因', `apply_source` tinyint DEFAULT NULL COMMENT '申请来源 1PC端 2扫码申请', `apply_dept_id` bigint DEFAULT NULL COMMENT '申请人部门ID', `apply_user_id` bigint DEFAULT NULL COMMENT '申请人ID', `delete_enum` varchar(32) DEFAULT NULL COMMENT '删除标识true false', `remarks` varchar(255) DEFAULT NULL COMMENT '备注', `create_name` varchar(50) DEFAULT NULL COMMENT '创建人姓名', `update_name` varchar(50) DEFAULT NULL COMMENT '更新人姓名', `tenant_id` bigint DEFAULT NULL COMMENT '租户id', `org_id` bigint DEFAULT NULL COMMENT '单位id', `version` int DEFAULT NULL COMMENT '版本', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_time` datetime DEFAULT NULL COMMENT '修改时间', `create_id` bigint DEFAULT NULL COMMENT '创建人id', `update_id` bigint DEFAULT NULL COMMENT '修改人id', `env` varchar(50) DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `idx_apply_id` (`visitor_apply_id`), KEY `idx_apply_type` (`apply_type`), KEY `idx_status` (`status`), KEY `idx_tenant_org` (`tenant_id`, `org_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='来访申请主表'; -- 2. 来访人员明细表(人员申请的来访人员 + 车辆申请的车内人员) DROP TABLE IF EXISTS `gate_visitor_person`; CREATE TABLE `gate_visitor_person` ( `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键', `visitor_person_id` varchar(36) NOT NULL COMMENT '业务主键UUID', `visitor_apply_id` varchar(36) NOT NULL COMMENT '申请主表ID', `person_type` tinyint NOT NULL COMMENT '人员类型:1-来访人员 2-车内人员', `name` varchar(50) DEFAULT NULL COMMENT '姓名', `phone` varchar(20) DEFAULT NULL COMMENT '手机号', `delete_enum` varchar(32) DEFAULT NULL COMMENT '删除标识true false', `remarks` varchar(255) DEFAULT NULL COMMENT '备注', `create_name` varchar(50) DEFAULT NULL COMMENT '创建人姓名', `update_name` varchar(50) DEFAULT NULL COMMENT '更新人姓名', `tenant_id` bigint DEFAULT NULL COMMENT '租户id', `org_id` bigint DEFAULT NULL COMMENT '单位id', `version` int DEFAULT NULL COMMENT '版本', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_time` datetime DEFAULT NULL COMMENT '修改时间', `create_id` bigint DEFAULT NULL COMMENT '创建人id', `update_id` bigint DEFAULT NULL COMMENT '修改人id', `env` varchar(50) DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `idx_visitor_person_id` (`visitor_person_id`), KEY `idx_visitor_apply_id` (`visitor_apply_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='来访人员明细表'; -- 3. 审核记录表(职能部门审核、安检部门审批、现场确认共用) DROP TABLE IF EXISTS `gate_visitor_audit`; CREATE TABLE `gate_visitor_audit` ( `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键', `visitor_audit_id` varchar(36) NOT NULL COMMENT '业务主键UUID', `visitor_apply_id` varchar(36) NOT NULL COMMENT '申请主表ID', `audit_type` tinyint NOT NULL COMMENT '审核类型:1-职能部室审核 2-安监部门审批 3-现场确认', `audit_result` tinyint NOT NULL COMMENT '审核结果:1-通过 2-拒绝', `audit_opinion` varchar(500) DEFAULT NULL COMMENT '审核意见', `auditor_id` bigint DEFAULT NULL COMMENT '审核人ID', `auditor_name` varchar(50) DEFAULT NULL COMMENT '审核人姓名', `audit_time` datetime DEFAULT NULL COMMENT '审核时间', `delete_enum` varchar(32) DEFAULT NULL COMMENT '删除标识true false', `remarks` varchar(255) DEFAULT NULL COMMENT '备注', `create_name` varchar(50) DEFAULT NULL COMMENT '创建人姓名', `update_name` varchar(50) DEFAULT NULL COMMENT '更新人姓名', `tenant_id` bigint DEFAULT NULL COMMENT '租户id', `org_id` bigint DEFAULT NULL COMMENT '单位id', `version` int DEFAULT NULL COMMENT '版本', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_time` datetime DEFAULT NULL COMMENT '修改时间', `create_id` bigint DEFAULT NULL COMMENT '创建人id', `update_id` bigint DEFAULT NULL COMMENT '修改人id', `env` varchar(50) DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `idx_visitor_audit_id` (`visitor_audit_id`), KEY `idx_visitor_apply_id` (`visitor_apply_id`), KEY `idx_audit_type` (`audit_type`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='审核记录表'; -- 4. 黑名单(人员/车辆共用,blacklist_type区分) DROP TABLE IF EXISTS `gate_blacklist`; CREATE TABLE `gate_blacklist` ( `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键', `blacklist_id` varchar(36) NOT NULL COMMENT '业务主键UUID', `blacklist_type` tinyint NOT NULL COMMENT '黑名单类型:1-人员 2-车辆', `name` varchar(50) DEFAULT NULL COMMENT '姓名(人员黑名单)', `phone` varchar(20) DEFAULT NULL COMMENT '手机号(人员黑名单)', `license_plate` varchar(20) DEFAULT NULL COMMENT '车牌号(车辆黑名单)', `affiliated_unit` varchar(100) DEFAULT NULL COMMENT '所属单位', `join_time` datetime DEFAULT NULL COMMENT '加入时间', `added_by_id` bigint DEFAULT NULL COMMENT '添加人ID', `status` tinyint NOT NULL DEFAULT '1' COMMENT '状态:1-启用 0-禁用', `delete_enum` varchar(32) DEFAULT NULL COMMENT '删除标识true false', `remarks` varchar(255) DEFAULT NULL COMMENT '备注', `create_name` varchar(50) DEFAULT NULL COMMENT '创建人姓名', `update_name` varchar(50) DEFAULT NULL COMMENT '更新人姓名', `tenant_id` bigint DEFAULT NULL COMMENT '租户id', `org_id` bigint DEFAULT NULL COMMENT '单位id', `version` int DEFAULT NULL COMMENT '版本', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_time` datetime DEFAULT NULL COMMENT '修改时间', `create_id` bigint DEFAULT NULL COMMENT '创建人id', `update_id` bigint DEFAULT NULL COMMENT '修改人id', `env` varchar(50) DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `idx_blacklist_id` (`blacklist_id`), KEY `idx_blacklist_type` (`blacklist_type`), KEY `idx_phone` (`phone`), KEY `idx_license_plate` (`license_plate`), KEY `idx_tenant_org` (`tenant_id`, `org_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='黑名单'; -- 5. 部门审核人/审批人/确认人配置 DROP TABLE IF EXISTS `gate_dept_auditor_config`; CREATE TABLE `gate_dept_auditor_config` ( `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键', `config_id` varchar(36) NOT NULL COMMENT '主键UUID', `dept_id` bigint NOT NULL COMMENT '部门ID', `config_type` tinyint NOT NULL COMMENT '配置类型:1-审核人 2-审批人 3-确认人', `user_id` bigint NOT NULL COMMENT '用户ID', `delete_enum` varchar(32) DEFAULT NULL COMMENT '删除标识true false', `remarks` varchar(255) DEFAULT NULL COMMENT '备注', `create_name` varchar(50) DEFAULT NULL COMMENT '创建人姓名', `update_name` varchar(50) DEFAULT NULL COMMENT '更新人姓名', `tenant_id` bigint DEFAULT NULL COMMENT '租户id', `org_id` bigint DEFAULT NULL COMMENT '单位id', `version` int DEFAULT NULL COMMENT '版本', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_time` datetime DEFAULT NULL COMMENT '修改时间', `create_id` bigint DEFAULT NULL COMMENT '创建人id', `update_id` bigint DEFAULT NULL COMMENT '修改人id', `env` varchar(50) DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `idx_config_id` (`config_id`), KEY `idx_dept_type` (`dept_id`, `config_type`), KEY `idx_tenant_org` (`tenant_id`, `org_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='部门审核人/审批人/确认人配置';