实施日期: 2025-01-27
实施人员: Cursor AI Assistant
功能描述: 实现奖学金批次支持关联多个奖学金类型
jcbt_scholarship_batch_type 关联表Wrappers.lambdaQueryWrapper() 方法不存在Wrappers.lambdaQuery()JcbtScholarshipBatchTypeServiceImpl.java 中的两处错误ruoyi-admin.jarweb/src/views/jcbt/scholarship/batch/index.vue当前使用模拟数据(待API完善后对接):
问题: 新增奖学金批次时,奖学金类型关联关系没有正确保存到数据库
原因: 在Service层使用了错误的数据源,应该使用BO对象的数据而不是转换后的实体对象
修复前:
// 错误:使用转换后的实体对象
if (add.getScholarshipTypeIds() != null && !add.getScholarshipTypeIds().isEmpty()) {
batchTypeService.saveBatchTypes(add.getId(), add.getScholarshipTypeIds(), tenantId);
}
修复后:
// 正确:使用原始BO对象的数据
if (bo.getScholarshipTypeIds() != null && !bo.getScholarshipTypeIds().isEmpty()) {
batchTypeService.saveBatchTypes(add.getId(), bo.getScholarshipTypeIds(), tenantId);
}
在handleUpdate函数中添加了专门的scholarshipTypeIds处理逻辑:
// 确保scholarshipTypeIds正确赋值
if (res.data.scholarshipTypeIds && Array.isArray(res.data.scholarshipTypeIds)) {
form.value.scholarshipTypeIds = [...res.data.scholarshipTypeIds];
} else {
form.value.scholarshipTypeIds = [];
}
在JcbtScholarshipBatchServiceImpl.queryById中:
// 查询关联的奖学金类型ID列表
List<Long> scholarshipTypeIds = batchTypeService.getScholarshipTypeIdsByBatchId(id);
vo.setScholarshipTypeIds(scholarshipTypeIds);
状态: ✅ 功能完全实现!前后端代码已部署,数据库字段已修复,新增和编辑奖学金批次时都能正确处理奖学金类型关联
Unknown column 'create_dept' in 'field list'JcbtScholarshipBatchType 实体类继承 BaseEntity,包含 createDept 字段,但数据库表 jcbt_scholarship_batch_type 缺少对应的 create_dept 字段fix_batch_type_create_dept.sql,为数据库表添加缺失字段create_dept BIGINT(20) 字段