zouxuan %!s(int64=5) %!d(string=hai) anos
pai
achega
20bf3238f7

+ 0 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java

@@ -72,8 +72,6 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 	@Autowired
 	private ClassGroupDao classGroupDao;
 	@Autowired
-	private TeacherDao teacherDao;
-	@Autowired
 	private MusicGroupDao musicGroupDao;
 	@Autowired
 	private SubjectDao subjectDao;

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

@@ -228,7 +228,9 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
 		//上课时间
 		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, advanceSignMinutes * -1);
+		Date classEndDateAdd60Minutes = DateUtil.addMinutes(classEndDateTime, 60);
+		Date add20Minutes = DateUtil.addMinutes(classStartDateTime, advanceSignMinutes * -1);
+		Date add60Minutes = DateUtil.addMinutes(classStartDateTime, -60);
 		//签到
 		if(teacherAttendance.getSignInTime() == null && SignStatusEnum.SIGN_IN.equals(signStatus)){
 			//是否连堂课
@@ -241,11 +243,11 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
 			boolean isSign = false;
 			if(yesOrNoEnum == YesOrNoEnum.YES){
 				isSign = true;
-			}else if(DateUtil.minutesBetween(addMinutes,date) >= 0 && DateUtil.minutesBetween(date,classStartDateTime) > 0){
-				//正常签到范围(开始前20分钟  ~  开始之前)
+			}else if(DateUtil.minutesBetween(add60Minutes,date) > 0 && DateUtil.minutesBetween(date,add20Minutes) > 0){
+				//正常签到范围(开始前60分钟  ~  开始之前20分钟)
 				isSign = true;
-			}else if(DateUtil.minutesBetween(classStartDateTime,date) > 0 && DateUtil.minutesBetween(date,classEndDateTime) > 0){
-				//异常签到范围(开始之后  ~  结束之前)
+			}else if(DateUtil.minutesBetween(add20Minutes,date) > 0){
+				//异常签到范围(开始之前20分钟)
 				isSign = true;
 				teacherAttendance.setSignInStatus(YesOrNoEnum.NO);
 			}
@@ -264,29 +266,29 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
 		}
 		//签退
 		if(teacherAttendance.getSignOutTime() == null && SignStatusEnum.SIGN_OUT.equals(signStatus)){
-			//正常签退范围(课程结束后)
-			if(DateUtil.minutesBetween(classEndDateTime,date) > 0){
-				teacherAttendance.setSignOutTime(date);
+			//正常签退范围(课程结束后,1小时内)
+			if(DateUtil.minutesBetween(classEndDateTime,date) > 0 && DateUtil.minutesBetween(date,classEndDateAdd60Minutes) > 0){
 				teacherAttendance.setSignOutStatus(YesOrNoEnum.YES);
-				teacherAttendanceDao.update(teacherAttendance);
-				//教师签退后,给未签到学员添加旷课记录
-				List<StudentAttendance> studentAttendances = studentAttendanceDao.queryNoSignStudentRecord(courseScheduleId);
-				if(studentAttendances != null && studentAttendances.size() > 0){
-					studentAttendances.forEach(e->{
-						e.setTeacherId(userId);
-						e.setStatus(StudentAttendanceStatusEnum.TRUANT);
-						e.setRemark("学员未到,自动补旷课");
-					});
-					studentAttendanceDao.addStudentAttendances(studentAttendances);
-				}
+			}else if(DateUtil.minutesBetween(classEndDateAdd60Minutes,date) > 0){
+				teacherAttendance.setSignOutStatus(YesOrNoEnum.NO);
+			}else {
+				throw new BizException("签退时间异常");
+			}
+			teacherAttendance.setSignOutTime(date);
+			teacherAttendanceDao.update(teacherAttendance);
+			//教师签退后,给未签到学员添加旷课记录
+			List<StudentAttendance> studentAttendances = studentAttendanceDao.queryNoSignStudentRecord(courseScheduleId);
+			if(studentAttendances != null && studentAttendances.size() > 0){
+				studentAttendances.forEach(e->{
+					e.setTeacherId(userId);
+					e.setStatus(StudentAttendanceStatusEnum.TRUANT);
+					e.setRemark("学员未到,自动补旷课");
+				});
+				studentAttendanceDao.addStudentAttendances(studentAttendances);
 			}
 		}
 	}
 
-	private void studentAutoTruant(){
-
-	}
-
 	@Override
 	public PageInfo getTeacherPersonalAttendances(TeacherCloseQueryInfo queryInfo) {
 		PageInfo<TeacherPersonalAttendanceDto> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());

+ 1 - 1
mec-biz/src/main/resources/config/mybatis/ClassGroupMapper.xml

@@ -582,7 +582,7 @@
         LEFT JOIN class_group_relation cgr ON cgr.sub_class_group_id_ = cs.class_group_id_
         LEFT JOIN class_group_teacher_mapper cgtm ON cgtm.class_group_id_ = cs.class_group_id_ AND ta.teacher_id_ = cgtm.user_id_
         <include refid="queryMusicGroupCourseScheduleSql"/>
-        ORDER BY cs.class_date_ DESC,cs.start_class_time_ DESC
+        ORDER BY cs.class_date_,cs.start_class_time_
         <include refid="global.limit"/>
     </select>
 

+ 0 - 4
mec-teacher/src/main/java/com/ym/mec/teacher/controller/TeacherCourseScheduleController.java

@@ -9,7 +9,6 @@ import com.ym.mec.biz.dal.enums.StudentAttendanceStatusEnum;
 import com.ym.mec.biz.dal.page.CourseHomeworkQueryInfo;
 import com.ym.mec.biz.dal.page.CourseScheduleQueryInfo;
 import com.ym.mec.biz.dal.page.StudentAttendanceQueryInfo;
-import com.ym.mec.biz.service.ClassGroupService;
 import com.ym.mec.biz.service.CourseScheduleService;
 import com.ym.mec.biz.service.StudentAttendanceService;
 import com.ym.mec.common.controller.BaseController;
@@ -38,9 +37,6 @@ public class TeacherCourseScheduleController extends BaseController {
     private StudentAttendanceService studentAttendanceService;
     @Autowired
     private SysUserFeignService sysUserFeignService;
-    @Autowired
-    private ClassGroupService classGroupService;
-
     @ApiOperation(value = "根据月份获取该月有课的日期")
     @GetMapping("/getCourseScheduleDateByMonth")
     public Object getCourseScheduleDateByMonth(@ApiParam(value = "月份", required = true) @RequestParam Date month,