浏览代码

feat:线下课考勤调整

Joburgess 4 年之前
父节点
当前提交
1478446ca9

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleDao.java

@@ -104,6 +104,17 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
                                                      @Param("teacherId") Integer teacherId);
 
     /**
+     * @describe 获取教师在指定时间前有签到的课程
+     * @author Joburgess
+     * @date 2020.10.21
+     * @param startClassTime:
+     * @param teacherId:
+     * @return com.ym.mec.biz.dal.entity.CourseSchedule
+     */
+    CourseSchedule getTeacherAttendanceCourseBeforeStartTime(@Param("startClassTime") Date startClassTime,
+                                                             @Param("teacherId") Integer teacherId);
+
+    /**
      * @param musicGroupId: 乐团编号
      * @param status:       状态
      * @param userId:       用户编号

+ 1 - 5
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java

@@ -419,14 +419,10 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 
 	@Override
 	public boolean enableIgnoreAttendanceTime(Date startClassTime, Integer teacherId, Integer schoolId) {
-		CourseSchedule prevCourse = courseScheduleDao.getTeacherPrevCourseWithStartTime(startClassTime, teacherId);
+		CourseSchedule prevCourse = courseScheduleDao.getTeacherAttendanceCourseBeforeStartTime(startClassTime, teacherId);
 		if(Objects.isNull(prevCourse)){
 			return false;
 		}
-		TeacherAttendance teacherAttendance = teacherAttendanceDao.findByTeacherAttendanceInfo(teacherId.longValue(), prevCourse.getId());
-		if(Objects.isNull(teacherAttendance)||Objects.isNull(teacherAttendance.getSignInStatus())){
-			return false;
-		}
 		if(!schoolId.equals(prevCourse.getSchoolId())){
 			return true;
 		}

+ 33 - 0
mec-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml

@@ -3276,4 +3276,37 @@
         ORDER BY start_class_time_ DESC LIMIT 1;
     </select>
 
+    <select id="getTeacherAttendanceCourseBeforeStartTime" resultMap="CourseSchedule">
+        SELECT  cs.id_,
+                cs.music_group_id_,
+                cs.group_type_,
+                cs.class_group_id_,
+                cs.status_,
+                cs.subsidy_,
+                cs.class_date_,
+                CONCAT(cs.class_date_, ' ', cs.start_class_time_) start_class_time_,
+                CONCAT(cs.class_date_, ' ', cs.end_class_time_)   end_class_time_,
+                cs.teacher_id_,
+                cs.actual_teacher_id_,
+                cs.create_time_,
+                cs.update_time_,
+                cs.teach_mode_,
+                cs.type_,
+                cs.name_,
+                cs.student_num_,
+                cs.leave_student_num_,
+                cs.teaching_content_,
+                cs.note_,
+                cs.schoole_id_,
+                cs.organ_id_
+        FROM course_schedule cs
+            LEFT JOIN course_schedule_teacher_salary csts ON csts.course_schedule_id_=cs.id_
+            LEFT JOIN teacher_attendance ta ON cs.id_=ta.course_schedule_id_ AND ta.teacher_id_=#{teacherId}
+        WHERE csts.user_id_=#{teacherId}
+        AND cs.class_date_ = DATE_FORMAT(#{startClassTime},'%Y-%m-%d')
+        AND cs.start_class_time_ &lt; DATE_FORMAT(#{startClassTime},'%H:%i:%S')
+        AND ta.sign_in_status_ IS NOT NULL
+        ORDER BY start_class_time_ DESC LIMIT 1;
+    </select>
+
 </mapper>