瀏覽代碼

Merge remote-tracking branch 'origin/master'

周箭河 5 年之前
父節點
當前提交
bed70a1f6e

+ 17 - 16
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentAttendanceServiceImpl.java

@@ -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;
 							}
 						}

+ 13 - 10
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherAttendanceServiceImpl.java

@@ -335,22 +335,25 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
 						String courseClassDate;
 						String courseStartDateTime;
 						String courseEndDateTime;
-						for (CourseSchedule e:courseSchedules) {
-							//获取当前课程的单节课时长
-//							int signClassMinutes = courseScheduleDao.getSingleClassMinutes(e.getId());
-							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);
+							Date signOutTime = date;
+							if(i < courseSchedules.size() - 1 && date.after(endDateTime)){
+								//不是最后一节连堂课,并且签退时间大于课程结束时间,签退时间等于课程结束时间
+								signOutTime = endDateTime;
+							}
 							//如果签退时间大于课程结束时间
-							if(date.before(endDateTime)){
-								teacherAttendanceDao.cuntinueCourseSign(e.getId(),startDateTime,endDateTime,1);
+							if(date.after(endDateTime)){
+								teacherAttendanceDao.cuntinueCourseSign(courseSchedules.get(i).getId(),startDateTime,signOutTime,1);
 							}else if (date.equals(endDateTime)){
-								teacherAttendanceDao.cuntinueCourseSign(e.getId(),startDateTime,endDateTime,1);
+								teacherAttendanceDao.cuntinueCourseSign(courseSchedules.get(i).getId(),startDateTime,signOutTime,1);
 								break;
 							}else {
-								teacherAttendanceDao.cuntinueCourseSign(e.getId(),startDateTime,endDateTime,0);
+								teacherAttendanceDao.cuntinueCourseSign(courseSchedules.get(i).getId(),startDateTime,signOutTime,0);
 								break;
 							}
 						}