zouxuan 4 年之前
父节点
当前提交
59d94aaa39

+ 9 - 26
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentAttendanceServiceImpl.java

@@ -471,7 +471,7 @@ public class StudentAttendanceServiceImpl extends BaseServiceImpl<Long, StudentA
     @Override
     @Transactional(rollbackFor = Exception.class)
     public void addStudentAttendanceRecord(Integer courseScheduleId, Integer userId, StudentAttendanceStatusEnum statusEnum, SignStatusEnum signStatusEnum,Long currentScheduleId) {
-        CourseSchedule courseSchedule = courseScheduleDao.get(courseScheduleId.longValue());
+
         ClassGroup classGroup = classGroupDao.findByCourseSchedule(courseScheduleId, 0);
         StudentAttendance studentAttendance = studentAttendanceDao.findByStatusAndCourseScheduleId(userId, currentScheduleId.intValue());
         Date date = new Date();
@@ -484,45 +484,28 @@ public class StudentAttendanceServiceImpl extends BaseServiceImpl<Long, StudentA
             studentAttendance.setMusicGroupId(classGroup.getMusicGroupId());
             studentAttendance.setUserId(userId);
             studentAttendance.setCurrentScheduleId(currentScheduleId);
-            studentAttendance.setTeacherId(courseSchedule.getActualTeacherId());
-            if (signStatusEnum == SignStatusEnum.SIGN_IN) {
-                if (courseSchedule.getStudentNum() == null) {
-                    courseSchedule.setStudentNum(0);
-                }
-                courseSchedule.setStudentNum(courseSchedule.getStudentNum() + 1);
-            }
             studentAttendanceDao.insert(studentAttendance);
         } else {
             studentAttendance.setCurrentScheduleId(currentScheduleId);
-            studentAttendance.setTeacherId(courseSchedule.getActualTeacherId());
             studentAttendance.setUpdateTime(date);
         }
