|
@@ -1,11 +1,64 @@
|
|
|
package com.ym.mec.biz.service.impl;
|
|
|
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.Calendar;
|
|
|
+import java.util.Date;
|
|
|
+import java.util.HashMap;
|
|
|
+import java.util.HashSet;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
+import java.util.Objects;
|
|
|
+import java.util.Set;
|
|
|
+import java.util.stream.Collectors;
|
|
|
+
|
|
|
+import org.apache.commons.lang3.StringUtils;
|
|
|
+import org.apache.commons.lang3.time.DateUtils;
|
|
|
+import org.slf4j.Logger;
|
|
|
+import org.slf4j.LoggerFactory;
|
|
|
+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.transaction.interceptor.TransactionAspectSupport;
|
|
|
+import org.springframework.util.CollectionUtils;
|
|
|
+
|
|
|
import com.ym.mec.auth.api.client.SysUserFeignService;
|
|
|
import com.ym.mec.auth.api.entity.SysUser;
|
|
|
-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.dao.ClassGroupDao;
|
|
|
+import com.ym.mec.biz.dal.dao.ClassGroupStudentMapperDao;
|
|
|
+import com.ym.mec.biz.dal.dao.CourseScheduleDao;
|
|
|
+import com.ym.mec.biz.dal.dao.CourseScheduleStudentPaymentDao;
|
|
|
+import com.ym.mec.biz.dal.dao.CourseScheduleTeacherSalaryDao;
|
|
|
+import com.ym.mec.biz.dal.dao.MusicGroupPaymentCalenderDao;
|
|
|
+import com.ym.mec.biz.dal.dao.MusicGroupQuitDao;
|
|
|
+import com.ym.mec.biz.dal.dao.MusicGroupStudentFeeDao;
|
|
|
+import com.ym.mec.biz.dal.dao.SchoolDao;
|
|
|
+import com.ym.mec.biz.dal.dao.StudentAttendanceDao;
|
|
|
+import com.ym.mec.biz.dal.dao.StudentDao;
|
|
|
+import com.ym.mec.biz.dal.dao.SysConfigDao;
|
|
|
+import com.ym.mec.biz.dal.dao.TeacherAttendanceDao;
|
|
|
+import com.ym.mec.biz.dal.dto.CourseScheduleResponse;
|
|
|
+import com.ym.mec.biz.dal.dto.ExportStudentAttendanceDto;
|
|
|
+import com.ym.mec.biz.dal.dto.StudentAttendanceDto;
|
|
|
+import com.ym.mec.biz.dal.dto.StudentAttendanceResponse;
|
|
|
+import com.ym.mec.biz.dal.dto.StudentAttendanceStatisticsResponse;
|
|
|
+import com.ym.mec.biz.dal.dto.StudentAttendanceStatusCountDto;
|
|
|
+import com.ym.mec.biz.dal.dto.StudentPersonalAttendanceDto;
|
|
|
+import com.ym.mec.biz.dal.dto.StudentStatusCountUtilEntity;
|
|
|
+import com.ym.mec.biz.dal.entity.ClassGroup;
|
|
|
+import com.ym.mec.biz.dal.entity.ClassGroupStudentMapper;
|
|
|
+import com.ym.mec.biz.dal.entity.CourseSchedule;
|
|
|
+import com.ym.mec.biz.dal.entity.CourseScheduleTeacherSalary;
|
|
|
+import com.ym.mec.biz.dal.entity.School;
|
|
|
+import com.ym.mec.biz.dal.entity.StudentAttendance;
|
|
|
+import com.ym.mec.biz.dal.entity.SysConfig;
|
|
|
+import com.ym.mec.biz.dal.entity.TeacherAttendance;
|
|
|
+import com.ym.mec.biz.dal.enums.CourseStatusEnum;
|
|
|
+import com.ym.mec.biz.dal.enums.GroupType;
|
|
|
+import com.ym.mec.biz.dal.enums.MessageTypeEnum;
|
|
|
+import com.ym.mec.biz.dal.enums.StudentAttendanceStatusEnum;
|
|
|
+import com.ym.mec.biz.dal.enums.TeachModeEnum;
|
|
|
+import com.ym.mec.biz.dal.enums.YesOrNoEnum;
|
|
|
import com.ym.mec.biz.dal.page.CourseHomeworkQueryInfo;
|
|
|
import com.ym.mec.biz.dal.page.ExportStudentAttendanceQueryInfo;
|
|
|
import com.ym.mec.biz.dal.page.StudentAttendanceQueryInfo;
|
|
@@ -20,20 +73,6 @@ import com.ym.mec.common.service.impl.BaseServiceImpl;
|
|
|
import com.ym.mec.thirdparty.message.MessageSenderPluginContext;
|
|
|
import com.ym.mec.util.collection.MapUtil;
|
|
|
import com.ym.mec.util.date.DateUtil;
|
|
|
-import org.apache.commons.lang3.StringUtils;
|
|
|
-import org.apache.commons.lang3.time.DateUtils;
|
|
|
-import org.slf4j.Logger;
|
|
|
-import org.slf4j.LoggerFactory;
|
|
|
-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.transaction.interceptor.TransactionAspectSupport;
|
|
|
-import org.springframework.transaction.interceptor.TransactionalProxy;
|
|
|
-import org.springframework.util.CollectionUtils;
|
|
|
-
|
|
|
-import java.util.*;
|
|
|
-import java.util.stream.Collectors;
|
|
|
|
|
|
@Service
|
|
|
public class StudentAttendanceServiceImpl extends BaseServiceImpl<Long, StudentAttendance> implements StudentAttendanceService {
|
|
@@ -354,20 +393,10 @@ public class StudentAttendanceServiceImpl extends BaseServiceImpl<Long, StudentA
|
|
|
hours = Integer.parseInt(str);
|
|
|
}
|
|
|
|
|
|
- int earliestTimeForLeave = 7;
|
|
|
- SysConfig earliestTimeForLeaveConfig = sysConfigService.findByParamName(SysConfigService.EARLIEST_TIME_FOR_LEAVE);
|
|
|
- if (Objects.nonNull(earliestTimeForLeaveConfig)) {
|
|
|
- earliestTimeForLeave = Integer.parseInt(earliestTimeForLeaveConfig.getParanValue());
|
|
|
- }
|
|
|
-
|
|
|
if (DateUtil.addHours(date, hours).after(courseSchedule.getStartClassTime())) {
|
|
|
throw new BizException("开课{}小时之前才可以请假", hours);
|
|
|
}
|
|
|
|
|
|
- if (DateUtil.addDays(DateUtils.truncate(date, Calendar.DAY_OF_MONTH), earliestTimeForLeave).compareTo(courseSchedule.getClassDate())<=0) {
|
|
|
- throw new BizException("请在开课前{}天内请假", earliestTimeForLeave);
|
|
|
- }
|
|
|
-
|
|
|
StudentAttendance studentAttendance = studentAttendanceDao.findByStatusAndCourseScheduleId(userId, courseScheduleId.intValue());
|
|
|
if (Objects.isNull(studentAttendance)) {
|
|
|
studentAttendance = new StudentAttendance();
|
|
@@ -626,17 +655,18 @@ public class StudentAttendanceServiceImpl extends BaseServiceImpl<Long, StudentA
|
|
|
pageInfo.setTotal(count);
|
|
|
params.put("offset", pageInfo.getOffset());
|
|
|
dataList = studentAttendanceDao.findStudentAttendance(params);
|
|
|
- CourseSchedule schedule = courseScheduleDao.get(Long.parseLong(queryInfo.getSearch()));
|
|
|
- if(schedule.getGroupType() == GroupType.MUSIC){
|
|
|
- Set<Integer> collect = dataList.stream().map(e -> e.getUserId()).collect(Collectors.toSet());
|
|
|
- Map<Integer,String> paymentStatusMap = MapUtil.convertIntegerMap(musicGroupPaymentCalenderDao.queryUserCoursePaymentStatus(collect,schedule.getMusicGroupId()));
|
|
|
- dataList.forEach(e -> {
|
|
|
- e.setPaymentStatus(paymentStatusMap.get(e.getUserId()));
|
|
|
- });
|
|
|
+ if (dataList == null) {
|
|
|
+ dataList = new ArrayList<>();
|
|
|
+ }
|
|
|
+
|
|
|
+ for(StudentAttendance sa : dataList){
|
|
|
+ if(sa.getGroupType() == GroupType.MUSIC){
|
|
|
+ Set<Integer> userId = new HashSet<Integer>();
|
|
|
+ userId.add(sa.getUserId());
|
|
|
+ Map<Integer,String> paymentStatusMap = MapUtil.convertIntegerMap(musicGroupPaymentCalenderDao.queryUserCoursePaymentStatus(userId,sa.getMusicGroupId()));
|
|
|
+ sa.setPaymentStatus(paymentStatusMap.get(sa.getUserId()));
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
- if (count == 0) {
|
|
|
- dataList = new ArrayList<>();
|
|
|
}
|
|
|
pageInfo.setRows(dataList);
|
|
|
return pageInfo;
|