yonge 5 年之前
父節點
當前提交
d3ab1c160c
共有 1 個文件被更改,包括 10 次插入0 次删除
  1. 10 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentAttendanceServiceImpl.java

+ 10 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentAttendanceServiceImpl.java

@@ -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)){