-//		Date signInTime = studentAttendance.getSignInTime();
         //没有签到信息才会生成
         if (signStatusEnum == SignStatusEnum.SIGN_IN && studentAttendance.getSignInTime() == null) {
-
-            //判断是否在签到时间段内(课程开始前20~结束前)
-//			int advanceSignMinutes = Integer.parseInt(sysConfigDao.findConfigValue(SysConfigService.ADVANCE_SIGN_IN_MINUTES));
-//			String classDate = DateUtil.format(courseSchedule.getClassDate(), DateUtil.DEFAULT_PATTERN);
-//			String startClassTime = DateUtil.format(courseSchedule.getStartClassTime(), DateUtil.EXPANDED_TIME_FORMAT);
-//			String endClassTime = DateUtil.format(courseSchedule.getEndClassTime(), DateUtil.EXPANDED_TIME_FORMAT);
-            //上课时间
-//			Date classStartDateTime = DateUtil.stringToDate(classDate + " " + startClassTime, DateUtil.EXPANDED_DATE_TIME_FORMAT);
-//			Date classEndDateTime = DateUtil.stringToDate(classDate + " " + endClassTime, DateUtil.EXPANDED_DATE_TIME_FORMAT);
-//			Date addMinutes = DateUtil.addMinutes(classStartDateTime, -60);
-
+            CourseSchedule courseSchedule = courseScheduleDao.get(currentScheduleId);
+            if (courseSchedule.getStudentNum() == null) {
+                courseSchedule.setStudentNum(0);
+            }
+            courseSchedule.setStudentNum(courseSchedule.getStudentNum() + 1);
+            studentAttendance.setTeacherId(courseSchedule.getActualTeacherId());
             //课程结束前进入,算正常
             studentAttendance.setStatus(statusEnum);
             studentAttendance.setSignInTime(date);
 
             courseSchedule.setUpdateTime(date);
-//				courseSchedule.setStudentNum((courseSchedule.getStudentNum() == null?0:courseSchedule.getStudentNum()) + 1);
             courseScheduleDao.update(courseSchedule);
-			/*if(DateUtil.minutesBetween(addMinutes,date) >= 0 && DateUtil.minutesBetween(date,classEndDateTime) > 0){
-
-			}*/
             studentAttendanceDao.update(studentAttendance);
         } else if (signStatusEnum == SignStatusEnum.SIGN_OUT) {
+            CourseSchedule courseSchedule = courseScheduleDao.get(courseScheduleId.longValue());
             String continueCourseTime = sysConfigDao.findConfigValue(SysConfigService.ONLINE_CONTINUE_COURSE_TIME);
             if (StringUtils.isEmpty(continueCourseTime)) {
                 continueCourseTime = "5";
@@ -572,7 +555,7 @@ public class StudentAttendanceServiceImpl extends BaseServiceImpl<Long, StudentA
         Boolean flag = false;
         Long courseId = teacherAttendanceDao.findFirstSign(currentScheduleId);
         //如果当前课程是第一次签到的课程那么不更新签到时间,并且退出下次循环
-        if(courseId != null && courseId.equals(courseSchedule.getId())){
+        if(courseId != null && courseId == courseSchedule.getId()){
             flag = true;
         }
         if(studentAttendance == null){

+ 12 - 21
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherAttendanceServiceImpl.java

@@ -247,14 +247,12 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
 	@Override
 	@Transactional(rollbackFor = Exception.class)
 	public void addTeacherAttendanceRecord(Integer courseScheduleId, Integer userId, SignStatusEnum signStatus, boolean updateCourseScheduleStatus,Long currentScheduleId) {
-
 		ClassGroup classGroup = classGroupDao.findByCourseSchedule(courseScheduleId,0);
-		CourseSchedule courseSchedule = courseScheduleDao.get(courseScheduleId.longValue());
-
+		Date date = new Date();
 		TeacherAttendance teacherAttendance=teacherAttendanceDao.findByTeacherAttendanceInfo(userId.longValue(),currentScheduleId);
 		if(Objects.isNull(teacherAttendance)){
 			teacherAttendance=new TeacherAttendance();
-			teacherAttendance.setGroupType(courseSchedule.getGroupType());
+			teacherAttendance.setGroupType(classGroup.getGroupType());
 			teacherAttendance.setCourseScheduleId(courseScheduleId.longValue());
 			teacherAttendance.setTeacherId(userId);
 			teacherAttendance.setMusicGroupId(classGroup.getMusicGroupId());
@@ -264,25 +262,17 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
 			teacherAttendanceDao.insert(teacherAttendance);
 		}else {
 			teacherAttendance.setCurrentScheduleId(currentScheduleId);
-			teacherAttendance.setGroupType(courseSchedule.getGroupType());
+			teacherAttendance.setGroupType(classGroup.getGroupType());
 			teacherAttendance.setTeacherId(userId);
 			teacherAttendance.setClassGroupId(classGroup.getId());
 			teacherAttendance.setMusicGroupId(classGroup.getMusicGroupId());
 		}
-//		int advanceSignMinutes = Integer.parseInt(sysConfigDao.findConfigValue(SysConfigService.ADVANCE_SIGN_IN_MINUTES));
-		Date date = new Date();
-		String classDate = DateUtil.format(courseSchedule.getClassDate(), DateUtil.DEFAULT_PATTERN);
-		String startClassTime = DateUtil.format(courseSchedule.getStartClassTime(), DateUtil.EXPANDED_TIME_FORMAT);
-//		String endClassTime = DateUtil.format(courseSchedule.getEndClassTime(), DateUtil.EXPANDED_TIME_FORMAT);
-		//上课时间
-		Date classStartDateTime = DateUtil.stringToDate(classDate + " " + startClassTime, DateUtil.EXPANDED_DATE_TIME_FORMAT);
-//		Date classEndDateTime = DateUtil.stringToDate(classDate + " " + endClassTime, DateUtil.EXPANDED_DATE_TIME_FORMAT);
-//		Date classEndDateAdd60Minutes = DateUtil.addMinutes(classEndDateTime, 60);
-//		Date classEndDateCut10Minutes = DateUtil.addMinutes(classEndDateTime, -10);
-
-//		Date add60Minutes = DateUtil.addMinutes(classStartDateTime, -60);
 		//签到
 		if(teacherAttendance.getSignInTime() == null && SignStatusEnum.SIGN_IN.equals(signStatus)){
+			CourseSchedule courseSchedule = courseScheduleDao.get(currentScheduleId);
+			String classDate = DateUtil.format(courseSchedule.getClassDate(), DateUtil.DEFAULT_PATTERN);
+			String startClassTime = DateUtil.format(courseSchedule.getStartClassTime(), DateUtil.EXPANDED_TIME_FORMAT);
+			Date classStartDateTime = DateUtil.stringToDate(classDate + " " + startClassTime, DateUtil.EXPANDED_DATE_TIME_FORMAT);
 			YesOrNoEnum yesOrNoEnum = courseScheduleService.enableOnlyNormalAttendance(courseSchedule.getStartClassTime(),
 					userId.longValue(),
 					false,
@@ -307,6 +297,7 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
 		}
 		//签退
 		if(SignStatusEnum.SIGN_OUT.equals(signStatus)){
+			CourseSchedule courseSchedule = courseScheduleDao.get(courseScheduleId.longValue());
 			List<CourseSchedule> courseSchedules = new ArrayList<>();
 			courseSchedules.add(courseSchedule);
 			CourseSchedule cs = courseSchedule;
@@ -341,14 +332,14 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
 				courseEndDateTime = DateUtil.format(schedule.getEndClassTime(), DateUtil.EXPANDED_TIME_FORMAT);
 				Date endDateTime = DateUtil.stringToDate(courseClassDate + " " + courseEndDateTime, DateUtil.EXPANDED_DATE_TIME_FORMAT);
 				//不是最后一节课
-				if(i != courseSchedules.size() - 1){
-					isBreak = upsetAttendance(userId,startDateTime,endDateTime,YesOrNoEnum.YES,schedule,currentScheduleId);
-				}else {
+				if(i == courseSchedules.size() - 1){
 					if(date.after(endDateTime)){
 						isBreak = upsetAttendance(userId,startDateTime,date,YesOrNoEnum.YES,schedule,currentScheduleId);
 					}else {
 						isBreak = upsetAttendance(userId,startDateTime,date,YesOrNoEnum.NO,schedule,currentScheduleId);
 					}
+				}else {
+					isBreak = upsetAttendance(userId,startDateTime,endDateTime,YesOrNoEnum.YES,schedule,currentScheduleId);
 				}
 			}
 		}
@@ -359,7 +350,7 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
 		Boolean flag = false;
 		Long courseId = teacherAttendanceDao.findFirstSign(currentScheduleId);
 		//如果当前课程是第一次签到的课程那么不更新签到时间,并且退出下次循环
-		if(courseId != null && courseId.equals(courseSchedule.getId())){
+		if(courseId != null && courseId == courseSchedule.getId()){
 			flag = true;
 		}
 		if(teacherAttendance == null){