Explorar o código

Merge branch 'course_adjust'

Joburgess %!s(int64=4) %!d(string=hai) anos
pai
achega
f0331208eb

+ 18 - 5
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java

@@ -258,16 +258,24 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 
 		List<CourseSchedule> courseScheduleList = courseScheduleDao.findByCourseScheduleIds(courseScheduleIds);
 
+		List<CourseScheduleTeacherSalary> courseScheduleTeacherSalaries = courseScheduleTeacherSalaryDao.findByCourseSchedules(courseScheduleIds);
+		Set<Long> settlementCourseIds = new HashSet<>();
+		if(!CollectionUtils.isEmpty(courseScheduleTeacherSalaries)){
+			settlementCourseIds = courseScheduleTeacherSalaries.stream().filter(c->Objects.nonNull(c.getSettlementTime())).map(CourseScheduleTeacherSalary::getCourseScheduleId).collect(Collectors.toSet());
+		}
+
 		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 		Date date = new Date();
 		if (courseScheduleList != null) {
 			for (CourseSchedule cs : courseScheduleList) {
-				if (cs.getStatus() != CourseStatusEnum.NOT_START) {
-					throw new BizException("删除失败,未开始的课程才能删除");
+				if(settlementCourseIds.contains(cs.getId())){
+					throw new BizException("删除失败,已结算的课程不能删除");
 				}
-				String endDateStr = DateUtil.format(cs.getClassDate(), "yyyy-MM-dd") + " " + DateUtil.format(cs.getStartClassTime(), "HH:mm:ss");
-				if (DateUtil.stringToDate(endDateStr, sdf).before(date)) {
-					throw new BizException("删除失败,未开始的课程才能删除");
+				if (CourseStatusEnum.UNDERWAY.equals(cs.getStatus())) {
+					throw new BizException("删除失败,进行中的课程不能删除");
+				}
+				if (Objects.nonNull(cs.getIsLock())&&cs.getIsLock()==1) {
+					throw new BizException("删除失败,被锁定的课程不能删除");
 				}
 				if(Objects.nonNull(cs.getNewCourseId())){
 					throw new BizException("删除失败,被合并课程不能删除");
@@ -2979,6 +2987,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 
 		//老师结算表
 		if (courseScheduleTeacherSalaries.size() > 0) {
+			teacherAttendanceDao.batchDeleteByCourseSchedules(courseAdjustInfo.getCourseScheduleIds());
 			courseScheduleTeacherSalaryService.batchInsert(courseScheduleTeacherSalaries);
 		}
 
@@ -3526,6 +3535,10 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 				Map<Integer, Map<Integer, TeacherDefaultVipGroupSalary>> vipGroupSalaryMap = new HashMap<Integer, Map<Integer, TeacherDefaultVipGroupSalary>>();
 
 				if (newCourseSchedule.getGroupType() == GroupType.MUSIC) {
+					MusicGroup musicGroup = musicGroupDao.get(newCourseSchedule.getMusicGroupId());
+					if(Objects.isNull(musicGroup)||!MusicGroupStatusEnum.PROGRESS.equals(musicGroup.getStatus())){
+						throw new BizException("非进行中乐团不可调整课程");
+					}
 					// 所有教师列表
 					List<Teacher> teachers = teacherDao.findByTeacherIds(newTeacherIdList);
 					teacherMap = teachers.stream().collect(Collectors.toMap(Teacher::getId, teacher -> teacher));