|
@@ -25,18 +25,19 @@ import com.ym.mec.thirdparty.message.MessageSenderPluginContext;
|
|
|
import com.ym.mec.thirdparty.message.MessageSenderPluginContext.MessageSender;
|
|
|
import com.ym.mec.util.collection.MapUtil;
|
|
|
import com.ym.mec.util.date.DateUtil;
|
|
|
+import org.apache.commons.collections.CollectionUtils;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Isolation;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
-import org.springframework.util.CollectionUtils;
|
|
|
|
|
|
+import java.time.LocalDate;
|
|
|
import java.time.LocalDateTime;
|
|
|
+import java.time.format.DateTimeFormatter;
|
|
|
import java.util.*;
|
|
|
import java.util.function.Function;
|
|
|
import java.util.stream.Collectors;
|
|
|
-
|
|
|
import static com.ym.mec.biz.dal.enums.ComplaintsStatusEnum.REPEAL;
|
|
|
import static com.ym.mec.biz.dal.enums.SignInStatusEnum.*;
|
|
|
|
|
@@ -83,10 +84,10 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
|
|
|
private StudentService studentService;
|
|
|
@Autowired
|
|
|
private LessonExaminationService lessonExaminationService;
|
|
|
-
|
|
|
@Autowired
|
|
|
private SysConfigService sysConfigService;
|
|
|
-
|
|
|
+ @Autowired
|
|
|
+ private MusicGroupDao musicGroupDao;
|
|
|
@Autowired
|
|
|
private StudentLessonTrainingDetailService studentLessonTrainingDetailService;
|
|
|
|
|
@@ -1103,11 +1104,60 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
|
|
|
|
|
|
@Override
|
|
|
public List<TeacherAttendanceSumDto> queryTeacherAttendance(TeacherAttendanceQueryInfo queryInfo) {
|
|
|
- return null;
|
|
|
+ //获取合作单位关联的所有乐团列表
|
|
|
+ List<String> musicGroupIds = musicGroupDao.findNormalByCooperationId(queryInfo.getCoopId());
|
|
|
+ if(CollectionUtils.isEmpty(musicGroupIds)){
|
|
|
+ return Collections.EMPTY_LIST;
|
|
|
+ }
|
|
|
+ //获取当前学期
|
|
|
+ Date date = new Date();
|
|
|
+ String startTerm = DateUtil.getStartTerm(date);
|
|
|
+ String endTerm = DateUtil.getEndTerm(date);
|
|
|
+ queryInfo.setStartTerm(startTerm);
|
|
|
+ queryInfo.setEndTerm(endTerm);
|
|
|
+ queryInfo.setMusicGroupIds(musicGroupIds);
|
|
|
+ queryInfo.setClassGroupId(queryInfo.getClassGroupId());
|
|
|
+ List<TeacherAttendanceSumDto> dtoList = teacherAttendanceDao.queryTeacherAttendance(queryInfo);
|
|
|
+ if(CollectionUtils.isNotEmpty(dtoList)){
|
|
|
+ List<Integer> teacherIds = dtoList.stream().map(e -> e.getTeacherId()).collect(Collectors.toList());
|
|
|
+ List<SimpleUserDto> usersSimpleInfo = teacherDao.getUsersSimpleInfo(teacherIds);
|
|
|
+ Map<Integer, SimpleUserDto> simpleUserDtoMap = usersSimpleInfo.stream().collect(Collectors.groupingBy(e -> e.getUserId(), Collectors.collectingAndThen(Collectors.toList(), v -> v.get(0))));
|
|
|
+ //获取本周老师考勤状态
|
|
|
+ Date now = new Date();
|
|
|
+ String monday = DateUtil.dateToString(DateUtil.getWeekDayWithDate(now, Calendar.MONDAY), DateUtil.ISO_EXPANDED_DATE_FORMAT);
|
|
|
+ String sunday = DateUtil.dateToString(DateUtil.getWeekDayWithDate(now, Calendar.SUNDAY), DateUtil.ISO_EXPANDED_DATE_FORMAT);
|
|
|
+ TeacherAttendanceQueryInfo info = new TeacherAttendanceQueryInfo();
|
|
|
+ info.setStartTerm(monday);
|
|
|
+ info.setEndTerm(sunday);
|
|
|
+ info.setMusicGroupIds(queryInfo.getMusicGroupIds());
|
|
|
+ Map<Integer,Integer> weekCount = MapUtil.convertIntegerMap(teacherAttendanceDao.queryTeacherAttendanceForWeek(info));
|
|
|
+ for (TeacherAttendanceSumDto dto : dtoList) {
|
|
|
+ SimpleUserDto userDto = simpleUserDtoMap.get(dto.getTeacherId());
|
|
|
+ if(Objects.nonNull(userDto)){
|
|
|
+ dto.setTeacherName(userDto.getUserName());
|
|
|
+ dto.setTeacherAvatar(userDto.getAvatar());
|
|
|
+ }
|
|
|
+ Integer errCourseNum = weekCount.get(dto.getTeacherId());
|
|
|
+ if(errCourseNum == null){
|
|
|
+ dto.setTeacherAttendanceStatus(TeacherAttendanceQueryInfo.TeacherAttendanceEnum.NO_COURSE);
|
|
|
+ }else {
|
|
|
+ if(errCourseNum > 0){
|
|
|
+ dto.setTeacherAttendanceStatus(TeacherAttendanceQueryInfo.TeacherAttendanceEnum.ERR);
|
|
|
+ }else {
|
|
|
+ dto.setTeacherAttendanceStatus(TeacherAttendanceQueryInfo.TeacherAttendanceEnum.NORMAL);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(queryInfo.getTeacherAttendanceStatus() != null){
|
|
|
+ dtoList = dtoList.stream().filter(e->e.getTeacherAttendanceStatus() == queryInfo.getTeacherAttendanceStatus()).collect(Collectors.toList());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return dtoList;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public List<TeacherAttendanceListDto> getClassTeacherAttendance(Integer classGroupId, Integer teacherId) {
|
|
|
+
|
|
|
return null;
|
|
|
}
|
|
|
|