zouxuan 5 years ago
parent
commit
935985bd98

+ 39 - 38
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentAttendanceServiceImpl.java

@@ -33,7 +33,7 @@ import java.util.stream.Collectors;
 
 @Service
 public class StudentAttendanceServiceImpl extends BaseServiceImpl<Long, StudentAttendance>  implements StudentAttendanceService {
-	
+
 	@Autowired
 	private StudentAttendanceDao studentAttendanceDao;
 	@Autowired
@@ -265,8 +265,8 @@ public class StudentAttendanceServiceImpl extends BaseServiceImpl<Long, StudentA
 				case LEAVE:
 					result.put("numberOfLeavePeoples",studentStatusCount.getNumberOfStudent());
 					break;
-			default:
-				break;
+				default:
+					break;
 
 			}
 		});
@@ -297,18 +297,18 @@ public class StudentAttendanceServiceImpl extends BaseServiceImpl<Long, StudentA
 	@Override
 	@Transactional(rollbackFor = Exception.class)
 	public boolean leave(Integer userId, Long courseScheduleId, String remark) {
-		
+
 		CourseSchedule courseSchedule = courseScheduleDao.get(courseScheduleId);
 		if(courseSchedule == null){
 			throw new BizException("课程编号异常");
 		}
-		
+
 		if(courseSchedule.getStatus() == CourseStatusEnum.OVER){
 			throw new BizException("课程已结束");
 		}
 
 		Date date = new Date();
-		
+
 		int hours = 4;
 		String str = sysConfigDao.findConfigValue(SysConfigService.ADVANCE_LEAVE_HOURS);
 		if (StringUtils.isNotBlank(str)) {
@@ -318,7 +318,7 @@ public class StudentAttendanceServiceImpl extends BaseServiceImpl<Long, StudentA
 		if(DateUtil.addHours(date, hours).after(courseSchedule.getStartClassTime())){
 			throw new BizException("开课{}小时之前才可以请假",hours);
 		}
-		
+
 		StudentAttendance studentAttendance  = studentAttendanceDao.findByStatusAndCourseScheduleId(userId,courseScheduleId.intValue());
 		if(Objects.isNull(studentAttendance)){
 			studentAttendance=new StudentAttendance();
@@ -338,7 +338,7 @@ public class StudentAttendanceServiceImpl extends BaseServiceImpl<Long, StudentA
 		}else{
 			studentAttendanceDao.insert(studentAttendance);
 		}
-		
+
 		ClassGroupStudentMapper classGroupStudentMapper = classGroupStudentMapperDao.query(courseSchedule.getClassGroupId(), userId);
 		if(Objects.isNull(classGroupStudentMapper)){
 			throw new BizException("您不在此课程对应班级上");
@@ -500,7 +500,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 = "3";
+					continueCourseTime = "10";
 				}
 				List<CourseSchedule> courseSchedules = new ArrayList<>();
 				CourseSchedule cs = courseSchedule;
@@ -528,36 +528,37 @@ public class StudentAttendanceServiceImpl extends BaseServiceImpl<Long, StudentA
 						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);
-							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);
+							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);
+								}
 							}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);
-							}
-							if(!date.before(endDateTime)){
 								break;
 							}
 						}

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

@@ -30,7 +30,7 @@ import java.util.*;
 
 @Service
 public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherAttendance>  implements TeacherAttendanceService {
-	
+
 	@Autowired
 	private TeacherAttendanceDao teacherAttendanceDao;
 	@Autowired
@@ -38,6 +38,8 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
 	@Autowired
 	private CourseHomeworkService courseHomeworkService;
 	@Autowired
+	private StudentAttendanceDao studentAttendanceDao;
+	@Autowired
 	private StudentCourseHomeworkDao studentCourseHomeworkDao;
 	@Autowired
 	private SysUserFeignService sysUserFeignService;
@@ -289,6 +291,7 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
 				//正常签到范围(开始之前)
 				isSign = true;
 			}else {
+//			}else if(DateUtil.minutesBetween(add1Minutes,date) >= 0){
 				//异常签到范围(开始之后)
 				isSign = true;
 				teacherAttendance.setSignInStatus(YesOrNoEnum.NO);
@@ -337,20 +340,17 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
 						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);
