diff --git a/src/main/java/com/yunhai/bschclassmanage/service/impl/student/SchStudentLogService.java b/src/main/java/com/yunhai/bschclassmanage/service/impl/student/SchStudentLogService.java index e3b753f..11deb7d 100644 --- a/src/main/java/com/yunhai/bschclassmanage/service/impl/student/SchStudentLogService.java +++ b/src/main/java/com/yunhai/bschclassmanage/service/impl/student/SchStudentLogService.java @@ -305,16 +305,19 @@ public class SchStudentLogService { public void setTransferInLog(UserContext.UserInfo user, List toUpdateStudents, Integer targetSchId, Integer targetClassId) { try { - String schName = comSchTreeService.getSchoolName(user.getSchId()); + String schName = comSchTreeService.getSchoolName(targetSchId); LocalDateTime now = LocalDateTime.now(); - // 1. 获取目标班级名称(本校) + // 1. 获取目标班级名称(本校;按班级组ID查,兼容K12/职教,重复行取第一条不抛错) String targetClassName = "未知班级"; - List targetClassList = schClassService.searcBaseSchClass( - targetSchId, null, null, targetClassId); - if (!targetClassList.isEmpty()) { - BaseSchClassVO vo = targetClassList.get(0); - targetClassName = vo.getGradeName() + vo.getName(); + if (targetSchId != null && targetClassId != null) { + List targetClasses = schClassRepository.findBySchIdAndClassIds( + targetSchId, Collections.singletonList(targetClassId)); + if (!targetClasses.isEmpty()) { + SchClass targetClass = targetClasses.get(0); + Map targetGradeMap = baseSchsystemGradeService.getGradeNameMap(targetSchId, null, null); + targetClassName = targetGradeMap.getOrDefault(targetClass.getGradeId(), "未知年级") + targetClass.getName(); + } } // 2. 循环每个学生,生成独立日志 @@ -327,12 +330,14 @@ public class SchStudentLogService { String originalSchName = comSchTreeService.getSchoolName(originalSchId); Map gradeMap = baseSchsystemGradeService.getGradeNameMap(originalSchId, null, null); - // 查询原班级名称(可能跨校) + // 查询原班级名称(可能跨校;按班级组ID查,重复行取第一条不抛错) String originalClassName = "未知班级"; if (originalSchId != null && originalClassId != null) { - SchClass originalClass = schClassRepository.findByClassIdAndSchId(originalClassId, originalSchId).orElse(null); - if (originalClass != null) { - originalClassName = gradeMap.get(originalClass.getGradeId()) + originalClass.getName(); + List originalClasses = schClassRepository.findBySchIdAndClassIds( + originalSchId, Collections.singletonList(originalClassId)); + if (!originalClasses.isEmpty()) { + SchClass originalClass = originalClasses.get(0); + originalClassName = gradeMap.getOrDefault(originalClass.getGradeId(), "未知年级") + originalClass.getName(); } }