Files
hzdyjs/docs/变更管理/code-adjust-record-2025-01-17-collection-batch-tables.md
T

4.4 KiB

信息采集批次数据表创建记录

📋 变更信息

  • 变更时间: 2025-01-17 11:00:00
  • 变更类型: 数据表创建
  • 变更人员: AI Assistant
  • 变更原因: 信息采集批次功能开发需要完整的数据表支持

🎯 变更目标

为信息采集批次功能创建完整的数据表结构,支持:

  • 批次管理和配置
  • 学生信息采集过程跟踪
  • 操作日志记录
  • 权限控制
  • 统计分析
  • 定时任务管理

📊 变更内容

✅ 已存在的表

  • xg_collection_batch - 信息采集批次主表 ✅
  • xg_audit_record - 审核记录表 ✅

🆕 新创建的表

1. xg_collection_batch_student - 批次学生关联表

功能: 记录每个批次中包含的学生信息和提交状态 关键字段:

  • batch_id - 批次ID
  • student_id - 学生ID
  • student_code - 学号
  • has_submitted - 是否已提交
  • submit_time - 提交时间
  • can_edit - 是否可编辑

2. xg_collection_batch_log - 批次操作日志表

功能: 记录所有批次相关的操作日志 关键字段:

  • batch_id - 批次ID
  • operation_type - 操作类型(CREATE,UPDATE,SUBMIT等)
  • operator_id - 操作人ID
  • old_data - 修改前数据(JSON)
  • new_data - 修改后数据(JSON)

3. xg_collection_batch_permission - 批次权限配置表

功能: 配置不同用户对批次的操作权限 关键字段:

  • batch_id - 批次ID
  • permission_type - 权限类型(EDIT,VIEW,SUBMIT,ADMIN)
  • role_id - 角色ID
  • user_id - 用户ID
  • college_id - 学院ID

4. xg_collection_batch_statistics - 批次统计表

功能: 存储批次的统计信息 关键字段:

  • batch_id - 批次ID
  • total_students - 总学生数
  • submitted_students - 已提交学生数
  • completion_rate - 完成率
  • statistics_type - 统计类型(TOTAL,COLLEGE,MAJOR,CLASS)

5. xg_batch_scheduled_task - 批次定时任务表

功能: 管理批次相关的定时任务 关键字段:

  • batch_id - 批次ID
  • task_type - 任务类型(REMIND_START,REMIND_END,AUTO_CLOSE)
  • task_time - 执行时间
  • task_status - 任务状态(PENDING,EXECUTED,FAILED)

🔧 技术实现

数据库连接信息

  • 主机: 47.99.164.66:3306
  • 数据库: hzdyjs_xg
  • 用户: root
  • 字符集: utf8mb4
  • 引擎: InnoDB

索引设计

每个表都创建了合适的索引:

  • 主键索引 (id)
  • 批次ID索引 (batch_id)
  • 租户ID索引 (tenant_id)
  • 业务相关索引 (如student_id, operation_type等)

约束和规范

  • 所有表都支持逻辑删除 (deleted字段)
  • 所有表都支持多租户 (tenant_id字段)
  • 统一的创建时间和更新时间字段
  • 统一的创建者和更新者字段

📝 测试数据

插入了2条测试批次数据:

  1. BATCH_2024_1 - 2024-2025学年第一学期信息采集 (状态:2-进行中)
  2. BATCH_2024_2 - 2024-2025学年第二学期信息采集 (状态:1-草稿)

✅ 验证结果

表创建验证

-- 验证所有表都创建成功
SHOW TABLES LIKE 'xg_collection%';
SHOW TABLES LIKE 'xg_batch%';

结果: 6个表全部创建成功 ✅

  • xg_collection_batch
  • xg_collection_batch_student
  • xg_collection_batch_log
  • xg_collection_batch_permission
  • xg_collection_batch_statistics
  • xg_batch_scheduled_task

数据插入验证

SELECT id, batch_code, batch_name, batch_status FROM xg_collection_batch;

结果: 测试数据插入成功 ✅

🚀 下一步计划

1. 实体类开发

  • 创建 XgCollectionBatch 实体类
  • 创建 XgCollectionBatchStudent 实体类
  • 创建其他相关实体类

2. 数据访问层

  • 创建 Mapper 接口
  • 实现 XML 映射文件
  • 添加自定义查询方法

3. 业务服务层

  • 创建 Service 接口
  • 实现业务逻辑
  • 添加事务管理

4. 控制器层

  • 创建 Controller
  • 实现 REST API
  • 添加权限控制

5. 前端页面

  • 创建 Vue 页面
  • 实现 API 调用
  • 添加用户界面

📄 相关文件

  • SQL脚本: backend/script/sql/create-missing-tables.sql
  • 设计文档: docs/设计文档/database/xg-collection-batch-redesign.sql
  • 变更记录: docs/变更管理/code-adjust-record-2025-01-17-collection-batch-tables.md

🎉 总结

信息采集批次功能的数据表已经完整创建,为后续的实体类开发和业务逻辑实现奠定了坚实的基础。所有表都遵循了项目的数据库设计规范,支持多租户和逻辑删除,具备良好的扩展性和维护性。