This commit is contained in:
2026-08-13 16:53:39 +08:00
parent 5210ad34f3
commit ed48da0a78
27 changed files with 392 additions and 313 deletions
@@ -171,11 +171,16 @@ public class SchTeacherInfoService {
}
}
// 校验班主任/副班主任
List<Integer> teacherIds = teachers.stream().map(SchTeacher::getId).collect(Collectors.toList());
long classCount = schClassRepository.countByFirstTeacherIdInOrSecondTeacherIdInAndSchId(teacherIds, schId);
if (classCount > 0) {
throw new DException("选中的教师中有 " + classCount + " 个班级的班主任/副班主任,请先更换");
// 校验班主任/副班主任(SchClass.firstTeacherId/secondTeacherId 存的是 teaId)
List<Integer> teacherTeaIds = teachers.stream()
.map(SchTeacher::getTeaId)
.filter(Objects::nonNull)
.collect(Collectors.toList());
if (!teacherTeaIds.isEmpty()) {
long classCount = schClassRepository.countByFirstTeacherIdInOrSecondTeacherIdInAndSchId(teacherTeaIds, schId);
if (classCount > 0) {
throw new DException("选中的教师中有 " + classCount + " 个班级的班主任/副班主任,请先更换");
}
}
// 删除关联组关系(先异步日志,再删除)
@@ -84,11 +84,16 @@ public class SchTeacherRelationService {
}
}
// 3. 校验班主任/副班主任
List<Integer> teacherIds = teachers.stream().map(SchTeacher::getId).collect(Collectors.toList());
long classCount = schClassRepository.countByFirstTeacherIdInOrSecondTeacherIdInAndSchId(teacherIds, schId);
if (classCount > 0) {
throw new DException("选中的教师中有 " + classCount + " 个班级的班主任/副班主任,请先更换");
// 3. 校验班主任/副班主任(SchClass.firstTeacherId/secondTeacherId 存的是 teaId)
List<Integer> teacherTeaIds = teachers.stream()
.map(SchTeacher::getTeaId)
.filter(Objects::nonNull)
.collect(Collectors.toList());
if (!teacherTeaIds.isEmpty()) {
long classCount = schClassRepository.countByFirstTeacherIdInOrSecondTeacherIdInAndSchId(teacherTeaIds, schId);
if (classCount > 0) {
throw new DException("选中的教师中有 " + classCount + " 个班级的班主任/副班主任,请先更换");
}
}
// 4. 更新状态为转出