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

7.3 KiB
Raw Blame History

信息采集批次实体类开发变更记录

变更时间: 2025-01-17 14:30:00
变更人员: Cursor AI
变更类型: 新增功能
变更模块: 信息采集批次管理

变更概述

为信息采集批次功能开发了完整的实体类架构,包括Domain实体、BO业务对象、VO视图对象,确保与数据库字段一致性。

详细变更内容

1. 新增Domain实体类

1.1 XgCollectionBatch(信息采集批次主实体)

  • 文件位置: backend/ruoyi-modules/ruoyi-xg-xx/src/main/java/org/dromara/xg/domain/XgCollectionBatch.java
  • 主要功能:
    • 继承TenantEntity,支持多租户
    • 包含批次基本信息:编码、名称、类型、学年、学期
    • 包含时间控制:发布时间、开始时间、结束时间、归档时间
    • 包含目标配置:目标学院、年级、专业(JSON格式)
    • 包含字段配置:必填字段、可选字段(JSON格式)
    • 包含权限配置:编辑权限、审核权限、查看权限(JSON格式)
    • 包含统计信息:总学生数、已提交数、已审核数、已驳回数、完成率
    • 包含功能配置:自动提醒、提醒频率、提交后允许修改
  • 字段验证: 使用@TableId、@JsonFormat、@TableLogic注解

1.2 XgCollectionBatchStudent(批次学生关联实体)

  • 文件位置: backend/ruoyi-modules/ruoyi-xg-xx/src/main/java/org/dromara/xg/domain/XgCollectionBatchStudent.java
  • 主要功能:
    • 继承BaseEntity,包含基础字段
    • 关联批次ID和学生ID
    • 记录学生基本信息:学号、姓名、学院、专业、班级、届别
    • 记录提交状态:是否可编辑、是否已提交、提交时间
    • 记录编辑历史:最后编辑时间、编辑次数
  • 字段验证: 使用@TableId(type = IdType.AUTO)自增主键

1.3 XgCollectionBatchLog(批次操作日志实体)

  • 文件位置: backend/ruoyi-modules/ruoyi-xg-xx/src/main/java/org/dromara/xg/domain/XgCollectionBatchLog.java
  • 主要功能:
    • 记录所有批次相关操作
    • 操作类型:CREATE、UPDATE、SUBMIT、ADMIN_MODIFY、BATCH_PUBLISH、BATCH_CLOSE
    • 记录操作前后数据变化(JSON格式)
    • 记录操作人信息:ID、姓名、类型(STUDENT、ADMIN、SYSTEM)
    • 记录操作环境:IP地址、用户代理

1.4 XgCollectionBatchPermission(批次权限配置实体)

  • 文件位置: backend/ruoyi-modules/ruoyi-xg-xx/src/main/java/org/dromara/xg/domain/XgCollectionBatchPermission.java
  • 主要功能:
    • 继承BaseEntity,支持基础字段
    • 权限类型:EDIT、VIEW、SUBMIT、ADMIN
    • 支持角色、用户、学院级别的权限配置
    • 包含授权时间和过期时间

1.5 XgCollectionBatchStatistics(批次统计实体)

  • 文件位置: backend/ruoyi-modules/ruoyi-xg-xx/src/main/java/org/dromara/xg/domain/XgCollectionBatchStatistics.java
  • 主要功能:
    • 继承BaseEntity,支持基础字段
    • 统计维度:总体、学院、专业、班级、届别
    • 统计指标:总学生数、已提交学生数、待提交学生数、完成率
    • 支持按不同维度进行统计分析

1.6 XgBatchScheduledTask(批次定时任务实体)

  • 文件位置: backend/ruoyi-modules/ruoyi-xg-xx/src/main/java/org/dromara/xg/domain/XgBatchScheduledTask.java
  • 主要功能:
    • 继承BaseEntity,支持基础字段
    • 任务类型:REMIND_START、REMIND_END、AUTO_CLOSE
    • 任务状态:PENDING、EXECUTED、FAILED
    • 记录执行时间和错误信息

2. 新增BO业务对象类

