|  | @@ -26,6 +26,7 @@ import org.springframework.transaction.annotation.Transactional;
 | 
	
		
			
				|  |  |  import org.springframework.util.CollectionUtils;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  import java.util.*;
 | 
	
		
			
				|  |  | +import java.util.stream.Collectors;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  import static com.ym.mec.biz.dal.enums.ComplaintsStatusEnum.REPEAL;
 | 
	
		
			
				|  |  |  import static com.ym.mec.biz.dal.enums.SignInStatusEnum.*;
 | 
	
	
		
			
				|  | @@ -432,6 +433,15 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
 | 
	
		
			
				|  |  |  		Integer minutes = Integer.parseInt(sysConfigDao.findConfigValue(SysConfigService.SIGN_OUT_MESSAGE_PUSH_MINUTE));;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  		List<Mapper> list = teacherAttendanceDao.queryNoSignOutListByOverMinutes(minutes);
 | 
	
		
			
				|  |  | +		if(CollectionUtils.isEmpty(list)){
 | 
	
		
			
				|  |  | +			return true;
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		List<Long> courseScheduleIds = list.stream().map(m -> m.getCourseScheduleId().longValue()).collect(Collectors.toList());
 | 
	
		
			
				|  |  | +		List<CourseScheduleTeacherSalary> courseScheduleTeacherSalarys = courseScheduleTeacherSalaryDao.findByCourseSchedules(courseScheduleIds);
 | 
	
		
			
				|  |  | +		Map<Long, List<CourseScheduleTeacherSalary>> courseTeacherSalaryMap = new HashMap<>();
 | 
	
		
			
				|  |  | +		if(!CollectionUtils.isEmpty(courseScheduleTeacherSalarys)){
 | 
	
		
			
				|  |  | +			courseTeacherSalaryMap = courseScheduleTeacherSalarys.stream().collect(Collectors.groupingBy(CourseScheduleTeacherSalary::getCourseScheduleId));
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  		for (Mapper mapper : list) {
 | 
	
		
			
				|  |  |  			Map<Integer, String> receivers = new HashMap<Integer, String>();
 | 
	
	
		
			
				|  | @@ -440,9 +450,19 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  			String key = "SignOut_" + userId + "_" + mapper.getCourseScheduleId();
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +			List<CourseScheduleTeacherSalary> courseScheduleTeacherSalaries = courseTeacherSalaryMap.get(mapper.getCourseScheduleId().longValue());
 | 
	
		
			
				|  |  | +			TeachTypeEnum teachType = TeachTypeEnum.BISHOP;
 | 
	
		
			
				|  |  | +			if(!CollectionUtils.isEmpty(courseScheduleTeacherSalaries)){
 | 
	
		
			
				|  |  | +				for (CourseScheduleTeacherSalary courseScheduleTeacherSalary : courseScheduleTeacherSalaries) {
 | 
	
		
			
				|  |  | +					if(mapper.getKey().equals(courseScheduleTeacherSalary.getUserId())){
 | 
	
		
			
				|  |  | +						teachType = courseScheduleTeacherSalary.getTeacherRole();
 | 
	
		
			
				|  |  | +					}
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  			if (!redisCache.exists(key)) {
 | 
	
		
			
				|  |  |  				sysMessageService.batchSendMessage(MessageSender.JIGUANG, MessageTypeEnum.TEACHER_PUSH_SIGN_OUT_MESSAGE, receivers, null, 0,
 | 
	
		
			
				|  |  | -						"5?courseScheduleId=" + mapper.getCourseScheduleId(), "TEACHER", mapper.getValue());
 | 
	
		
			
				|  |  | +						"5?courseScheduleId=" + mapper.getCourseScheduleId() + "&teacherRole=" + teachType.getCode(), "TEACHER", mapper.getValue());
 | 
	
		
			
				|  |  |  				redisCache.put(key, 1, (int) DateUtil.getTomorrowZeroSeconds());
 | 
	
		
			
				|  |  |  			}
 | 
	
		
			
				|  |  |  		}
 |