|
@@ -1206,15 +1206,19 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
|
|
|
Map<Integer, List<TeacherAttendanceWrapper.CourseTeacherAttendance>> attendanceMap = new HashMap<>(dtoList.size());
|
|
|
Map<Integer, List<TeacherAttendanceWrapper.CourseTeacherAttendance>> termAttendanceMap = new HashMap<>(dtoList.size());
|
|
|
Map<Integer, School> idSchoolMap = new HashMap<>();
|
|
|
+ Set<Integer> schoolIds = new HashSet<>();
|
|
|
if(CollectionUtils.isNotEmpty(courseTeacherAttendances)){
|
|
|
attendanceMap = courseTeacherAttendances.stream().collect(Collectors.groupingBy(e -> e.getActualTeacherId()));
|
|
|
+ schoolIds = courseTeacherAttendances.stream().map(TeacherAttendanceWrapper.CourseTeacherAttendance::getSchoolId).collect(Collectors.toSet());
|
|
|
+ }
|
|
|
+ if(CollectionUtils.isNotEmpty(termCourseTeacherAttendances)){
|
|
|
termAttendanceMap = termCourseTeacherAttendances.stream().collect(Collectors.groupingBy(e -> e.getActualTeacherId()));
|
|
|
- Set<Integer> schoolIds = courseTeacherAttendances.stream().map(TeacherAttendanceWrapper.CourseTeacherAttendance::getSchoolId).collect(Collectors.toSet());
|
|
|
- if(schoolIds != null && schoolIds.size() > 0){
|
|
|
- List<School> schools = schoolDao.getSchools(new ArrayList<>(schoolIds));
|
|
|
- if(!org.springframework.util.CollectionUtils.isEmpty(schools)){
|
|
|
- idSchoolMap = schools.stream().collect(Collectors.toMap(School::getId, s->s, (s1, s2)->s1));
|
|
|
- }
|
|
|
+ schoolIds.addAll(termCourseTeacherAttendances.stream().map(TeacherAttendanceWrapper.CourseTeacherAttendance::getSchoolId).collect(Collectors.toSet()));
|
|
|
+ }
|
|
|
+ if(CollectionUtils.isNotEmpty(schoolIds)){
|
|
|
+ List<School> schools = schoolDao.getSchools(new ArrayList<>(schoolIds));
|
|
|
+ if(!org.springframework.util.CollectionUtils.isEmpty(schools)){
|
|
|
+ idSchoolMap = schools.stream().collect(Collectors.toMap(School::getId, s->s, (s1, s2)->s1));
|
|
|
}
|
|
|
}
|
|
|
//定位范围
|
|
@@ -1223,29 +1227,33 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
|
|
|
for (TeacherAttendanceSumDto dto : dtoList) {
|
|
|
List<TeacherAttendanceWrapper.CourseTeacherAttendance> attendances = attendanceMap.get(dto.getTeacherId());
|
|
|
if(CollectionUtils.isNotEmpty(attendances)){
|
|
|
- dto.setTeacherAttendanceStatus(TeacherAttendanceQueryInfo.TeacherAttendanceEnum.NORMAL);
|
|
|
- att:for (TeacherAttendanceWrapper.CourseTeacherAttendance attendance : attendances) {
|
|
|
- if(attendance.getSignInStatus() == 0 || attendance.getSignOutStatus() == 0){
|
|
|
- dto.setTeacherAttendanceStatus(TeacherAttendanceQueryInfo.TeacherAttendanceEnum.ERR);
|
|
|
- break att;
|
|
|
- }
|
|
|
- if(attendance.getTeachMode() == TeachModeEnum.OFFLINE){
|
|
|
- if(StringUtils.isEmpty(attendance.getSignInLongitudeLatitude()) || StringUtils.isEmpty(attendance.getSignOutLongitudeLatitude())){
|
|
|
+ Map<Integer, List<TeacherAttendanceWrapper.CourseTeacherAttendance>> classMap = attendances.stream().collect(Collectors.groupingBy(e -> e.getClassGroupId()));
|
|
|
+ List<TeacherAttendanceWrapper.CourseTeacherAttendance> attendanceList = classMap.get(dto.getClassGroupId());
|
|
|
+ if(CollectionUtils.isNotEmpty(attendanceList)){
|
|
|
+ dto.setTeacherAttendanceStatus(TeacherAttendanceQueryInfo.TeacherAttendanceEnum.NORMAL);
|
|
|
+ att:for (TeacherAttendanceWrapper.CourseTeacherAttendance attendance : attendances) {
|
|
|
+ if(attendance.getSignInStatus() == 0 || attendance.getSignOutStatus() == 0){
|
|
|
dto.setTeacherAttendanceStatus(TeacherAttendanceQueryInfo.TeacherAttendanceEnum.ERR);
|
|
|
break att;
|
|
|
- }else {
|
|
|
- //计算考勤范围
|
|
|
- School school = idSchoolMap.get(attendance.getSchoolId());
|
|
|
- if(school != null){
|
|
|
- Boolean signRange = courseScheduleTeacherSalaryService.getSignRange(school.getLongitudeLatitude(), attendance.getSignInLongitudeLatitude(), attendanceRange);
|
|
|
- if(!signRange){
|
|
|
- dto.setTeacherAttendanceStatus(TeacherAttendanceQueryInfo.TeacherAttendanceEnum.ERR);
|
|
|
- break att;
|
|
|
- }
|
|
|
- signRange = courseScheduleTeacherSalaryService.getSignRange(school.getLongitudeLatitude(), attendance.getSignOutLongitudeLatitude(), attendanceRange);
|
|
|
- if(!signRange){
|
|
|
- dto.setTeacherAttendanceStatus(TeacherAttendanceQueryInfo.TeacherAttendanceEnum.ERR);
|
|
|
- break att;
|
|
|
+ }
|
|
|
+ if(attendance.getTeachMode() == TeachModeEnum.OFFLINE){
|
|
|
+ if(StringUtils.isEmpty(attendance.getSignInLongitudeLatitude()) || StringUtils.isEmpty(attendance.getSignOutLongitudeLatitude())){
|
|
|
+ dto.setTeacherAttendanceStatus(TeacherAttendanceQueryInfo.TeacherAttendanceEnum.ERR);
|
|
|
+ break att;
|
|
|
+ }else {
|
|
|
+ //计算考勤范围
|
|
|
+ School school = idSchoolMap.get(attendance.getSchoolId());
|
|
|
+ if(school != null){
|
|
|
+ Boolean signRange = courseScheduleTeacherSalaryService.getSignRange(school.getLongitudeLatitude(), attendance.getSignInLongitudeLatitude(), attendanceRange);
|
|
|
+ if(!signRange){
|
|
|
+ dto.setTeacherAttendanceStatus(TeacherAttendanceQueryInfo.TeacherAttendanceEnum.ERR);
|
|
|
+ break att;
|
|
|
+ }
|
|
|
+ signRange = courseScheduleTeacherSalaryService.getSignRange(school.getLongitudeLatitude(), attendance.getSignOutLongitudeLatitude(), attendanceRange);
|
|
|
+ if(!signRange){
|
|
|
+ dto.setTeacherAttendanceStatus(TeacherAttendanceQueryInfo.TeacherAttendanceEnum.ERR);
|
|
|
+ break att;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -1254,33 +1262,37 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
|
|
|
}
|
|
|
List<TeacherAttendanceWrapper.CourseTeacherAttendance> termAttendances = termAttendanceMap.get(dto.getTeacherId());
|
|
|
if(CollectionUtils.isNotEmpty(termAttendances)){
|
|
|
- int errCourseNum = 0;
|
|
|
- att:for (TeacherAttendanceWrapper.CourseTeacherAttendance attendance : termAttendances) {
|
|
|
- if(attendance.getSignInStatus() == 0 || attendance.getSignOutStatus() == 0){
|
|
|
- errCourseNum++;
|
|
|
- continue att;
|
|
|
- }
|
|
|
- if(attendance.getTeachMode() == TeachModeEnum.OFFLINE){
|
|
|
- if(StringUtils.isEmpty(attendance.getSignInLongitudeLatitude()) || StringUtils.isEmpty(attendance.getSignOutLongitudeLatitude())){
|
|
|
+ Map<Integer, List<TeacherAttendanceWrapper.CourseTeacherAttendance>> classMap = termAttendances.stream().collect(Collectors.groupingBy(e -> e.getClassGroupId()));
|
|
|
+ List<TeacherAttendanceWrapper.CourseTeacherAttendance> attendanceList = classMap.get(dto.getClassGroupId());
|
|
|
+ if(CollectionUtils.isNotEmpty(attendanceList)){
|
|
|
+ int errCourseNum = 0;
|
|
|
+ att:for (TeacherAttendanceWrapper.CourseTeacherAttendance attendance : attendanceList) {
|
|
|
+ if(attendance.getSignInStatus() == 0 || attendance.getSignOutStatus() == 0){
|
|
|
errCourseNum++;
|
|
|
- }else {
|
|
|
- //计算考勤范围
|
|
|
- School school = idSchoolMap.get(attendance.getSchoolId());
|
|
|
- if(school != null){
|
|
|
- Boolean signRange = courseScheduleTeacherSalaryService.getSignRange(school.getLongitudeLatitude(), attendance.getSignInLongitudeLatitude(), attendanceRange);
|
|
|
- if(!signRange){
|
|
|
- errCourseNum++;
|
|
|
- continue att;
|
|
|
- }
|
|
|
- signRange = courseScheduleTeacherSalaryService.getSignRange(school.getLongitudeLatitude(), attendance.getSignOutLongitudeLatitude(), attendanceRange);
|
|
|
- if(!signRange){
|
|
|
- errCourseNum++;
|
|
|
+ continue att;
|
|
|
+ }
|
|
|
+ if(attendance.getTeachMode() == TeachModeEnum.OFFLINE){
|
|
|
+ if(StringUtils.isEmpty(attendance.getSignInLongitudeLatitude()) || StringUtils.isEmpty(attendance.getSignOutLongitudeLatitude())){
|
|
|
+ errCourseNum++;
|
|
|
+ }else {
|
|
|
+ //计算考勤范围
|
|
|
+ School school = idSchoolMap.get(attendance.getSchoolId());
|
|
|
+ if(school != null){
|
|
|
+ Boolean signRange = courseScheduleTeacherSalaryService.getSignRange(school.getLongitudeLatitude(), attendance.getSignInLongitudeLatitude(), attendanceRange);
|
|
|
+ if(!signRange){
|
|
|
+ errCourseNum++;
|
|
|
+ continue att;
|
|
|
+ }
|
|
|
+ signRange = courseScheduleTeacherSalaryService.getSignRange(school.getLongitudeLatitude(), attendance.getSignOutLongitudeLatitude(), attendanceRange);
|
|
|
+ if(!signRange){
|
|
|
+ errCourseNum++;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ dto.setErrCourseNum(errCourseNum);
|
|
|
}
|
|
|
- dto.setErrCourseNum(errCourseNum);
|
|
|
}
|
|
|
}
|
|
|
if(queryInfo.getTeacherAttendanceStatus() != null){
|