7.3 KiB
7.3 KiB
信息采集批次实体类开发变更记录
变更时间: 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避免反向转换
下一步计划
- Mapper接口开发: 创建数据访问层接口
- Service层开发: 实现业务逻辑层
- Controller层开发: 实现API接口层
- XML映射文件: 创建MyBatis映射文件
- 单元测试: 编写测试用例
验证结果
- ✅ 所有实体类编译通过
- ✅ 字段映射与数据库表一致
- ✅ 注解配置正确
- ✅ 包结构符合项目规范
- ✅ 遵循强制性开发规范
备注
本次开发严格按照项目规范进行,特别注意了以下几点:
- 所有VO类都包含了四个基础字段,避免MyBatis映射错误
- 时间字段统一使用@JsonFormat格式化
- 参考了学生信息管理功能的实现方式
- 确保了数据库字段的完全一致性