|
@@ -39,7 +39,6 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.context.annotation.Lazy;
|
|
|
import org.springframework.http.HttpStatus;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
-import org.springframework.transaction.TransactionStatus;
|
|
|
import org.springframework.transaction.annotation.Propagation;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
import org.springframework.transaction.interceptor.TransactionAspectSupport;
|
|
@@ -58,11 +57,8 @@ import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
import java.util.stream.Stream;
|
|
|
|
|
|
-import static com.ym.mec.biz.dal.entity.CourseSchedule.CourseScheduleType.MIX;
|
|
|
import static com.ym.mec.biz.dal.entity.CourseSchedule.CourseScheduleType.MUSIC_NETWORK;
|
|
|
-import static com.ym.mec.biz.dal.enums.ClassGroupTypeEnum.HIGH_ONLINE;
|
|
|
import static com.ym.mec.biz.dal.enums.GroupType.*;
|
|
|
-import static com.ym.mec.biz.dal.enums.MusicGroupStatusEnum.PROGRESS;
|
|
|
import static com.ym.mec.biz.dal.enums.PracticeGroupType.FREE;
|
|
|
import static com.ym.mec.biz.dal.enums.PracticeGroupType.TRIAL;
|
|
|
import static com.ym.mec.biz.dal.enums.SysUserRoleEnum.ORGAN_MANAGER;
|
|
@@ -1670,30 +1666,22 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
|
CourseSchedule currentCourseSchedule = courseSchedules.get(courseStartDates.size() - 1);
|
|
|
int singleClassMinutes = DateUtil.minutesBetween(currentCourseSchedule.getStartClassTime(), currentCourseSchedule.getEndClassTime());
|
|
|
Date courseEndTime = DateUtil.addMinutes(courseStartTime, singleClassMinutes);
|
|
|
- int settlementNum = courseScheduleTeacherSalaryDao.checkCourseIsSettlement(courseSchedules.get(courseStartDates.size() - 1).getId().intValue());
|
|
|
- if (settlementNum > 0) {
|
|
|
- throw new BizException("{}[{}]{}-{}课程已结算",
|
|
|
- courseSchedules.get(courseStartDates.size() - 1).getName(),
|
|
|
- courseSchedules.get(courseStartDates.size() - 1).getId(),
|
|
|
- DateUtil.dateToString(courseSchedules.get(courseStartDates.size() - 1).getStartClassTime(),
|
|
|
- DateUtil.ISO_EXPANDED_DATE_TIME_FORMAT),
|
|
|
- DateUtil.dateToString(courseSchedules.get(courseStartDates.size() - 1).getEndClassTime(),
|
|
|
- DateUtil.ISO_EXPANDED_DATE_TIME_FORMAT));
|
|
|
- }
|
|
|
- int num = studentAttendanceDao.countStudentAttendenceNum(courseSchedules.get(courseStartDates.size() - 1).getId().intValue());
|
|
|
+ //校验课程是否结算
|
|
|
+ this.checkCourseIsSettlement(currentCourseSchedule);
|
|
|
+ int num = studentAttendanceDao.countStudentAttendenceNum(currentCourseSchedule.getId().intValue());
|
|
|
if (num > 0) {
|
|
|
throw new BizException("{}[{}]{}-{}课程已点名",
|
|
|
- courseSchedules.get(courseStartDates.size() - 1).getName(),
|
|
|
- courseSchedules.get(courseStartDates.size() - 1).getId(),
|
|
|
- DateUtil.dateToString(courseSchedules.get(courseStartDates.size() - 1).getStartClassTime(),
|
|
|
+ currentCourseSchedule.getName(),
|
|
|
+ currentCourseSchedule.getId(),
|
|
|
+ DateUtil.dateToString(currentCourseSchedule.getStartClassTime(),
|
|
|
DateUtil.EXPANDED_DATE_TIME_FORMAT),
|
|
|
- DateUtil.dateToString(courseSchedules.get(courseStartDates.size() - 1).getEndClassTime(),
|
|
|
+ DateUtil.dateToString(currentCourseSchedule.getEndClassTime(),
|
|
|
DateUtil.EXPANDED_DATE_TIME_FORMAT));
|
|
|
}
|
|
|
- courseSchedules.get(courseStartDates.size() - 1).setStatus(CourseStatusEnum.NOT_START);
|
|
|
- courseSchedules.get(courseStartDates.size() - 1).setClassDate(courseStartTime);
|
|
|
- courseSchedules.get(courseStartDates.size() - 1).setStartClassTime(courseStartTime);
|
|
|
- courseSchedules.get(courseStartDates.size() - 1).setEndClassTime(courseEndTime);
|
|
|
+ currentCourseSchedule.setStatus(CourseStatusEnum.NOT_START);
|
|
|
+ currentCourseSchedule.setClassDate(courseStartTime);
|
|
|
+ currentCourseSchedule.setStartClassTime(courseStartTime);
|
|
|
+ currentCourseSchedule.setEndClassTime(courseEndTime);
|
|
|
}
|
|
|
if (courseStartDates.size() == adjustCourseScheduleIds.size()) {
|
|
|
break;
|
|
@@ -1714,6 +1702,23 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
+ public void checkCourseIsSettlement(CourseSchedule courseSchedule) {
|
|
|
+ int settlementNum = courseScheduleTeacherSalaryDao.checkCourseIsSettlement(courseSchedule.getId().intValue());
|
|
|
+ if(settlementNum <= 0){
|
|
|
+ settlementNum = courseScheduleDao.checkCourseIsSettlementReport(courseSchedule.getId());
|
|
|
+ }
|
|
|
+ if (settlementNum > 0) {
|
|
|
+ throw new BizException("{}[{}]{}-{}课程已结算",
|
|
|
+ courseSchedule.getName(),
|
|
|
+ courseSchedule.getId(),
|
|
|
+ DateUtil.dateToString(courseSchedule.getStartClassTime(),
|
|
|
+ DateUtil.ISO_EXPANDED_DATE_TIME_FORMAT),
|
|
|
+ DateUtil.dateToString(courseSchedule.getEndClassTime(),
|
|
|
+ DateUtil.ISO_EXPANDED_DATE_TIME_FORMAT));
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
public boolean courseTimeRevise(CourseSchedule courseSchedule, List<CourseSchedule> sameDayCourses) {
|
|
|
int singleClassMinutes = DateUtil.minutesBetween(courseSchedule.getStartClassTime(), courseSchedule.getEndClassTime());
|
|
|
sameDayCourses.sort(Comparator.comparing(CourseSchedule::getStartClassTime));
|
|
@@ -2443,30 +2448,23 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
|
throw new BizException("单节课时不允许跨天");
|
|
|
}
|
|
|
courseStartDates.add(DateUtil.stringToDate(dateYmdStr, DateUtil.EXPANDED_DATE_TIME_FORMAT));
|
|
|
- int settlementNum = courseScheduleTeacherSalaryDao.checkCourseIsSettlement(courseSchedules.get(courseStartDates.size() - 1).getId().intValue());
|
|
|
- if (settlementNum > 0) {
|
|
|
- throw new BizException("{}[{}]{}-{}课程已结算",
|
|
|
- courseSchedules.get(courseStartDates.size() - 1).getName(),
|
|
|
- courseSchedules.get(courseStartDates.size() - 1).getId(),
|
|
|
- DateUtil.dateToString(courseSchedules.get(courseStartDates.size() - 1).getStartClassTime(),
|
|
|
- DateUtil.ISO_EXPANDED_DATE_TIME_FORMAT),
|
|
|
- DateUtil.dateToString(courseSchedules.get(courseStartDates.size() - 1).getEndClassTime(),
|
|
|
- DateUtil.ISO_EXPANDED_DATE_TIME_FORMAT));
|
|
|
- }
|
|
|
- int num = studentAttendanceDao.countStudentAttendenceNum(courseSchedules.get(courseStartDates.size() - 1).getId().intValue());
|
|
|
+ CourseSchedule courseSchedule = courseSchedules.get(courseStartDates.size() - 1);
|
|
|
+ //校验课程是否结算
|
|
|
+ this.checkCourseIsSettlement(courseSchedule);
|
|
|
+ int num = studentAttendanceDao.countStudentAttendenceNum(courseSchedule.getId().intValue());
|
|
|
if (num > 0) {
|
|
|
throw new BizException("{}[{}]{}-{}课程已点名",
|
|
|
- courseSchedules.get(courseStartDates.size() - 1).getName(),
|
|
|
- courseSchedules.get(courseStartDates.size() - 1).getId(),
|
|
|
- DateUtil.dateToString(courseSchedules.get(courseStartDates.size() - 1).getStartClassTime(),
|
|
|
+ courseSchedule.getName(),
|
|
|
+ courseSchedule.getId(),
|
|
|
+ DateUtil.dateToString(courseSchedule.getStartClassTime(),
|
|
|
DateUtil.EXPANDED_DATE_TIME_FORMAT),
|
|
|
- DateUtil.dateToString(courseSchedules.get(courseStartDates.size() - 1).getEndClassTime(),
|
|
|
+ DateUtil.dateToString(courseSchedule.getEndClassTime(),
|
|
|
DateUtil.EXPANDED_DATE_TIME_FORMAT));
|
|
|
}
|
|
|
- courseSchedules.get(courseStartDates.size() - 1).setStatus(CourseStatusEnum.NOT_START);
|
|
|
- courseSchedules.get(courseStartDates.size() - 1).setClassDate(courseStartTime);
|
|
|
- courseSchedules.get(courseStartDates.size() - 1).setStartClassTime(courseStartTime);
|
|
|
- courseSchedules.get(courseStartDates.size() - 1).setEndClassTime(courseEndTime);
|
|
|
+ courseSchedule.setStatus(CourseStatusEnum.NOT_START);
|
|
|
+ courseSchedule.setClassDate(courseStartTime);
|
|
|
+ courseSchedule.setStartClassTime(courseStartTime);
|
|
|
+ courseSchedule.setEndClassTime(courseEndTime);
|
|
|
|
|
|
Integer allowOnlineToOffline = 0;
|
|
|
if(Objects.nonNull(vipGroupActivity)){
|
|
@@ -2480,9 +2478,9 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
|
}
|
|
|
|
|
|
if (Objects.nonNull(vipGroupCourseAdjustInfo.getTeachMode())) {
|
|
|
- boolean onlineToOffline = courseSchedules.get(courseStartDates.size() - 1).getTeachMode().equals(TeachModeEnum.ONLINE)
|
|
|
+ boolean onlineToOffline = courseSchedule.getTeachMode().equals(TeachModeEnum.ONLINE)
|
|
|
&&vipGroupCourseAdjustInfo.getTeachMode().equals(TeachModeEnum.OFFLINE);
|
|
|
- boolean offlineToOnline = courseSchedules.get(courseStartDates.size() - 1).getTeachMode().equals(TeachModeEnum.OFFLINE)
|
|
|
+ boolean offlineToOnline = courseSchedule.getTeachMode().equals(TeachModeEnum.OFFLINE)
|
|
|
&&vipGroupCourseAdjustInfo.getTeachMode().equals(TeachModeEnum.ONLINE);
|
|
|
if(onlineToOffline && Objects.nonNull(vipGroupActivity) && (allowOnlineToOffline == 0 || allowOnlineToOffline == 3)){
|
|
|
throw new BizException("此VIP课活动不支持线上课调整为线下课");
|
|
@@ -2493,13 +2491,13 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
|
if(onlineToOffline&&Objects.isNull(vipGroupCourseAdjustInfo.getSchoolId())){
|
|
|
throw new BizException("请选择教学点");
|
|
|
}
|
|
|
- courseSchedules.get(courseStartDates.size() - 1).setTeachMode(vipGroupCourseAdjustInfo.getTeachMode());
|
|
|
+ courseSchedule.setTeachMode(vipGroupCourseAdjustInfo.getTeachMode());
|
|
|
if (vipGroupCourseAdjustInfo.getTeachMode().equals(TeachModeEnum.OFFLINE)) {
|
|
|
if(Objects.nonNull(vipGroupCourseAdjustInfo.getSchoolId())){
|
|
|
- courseSchedules.get(courseStartDates.size() - 1).setSchoolId(vipGroupCourseAdjustInfo.getSchoolId());
|
|
|
+ courseSchedule.setSchoolId(vipGroupCourseAdjustInfo.getSchoolId());
|
|
|
}
|
|
|
} else {
|
|
|
- courseSchedules.get(courseStartDates.size() - 1).setSchoolId(null);
|
|
|
+ courseSchedule.setSchoolId(null);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -3111,16 +3109,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
|
newCourseSchedule.setValidStartTime(oldCourseSchedule.getValidStartTime());
|
|
|
|
|
|
//课程是否已结算
|
|
|
- int settlementNum = courseScheduleTeacherSalaryDao.checkCourseIsSettlement(oldCourseSchedule.getId().intValue());
|
|
|
- if (settlementNum > 0) {
|
|
|
- throw new BizException("{}[{}]{}-{}课程已结算",
|
|
|
- oldCourseSchedule.getName(),
|
|
|
- oldCourseSchedule.getId(),
|
|
|
- DateUtil.dateToString(oldCourseSchedule.getStartClassTime(),
|
|
|
- DateUtil.EXPANDED_DATE_TIME_FORMAT),
|
|
|
- DateUtil.dateToString(oldCourseSchedule.getEndClassTime(),
|
|
|
- DateUtil.EXPANDED_DATE_TIME_FORMAT));
|
|
|
- }
|
|
|
+ this.checkCourseIsSettlement(oldCourseSchedule);
|
|
|
|
|
|
if (newCourseSchedule.getGroupType() != GroupType.COMM) {
|
|
|
// 学生已点名不能调整(请假可以调整)
|
|
@@ -4010,6 +3999,9 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
|
}
|
|
|
|
|
|
int settlementTimes = courseScheduleTeacherSalaryDao.checkCourseIsSettlement(courseScheduleComplaints.getCourseScheduleId().intValue());
|
|
|
+ if(settlementTimes <= 0){
|
|
|
+ settlementTimes = courseScheduleDao.checkCourseIsSettlementReport(courseScheduleComplaints.getCourseScheduleId());
|
|
|
+ }
|
|
|
if (settlementTimes > 0) {
|
|
|
throw new BizException("该课程已结算");
|
|
|
}
|