zouxuan 5 years ago
parent
commit
36ef34a779

+ 36 - 35
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentAttendanceServiceImpl.java

@@ -468,6 +468,7 @@ public class StudentAttendanceServiceImpl extends BaseServiceImpl<Long, StudentA
 			studentAttendance.setTeacherId(courseSchedule.getActualTeacherId());
 			studentAttendance.setUpdateTime(date);
 		}
+		Date signInTime = studentAttendance.getSignInTime();
 		//没有签到信息才会生成
 		if(signStatusEnum == SignStatusEnum.SIGN_IN && studentAttendance.getSignInTime() == null){
 			//判断是否在签到时间段内(课程开始前20~结束前)
@@ -500,7 +501,7 @@ public class StudentAttendanceServiceImpl extends BaseServiceImpl<Long, StudentA
 			if(DateUtil.minutesBetween(classEndDateTime,date) >= 0){
 				String continueCourseTime = sysConfigDao.findConfigValue(SysConfigService.ONLINE_CONTINUE_COURSE_TIME);
 				if(StringUtils.isEmpty(continueCourseTime)){
-					continueCourseTime = "10";
+					continueCourseTime = "5";
 				}
 				List<CourseSchedule> courseSchedules = new ArrayList<>();
 				CourseSchedule cs = courseSchedule;
@@ -524,41 +525,41 @@ public class StudentAttendanceServiceImpl extends BaseServiceImpl<Long, StudentA
 					totalMinutes -= firstMinutes;
 					if(totalMinutes > 0){
 						String courseClassDate;
-						String courseStartDateTime;
+//						String courseStartDateTime;
 						String courseEndDateTime;
-						for (CourseSchedule e:courseSchedules) {
-							//获取当前课程的单节课时长
-							int signClassMinutes = courseScheduleDao.getSingleClassMinutes(e.getId());
-							totalMinutes -= signClassMinutes;
-							if(totalMinutes >= 0){
-								//补充签到签退时间
-								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);
-								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());
-								if(byStatusAndCourseScheduleId != null){
-									byStatusAndCourseScheduleId.setSignOutTime(date);
-									byStatusAndCourseScheduleId.setStatus(statusEnum);
-									byStatusAndCourseScheduleId.setUpdateTime(date);
-									studentAttendanceDao.update(byStatusAndCourseScheduleId);
-								}else {
-									byStatusAndCourseScheduleId = new StudentAttendance();
-									byStatusAndCourseScheduleId.setSignOutTime(endDateTime);
-									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.setCurrentClassTimes(classGroup.getCurrentClassTimes() + 1);
-									studentAttendanceDao.insert(byStatusAndCourseScheduleId);
-								}
+						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, 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.setStatus(statusEnum);
+								byStatusAndCourseScheduleId.setUpdateTime(date);
+								studentAttendanceDao.update(byStatusAndCourseScheduleId);
 							}else {
+								byStatusAndCourseScheduleId = new StudentAttendance();
+								byStatusAndCourseScheduleId.setSignOutTime(date);
+								byStatusAndCourseScheduleId.setStatus(statusEnum);
+								byStatusAndCourseScheduleId.setSignInTime(signInTime);
+								byStatusAndCourseScheduleId.setUpdateTime(date);
+								byStatusAndCourseScheduleId.setUserId(userId);
+								byStatusAndCourseScheduleId.setTeacherId(courseSchedule.getActualTeacherId());
+								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.after(endDateTime)){
 								break;
 							}
 						}
@@ -596,7 +597,7 @@ public class StudentAttendanceServiceImpl extends BaseServiceImpl<Long, StudentA
 		//是否是连堂课
 		String continueCourseTime = sysConfigDao.findConfigValue(SysConfigService.ONLINE_CONTINUE_COURSE_TIME);
 		if(StringUtils.isEmpty(continueCourseTime)){
-			continueCourseTime = "10";
+			continueCourseTime = "5";
 		}
 		Date date = new Date();
 		for (CourseSchedule courseSchedule : courseScheduleList) {

+ 6 - 4
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherAttendanceServiceImpl.java

@@ -310,14 +310,14 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
 		if(SignStatusEnum.SIGN_OUT.equals(signStatus)){
 			if(DateUtil.minutesBetween(classEndDateTime,date) >= 0){
 				teacherAttendance.setSignOutStatus(YesOrNoEnum.YES);
-//				Date signInTime = teacherAttendance.getSignInTime();
+				Date signInTime = teacherAttendance.getSignInTime();
 				List<CourseSchedule> courseSchedules = new ArrayList<>();
 				CourseSchedule cs = courseSchedule;
 				while (true){
 					//获取当前课程的所有连堂课列表
 					String courseClassDate = DateUtil.format(cs.getClassDate(), DateUtil.DEFAULT_PATTERN);
 					String courseEndDateTime = DateUtil.format(cs.getEndClassTime(), DateUtil.EXPANDED_TIME_FORMAT);
-//					Date endDateTime = DateUtil.stringToDate(courseClassDate + " " + courseEndDateTime, DateUtil.EXPANDED_DATE_TIME_FORMAT);
+					Date endDateTime = DateUtil.stringToDate(courseClassDate + " " + courseEndDateTime, DateUtil.EXPANDED_DATE_TIME_FORMAT);
 					cs = courseScheduleDao.queryContinueCourse(cs,continueCourseTime,courseClassDate + " " + courseEndDateTime);
 					//存在连堂课
 					if(cs != null){
@@ -343,6 +343,9 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
 							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(date.before(startDateTime)){
+								continue;
+							}
 							if(i < courseSchedules.size() - 1 && date.after(endDateTime)){
 							//不是最后一节连堂课,并且签退时间大于课程结束时间,签退时间等于课程结束时间
 								signOutTime = endDateTime;
@@ -361,12 +364,11 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
 								teacherAttendanceDao.cuntinueCourseSign(courseSchedules.get(i).getId(),startDateTime,signOutTime,1);
 							}else if (date.equals(endDateTime)){
 								teacherAttendanceDao.cuntinueCourseSign(courseSchedules.get(i).getId(),startDateTime,signOutTime,1);
-								break;
 							}else {
 								teacherAttendanceDao.cuntinueCourseSign(courseSchedules.get(i).getId(),startDateTime,signOutTime,0);
-								break;
 							}
 						}
+						date = classEndDateTime;
 					}
 				}
 			}else {

+ 0 - 6
mec-im/src/main/java/com/ym/service/Impl/RoomServiceImpl.java

@@ -112,12 +112,6 @@ public class RoomServiceImpl implements RoomService {
         String userId = sysUser.getId().toString();
         Teacher teacher = teacherDao.get(Integer.parseInt(userId));
         CourseSchedule courseSchedule = courseScheduleDao.get(Long.parseLong(roomId));
-        String format = DateUtil.format(courseSchedule.getClassDate(), DateUtil.DEFAULT_PATTERN);
-        String format1 = DateUtil.format(courseSchedule.getEndClassTime(), DateUtil.EXPANDED_TIME_FORMAT);
-        Date endDateTime = DateUtil.stringToDate(format + " " + format1, DateUtil.EXPANDED_DATE_TIME_FORMAT);
-        if(new Date().before(endDateTime)){
-            throw new BizException("课程已结束");
-        }
 
         String continueCourseTime = sysConfigDao.findConfigValue(SysConfigService.ONLINE_CONTINUE_COURSE_TIME);
         if(StringUtils.isEmpty(continueCourseTime)){