|
@@ -7,6 +7,7 @@ import com.ym.mec.biz.dal.dao.*;
|
|
|
import com.ym.mec.biz.dal.dto.*;
|
|
|
import com.ym.mec.biz.dal.entity.*;
|
|
|
import com.ym.mec.biz.dal.enums.*;
|
|
|
+import com.ym.mec.biz.dal.page.TeacherAttendanceComplaintsQueryInfo;
|
|
|
import com.ym.mec.biz.dal.page.TeacherCloseQueryInfo;
|
|
|
import com.ym.mec.biz.service.*;
|
|
|
import com.ym.mec.common.dal.BaseDAO;
|
|
@@ -25,6 +26,7 @@ import org.springframework.util.CollectionUtils;
|
|
|
|
|
|
import java.util.*;
|
|
|
|
|
|
+import static com.ym.mec.biz.dal.enums.ComplaintsStatusEnum.REPEAL;
|
|
|
import static com.ym.mec.biz.dal.enums.SignInStatusEnum.*;
|
|
|
|
|
|
@Service
|
|
@@ -601,7 +603,136 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
|
|
|
teacherId.forEach(e->{
|
|
|
receivers.put(e,e.toString());
|
|
|
});
|
|
|
- String url = new StringBuffer("8?").append(sysConfigDao.findConfigValue(SysConfigService.TEACHER_BASE_URL)).append("/#/appealResult?date=").append(format).toString();
|
|
|
+ String url = new StringBuffer("10?date=").append(format).toString();
|
|
|
sysMessageService.batchSendMessage(MessageSender.JIGUANG,MessageTypeEnum.PUSH_TEACHER_EXCEPTION_ATTENDANCE,receivers,null,0,url,"TEACHER",format);
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public synchronized void addComplaints(Long courseScheduleId, String content) {
|
|
|
+ SysUser user = sysUserFeignService.queryUserInfo();
|
|
|
+ if(Objects.isNull(user)){
|
|
|
+ throw new BizException("请登录");
|
|
|
+ }
|
|
|
+ TeacherAttendance teacherAttendance = teacherAttendanceDao.findByTeacherAttendanceInfo(user.getId().longValue(), courseScheduleId);
|
|
|
+ if(teacherAttendance == null){
|
|
|
+ throw new BizException("考勤信息不存在");
|
|
|
+ }
|
|
|
+ if(teacherAttendance.getComplaintsStatus() != null && teacherAttendance.getComplaintsStatus() != REPEAL){
|
|
|
+ throw new BizException("请勿重复提交考勤申述");
|
|
|
+ }
|
|
|
+ CourseSchedule courseSchedule = courseScheduleDao.get(courseScheduleId);
|
|
|
+ if(courseSchedule == null){
|
|
|
+ throw new BizException("课程不存在");
|
|
|
+ }
|
|
|
+ //如果课程时间在两天前
|
|
|
+ Date date = new Date();
|
|
|
+ int i = DateUtil.daysBetween(courseSchedule.getClassDate(), DateUtil.stringToDate(DateUtil.format(date,DateUtil.DEFAULT_PATTERN),DateUtil.DEFAULT_PATTERN));
|
|
|
+ if(i > 1){
|
|
|
+ throw new BizException("超出可申述时间");
|
|
|
+ }
|
|
|
+ teacherAttendance.setIsComplaints(1);
|
|
|
+ teacherAttendance.setComplaintsStatus(ComplaintsStatusEnum.WAIT);
|
|
|
+ teacherAttendance.setComplaintsContent(content);
|
|
|
+ teacherAttendance.setComplaintsTime(date);
|
|
|
+ teacherAttendanceDao.update(teacherAttendance);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public void repealComplaints(Long courseScheduleId) {
|
|
|
+ SysUser user = sysUserFeignService.queryUserInfo();
|
|
|
+ if(Objects.isNull(user)){
|
|
|
+ throw new BizException("请登录");
|
|
|
+ }
|
|
|
+ TeacherAttendance teacherAttendance = teacherAttendanceDao.findByTeacherAttendanceInfo(user.getId().longValue(), courseScheduleId);
|
|
|
+ if(teacherAttendance == null){
|
|
|
+ throw new BizException("考勤信息不存在");
|
|
|
+ }
|
|
|
+ if(teacherAttendance.getComplaintsStatus() == ComplaintsStatusEnum.WAIT){
|
|
|
+ teacherAttendance.setComplaintsStatus(REPEAL);
|
|
|
+ teacherAttendanceDao.update(teacherAttendance);
|
|
|
+ }else {
|
|
|
+ throw new BizException("操作失败: 当前申述状态不允许撤销");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public PageInfo<TeacherAttendanceComplaintsDto> queryTeacherAttendanceComplaints(TeacherAttendanceComplaintsQueryInfo queryInfo) {
|
|
|
+ PageInfo<TeacherAttendanceComplaintsDto> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
|
|
|
+ Map<String, Object> params = new HashMap<>();
|
|
|
+ MapUtil.populateMap(params, queryInfo);
|
|
|
+
|
|
|
+ List<TeacherAttendanceComplaintsDto> dataList = null;
|
|
|
+ int count = teacherAttendanceDao.countTeacherAttendanceComplaints(params);
|
|
|
+ if (count > 0) {
|
|
|
+ pageInfo.setTotal(count);
|
|
|
+ params.put("offset", pageInfo.getOffset());
|
|
|
+ dataList = teacherAttendanceDao.queryTeacherAttendanceComplaints(params);
|
|
|
+ }
|
|
|
+ if (count == 0) {
|
|
|
+ dataList = new ArrayList<>();
|
|
|
+ }
|
|
|
+ pageInfo.setRows(dataList);
|
|
|
+ return pageInfo;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public void agreeTeacherAttendanceComplaints(Integer signInStatus, Integer signOutStatus, long teacherAttendanceId,String content) {
|
|
|
+ SysUser user = sysUserFeignService.queryUserInfo();
|
|
|
+ if(Objects.isNull(user)){
|
|
|
+ throw new BizException("请登录");
|
|
|
+ }
|
|
|
+ TeacherAttendance teacherAttendance = teacherAttendanceDao.get(teacherAttendanceId);
|
|
|
+ if(teacherAttendance == null){
|
|
|
+ throw new BizException("考勤信息不存在");
|
|
|
+ }
|
|
|
+ if(teacherAttendance.getComplaintsStatus() == ComplaintsStatusEnum.WAIT){
|
|
|
+ if(signInStatus != null){
|
|
|
+ teacherAttendance.setSignInStatus(YesOrNoEnum.YES);
|
|
|
+ }
|
|
|
+ if(signOutStatus != null){
|
|
|
+ teacherAttendance.setSignOutStatus(YesOrNoEnum.YES);
|
|
|
+ }
|
|
|
+ teacherAttendance.setDisposeContent(content);
|
|
|
+ teacherAttendance.setOperator(user.getId());
|
|
|
+ teacherAttendance.setComplaintsStatus(ComplaintsStatusEnum.PASS);
|
|
|
+ teacherAttendanceDao.update(teacherAttendance);
|
|
|
+ CourseSchedule courseSchedule = courseScheduleDao.get(teacherAttendance.getCourseScheduleId());
|
|
|
+ String format = DateUtil.format(courseSchedule.getClassDate(), DateUtil.DEFAULT_PATTERN);
|
|
|
+ Map<Integer, String> receivers = new HashMap<>(1);
|
|
|
+ receivers.put(user.getId(),user.getId().toString());
|
|
|
+ sysMessageService.batchSendMessage(MessageSender.JIGUANG, MessageTypeEnum.TEACHER_ATTENDANCE_COMPLAINTS_RESULT, receivers, null, 0, null, "TEACHER",
|
|
|
+ format,courseSchedule.getName(),"通过");
|
|
|
+ }else {
|
|
|
+ throw new BizException("操作失败: 当前申述状态不允许该操作");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void rejectTeacherAttendanceComplaints(long teacherAttendanceId,String content) {
|
|
|
+ SysUser user = sysUserFeignService.queryUserInfo();
|
|
|
+ if(Objects.isNull(user)){
|
|
|
+ throw new BizException("请登录");
|
|
|
+ }
|
|
|
+ TeacherAttendance teacherAttendance = teacherAttendanceDao.get(teacherAttendanceId);
|
|
|
+ if(teacherAttendance == null){
|
|
|
+ throw new BizException("考勤信息不存在");
|
|
|
+ }
|
|
|
+ if(teacherAttendance.getComplaintsStatus() == ComplaintsStatusEnum.WAIT){
|
|
|
+ teacherAttendance.setDisposeContent(content);
|
|
|
+ teacherAttendance.setOperator(user.getId());
|
|
|
+ teacherAttendance.setComplaintsStatus(ComplaintsStatusEnum.REJECT);
|
|
|
+ teacherAttendanceDao.update(teacherAttendance);
|
|
|
+ CourseSchedule courseSchedule = courseScheduleDao.get(teacherAttendance.getCourseScheduleId());
|
|
|
+ String format = DateUtil.format(courseSchedule.getClassDate(), DateUtil.DEFAULT_PATTERN);
|
|
|
+ Map<Integer, String> receivers = new HashMap<>(1);
|
|
|
+ receivers.put(user.getId(),user.getId().toString());
|
|
|
+ sysMessageService.batchSendMessage(MessageSender.JIGUANG, MessageTypeEnum.TEACHER_ATTENDANCE_COMPLAINTS_RESULT, receivers, null, 0, null, "TEACHER",
|
|
|
+ format,courseSchedule.getName(),"拒绝");
|
|
|
+ }else {
|
|
|
+ throw new BizException("操作失败: 当前申述状态不允许该操作");
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|