|
@@ -336,12 +336,6 @@ public class StudentAttendanceServiceImpl extends BaseServiceImpl<Long, StudentA
|
|
|
dataList = courseScheduleStudentPaymentDao.findStudentByClassGroup(params);
|
|
|
//学生编号列表
|
|
|
List<Integer> userIds = dataList.stream().map(StudentAttendanceStatisticsResponse::getUserId).collect(Collectors.toList());
|
|
|
- //学生-科目名称关联集合
|
|
|
- List<Map<Integer, String>> byMusicGroupAndUsers = subjectDao.findByMusicGroupAndUsers(classGroup.getMusicGroupId(), userIds);
|
|
|
- Map<Integer, String> userSubjectNameMap = MapUtil.convertMybatisMap(byMusicGroupAndUsers);
|
|
|
- //学生-旷课次数关联集合
|
|
|
- List<Map<Integer, Integer>> continuousAbsenteeismTimesByUsersAndMusicGroup = musicGroupStudentFeeDao.findContinuousAbsenteeismTimesByUsersAndMusicGroup(classGroup.getMusicGroupId(), userIds);
|
|
|
- Map<Integer,Integer> continuousAbsenteeismTimesWithUser=MapUtil.convertIntegerMap(continuousAbsenteeismTimesByUsersAndMusicGroup);
|
|
|
//学生签到记录列表
|
|
|
List<StudentAttendanceResponse> studentAttendances = studentAttendanceDao.findByClassGroupAndUsers(queryInfo.getClassGroupId(), userIds);
|
|
|
//学生签到状态统计列表
|
|
@@ -353,25 +347,13 @@ public class StudentAttendanceServiceImpl extends BaseServiceImpl<Long, StudentA
|
|
|
Map<Integer, List<StudentAttendanceResponse>> studentAttendanceByUser = studentAttendances.stream().collect(Collectors.groupingBy(StudentAttendanceResponse::getUserId));
|
|
|
|
|
|
dataList.forEach(student->{
|
|
|
- //判断是否是连续签到
|
|
|
- Integer continuousAbsenteeismTimes = continuousAbsenteeismTimesWithUser.get(student.getUserId());
|
|
|
- if(Objects.nonNull(continuousAbsenteeismTimes)){
|
|
|
- if(continuousAbsenteeismTimes>=3){
|
|
|
- student.setTruant(true);
|
|
|
- }
|
|
|
- }
|
|
|
- //获取科目名
|
|
|
- String userSubjectName = userSubjectNameMap.get(student.getSubjectName());
|
|
|
- if(Objects.nonNull(userSubjectName)){
|
|
|
- student.setSubjectName(userSubjectName);
|
|
|
- }
|
|
|
//当前学生的签到状态统计
|
|
|
List<StudentAttendanceStatusCountDto> currentStudentAttendanceStatusCountDtos = studentAttendanceStatusCountDtosByUser.get(student.getUserId());
|
|
|
if(!CollectionUtils.isEmpty(currentStudentAttendanceStatusCountDtos)){
|
|
|
Map<StudentAttendanceStatusEnum, Integer> statusAndNumMap = currentStudentAttendanceStatusCountDtos.stream().collect(Collectors.toMap(StudentAttendanceStatusCountDto::getStatus, StudentAttendanceStatusCountDto::getNum));
|
|
|
student.setNormalDay(statusAndNumMap.get(StudentAttendanceStatusEnum.NORMAL));
|
|
|
- student.setNormalDay(statusAndNumMap.get(StudentAttendanceStatusEnum.TRUANT));
|
|
|
- student.setNormalDay(statusAndNumMap.get(StudentAttendanceStatusEnum.LEAVE));
|
|
|
+ student.setTruantDay(statusAndNumMap.get(StudentAttendanceStatusEnum.TRUANT));
|
|
|
+ student.setLeaveDay(statusAndNumMap.get(StudentAttendanceStatusEnum.LEAVE));
|
|
|
}
|
|
|
|
|
|
//当前学生签到记录
|