Преглед изворни кода

feat:课表列表新增调整

Joburgess пре 4 година
родитељ
комит
ad7b7e614c

+ 48 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java

@@ -2904,8 +2904,15 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 				oldCourses.get(i).setEndClassTime(DateUtil.stringToDate(courseEndTimeStr, "yyyy-MM-dd HH:mm"));
 			}
 
+			if(Objects.nonNull(courseAdjustInfo.getSchoolId())){
+				oldCourses.get(i).setSchoolId(courseAdjustInfo.getSchoolId());
+			}
+
 			if(Objects.nonNull(courseAdjustInfo.getTeachMode())&&!courseAdjustInfo.getTeachMode().equals(oldCourses.get(i).getTeachMode())){
 				oldCourses.get(i).setTeachMode(courseAdjustInfo.getTeachMode());
+				if(TeachModeEnum.ONLINE.equals(courseAdjustInfo.getTeachMode())){
+					oldCourses.get(i).setSchoolId(null);
+				}
 				if(VIP.equals(oldCourses.get(i).getGroupType())){
 					changeSalaryTeachTypes.add(TeachTypeEnum.BISHOP);
 					courseScheduleTeacherSalaryDao.deleteWithCourseAndTeachRole(Arrays.asList(oldCourses.get(i).getId()), TeachTypeEnum.BISHOP);
@@ -2956,9 +2963,49 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 		}
 
 		if (!courseAdjustInfo.getConfirmGenerate()) {
+			List<CourseScheduleTeacherSalary> cstss = courseScheduleTeacherSalaryDao.findByCourseSchedules(courseAdjustInfo.getCourseScheduleIds());
+			Map<Long, Set<Integer>> courseTeachTypeTeacherIdsMap = new HashMap<>();
+			if(!CollectionUtils.isEmpty(cstss)){
+				courseTeachTypeTeacherIdsMap = cstss.stream().filter(c->TeachTypeEnum.TEACHING.equals(c.getTeacherRole())).collect(Collectors.groupingBy(CourseScheduleTeacherSalary::getCourseScheduleId, Collectors.mapping(CourseScheduleTeacherSalary::getUserId, Collectors.toSet())));
+			}
+			Set<Integer> allTeacherIds = cstss.stream().map(CourseScheduleTeacherSalary::getUserId).collect(Collectors.toSet());
+			List<SimpleUserDto> teachers = teacherDao.getUsersSimpleInfo(new ArrayList<>(allTeacherIds));
+			Map<Integer, String> idNameMap = new HashMap<>();
+			if(CollectionUtils.isEmpty(teachers)){
+				idNameMap = teachers.stream().collect(Collectors.toMap(SimpleUserDto::getUserId, s->s.getRealName(), (s1, s2)->s1));
+			}
+			//获取班级声部名称
+			List<Map<Integer, String>> classGroupSubjectNameMaps = classGroupDao.findClassGroupSubjectNameMaps(courseAdjustInfo.getCourseScheduleIds());
+			Map<Integer, String> classGroupSubjectNameMap = MapUtil.convertIntegerMap(classGroupSubjectNameMaps);
+
+			List<Integer> schoolIds = oldCourses.stream().filter(o -> Objects.nonNull(o.getSchoolId())).map(CourseSchedule::getSchoolId).collect(Collectors.toList());
+			List<School> schools = schoolDao.getSchools(schoolIds);
+			Map<Integer, String> idSchoolNameMap = new HashMap<>();
+			if(!CollectionUtils.isEmpty(schools)){
+				idSchoolNameMap = schools.stream().collect(Collectors.toMap(School::getId, s->s.getName(), (s1, s2)->s1));
+			}
+
+			List<CourseScheduleEndDto> results = new ArrayList<>();
+			for (CourseSchedule oldCours : oldCourses) {
+				CourseScheduleEndDto courseEnd = new CourseScheduleEndDto();
+				BeanUtils.copyProperties(oldCours, courseEnd);
+				courseEnd.setTeacherName(idNameMap.get(oldCours.getId()));
+				if(courseTeachTypeTeacherIdsMap.containsKey(oldCours.getId())){
+					Set<Integer> teacherIds = courseTeachTypeTeacherIdsMap.get(oldCours.getId());
+					Set<String> teacherNames = new HashSet<>();
+					for (Integer teacherId : teacherIds) {
+						teacherNames.add(idNameMap.get(teacherId));
+					}
+					courseEnd.setTeachingTeacherNames(StringUtils.join(teacherNames, ","));
+				}
+				courseEnd.setSubjectName(classGroupSubjectNameMap.get(oldCours.getId()));
+				courseEnd.setSchoolName(idSchoolNameMap.get(oldCours.getSchoolId()));
+
+				results.add(courseEnd);
+			}
 			TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
 			oldCourses.sort(Comparator.comparing(CourseSchedule::getStartClassTime));
-			return BaseController.failed(HttpStatus.PARTIAL_CONTENT, oldCourses, "");
+			return BaseController.failed(HttpStatus.PARTIAL_CONTENT, results, "");
 		}
 
 		courseScheduleDao.batchUpdate(oldCourses);