zouxuan 5 年之前
父節點
當前提交
057eeb5126

+ 7 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/TeacherAttendanceDao.java

@@ -237,4 +237,11 @@ public interface TeacherAttendanceDao extends BaseDAO<Long, TeacherAttendance> {
 	 * @param teacherId
 	 */
 	void deleteByCourseAndTeacherId(@Param("courseScheduleIds") Set<Long> courseScheduleIds, @Param("teacherId") Integer teacherId);
+
+	/**
+	 * 获取上课时间
+	 * @param courseScheduleId
+	 * @return
+	 */
+    Integer getAttendClassTime(Integer courseScheduleId);
 }

+ 10 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/TeacherAttendanceDetailDto.java

@@ -30,6 +30,16 @@ public class TeacherAttendanceDetailDto {
 
     private Date signOutTime;
 
+    private Integer attendClassTime;
+
+    public Integer getAttendClassTime() {
+        return attendClassTime;
+    }
+
+    public void setAttendClassTime(Integer attendClassTime) {
+        this.attendClassTime = attendClassTime;
+    }
+
     public String getTeacherName() {
         return teacherName;
     }

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

@@ -574,6 +574,7 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
 		result.setTeachMode(courseSchedule.getTeachMode());
 		result.setType(courseSchedule.getType());
 		result.setTeacherName(teacherDao.queryNameById(courseSchedule.getActualTeacherId()));
+		result.setAttendClassTime(teacherAttendanceDao.getAttendClassTime(courseScheduleId));
 		if(teacherAttendance != null){
 			result.setIsSignIn(Objects.isNull(teacherAttendance.getSignInStatus())?3:teacherAttendance.getSignInStatus().getCode());
 			result.setIsSignOut(Objects.isNull(teacherAttendance.getSignOutStatus())?3:teacherAttendance.getSignOutStatus().getCode());

+ 7 - 0
mec-biz/src/main/resources/config/mybatis/TeacherAttendanceMapper.xml

@@ -527,6 +527,13 @@
         LEFT JOIN course_schedule cs ON cs.id_ = ta.course_schedule_id_
         <include refid="queryTeacherAttendanceComplaintsSql"/>
     </select>
+    <select id="getAttendClassTime" resultType="java.lang.Integer">
+        SELECT ROUND((UNIX_TIMESTAMP(CASE WHEN ta.sign_out_time_ &lt; MIN(sa.sign_out_time_) THEN ta.sign_out_time_ ELSE MIN(sa.sign_out_time_) END)-
+        UNIX_TIMESTAMP(CASE WHEN ta.sign_in_time_ > MAX(sa.sign_in_time_) THEN ta.sign_in_time_ ELSE MAX(sa.sign_in_time_) END))/60)
+        FROM teacher_attendance ta
+        LEFT JOIN student_attendance sa ON ta.course_schedule_id_ = sa.course_schedule_id_
+        WHERE ta.course_schedule_id_ = #{courseScheduleId}
+    </select>
 
     <update id="updateViPSignOutStatus" parameterType="string">
     	UPDATE teacher_attendance SET sign_out_status_ = 1,sign_out_time_= now()