-- ---------------------------- -- 出国申请管理模块数据库表结构 -- 创建时间: 2025-01-28 -- 模块说明: 出国申请管理功能相关表结构定义 -- 包含表: rs_overseas_application(出国申请表)、rs_overseas_record(出国记录表)、rs_overseas_approval(出国审批记录表) -- ---------------------------- -- 出国申请表 DROP TABLE IF EXISTS `rs_overseas_application`; CREATE TABLE `rs_overseas_application` ( `application_id` bigint(20) NOT NULL COMMENT '申请ID', `tenant_id` varchar(20) NOT NULL DEFAULT '000000' COMMENT '租户编号', `applicant_id` bigint(20) NOT NULL COMMENT '申请人ID', `applicant_name` varchar(50) NOT NULL COMMENT '申请人姓名', `department` varchar(100) NOT NULL COMMENT '所属部门', `position` varchar(100) DEFAULT NULL COMMENT '职位', `contact_phone` varchar(20) NOT NULL COMMENT '联系电话', `contact_email` varchar(100) NOT NULL COMMENT '联系邮箱', `purpose` varchar(50) NOT NULL COMMENT '出国目的(academic_exchange-学术交流,conference-学术会议,training-培训学习,cooperation-合作项目,research-科研访问,other-其他)', `purpose_detail` text NOT NULL COMMENT '目的详细说明', `destination` varchar(100) NOT NULL COMMENT '目的地国家', `destination_city` varchar(100) DEFAULT NULL COMMENT '目的地城市', `start_date` date NOT NULL COMMENT '开始日期', `end_date` date NOT NULL COMMENT '结束日期', `duration` int(11) DEFAULT NULL COMMENT '出国天数', `budget` decimal(12,2) NOT NULL COMMENT '预算金额', `budget_source` varchar(50) NOT NULL COMMENT '经费来源(school-学校经费,government-政府资助,project-项目经费,self-个人承担,cooperation-合作单位,other-其他)', `invitation` varchar(500) DEFAULT NULL COMMENT '邀请函信息', `itinerary` text NOT NULL COMMENT '行程安排', `accommodation_plan` text DEFAULT NULL COMMENT '住宿安排', `transportation_plan` text DEFAULT NULL COMMENT '交通安排', `status` char(1) NOT NULL DEFAULT '0' COMMENT '申请状态(0-待审核,1-已通过,2-已拒绝,3-已取消,4-已完成)', `current_approver` varchar(100) DEFAULT NULL COMMENT '当前审批人', `approval_level` char(1) NOT NULL DEFAULT '1' COMMENT '审批级别(1-部门主管,2-分管领导,3-校领导)', `apply_time` datetime DEFAULT NULL COMMENT '申请时间', `approval_time` datetime DEFAULT NULL COMMENT '审批完成时间', `admin_remark` text DEFAULT NULL COMMENT '管理员备注', `applicant_remark` text DEFAULT NULL COMMENT '申请人备注', `create_dept` bigint(20) DEFAULT NULL COMMENT '创建部门', `create_by` bigint(20) DEFAULT NULL COMMENT '创建者', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_by` bigint(20) DEFAULT NULL COMMENT '更新者', `update_time` datetime DEFAULT NULL COMMENT '更新时间', `deleted` tinyint(1) DEFAULT 0 COMMENT '删除标志(0代表存在 1代表删除)', PRIMARY KEY (`application_id`) USING BTREE, KEY `idx_tenant_id` (`tenant_id`), KEY `idx_applicant_id` (`applicant_id`), KEY `idx_status` (`status`), KEY `idx_approval_level` (`approval_level`), KEY `idx_current_approver` (`current_approver`), KEY `idx_apply_time` (`apply_time`), KEY `idx_start_date` (`start_date`), KEY `idx_department` (`department`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='出国申请表'; -- 出国记录表 DROP TABLE IF EXISTS `rs_overseas_record`; CREATE TABLE `rs_overseas_record` ( `record_id` bigint(20) NOT NULL COMMENT '记录ID', `tenant_id` varchar(20) NOT NULL DEFAULT '000000' COMMENT '租户编号', `application_id` bigint(20) NOT NULL COMMENT '关联申请ID', `applicant_id` bigint(20) NOT NULL COMMENT '申请人ID', `applicant_name` varchar(50) NOT NULL COMMENT '申请人姓名', `department` varchar(100) NOT NULL COMMENT '所属部门', `purpose` varchar(50) NOT NULL COMMENT '出国目的', `destination` varchar(100) NOT NULL COMMENT '目的地国家', `actual_start_date` date DEFAULT NULL COMMENT '实际开始日期', `actual_end_date` date DEFAULT NULL COMMENT '实际结束日期', `actual_duration` int(11) DEFAULT NULL COMMENT '实际出国天数', `actual_budget` decimal(12,2) DEFAULT NULL COMMENT '实际花费金额', `completion_status` char(1) NOT NULL DEFAULT '1' COMMENT '完成状态(1-已完成,2-已拒绝)', `achievement` text DEFAULT NULL COMMENT '出国成果', `report_content` text DEFAULT NULL COMMENT '总结报告内容', `certificate_path` varchar(500) DEFAULT NULL COMMENT '证书文件路径', `create_dept` bigint(20) DEFAULT NULL COMMENT '创建部门', `create_by` bigint(20) DEFAULT NULL COMMENT '创建者', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_by` bigint(20) DEFAULT NULL COMMENT '更新者', `update_time` datetime DEFAULT NULL COMMENT '更新时间', `deleted` tinyint(1) DEFAULT 0 COMMENT '删除标志(0代表存在 1代表删除)', PRIMARY KEY (`record_id`) USING BTREE, UNIQUE KEY `uk_application_id` (`application_id`), KEY `idx_tenant_id` (`tenant_id`), KEY `idx_applicant_id` (`applicant_id`), KEY `idx_completion_status` (`completion_status`), KEY `idx_actual_start_date` (`actual_start_date`), KEY `idx_department` (`department`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='出国记录表'; -- 出国审批记录表 DROP TABLE IF EXISTS `rs_overseas_approval`; CREATE TABLE `rs_overseas_approval` ( `approval_id` bigint(20) NOT NULL COMMENT '审批ID', `tenant_id` varchar(20) NOT NULL DEFAULT '000000' COMMENT '租户编号', `application_id` bigint(20) NOT NULL COMMENT '关联申请ID', `approver_id` bigint(20) NOT NULL COMMENT '审批人ID', `approver_name` varchar(50) NOT NULL COMMENT '审批人姓名', `approval_level` char(1) NOT NULL COMMENT '审批级别(1-部门主管,2-分管领导,3-校领导)', `approval_status` char(1) NOT NULL COMMENT '审批状态(0-待审核,1-通过,2-拒绝)', `approval_opinion` text DEFAULT NULL COMMENT '审批意见', `approval_time` datetime DEFAULT NULL COMMENT '审批时间', `create_dept` bigint(20) DEFAULT NULL COMMENT '创建部门', `create_by` bigint(20) DEFAULT NULL COMMENT '创建者', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_by` bigint(20) DEFAULT NULL COMMENT '更新者', `update_time` datetime DEFAULT NULL COMMENT '更新时间', `deleted` tinyint(1) DEFAULT 0 COMMENT '删除标志(0代表存在 1代表删除)', PRIMARY KEY (`approval_id`) USING BTREE, KEY `idx_tenant_id` (`tenant_id`), KEY `idx_application_id` (`application_id`), KEY `idx_approver_id` (`approver_id`), KEY `idx_approval_level` (`approval_level`), KEY `idx_approval_status` (`approval_status`), KEY `idx_approval_time` (`approval_time`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='出国审批记录表'; -- 初始化示例数据 INSERT INTO `rs_overseas_application` VALUES (1, '000000', 1, '张三', '计算机学院', '副教授', '13800138001', 'zhangsan@example.com', 'academic_exchange', '参加国际人工智能学术交流会议,发表研究论文并进行学术交流', '美国', '纽约', '2025-03-15', '2025-03-25', 11, 25000.00, 'school', '已收到会议邀请函', '3月15日飞往纽约,参加为期5天的会议,会后进行实验室访问', '入住会议指定酒店', '往返机票+当地交通', '1', 'admin', '2', '2025-01-28 10:00:00', '2025-01-28 15:30:00', NULL, '期待能够带回先进的研究成果', 1, 1, '2025-01-28 10:00:00', 1, '2025-01-28 15:30:00', 0), (2, '000000', 2, '李四', '外国语学院', '讲师', '13800138002', 'lisi@example.com', 'training', '参加剑桥大学举办的英语教学法培训项目,提升教学水平', '英国', '剑桥', '2025-04-10', '2025-05-10', 31, 45000.00, 'government', '政府公派留学资助项目', '4月10日飞往英国,参加为期1个月的培训课程', '剑桥大学安排的学生宿舍', '政府统一安排', '0', 'manager1', '1', '2025-01-28 14:00:00', NULL, NULL, '希望能学习到最新的教学方法', 1, 1, '2025-01-28 14:00:00', 1, '2025-01-28 14:00:00', 0), (3, '000000', 3, '王五', '机械工程学院', '教授', '13800138003', 'wangwu@example.com', 'cooperation', '与德国慕尼黑工业大学开展智能制造领域合作研究', '德国', '慕尼黑', '2025-05-01', '2025-06-30', 61, 60000.00, 'project', '项目合作经费支持', '5月1日赴德国,进行为期2个月的合作研究', '合作方提供住宿', '项目经费支持往返交通', '4', NULL, '3', '2025-01-25 09:00:00', '2025-01-26 16:00:00', '项目进展顺利,已完成合作研究', '希望能够建立长期合作关系', 1, 1, '2025-01-25 09:00:00', 1, '2025-01-26 16:00:00', 0); INSERT INTO `rs_overseas_approval` VALUES (1, '000000', 1, 10, '部门主管A', '1', '1', '同意申请,项目具有重要学术价值', '2025-01-28 11:00:00', 1, 1, '2025-01-28 11:00:00', 1, '2025-01-28 11:00:00', 0), (2, '000000', 1, 20, '分管领导B', '2', '1', '批准出国申请,注意安全', '2025-01-28 15:30:00', 1, 1, '2025-01-28 15:30:00', 1, '2025-01-28 15:30:00', 0), (3, '000000', 3, 10, '部门主管C', '1', '1', '项目合作意义重大,同意申请', '2025-01-25 10:00:00', 1, 1, '2025-01-25 10:00:00', 1, '2025-01-25 10:00:00', 0), (4, '000000', 3, 20, '分管领导D', '2', '1', '支持国际合作项目', '2025-01-25 14:00:00', 1, 1, '2025-01-25 14:00:00', 1, '2025-01-25 14:00:00', 0), (5, '000000', 3, 30, '校领导E', '3', '1', '批准该合作项目,期待成果', '2025-01-26 16:00:00', 1, 1, '2025-01-26 16:00:00', 1, '2025-01-26 16:00:00', 0); INSERT INTO `rs_overseas_record` VALUES (1, '000000', 3, 3, '王五', '机械工程学院', 'cooperation', '德国', '2025-05-01', '2025-06-30', 61, 58000.00, '1', '完成了智能制造设备的关键技术研究,发表论文2篇,申请专利1项', '通过与慕尼黑工业大学的深度合作,在智能制造领域取得了重要突破。完成了预定的研究目标,建立了长期合作关系。', '/uploads/certificates/cooperation_certificate_001.pdf', 1, 1, '2025-01-26 17:00:00', 1, '2025-07-01 10:00:00', 0);