|
@@ -10,14 +10,17 @@ import com.ym.mec.biz.dal.entity.*;
|
|
|
import com.ym.mec.biz.dal.enums.CourseStatusEnum;
|
|
|
import com.ym.mec.biz.dal.enums.ParamEnum;
|
|
|
import com.ym.mec.biz.dal.enums.SignStatusEnum;
|
|
|
+import com.ym.mec.biz.dal.enums.YesOrNoEnum;
|
|
|
import com.ym.mec.biz.dal.page.TeacherAttendanceQueryInfo;
|
|
|
import com.ym.mec.biz.service.CourseHomeworkService;
|
|
|
import com.ym.mec.biz.service.TeacherAttendanceService;
|
|
|
import com.ym.mec.common.dal.BaseDAO;
|
|
|
+import com.ym.mec.common.exception.BizException;
|
|
|
import com.ym.mec.common.page.PageInfo;
|
|
|
import com.ym.mec.common.service.impl.BaseServiceImpl;
|
|
|
import com.ym.mec.util.collection.MapUtil;
|
|
|
|
|
|
+import org.apache.commons.lang.StringUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
@@ -51,29 +54,52 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
|
|
|
@Override
|
|
|
public void addTeacherAttendanceRecord(TeacherSignOutDto teacherSignOutDto) {
|
|
|
SysUser user = sysUserFeignService.queryUserInfo();
|
|
|
- TeacherAttendance teacherAttendance=teacherSignOutDto.getTeacherAttendanceInfo();
|
|
|
- teacherAttendance.setTeacherId(Long.valueOf(user.getId()));
|
|
|
+ if(Objects.isNull(user)){
|
|
|
+ throw new BizException("请登录");
|
|
|
+ }
|
|
|
+
|
|
|
+ if(Objects.isNull(teacherSignOutDto.getTeacherAttendanceInfo().getCourseScheduleId())){
|
|
|
+ throw new BizException("请选择课程!");
|
|
|
+ }
|
|
|
+
|
|
|
+ TeacherAttendance teacherAttendance=teacherAttendanceDao.findByTeacherAttendanceInfo(user.getId().longValue(),teacherSignOutDto.getTeacherAttendanceInfo().getCourseScheduleId());
|
|
|
+
|
|
|
+ if(Objects.isNull(teacherAttendance)){
|
|
|
+ if(teacherSignOutDto.getTeacherAttendanceInfo().getStatus()==SignStatusEnum.YES_QUIT){
|
|
|
+ throw new BizException("该课程还未签到,不能进行签退操作!");
|
|
|
+ }
|
|
|
+ teacherAttendance=teacherSignOutDto.getTeacherAttendanceInfo();
|
|
|
+ teacherAttendance.setTeacherId(Long.valueOf(user.getId()));
|
|
|
+ }
|
|
|
+
|
|
|
CourseSchedule courseSchedule=new CourseSchedule();
|
|
|
TeacherAttendanceDto currentCourseDetail = courseScheduleDao.getCurrentCourseDetail(teacherAttendance.getCourseScheduleId());
|
|
|
courseSchedule.setId(currentCourseDetail.getCourseScheduleId());
|
|
|
+
|
|
|
+ teacherAttendance.setMusicGroupId(currentCourseDetail.getMusicGroupId());
|
|
|
+ teacherAttendance.setClassGroupId(currentCourseDetail.getClassId());
|
|
|
Date date = new Date();
|
|
|
if(teacherAttendance.getStatus()!= SignStatusEnum.YES_QUIT){
|
|
|
Long timeGap=(date.getTime()-currentCourseDetail.getStartClassTime().getTime())/1000/60;
|
|
|
if(timeGap<= ParamEnum.TEACHER_ATTENDANCE_TIME_GAP.getCode()){
|
|
|
- teacherAttendance.setStatus(SignStatusEnum.SIGN);
|
|
|
+ teacherAttendance.setSignInStatus(YesOrNoEnum.YES);
|
|
|
}else{
|
|
|
- teacherAttendance.setStatus(SignStatusEnum.EXCEPTION);
|
|
|
+ if(StringUtils.isEmpty(teacherAttendance.getRemark())){
|
|
|
+ throw new BizException("当前为异常签到,请填写原因!");
|
|
|
+ }
|
|
|
+ teacherAttendance.setSignInStatus(YesOrNoEnum.NO);
|
|
|
}
|
|
|
+ teacherAttendance.setSignInTime(date);
|
|
|
courseSchedule.setStatus(CourseStatusEnum.UNDERWAY);
|
|
|
+ teacherAttendanceDao.insert(teacherAttendance);
|
|
|
}else{
|
|
|
+ teacherAttendance.setSignOutStatus(YesOrNoEnum.YES);
|
|
|
+ teacherAttendance.setSignOutTime(date);
|
|
|
+ teacherAttendance.setCreateTime(date);
|
|
|
courseSchedule.setStatus(CourseStatusEnum.OVER);
|
|
|
+ teacherAttendanceDao.update(teacherAttendance);
|
|
|
}
|
|
|
courseScheduleDao.update(courseSchedule);
|
|
|
- teacherAttendance.setMusicGroupId(currentCourseDetail.getMusicGroupId());
|
|
|
- teacherAttendance.setClassGroupId(currentCourseDetail.getClassId());
|
|
|
- teacherAttendance.setSignInTime(date);
|
|
|
- teacherAttendance.setCreateTime(date);
|
|
|
- teacherAttendanceDao.insert(teacherAttendance);
|
|
|
if(teacherAttendance.getStatus()==SignStatusEnum.YES_QUIT){
|
|
|
//更新课次
|
|
|
ClassGroup classGroup=new ClassGroup();
|