-							Date startDateTime = DateUtil.stringToDate(courseClassDate + " " + courseStartDateTime, DateUtil.EXPANDED_DATE_TIME_FORMAT);
-							Date endDateTime = DateUtil.stringToDate(courseClassDate + " " + courseEndDateTime, DateUtil.EXPANDED_DATE_TIME_FORMAT);
-							//如果签退时间大于课程结束时间
-							if(date.before(endDateTime)){
-								teacherAttendanceDao.cuntinueCourseSign(e.getId(),startDateTime,endDateTime,1);
-							}else if (date.equals(endDateTime)){
+							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);
 								teacherAttendanceDao.cuntinueCourseSign(e.getId(),startDateTime,endDateTime,1);
-								break;
 							}else {
-								teacherAttendanceDao.cuntinueCourseSign(e.getId(),startDateTime,endDateTime,0);
 								break;
 							}
 						}
@@ -386,7 +386,7 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
 
 	@Override
 	public boolean pushNoSignOutMessage() {
-		
+
 		Integer minutes = Integer.parseInt(sysConfigDao.findConfigValue(SysConfigService.SIGN_OUT_MESSAGE_PUSH_MINUTE));;
 
 		List<Mapper> list = teacherAttendanceDao.queryNoSignOutListByOverMinutes(minutes);
@@ -395,7 +395,7 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
 			Map<Integer, String> receivers = new HashMap<Integer, String>();
 			Integer userId = (Integer) mapper.getKey();
 			receivers.put(userId, userId + "");
-			
+
 			String key = "SignOut_" + userId + "_" + mapper.getCourseScheduleId();
 
 			if (!redisCache.exists(key)) {

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

@@ -112,7 +112,7 @@ public class RoomServiceImpl implements RoomService {
         Teacher teacher = teacherDao.get(Integer.parseInt(userId));
         CourseSchedule courseSchedule = courseScheduleDao.get(Long.parseLong(roomId));
 
-        String continueCourseTime = sysConfigDao.findConfigValue(SysConfigService.ONLINE_CONTINUE_COURSE_TIME);
+        /*String continueCourseTime = sysConfigDao.findConfigValue(SysConfigService.ONLINE_CONTINUE_COURSE_TIME);
         if(StringUtils.isEmpty(continueCourseTime)){
             continueCourseTime = "3";
         }
@@ -127,8 +127,8 @@ public class RoomServiceImpl implements RoomService {
             }else {
                 break;
             }
-        }
-        /*try {
+        }*/
+        try {
             if(teacher != null && teacher.getId().equals(courseSchedule.getActualTeacherId())){
                 teacherAttendanceService.addTeacherAttendanceRecord(Integer.parseInt(roomId),courseSchedule.getActualTeacherId(), SignStatusEnum.SIGN_IN,true);
             }else {
@@ -136,7 +136,7 @@ public class RoomServiceImpl implements RoomService {
             }
         }catch (Exception e){
             e.printStackTrace();
-        }*/
+        }
         if(courseSchedule.getGroupType() == GroupType.COMM){
             roomId = "I" + roomId;
         }else {
@@ -246,7 +246,7 @@ public class RoomServiceImpl implements RoomService {
         Teacher teacher = teacherDao.get(Integer.parseInt(userId));
         CourseSchedule courseSchedule = courseScheduleDao.get(roomId);
 
-        String continueCourseTime = sysConfigDao.findConfigValue(SysConfigService.ONLINE_CONTINUE_COURSE_TIME);
+        /*String continueCourseTime = sysConfigDao.findConfigValue(SysConfigService.ONLINE_CONTINUE_COURSE_TIME);
         if(StringUtils.isEmpty(continueCourseTime)){
             continueCourseTime = "3";
         }
@@ -261,7 +261,7 @@ public class RoomServiceImpl implements RoomService {
             }else {
                 break;
             }
-        }
+        }*/
         try {
             if(teacher != null && teacher.getId().equals(courseSchedule.getActualTeacherId())){
                 teacherAttendanceService.addTeacherAttendanceRecord(roomId.intValue(),courseSchedule.getActualTeacherId(), SignStatusEnum.SIGN_IN,true);