|
|
|
|
@ -197,7 +197,8 @@ public class TrainingTaskServiceImpl implements TrainingTaskService {
|
|
|
|
|
}
|
|
|
|
|
sort++;
|
|
|
|
|
}
|
|
|
|
|
ensureAllTeachingClassTasks(trainingTaskMapper.selectList(null, null, null), operatorId);
|
|
|
|
|
// 班级任务在对应班级首次读取时按需初始化。不要在学生读取单个任务时遍历所有教学班,
|
|
|
|
|
// 否则班级数量增加会把每次页面切换的查询放大为全量写入检查。
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
@ -475,25 +476,6 @@ public class TrainingTaskServiceImpl implements TrainingTaskService {
|
|
|
|
|
return new ArrayList<>(existingByKey.values());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void ensureAllTeachingClassTasks(List<TrainingTask> defaults, String operatorId) {
|
|
|
|
|
if (schoolClassMapper == null || trainingTaskClassConfigMapper == null) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
SchoolClassExample example = new SchoolClassExample();
|
|
|
|
|
example.createCriteria().andClassTypeEqualTo("TEACHING");
|
|
|
|
|
List<SchoolClass> teachingClasses = schoolClassMapper.selectByExample(example);
|
|
|
|
|
if (teachingClasses == null || teachingClasses.isEmpty()) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
for (SchoolClass teachingClass : teachingClasses) {
|
|
|
|
|
if (teachingClass == null || StringUtils.isBlank(teachingClass.getSchoolClassId())) {
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
String creator = StringUtils.defaultIfBlank(operatorId, teachingClass.getCreatedBy());
|
|
|
|
|
ensureClassTasksInitialized(teachingClass.getSchoolClassId(), defaults, creator);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void synchronizeClassTaskDefaults(TrainingTask previousTask, TrainingTask updatedTask) {
|
|
|
|
|
if (schoolClassMapper == null || trainingTaskClassConfigMapper == null
|
|
|
|
|
|| previousTask == null || updatedTask == null) {
|
|
|
|
|
|