158 lines
7.3 KiB
Markdown
158 lines
7.3 KiB
Markdown
# 信息采集批次实体类开发变更记录
|
||
|
||
**变更时间**: 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. 确保了数据库字段的完全一致性 |