create-missing-tables.sql 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  1. -- ==========================================
  2. -- 创建信息采集批次缺失的关联表
  3. -- 版本:V1.0.0
  4. -- 创建时间:2025-01-17
  5. -- ==========================================
  6. USE hzdyjs_xg;
  7. -- 1. 创建批次学生关联表
  8. CREATE TABLE IF NOT EXISTS xg_collection_batch_student (
  9. id BIGINT PRIMARY KEY AUTO_INCREMENT,
  10. batch_id BIGINT NOT NULL COMMENT '批次ID',
  11. student_id BIGINT NOT NULL COMMENT '学生ID',
  12. student_code VARCHAR(50) NOT NULL COMMENT '学号',
  13. student_name VARCHAR(100) NOT NULL COMMENT '学生姓名',
  14. college_id BIGINT COMMENT '学院ID',
  15. college_name VARCHAR(100) COMMENT '学院名称',
  16. major_id BIGINT COMMENT '专业ID',
  17. major_name VARCHAR(100) COMMENT '专业名称',
  18. class_id BIGINT COMMENT '班级ID',
  19. class_name VARCHAR(100) COMMENT '班级名称',
  20. grade VARCHAR(50) COMMENT '届别',
  21. can_edit TINYINT DEFAULT 1 COMMENT '是否可编辑',
  22. has_submitted TINYINT DEFAULT 0 COMMENT '是否已提交',
  23. submit_time DATETIME COMMENT '提交时间',
  24. last_edit_time DATETIME COMMENT '最后编辑时间',
  25. edit_count INT DEFAULT 0 COMMENT '编辑次数',
  26. create_time DATETIME DEFAULT CURRENT_TIMESTAMP,
  27. update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  28. create_by BIGINT COMMENT '创建者',
  29. update_by BIGINT COMMENT '更新者',
  30. deleted TINYINT DEFAULT 0 COMMENT '删除标志',
  31. tenant_id VARCHAR(20) DEFAULT '000000' COMMENT '租户ID',
  32. INDEX idx_batch_id (batch_id),
  33. INDEX idx_student_id (student_id),
  34. INDEX idx_batch_student (batch_id, student_id),
  35. INDEX idx_college_id (college_id),
  36. INDEX idx_grade (grade),
  37. INDEX idx_create_time (create_time),
  38. INDEX idx_has_submitted (has_submitted),
  39. INDEX idx_tenant_id (tenant_id)
  40. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='信息采集批次学生关联表';
  41. -- 2. 创建批次操作日志表
  42. CREATE TABLE IF NOT EXISTS xg_collection_batch_log (
  43. id BIGINT PRIMARY KEY AUTO_INCREMENT,
  44. batch_id BIGINT NOT NULL COMMENT '批次ID',
  45. student_id BIGINT COMMENT '学生ID',
  46. operation_type VARCHAR(50) NOT NULL COMMENT '操作类型(CREATE,UPDATE,SUBMIT,ADMIN_MODIFY,BATCH_PUBLISH,BATCH_CLOSE)',
  47. operation_desc TEXT COMMENT '操作描述',
  48. old_data TEXT COMMENT '修改前数据(JSON格式)',
  49. new_data TEXT COMMENT '修改后数据(JSON格式)',
  50. operator_id BIGINT COMMENT '操作人ID',
  51. operator_name VARCHAR(100) COMMENT '操作人姓名',
  52. operator_type VARCHAR(50) COMMENT '操作人类型(STUDENT,ADMIN,SYSTEM)',
  53. ip_address VARCHAR(50) COMMENT 'IP地址',
  54. user_agent TEXT COMMENT '用户代理',
  55. create_time DATETIME DEFAULT CURRENT_TIMESTAMP,
  56. tenant_id VARCHAR(20) DEFAULT '000000' COMMENT '租户ID',
  57. INDEX idx_batch_id (batch_id),
  58. INDEX idx_student_id (student_id),
  59. INDEX idx_operation_type (operation_type),
  60. INDEX idx_create_time (create_time),
  61. INDEX idx_operator_id (operator_id),
  62. INDEX idx_tenant_id (tenant_id)
  63. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='信息采集批次操作日志表';
  64. -- 3. 创建批次权限配置表
  65. CREATE TABLE IF NOT EXISTS xg_collection_batch_permission (
  66. id BIGINT PRIMARY KEY AUTO_INCREMENT,
  67. batch_id BIGINT NOT NULL COMMENT '批次ID',
  68. permission_type VARCHAR(50) NOT NULL COMMENT '权限类型(EDIT,VIEW,SUBMIT,ADMIN)',
  69. role_id BIGINT COMMENT '角色ID',
  70. user_id BIGINT COMMENT '用户ID',
  71. college_id BIGINT COMMENT '学院ID',
  72. is_granted TINYINT DEFAULT 1 COMMENT '是否授权',
  73. grant_time DATETIME COMMENT '授权时间',
  74. expire_time DATETIME COMMENT '过期时间',
  75. create_time DATETIME DEFAULT CURRENT_TIMESTAMP,
  76. update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  77. create_by BIGINT COMMENT '创建者',
  78. update_by BIGINT COMMENT '更新者',
  79. deleted TINYINT DEFAULT 0 COMMENT '删除标志',
  80. tenant_id VARCHAR(20) DEFAULT '000000' COMMENT '租户ID',
  81. INDEX idx_batch_id (batch_id),
  82. INDEX idx_permission_type (permission_type),
  83. INDEX idx_role_id (role_id),
  84. INDEX idx_user_id (user_id),
  85. INDEX idx_college_id (college_id),
  86. INDEX idx_tenant_id (tenant_id)
  87. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='信息采集批次权限配置表';
  88. -- 4. 创建批次统计表
  89. CREATE TABLE IF NOT EXISTS xg_collection_batch_statistics (
  90. id BIGINT PRIMARY KEY AUTO_INCREMENT,
  91. batch_id BIGINT NOT NULL COMMENT '批次ID',
  92. total_students INT DEFAULT 0 COMMENT '总学生数',
  93. submitted_students INT DEFAULT 0 COMMENT '已提交学生数',
  94. pending_students INT DEFAULT 0 COMMENT '待提交学生数',
  95. completion_rate DECIMAL(5,2) DEFAULT 0.00 COMMENT '完成率',
  96. college_id BIGINT COMMENT '学院ID(按学院统计时使用)',
  97. college_name VARCHAR(100) COMMENT '学院名称',
  98. major_id BIGINT COMMENT '专业ID(按专业统计时使用)',
  99. major_name VARCHAR(100) COMMENT '专业名称',
  100. class_id BIGINT COMMENT '班级ID(按班级统计时使用)',
  101. class_name VARCHAR(100) COMMENT '班级名称',
  102. grade VARCHAR(50) COMMENT '届别',
  103. statistics_type VARCHAR(50) DEFAULT 'TOTAL' COMMENT '统计类型(TOTAL,COLLEGE,MAJOR,CLASS,GRADE)',
  104. last_updated DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  105. create_time DATETIME DEFAULT CURRENT_TIMESTAMP,
  106. update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  107. tenant_id VARCHAR(20) DEFAULT '000000' COMMENT '租户ID',
  108. INDEX idx_batch_id (batch_id),
  109. INDEX idx_college_id (college_id),
  110. INDEX idx_major_id (major_id),
  111. INDEX idx_class_id (class_id),
  112. INDEX idx_grade (grade),
  113. INDEX idx_statistics_type (statistics_type),
  114. INDEX idx_tenant_id (tenant_id)
  115. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='信息采集批次统计表';
  116. -- 5. 创建批次定时任务表
  117. CREATE TABLE IF NOT EXISTS xg_batch_scheduled_task (
  118. id BIGINT PRIMARY KEY AUTO_INCREMENT,
  119. batch_id BIGINT NOT NULL COMMENT '批次ID',
  120. task_type VARCHAR(50) NOT NULL COMMENT '任务类型(REMIND_START,REMIND_END,AUTO_CLOSE)',
  121. task_time DATETIME NOT NULL COMMENT '执行时间',
  122. task_status VARCHAR(20) DEFAULT 'PENDING' COMMENT '任务状态(PENDING,EXECUTED,FAILED)',
  123. execute_time DATETIME COMMENT '实际执行时间',
  124. error_message TEXT COMMENT '错误信息',
  125. create_time DATETIME DEFAULT CURRENT_TIMESTAMP,
  126. update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  127. tenant_id VARCHAR(20) DEFAULT '000000' COMMENT '租户ID',
  128. INDEX idx_batch_id (batch_id),
  129. INDEX idx_task_type (task_type),
  130. INDEX idx_task_time (task_time),
  131. INDEX idx_task_status (task_status),
  132. INDEX idx_tenant_id (tenant_id)
  133. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='信息采集批次定时任务表';
  134. -- 6. 插入一些测试数据
  135. INSERT INTO xg_collection_batch (id, tenant_id, batch_code, batch_name, batch_type, academic_year, semester, batch_status, start_time, end_time, description, create_by, create_time, update_by, update_time, deleted) VALUES
  136. (1745001000000000001, '000000', 'BATCH_2024_1', '2024-2025学年第一学期信息采集', 'annual', '2024-2025', '1', '2', '2024-09-01 00:00:00', '2024-09-30 23:59:59', '2024-2025学年第一学期学生信息采集工作', 1, NOW(), 1, NOW(), 0),
  137. (1745001000000000002, '000000', 'BATCH_2024_2', '2024-2025学年第二学期信息采集', 'annual', '2024-2025', '2', '1', '2025-02-15 00:00:00', '2025-03-15 23:59:59', '2024-2025学年第二学期学生信息采集工作', 1, NOW(), 1, NOW(), 0)
  138. ON DUPLICATE KEY UPDATE
  139. batch_name = VALUES(batch_name),
  140. description = VALUES(description),
  141. update_time = NOW();
  142. SELECT 'Database tables created successfully!' as message;