|
@@ -22,7 +22,9 @@ import com.ym.mec.jiari.JiaRiFeignService;
|
|
import com.ym.mec.thirdparty.message.MessageSenderPluginContext.MessageSender;
|
|
import com.ym.mec.thirdparty.message.MessageSenderPluginContext.MessageSender;
|
|
import com.ym.mec.util.collection.MapUtil;
|
|
import com.ym.mec.util.collection.MapUtil;
|
|
import com.ym.mec.util.date.DateUtil;
|
|
import com.ym.mec.util.date.DateUtil;
|
|
|
|
+
|
|
import feign.codec.DecodeException;
|
|
import feign.codec.DecodeException;
|
|
|
|
+
|
|
import org.apache.commons.collections.ListUtils;
|
|
import org.apache.commons.collections.ListUtils;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.Logger;
|
|
@@ -361,7 +363,6 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
return pageInfo;
|
|
return pageInfo;
|
|
}
|
|
}
|
|
|
|
|
|
- Map<String, Group> groupMap = groups.stream().collect(Collectors.toMap(Group::getId, group -> group));
|
|
|
|
|
|
|
|
List<CourseScheduleDto> dataList = null;
|
|
List<CourseScheduleDto> dataList = null;
|
|
int count = courseScheduleDao.countCourseSchedulesWithDate(params);
|
|
int count = courseScheduleDao.countCourseSchedulesWithDate(params);
|
|
@@ -373,10 +374,21 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
List<Map<Integer, Integer>> courseStudentNumMaps = courseScheduleStudentPaymentDao.countCourseStudentNum(allCourseScheduleIds);
|
|
List<Map<Integer, Integer>> courseStudentNumMaps = courseScheduleStudentPaymentDao.countCourseStudentNum(allCourseScheduleIds);
|
|
Map<Long, Long> courseStudentNumMap = MapUtil.convertIntegerMap(courseStudentNumMaps);
|
|
Map<Long, Long> courseStudentNumMap = MapUtil.convertIntegerMap(courseStudentNumMaps);
|
|
|
|
|
|
|
|
+ List<Group> groupsT=new ArrayList<>();
|
|
|
|
+ groupsT.add(null);
|
|
|
|
+ List<Integer> teacherIds=new ArrayList<>();
|
|
|
|
+ for (CourseScheduleDto courseScheduleEndDto : dataList) {
|
|
|
|
+ Group group=new Group(courseScheduleEndDto.getMusicGroupId(),courseScheduleEndDto.getGroupType());
|
|
|
|
+ groupsT.add(group);
|
|
|
|
+ teacherIds.add(courseScheduleEndDto.getActualTeacherId());
|
|
|
|
+ }
|
|
|
|
+ groupsT = groupDao.findByGroupIds(groupsT);
|
|
|
|
+ Map<String, Group> idGroupMap = groupsT.stream().collect(Collectors.toMap(Group::getId, group -> group));
|
|
|
|
+
|
|
for (int i=0;i<dataList.size();i++) {
|
|
for (int i=0;i<dataList.size();i++) {
|
|
Long studentNum=courseStudentNumMap.get(dataList.get(i).getId());
|
|
Long studentNum=courseStudentNumMap.get(dataList.get(i).getId());
|
|
dataList.get(i).setTotalStudentNum(Objects.isNull(studentNum)?0:studentNum.intValue());
|
|
dataList.get(i).setTotalStudentNum(Objects.isNull(studentNum)?0:studentNum.intValue());
|
|
- Group group = groupMap.get(dataList.get(i).getMusicGroupId());
|
|
|
|
|
|
+ Group group = idGroupMap.get(dataList.get(i).getMusicGroupId());
|
|
if(Objects.nonNull(group)){
|
|
if(Objects.nonNull(group)){
|
|
dataList.get(i).setGroupName(group.getGroupName());
|
|
dataList.get(i).setGroupName(group.getGroupName());
|
|
}
|
|
}
|
|
@@ -1562,22 +1574,22 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
//修改后的课程助教编号列表
|
|
//修改后的课程助教编号列表
|
|
List<Integer> newTeachingTeacherIdList = newCourseSchedule.getTeachingTeacherIdList();
|
|
List<Integer> newTeachingTeacherIdList = newCourseSchedule.getTeachingTeacherIdList();
|
|
List<Integer> newCreateSalaryTeachingTeacherIds = null;
|
|
List<Integer> newCreateSalaryTeachingTeacherIds = null;
|
|
- if(!CollectionUtils.isEmpty(newTeachingTeacherIdList)){
|
|
|
|
- //找出重复的助教编号
|
|
|
|
- List<Integer> foundInCurrentCourseTeachingTeacherIds = newTeachingTeacherIdList.stream().filter(currentCourseTeachingTeacherIds::contains).collect(Collectors.toList());
|
|
|
|
|
|
|
|
- //需要重新生成课酬的助教列表
|
|
|
|
- newCreateSalaryTeachingTeacherIds = newTeachingTeacherIdList.stream()
|
|
|
|
- .filter(userId -> !foundInCurrentCourseTeachingTeacherIds.contains(userId))
|
|
|
|
- .collect(Collectors.toList());
|
|
|
|
- //被替换的助教列表
|
|
|
|
- List<Integer> beReplaceTeachingTeacherIds = currentCourseTeachingTeacherIds.stream()
|
|
|
|
- .filter(userId -> !foundInCurrentCourseTeachingTeacherIds.contains(userId))
|
|
|
|
- .collect(Collectors.toList());
|
|
|
|
- beReplaceTeacherIds.addAll(beReplaceTeachingTeacherIds);
|
|
|
|
|
|
+ //找出重复的助教编号
|
|
|
|
+ List<Integer> foundInCurrentCourseTeachingTeacherIds = newTeachingTeacherIdList.stream().filter(currentCourseTeachingTeacherIds::contains).collect(Collectors.toList());
|
|
|
|
+
|
|
|
|
+ //需要重新生成课酬的助教列表
|
|
|
|
+ newCreateSalaryTeachingTeacherIds = newTeachingTeacherIdList.stream()
|
|
|
|
+ .filter(userId -> !foundInCurrentCourseTeachingTeacherIds.contains(userId))
|
|
|
|
+ .collect(Collectors.toList());
|
|
|
|
+ //被替换的助教列表
|
|
|
|
+ List<Integer> beReplaceTeachingTeacherIds = currentCourseTeachingTeacherIds.stream()
|
|
|
|
+ .filter(userId -> !foundInCurrentCourseTeachingTeacherIds.contains(userId))
|
|
|
|
+ .collect(Collectors.toList());
|
|
|
|
+ beReplaceTeacherIds.addAll(beReplaceTeachingTeacherIds);
|
|
|
|
+
|
|
|
|
+ newCourseSchedule.setTeachingTeacherIdList(newCreateSalaryTeachingTeacherIds);
|
|
|
|
|
|
- newCourseSchedule.setTeachingTeacherIdList(newCreateSalaryTeachingTeacherIds);
|
|
|
|
- }
|
|
|
|
|
|
|
|
if (!newCourseSchedule.isBishopTeacherSalaryNotCreate() || !CollectionUtils.isEmpty(newCreateSalaryTeachingTeacherIds)) {
|
|
if (!newCourseSchedule.isBishopTeacherSalaryNotCreate() || !CollectionUtils.isEmpty(newCreateSalaryTeachingTeacherIds)) {
|
|
newCourseSchedule.setGroupType(oldCourseSchedule.getGroupType());
|
|
newCourseSchedule.setGroupType(oldCourseSchedule.getGroupType());
|
|
@@ -1665,16 +1677,24 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
throw new BizException("未找到对应课程");
|
|
throw new BizException("未找到对应课程");
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ if(!courseSchedule1.getType().equals(courseSchedule2.getGroupType())
|
|
|
|
+ ||!courseSchedule1.getMusicGroupId().equals(courseSchedule2.getMusicGroupId())){
|
|
|
|
+ throw new BizException("不能跨乐团进行课时交换");
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ int course1CourseMinutes = DateUtil.minutesBetween(courseSchedule1.getStartClassTime(), courseSchedule1.getEndClassTime());
|
|
|
|
+ int course2CourseMinutes = DateUtil.minutesBetween(courseSchedule2.getStartClassTime(), courseSchedule2.getEndClassTime());
|
|
|
|
+
|
|
CourseSchedule temp=new CourseSchedule();
|
|
CourseSchedule temp=new CourseSchedule();
|
|
BeanUtils.copyProperties(courseSchedule1, temp);
|
|
BeanUtils.copyProperties(courseSchedule1, temp);
|
|
|
|
|
|
courseSchedule1.setClassDate(courseSchedule2.getClassDate());
|
|
courseSchedule1.setClassDate(courseSchedule2.getClassDate());
|
|
courseSchedule1.setStartClassTime(courseSchedule2.getStartClassTime());
|
|
courseSchedule1.setStartClassTime(courseSchedule2.getStartClassTime());
|
|
- courseSchedule1.setEndClassTime(courseSchedule2.getStartClassTime());
|
|
|
|
|
|
+ courseSchedule1.setEndClassTime(DateUtil.addMinutes(courseSchedule1.getStartClassTime(),course1CourseMinutes));
|
|
|
|
|
|
courseSchedule2.setClassDate(temp.getClassDate());
|
|
courseSchedule2.setClassDate(temp.getClassDate());
|
|
courseSchedule2.setStartClassTime(temp.getStartClassTime());
|
|
courseSchedule2.setStartClassTime(temp.getStartClassTime());
|
|
- courseSchedule2.setEndClassTime(temp.getStartClassTime());
|
|
|
|
|
|
+ courseSchedule2.setEndClassTime(DateUtil.addMinutes(courseSchedule2.getStartClassTime(),course1CourseMinutes));
|
|
|
|
|
|
List<CourseSchedule> courseSchedules = new ArrayList<>();
|
|
List<CourseSchedule> courseSchedules = new ArrayList<>();
|
|
courseSchedules.add(courseSchedule1);
|
|
courseSchedules.add(courseSchedule1);
|
|
@@ -1851,23 +1871,36 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
|
|
|
|
Date date = new Date();
|
|
Date date = new Date();
|
|
//课程已结束,更新“未签到”学生的状态未“旷课”
|
|
//课程已结束,更新“未签到”学生的状态未“旷课”
|
|
- List<StudentAttendance> studentAttendanceList = courseScheduleDao.queryUnsignedStudentList();
|
|
|
|
- Date updateTime = DateUtil.stringToDate("19700101 000000",DateUtil.DATE_TIME_FORMAT);
|
|
|
|
- for (StudentAttendance studentAttendance : studentAttendanceList) {
|
|
|
|
- studentAttendance.setStatus(StudentAttendanceStatusEnum.TRUANT);
|
|
|
|
- studentAttendance.setRemark("课程已结束,自动补旷课");
|
|
|
|
- if (Objects.isNull(studentAttendance.getCurrentClassTimes())) {
|
|
|
|
- studentAttendance.setCurrentClassTimes(1);
|
|
|
|
- } else {
|
|
|
|
- studentAttendance.setCurrentClassTimes(studentAttendance.getCurrentClassTimes() + 1);
|
|
|
|
- }
|
|
|
|
- studentAttendance.setCreateTime(date);
|
|
|
|
- studentAttendance.setUpdateTime(updateTime);
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- if (studentAttendanceList != null && studentAttendanceList.size() > 0) {
|
|
|
|
- studentAttendanceDao.addStudentAttendances(studentAttendanceList);
|
|
|
|
- }
|
|
|
|
|
|
+ List<StudentAttendance> studentAttendanceList = courseScheduleDao.queryUnsignedStudentList();
|
|
|
|
+ if (studentAttendanceList != null && studentAttendanceList.size() > 0) {
|
|
|
|
+ // 获取老师的考勤记录
|
|
|
|
+ Map<Long, TeacherAttendance> teacherAttendanceMap = teacherAttendanceDao
|
|
|
|
+ .findTeacherIdByCourseSchedule(studentAttendanceList.stream().map(sa -> sa.getCourseScheduleId()).collect(Collectors.toList())).stream()
|
|
|
|
+ .collect(Collectors.toMap(TeacherAttendance::getCourseScheduleId, ta -> ta));
|
|
|
|
+
|
|
|
|
+ Date updateTime = DateUtil.stringToDate("19700101 000000", DateUtil.DATE_TIME_FORMAT);
|
|
|
|
+ for (Iterator<StudentAttendance> list = studentAttendanceList.iterator(); list.hasNext();) {
|
|
|
|
+ StudentAttendance studentAttendance = list.next();
|
|
|
|
+ TeacherAttendance teacherAttendance = teacherAttendanceMap.get(studentAttendance.getCourseScheduleId());
|
|
|
|
+ if (teacherAttendance != null && teacherAttendance.getSignOutTime() == null) {
|
|
|
|
+ list.remove();
|
|
|
|
+ } else {
|
|
|
|
+ studentAttendance.setStatus(StudentAttendanceStatusEnum.TRUANT);
|
|
|
|
+ studentAttendance.setRemark("课程已结束,自动补旷课");
|
|
|
|
+ if (Objects.isNull(studentAttendance.getCurrentClassTimes())) {
|
|
|
|
+ studentAttendance.setCurrentClassTimes(1);
|
|
|
|
+ } else {
|
|
|
|
+ studentAttendance.setCurrentClassTimes(studentAttendance.getCurrentClassTimes() + 1);
|
|
|
|
+ }
|
|
|
|
+ studentAttendance.setCreateTime(date);
|
|
|
|
+ studentAttendance.setUpdateTime(updateTime);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if (studentAttendanceList != null && studentAttendanceList.size() > 0) {
|
|
|
|
+ studentAttendanceDao.addStudentAttendances(studentAttendanceList);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
|
|
//自动更新课程状态至“已结束”
|
|
//自动更新课程状态至“已结束”
|
|
List<CourseSchedule> list = courseScheduleDao.queryFinishedWithNoUpdateStatus();
|
|
List<CourseSchedule> list = courseScheduleDao.queryFinishedWithNoUpdateStatus();
|
|
@@ -1922,10 +1955,10 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
// }
|
|
// }
|
|
}
|
|
}
|
|
|
|
|
|
- if (courseScheduleIdList.size() > 0) {
|
|
|
|
|
|
+ /*if (courseScheduleIdList.size() > 0) {
|
|
// vip课自动签退
|
|
// vip课自动签退
|
|
teacherAttendanceDao.updateViPSignOutStatus(courseScheduleIdList.stream().map(a -> a.toString()).collect(Collectors.joining(",")));
|
|
teacherAttendanceDao.updateViPSignOutStatus(courseScheduleIdList.stream().map(a -> a.toString()).collect(Collectors.joining(",")));
|
|
- }
|
|
|
|
|
|
+ }*/
|
|
|
|
|
|
return true;
|
|
return true;
|
|
}
|
|
}
|