@@ -353,6 +353,10 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
if(personalAttendance != null && personalAttendance.getSignOutStatus() == YesOrNoEnum.NO){
continue;
}
+ //如果当前课程有签到时间,那么只更新签退时间和状态
+ if(personalAttendance.getSignInTime() != null){
+ signInTime = null;
+ }
if(date.after(endDateTime)){
teacherAttendanceDao.cuntinueCourseSign(courseSchedules.get(i).getId(),signInTime,date,1);
}else if (date.equals(endDateTime)){
@@ -2541,8 +2541,6 @@
AND TIMESTAMPDIFF(MINUTE, #{endDateTime}, CONCAT(cs.class_date_, ' ', cs.start_class_time_)) <= #{continueCourseTime}
AND cs.teacher_id_ = #{courseSchedule.teacherId}
AND cs.class_group_id_ = #{courseSchedule.classGroupId}
- AND ta.sign_in_time_ IS NULL
- AND ta.sign_out_time_ IS NULL
LIMIT 1
</select>
<select id="queryRepairContinueCourse" resultMap="CourseSchedule">
@@ -373,7 +373,14 @@
</update>
<update id="cuntinueCourseSign">
UPDATE teacher_attendance
- SET sign_in_time_ = #{startDateTime},sign_in_status_ = 1,sign_out_status_ = #{status},sign_out_time_= #{endDateTime}
+ <set>
+ <if test="startDateTime != null">
+ sign_in_time_ = #{startDateTime},sign_in_status_ = 1,
+ </if>
+ <if test="endDateTime != null">
+ sign_out_status_ = #{status},sign_out_time_= #{endDateTime}
+ </set>
WHERE course_schedule_id_ = #{courseScheduleId}
<update id="batchUpdateTeacher">