Przeglądaj źródła

1、超级管理员课表预览bug修复
2、连堂课条件判断逻辑调整
3、vip课教师不做异常签到、签退判断
4、课程调整,如果调整时间大于当前时间,则清空之前的签到信息

Joburgess 5 lat temu
rodzic
commit
3cfb1ae4ee

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

@@ -137,4 +137,13 @@ public interface TeacherAttendanceDao extends BaseDAO<Long, TeacherAttendance> {
 	 * @return
 	 */
 	int deleteByMusicGroupId(@Param("musicGroupId")String musicGroupId, @Param("groupType")GroupType groupType);
+
+	/**
+	 * @describe 清空指定课程教师签到信息
+	 * @author Joburgess
+	 * @date 2020/1/9
+	 * @param courseScheduleId: 课程编号
+	 * @return int
+	 */
+	int cleanCourseTeacherSignInfo(@Param("courseScheduleId") Long courseScheduleId);
 }

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

@@ -1389,6 +1389,10 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
                 throw new BizException("不能调整今天及以前的课程");
             }
 
+            if (newCourseSchedule.getStartClassTime().after(now)){
+                teacherAttendanceDao.cleanCourseTeacherSignInfo(newCourseSchedule.getId());
+            }
+
             boolean courseTimeIsChange = false;
             int newCourseTime = DateUtil.minutesBetween(newCourseSchedule.getStartClassTime(), newCourseSchedule.getEndClassTime());
             int oldCourseTime = DateUtil.minutesBetween(oldCourseSchedule.getStartClassTime(), oldCourseSchedule.getEndClassTime());

+ 12 - 5
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentAttendanceServiceImpl.java

@@ -189,14 +189,21 @@ public class StudentAttendanceServiceImpl extends BaseServiceImpl<Long, StudentA
 			return;
 		}
 
+		YesOrNoEnum yesOrNoEnum = YesOrNoEnum.NO;
+		if(Objects.nonNull(courseSchedule.getSchoolId())){
+			yesOrNoEnum = courseScheduleService.enableOnlyNormalAttendance(courseSchedule.getStartClassTime(),
+					sysUser.getId().longValue(),
+					true,
+					courseSchedule.getSchoolId().intValue());
+		}
+		teacherAttendance.setSignInTime(date);
+		teacherAttendance.setSignInStatus(YesOrNoEnum.YES);
+		teacherAttendance.setSignOutTime(date);
+		teacherAttendance.setSignOutStatus(YesOrNoEnum.YES);
+		teacherAttendance.setCurrentClassTimes(classTimes + 1);
 		if(Objects.nonNull(teacherAttendance.getId())){
 			teacherAttendanceDao.update(teacherAttendance);
 		}else{
-			teacherAttendance.setSignInTime(date);
-			teacherAttendance.setSignInStatus(YesOrNoEnum.YES);
-			teacherAttendance.setSignOutTime(date);
-			teacherAttendance.setSignOutStatus(YesOrNoEnum.YES);
-			teacherAttendance.setCurrentClassTimes(classTimes + 1);
 			teacherAttendanceDao.insert(teacherAttendance);
 		}
 	}

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

@@ -340,8 +340,13 @@
     	update teacher_attendance set sign_out_status_ = 1,sign_out_time_= now()
     	where FIND_IN_SET(course_schedule_id_,#{courseScheduleIdList}) and sign_in_status_ = 1
     </update>
-	
-	<delete id="deleteByMusicGroupId" parameterType="map" >
+    <update id="cleanCourseTeacherSignInfo">
+        update teacher_attendance
+        set sign_in_time_=null,sign_in_status_=null,sign_out_status_ = null,sign_out_time_= null
+    	where course_schedule_id_=#{courseScheduleIdList}
+    </update>
+
+    <delete id="deleteByMusicGroupId" parameterType="map" >
 		DELETE ta FROM teacher_attendance ta left join course_schedule cs on ta.course_schedule_id_ = cs.id_ WHERE ta.music_group_id_=#{musicGroupId} AND ta.group_type_=#{groupType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler} and cs.status_ = 'NOT_START'
 	</delete>
 </mapper>