|
@@ -1,5 +1,7 @@
|
|
package com.ym.mec.biz.service.impl;
|
|
package com.ym.mec.biz.service.impl;
|
|
|
|
|
|
|
|
+import com.ym.mec.auth.api.client.SysUserFeignService;
|
|
|
|
+import com.ym.mec.auth.api.entity.SysUser;
|
|
import com.ym.mec.biz.dal.dao.ClassGroupStudentMapperDao;
|
|
import com.ym.mec.biz.dal.dao.ClassGroupStudentMapperDao;
|
|
import com.ym.mec.biz.dal.dao.CourseScheduleDao;
|
|
import com.ym.mec.biz.dal.dao.CourseScheduleDao;
|
|
import com.ym.mec.biz.dal.dao.MusicGroupStudentFeeDao;
|
|
import com.ym.mec.biz.dal.dao.MusicGroupStudentFeeDao;
|
|
@@ -42,6 +44,8 @@ public class StudentAttendanceServiceImpl extends BaseServiceImpl<Long, StudentA
|
|
|
|
|
|
@Autowired
|
|
@Autowired
|
|
private ClassGroupStudentMapperDao classGroupStudentMapperDao;
|
|
private ClassGroupStudentMapperDao classGroupStudentMapperDao;
|
|
|
|
+ @Autowired
|
|
|
|
+ private SysUserFeignService sysUserFeignService;
|
|
|
|
|
|
@Override
|
|
@Override
|
|
public BaseDAO<Long, StudentAttendance> getDAO() {
|
|
public BaseDAO<Long, StudentAttendance> getDAO() {
|
|
@@ -51,6 +55,10 @@ public class StudentAttendanceServiceImpl extends BaseServiceImpl<Long, StudentA
|
|
@Override
|
|
@Override
|
|
@Transactional(rollbackFor = Exception.class)
|
|
@Transactional(rollbackFor = Exception.class)
|
|
public void addStudentAttendances(List<StudentAttendance> studentAttendances) {
|
|
public void addStudentAttendances(List<StudentAttendance> studentAttendances) {
|
|
|
|
+ SysUser sysUser = sysUserFeignService.queryUserInfo();
|
|
|
|
+ if(Objects.isNull(sysUser)){
|
|
|
|
+ throw new BizException("请登录");
|
|
|
|
+ }
|
|
if(CollectionUtils.isEmpty(studentAttendances)){
|
|
if(CollectionUtils.isEmpty(studentAttendances)){
|
|
throw new BizException("无点名信息");
|
|
throw new BizException("无点名信息");
|
|
}
|
|
}
|
|
@@ -59,8 +67,10 @@ public class StudentAttendanceServiceImpl extends BaseServiceImpl<Long, StudentA
|
|
if(Objects.isNull(courseSchedule)){
|
|
if(Objects.isNull(courseSchedule)){
|
|
throw new BizException("请指定课程");
|
|
throw new BizException("请指定课程");
|
|
}
|
|
}
|
|
|
|
+ studentAttendanceDao.deleteStudentAttendancesByCourse(courseScheduleId);
|
|
int classTimes=courseScheduleDao.countClassTimes(courseSchedule.getClassGroupId().longValue());
|
|
int classTimes=courseScheduleDao.countClassTimes(courseSchedule.getClassGroupId().longValue());
|
|
studentAttendances.forEach(studentAttendance -> {
|
|
studentAttendances.forEach(studentAttendance -> {
|
|
|
|
+ studentAttendance.setTeacherId(sysUser.getId());
|
|
studentAttendance.setCurrentClassTimes(classTimes);
|
|
studentAttendance.setCurrentClassTimes(classTimes);
|
|
StudentAttendance studentAttendanceInfo = studentAttendanceDao.getStudentAttendanceInfo(studentAttendance);
|
|
StudentAttendance studentAttendanceInfo = studentAttendanceDao.getStudentAttendanceInfo(studentAttendance);
|
|
if (studentAttendance.getStatus() != StudentAttendanceStatusEnum.DROP_OUT) {
|
|
if (studentAttendance.getStatus() != StudentAttendanceStatusEnum.DROP_OUT) {
|
|
@@ -68,7 +78,7 @@ public class StudentAttendanceServiceImpl extends BaseServiceImpl<Long, StudentA
|
|
if(StudentAttendanceStatusEnum.TRUANT.equals(studentAttendance.getStatus())
|
|
if(StudentAttendanceStatusEnum.TRUANT.equals(studentAttendance.getStatus())
|
|
||StudentAttendanceStatusEnum.LEAVE.equals(studentAttendance.getStatus())){
|
|
||StudentAttendanceStatusEnum.LEAVE.equals(studentAttendance.getStatus())){
|
|
StudentAttendance studentLatestAttendanceInfo = studentAttendanceDao.getStudentLatestAttendanceInfo(studentAttendanceInfo);
|
|
StudentAttendance studentLatestAttendanceInfo = studentAttendanceDao.getStudentLatestAttendanceInfo(studentAttendanceInfo);
|
|
- if(Objects.nonNull(studentAttendanceInfo)){
|
|
|
|
|
|
+ if(Objects.nonNull(studentLatestAttendanceInfo)){
|
|
if(StudentAttendanceStatusEnum.TRUANT.equals(studentLatestAttendanceInfo.getStatus())
|
|
if(StudentAttendanceStatusEnum.TRUANT.equals(studentLatestAttendanceInfo.getStatus())
|
|
||StudentAttendanceStatusEnum.LEAVE.equals(studentLatestAttendanceInfo.getStatus())){
|
|
||StudentAttendanceStatusEnum.LEAVE.equals(studentLatestAttendanceInfo.getStatus())){
|
|
studentFeeDao.updateStudentAbsenteeismTimes(studentAttendanceInfo.getUserId(),
|
|
studentFeeDao.updateStudentAbsenteeismTimes(studentAttendanceInfo.getUserId(),
|
|
@@ -93,10 +103,10 @@ public class StudentAttendanceServiceImpl extends BaseServiceImpl<Long, StudentA
|
|
}
|
|
}
|
|
});
|
|
});
|
|
Map<StudentAttendanceStatusEnum, List<StudentAttendance>> studentAttendanceGroupByStatus = studentAttendances.stream().collect(Collectors.groupingBy(StudentAttendance::getStatus));
|
|
Map<StudentAttendanceStatusEnum, List<StudentAttendance>> studentAttendanceGroupByStatus = studentAttendances.stream().collect(Collectors.groupingBy(StudentAttendance::getStatus));
|
|
- Integer studentNum=studentAttendanceGroupByStatus.get(StudentAttendanceStatusEnum.NORMAL).size();
|
|
|
|
- Integer leaveStudentNum=studentAttendanceGroupByStatus.get(StudentAttendanceStatusEnum.LEAVE).size();
|
|
|
|
- courseSchedule.setStudentNum(studentNum==null?0:studentNum);
|
|
|
|
- courseSchedule.setLeaveStudentNum(leaveStudentNum==null?0:leaveStudentNum);
|
|
|
|
|
|
+ Integer studentNum=studentAttendanceGroupByStatus.get(StudentAttendanceStatusEnum.NORMAL)==null?0:studentAttendanceGroupByStatus.get(StudentAttendanceStatusEnum.NORMAL).size();
|
|
|
|
+ Integer leaveStudentNum=studentAttendanceGroupByStatus.get(StudentAttendanceStatusEnum.LEAVE)==null?0:studentAttendanceGroupByStatus.get(StudentAttendanceStatusEnum.LEAVE).size();
|
|
|
|
+ courseSchedule.setStudentNum(studentNum);
|
|
|
|
+ courseSchedule.setLeaveStudentNum(leaveStudentNum);
|
|
courseScheduleDao.update(courseSchedule);
|
|
courseScheduleDao.update(courseSchedule);
|
|
}
|
|
}
|
|
|
|
|