| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- -- ============================================================================
- -- Migration: 部门会议管理功能 - 数据库变更
- -- Description: 部门会议登记、参会人员管理、会议工时生成
- -- 1. 新建 plat_meeting 会议主表
- -- 2. 新建 plat_meeting_attendee 参会人员表
- -- 3. 新建 plat_meeting_work_hour 会议工时记录表
- -- ============================================================================
- -- 1. 会议主表
- CREATE TABLE `plat_meeting` (
- `id` BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY COMMENT '主键',
- `meeting_title` VARCHAR(256) NOT NULL COMMENT '会议标题',
- `meeting_content` TEXT NULL COMMENT '会议内容/议题',
- `meeting_date` DATETIME NOT NULL COMMENT '会议开始时间',
- `meeting_date_end` DATETIME NULL COMMENT '会议结束时间',
- `duration` DECIMAL(8,2) NULL COMMENT '会议时长(小时)',
- `organizer_id` INT NOT NULL COMMENT '会议负责人ID',
- `organizer_name` VARCHAR(64) NOT NULL COMMENT '会议负责人姓名',
- `status` VARCHAR(10) NOT NULL DEFAULT '10' COMMENT '状态: 10=待开始, 20=进行中, 30=已结束',
- `dept_id` INT NULL COMMENT '所属部门ID',
- `remark` TEXT NULL COMMENT '备注',
- `created_by` INT NOT NULL COMMENT '创建者',
- `created_name` VARCHAR(64) NOT NULL COMMENT '创建人',
- `created_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
- `updated_by` INT NULL COMMENT '更新者',
- `updated_name` VARCHAR(64) NULL COMMENT '更新人',
- `updated_time` DATETIME NULL COMMENT '更新时间',
- `deleted_time` DATETIME NULL COMMENT '删除时间',
- INDEX `idx_organizer_id` (`organizer_id`),
- INDEX `idx_dept_id` (`dept_id`),
- INDEX `idx_status` (`status`),
- INDEX `idx_meeting_date` (`meeting_date`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='部门会议记录';
- -- 2. 参会人员表
- CREATE TABLE `plat_meeting_attendee` (
- `id` BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY COMMENT '主键',
- `meeting_id` INT NOT NULL COMMENT '会议ID',
- `user_id` INT NOT NULL COMMENT '参会人员ID',
- `user_name` VARCHAR(64) NOT NULL COMMENT '参会人员姓名',
- `source_type` VARCHAR(10) NOT NULL DEFAULT '10' COMMENT '添加来源: 10=手动选择, 20=按部门, 30=按角色',
- `source_id` INT NULL COMMENT '来源ID(部门ID/角色ID)',
- `work_hour_generated` TINYINT NOT NULL DEFAULT 0 COMMENT '是否已生成工时: 0=否, 1=是',
- `created_by` INT NOT NULL COMMENT '创建者',
- `created_name` VARCHAR(64) NOT NULL COMMENT '创建人',
- `created_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
- `updated_by` INT NULL COMMENT '更新者',
- `updated_name` VARCHAR(64) NULL COMMENT '更新人',
- `updated_time` DATETIME NULL COMMENT '更新时间',
- `deleted_time` DATETIME NULL COMMENT '删除时间',
- INDEX `idx_meeting_id` (`meeting_id`),
- INDEX `idx_user_id` (`user_id`),
- UNIQUE KEY `uk_meeting_user` (`meeting_id`, `user_id`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='会议参会人员';
- -- 3. 会议工时记录表
- CREATE TABLE `plat_meeting_work_hour` (
- `id` BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY COMMENT '主键',
- `meeting_id` INT NOT NULL COMMENT '关联会议ID',
- `attendee_id` INT NOT NULL COMMENT '参会记录ID(plat_meeting_attendee.id)',
- `user_id` INT NOT NULL COMMENT '人员ID',
- `user_name` VARCHAR(64) NOT NULL COMMENT '人员姓名',
- `work_date` DATETIME NOT NULL COMMENT '工时日期',
- `work_hour` DECIMAL(8,2) NOT NULL COMMENT '工时(小时)',
- `remark` TEXT NULL COMMENT '工作内容备注',
- `created_by` INT NOT NULL COMMENT '创建者',
- `created_name` VARCHAR(64) NOT NULL COMMENT '创建人',
- `created_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
- `updated_by` INT NULL COMMENT '更新者',
- `updated_name` VARCHAR(64) NULL COMMENT '更新人',
- `updated_time` DATETIME NULL COMMENT '更新时间',
- `deleted_time` DATETIME NULL COMMENT '删除时间',
- INDEX `idx_meeting_id` (`meeting_id`),
- INDEX `idx_user_id` (`user_id`),
- INDEX `idx_work_date` (`work_date`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='会议工时记录';
|