|
@@ -526,38 +526,39 @@ public class StudentAttendanceServiceImpl extends BaseServiceImpl<Long, StudentA
|
|
|
String courseClassDate;
|
|
|
String courseStartDateTime;
|
|
|
String courseEndDateTime;
|
|
|
- for (CourseSchedule e:courseSchedules) {
|
|
|
- //获取当前课程的单节课时长
|
|
|
-// int signClassMinutes = courseScheduleDao.getSingleClassMinutes(e.getId());
|
|
|
-// totalMinutes -= signClassMinutes;
|
|
|
- //补充签到签退时间
|
|
|
- courseClassDate = DateUtil.format(e.getClassDate(), DateUtil.DEFAULT_PATTERN);
|
|
|
- courseStartDateTime = DateUtil.format(e.getStartClassTime(), DateUtil.EXPANDED_TIME_FORMAT);
|
|
|
- courseEndDateTime = DateUtil.format(e.getEndClassTime(), DateUtil.EXPANDED_TIME_FORMAT);
|
|
|
+ for (int i = 0; i < courseSchedules.size(); i++) {
|
|
|
+ courseClassDate = DateUtil.format(courseSchedules.get(i).getClassDate(), DateUtil.DEFAULT_PATTERN);
|
|
|
+ courseStartDateTime = DateUtil.format(courseSchedules.get(i).getStartClassTime(), DateUtil.EXPANDED_TIME_FORMAT);
|
|
|
+ courseEndDateTime = DateUtil.format(courseSchedules.get(i).getEndClassTime(), DateUtil.EXPANDED_TIME_FORMAT);
|
|
|
Date startDateTime = DateUtil.stringToDate(courseClassDate + " " + courseStartDateTime, DateUtil.EXPANDED_DATE_TIME_FORMAT);
|
|
|
Date endDateTime = DateUtil.stringToDate(courseClassDate + " " + courseEndDateTime, DateUtil.EXPANDED_DATE_TIME_FORMAT);
|
|
|
- StudentAttendance byStatusAndCourseScheduleId = studentAttendanceDao.findByStatusAndCourseScheduleId(userId, e.getId().intValue());
|
|
|
+ StudentAttendance byStatusAndCourseScheduleId = studentAttendanceDao.findByStatusAndCourseScheduleId(userId, courseSchedules.get(i).getId().intValue());
|
|
|
+ Date signOutTime = date;
|
|
|
+ if(i < courseSchedules.size() - 1 && date.after(endDateTime)){
|
|
|
+ //不是最后一节连堂课,并且签退时间大于课程结束时间,签退时间等于课程结束时间
|
|
|
+ signOutTime = endDateTime;
|
|
|
+ }
|
|
|
if(byStatusAndCourseScheduleId != null){
|
|
|
- byStatusAndCourseScheduleId.setSignOutTime(date);
|
|
|
+ byStatusAndCourseScheduleId.setSignOutTime(signOutTime);
|
|
|
byStatusAndCourseScheduleId.setStatus(statusEnum);
|
|
|
byStatusAndCourseScheduleId.setUpdateTime(date);
|
|
|
studentAttendanceDao.update(byStatusAndCourseScheduleId);
|
|
|
}else {
|
|
|
byStatusAndCourseScheduleId = new StudentAttendance();
|
|
|
- byStatusAndCourseScheduleId.setSignOutTime(endDateTime);
|
|
|
+ byStatusAndCourseScheduleId.setSignOutTime(signOutTime);
|
|
|
byStatusAndCourseScheduleId.setStatus(statusEnum);
|
|
|
byStatusAndCourseScheduleId.setSignInTime(startDateTime);
|
|
|
byStatusAndCourseScheduleId.setUpdateTime(date);
|
|
|
byStatusAndCourseScheduleId.setUserId(userId);
|
|
|
byStatusAndCourseScheduleId.setTeacherId(courseSchedule.getActualTeacherId());
|
|
|
- byStatusAndCourseScheduleId.setClassGroupId(e.getClassGroupId());
|
|
|
- byStatusAndCourseScheduleId.setCourseScheduleId(e.getId());
|
|
|
- byStatusAndCourseScheduleId.setMusicGroupId(e.getMusicGroupId());
|
|
|
- byStatusAndCourseScheduleId.setGroupType(e.getGroupType());
|
|
|
+ byStatusAndCourseScheduleId.setClassGroupId(courseSchedules.get(i).getClassGroupId());
|
|
|
+ byStatusAndCourseScheduleId.setCourseScheduleId(courseSchedules.get(i).getId());
|
|
|
+ byStatusAndCourseScheduleId.setMusicGroupId(courseSchedules.get(i).getMusicGroupId());
|
|
|
+ byStatusAndCourseScheduleId.setGroupType(courseSchedules.get(i).getGroupType());
|
|
|
byStatusAndCourseScheduleId.setCurrentClassTimes(classGroup.getCurrentClassTimes() + 1);
|
|
|
studentAttendanceDao.insert(byStatusAndCourseScheduleId);
|
|
|
}
|
|
|
- if(!date.before(endDateTime)){
|
|
|
+ if(!date.after(endDateTime)){
|
|
|
break;
|
|
|
}
|
|
|
}
|