2.1 XgCollectionBatchBo(信息采集批次业务对象)

  • 文件位置: backend/ruoyi-modules/ruoyi-xg-xx/src/main/java/org/dromara/xg/domain/bo/XgCollectionBatchBo.java
  • 主要功能:
    • 继承BaseEntity,支持基础字段
    • 使用@AutoMapper自动映射到Domain实体
    • 包含完整的参数验证:@NotNull、@NotBlank、@Size、@Pattern等
    • 包含查询条件字段:状态列表、学年列表、时间范围查询等
    • 重要: 包含VO类基础字段(createBy、createTime、updateBy、updateTime)

2.2 XgCollectionBatchStudentBo(批次学生关联业务对象)

  • 文件位置: backend/ruoyi-modules/ruoyi-xg-xx/src/main/java/org/dromara/xg/domain/bo/XgCollectionBatchStudentBo.java
  • 主要功能:
    • 继承BaseEntity,支持基础字段
    • 使用@AutoMapper自动映射到Domain实体
    • 包含完整的参数验证
    • 包含查询条件字段:批次ID列表、学生ID列表、学院ID列表等
    • 重要: 包含VO类基础字段(createBy、createTime、updateBy、updateTime)

3. 新增VO视图对象类

3.1 XgCollectionBatchVo(信息采集批次视图对象)

  • 文件位置: backend/ruoyi-modules/ruoyi-xg-xx/src/main/java/org/dromara/xg/domain/vo/XgCollectionBatchVo.java
  • 主要功能:
    • 使用@AutoMapper自动映射到Domain实体
    • 使用@ExcelIgnoreUnannotated和@ExcelProperty支持Excel导出
    • 使用@ExcelDictFormat进行字典转换
    • 重要: 包含VO类基础字段(createBy、createTime、updateBy、updateTime)

3.2 XgCollectionBatchStudentVo(批次学生关联视图对象)

  • 文件位置: backend/ruoyi-modules/ruoyi-xg-xx/src/main/java/org/dromara/xg/domain/vo/XgCollectionBatchStudentVo.java
  • 主要功能:
    • 使用@AutoMapper自动映射到Domain实体
    • 支持Excel导出功能
    • 重要: 包含VO类基础字段(createBy、createTime、updateBy、updateTime)

技术规范遵循

1. 数据库字段一致性

  • ✅ 所有实体类字段与数据库表字段完全一致
  • ✅ 使用正确的字段类型和长度限制
  • ✅ 正确配置主键策略:雪花ID和自增ID

2. 项目架构规范

  • ✅ 参考学生信息管理功能的架构
  • ✅ 所有代码放在ruoyi-modules/ruoyi-xg-xx/目录下
  • ✅ 遵循Domain-BO-VO三层架构

3. 强制性规范遵循

  • ✅ VO类基础字段规范: 所有BO和VO类包含四个基础字段(createBy、createTime、updateBy、updateTime)
  • ✅ 多租户支持: 主实体继承TenantEntity,关联实体包含tenantId字段
  • ✅ 逻辑删除: 使用@TableLogic注解,deleted字段0-存在,1-删除
  • ✅ 时间格式化: 统一使用@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")

4. 参数验证规范

  • ✅ 使用Bean Validation注解进行参数校验
  • ✅ 区分AddGroup和EditGroup验证组
  • ✅ 包含合理的字段长度和格式验证

5. 自动映射配置

  • ✅ 使用@AutoMapper注解实现BO/VO与Domain实体的自动映射
  • ✅ 配置reverseConvertGenerate = false避免反向转换

下一步计划

  1. Mapper接口开发: 创建数据访问层接口
  2. Service层开发: 实现业务逻辑层
  3. Controller层开发: 实现API接口层
  4. XML映射文件: 创建MyBatis映射文件
  5. 单元测试: 编写测试用例

验证结果

  • ✅ 所有实体类编译通过
  • ✅ 字段映射与数据库表一致
  • ✅ 注解配置正确
  • ✅ 包结构符合项目规范
  • ✅ 遵循强制性开发规范

备注

本次开发严格按照项目规范进行,特别注意了以下几点:

  1. 所有VO类都包含了四个基础字段,避免MyBatis映射错误
  2. 时间字段统一使用@JsonFormat格式化
  3. 参考了学生信息管理功能的实现方式
  4. 确保了数据库字段的完全一致性