|
@@ -125,6 +125,8 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
|
|
|
throw new BizException("明天的课程不能进行签到");
|
|
|
}
|
|
|
|
|
|
+ School school = schoolDao.get(courseSchedule.getSchoolId());
|
|
|
+
|
|
|
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);
|
|
@@ -140,8 +142,6 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
|
|
|
throw new BizException("未获取到您的位置");
|
|
|
}
|
|
|
|
|
|
- School school = schoolDao.get(courseSchedule.getSchoolId());
|
|
|
-
|
|
|
//是否在范围内
|
|
|
boolean isInScore = true;
|
|
|
if(StringUtils.isBlank(school.getLongitudeLatitude())){
|
|
@@ -204,15 +204,35 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
|
|
|
}
|
|
|
return result;
|
|
|
}else if(teacherAttendance.getSignOutTime() == null && teacherSignOutDto.getTeacherAttendanceInfo().getStatus().equals(SignStatusEnum.SIGN_OUT.getCode())){
|
|
|
+ //是否在范围内
|
|
|
+ boolean isInScore = false;
|
|
|
+ if(StringUtils.isBlank(school.getLongitudeLatitude())){
|
|
|
+ if(teacherSignOutDto.getTeacherAttendanceInfo().getUpdate().equals(YesOrNoEnum.YES.getCode())){
|
|
|
+ school.setLongitudeLatitude(teacherSignOutDto.getTeacherAttendanceInfo().getSignInLongitudeLatitude());
|
|
|
+ schoolDao.update(school);
|
|
|
+ }
|
|
|
+ }else if(StringUtils.isNotBlank(teacherSignOutDto.getTeacherAttendanceInfo().getSignOutLongitudeLatitude())){
|
|
|
+ SysConfig sysConfig = sysConfigService.findByParamName(SysConfigService.ATTENDANCE_RANGE);
|
|
|
+ double attendanceRange = Double.valueOf(sysConfig.getParanValue());
|
|
|
+ double distance = MapUtil.distance(teacherSignOutDto.getTeacherAttendanceInfo().getSignInLongitudeLatitude(),
|
|
|
+ school.getLongitudeLatitude());
|
|
|
+ if(distance<=attendanceRange){
|
|
|
+ isInScore=true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
//正常签退范围(结束后1小时内)
|
|
|
teacherAttendance.setSignOutTime(date);
|
|
|
teacherAttendance.setSignOutAttachments(teacherSignOutDto.getCourseHomeworkInfo().getAttachments());
|
|
|
ClassGroup classGroup = classGroupDao.get(courseSchedule.getClassGroupId());
|
|
|
teacherAttendance.setCurrentClassTimes(classGroup.getCurrentClassTimes() + 1);
|
|
|
- if(DateUtil.minutesBetween(classEndDateTime,date) >= 0 && DateUtil.minutesBetween(date,classEndDateAdd60Minutes) >= 0){
|
|
|
+ if(!isInScore){
|
|
|
+ teacherAttendance.setSignOutStatus(YesOrNoEnum.NO);
|
|
|
+ result.put("signInStatus",1);
|
|
|
+ }else if(date.compareTo(classEndDateTime) >= 0 && date.compareTo(classEndDateAdd60Minutes) <= 0){
|
|
|
teacherAttendance.setSignOutStatus(YesOrNoEnum.YES);
|
|
|
result.put("signInStatus",0);
|
|
|
- }else if(DateUtil.minutesBetween(classEndDateAdd60Minutes,date) > 0){
|
|
|
+ }else if(date.compareTo(classEndDateAdd60Minutes) > 0){
|
|
|
teacherAttendance.setSignOutStatus(YesOrNoEnum.NO);
|
|
|
result.put("signInStatus",1);
|
|
|
}else {
|