|
@@ -336,6 +336,9 @@ 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, Integer>> continuousAbsenteeismTimesByUsersAndMusicGroup = musicGroupStudentFeeDao.findContinuousAbsenteeismTimesByUsersAndMusicGroup(classGroup.getMusicGroupId(), userIds);
|
|
|
+ Map<Integer,Integer> continuousAbsenteeismTimesWithUser=MapUtil.convertIntegerMap(continuousAbsenteeismTimesByUsersAndMusicGroup);
|
|
|
//学生签到记录列表
|
|
|
List<StudentAttendanceResponse> studentAttendances = studentAttendanceDao.findByClassGroupAndUsers(queryInfo.getClassGroupId(), userIds);
|
|
|
//学生签到状态统计列表
|
|
@@ -347,6 +350,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);
|
|
|
+ }
|
|
|
+ }
|
|
|
//当前学生的签到状态统计
|
|
|
List<StudentAttendanceStatusCountDto> currentStudentAttendanceStatusCountDtos = studentAttendanceStatusCountDtosByUser.get(student.getUserId());
|
|
|
if(!CollectionUtils.isEmpty(currentStudentAttendanceStatusCountDtos)){
|