migration_plat_meeting.sql 4.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. -- ============================================================================
  2. -- Migration: 部门会议管理功能 - 数据库变更
  3. -- Description: 部门会议登记、参会人员管理、会议工时生成
  4. -- 1. 新建 plat_meeting 会议主表
  5. -- 2. 新建 plat_meeting_attendee 参会人员表
  6. -- 3. 新建 plat_meeting_work_hour 会议工时记录表
  7. -- ============================================================================
  8. -- 1. 会议主表
  9. CREATE TABLE `plat_meeting` (
  10. `id` BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY COMMENT '主键',
  11. `meeting_title` VARCHAR(256) NOT NULL COMMENT '会议标题',
  12. `meeting_content` TEXT NULL COMMENT '会议内容/议题',
  13. `meeting_date` DATETIME NOT NULL COMMENT '会议开始时间',
  14. `meeting_date_end` DATETIME NULL COMMENT '会议结束时间',
  15. `duration` DECIMAL(8,2) NULL COMMENT '会议时长(小时)',
  16. `organizer_id` INT NOT NULL COMMENT '会议负责人ID',
  17. `organizer_name` VARCHAR(64) NOT NULL COMMENT '会议负责人姓名',
  18. `status` VARCHAR(10) NOT NULL DEFAULT '10' COMMENT '状态: 10=待开始, 20=进行中, 30=已结束',
  19. `dept_id` INT NULL COMMENT '所属部门ID',
  20. `remark` TEXT NULL COMMENT '备注',
  21. `created_by` INT NOT NULL COMMENT '创建者',
  22. `created_name` VARCHAR(64) NOT NULL COMMENT '创建人',
  23. `created_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  24. `updated_by` INT NULL COMMENT '更新者',
  25. `updated_name` VARCHAR(64) NULL COMMENT '更新人',
  26. `updated_time` DATETIME NULL COMMENT '更新时间',
  27. `deleted_time` DATETIME NULL COMMENT '删除时间',
  28. INDEX `idx_organizer_id` (`organizer_id`),
  29. INDEX `idx_dept_id` (`dept_id`),
  30. INDEX `idx_status` (`status`),
  31. INDEX `idx_meeting_date` (`meeting_date`)
  32. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='部门会议记录';
  33. -- 2. 参会人员表
  34. CREATE TABLE `plat_meeting_attendee` (
  35. `id` BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY COMMENT '主键',
  36. `meeting_id` INT NOT NULL COMMENT '会议ID',
  37. `user_id` INT NOT NULL COMMENT '参会人员ID',
  38. `user_name` VARCHAR(64) NOT NULL COMMENT '参会人员姓名',
  39. `source_type` VARCHAR(10) NOT NULL DEFAULT '10' COMMENT '添加来源: 10=手动选择, 20=按部门, 30=按角色',
  40. `source_id` INT NULL COMMENT '来源ID(部门ID/角色ID)',
  41. `work_hour_generated` TINYINT NOT NULL DEFAULT 0 COMMENT '是否已生成工时: 0=否, 1=是',
  42. `created_by` INT NOT NULL COMMENT '创建者',
  43. `created_name` VARCHAR(64) NOT NULL COMMENT '创建人',
  44. `created_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  45. `updated_by` INT NULL COMMENT '更新者',
  46. `updated_name` VARCHAR(64) NULL COMMENT '更新人',
  47. `updated_time` DATETIME NULL COMMENT '更新时间',
  48. `deleted_time` DATETIME NULL COMMENT '删除时间',
  49. INDEX `idx_meeting_id` (`meeting_id`),
  50. INDEX `idx_user_id` (`user_id`),
  51. UNIQUE KEY `uk_meeting_user` (`meeting_id`, `user_id`)
  52. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='会议参会人员';
  53. -- 3. 会议工时记录表
  54. CREATE TABLE `plat_meeting_work_hour` (
  55. `id` BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY COMMENT '主键',
  56. `meeting_id` INT NOT NULL COMMENT '关联会议ID',
  57. `attendee_id` INT NOT NULL COMMENT '参会记录ID(plat_meeting_attendee.id)',
  58. `user_id` INT NOT NULL COMMENT '人员ID',
  59. `user_name` VARCHAR(64) NOT NULL COMMENT '人员姓名',
  60. `work_date` DATETIME NOT NULL COMMENT '工时日期',
  61. `work_hour` DECIMAL(8,2) NOT NULL COMMENT '工时(小时)',
  62. `remark` TEXT NULL COMMENT '工作内容备注',
  63. `created_by` INT NOT NULL COMMENT '创建者',
  64. `created_name` VARCHAR(64) NOT NULL COMMENT '创建人',
  65. `created_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  66. `updated_by` INT NULL COMMENT '更新者',
  67. `updated_name` VARCHAR(64) NULL COMMENT '更新人',
  68. `updated_time` DATETIME NULL COMMENT '更新时间',
  69. `deleted_time` DATETIME NULL COMMENT '删除时间',
  70. INDEX `idx_meeting_id` (`meeting_id`),
  71. INDEX `idx_user_id` (`user_id`),
  72. INDEX `idx_work_date` (`work_date`)
  73. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='会议工时记录';