Joburgess 4 年之前
父节点
当前提交
644dac87e3

+ 6 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java

@@ -5250,6 +5250,10 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 		allCourseIds.add(courseMergeInfo.getId());
 		allCourseIds.addAll(courseMergeInfo.getMergeCourseIds());
 		List<CourseSchedule> allCourses = courseScheduleDao.findByCourseScheduleIds(allCourseIds);
+		int courseTypeNum = allCourses.stream().map(CourseSchedule::getType).collect(Collectors.toSet()).size();
+		if(courseTypeNum>1){
+			throw new BizException("课程合并仅支持同课程类型");
+		}
 		Date now = new Date();
 		for (CourseSchedule courseSchedule : allCourses) {
 			if(Objects.nonNull(courseSchedule.getNewCourseId())){
@@ -5296,6 +5300,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 			courseSchedule.setStartClassTime(courseMergeInfo.getStartClassTime());
 			courseSchedule.setEndClassTime(courseMergeInfo.getEndClassTime());
 			courseSchedule.setActualTeacherId(courseMergeInfo.getActualTeacherId());
+			courseSchedule.setClassGroupId(courseMergeInfo.getClassGroupId());
 			courseSchedule.setSchoolId(courseMergeInfo.getSchoolId());
 
 			courseScheduleModifyLog.setCurrentCourseSchedule(JsonUtil.toJSONString(courseSchedule));
@@ -5305,6 +5310,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 		courseScheduleDao.batchUpdate(mergeCourses);
 		for (CourseScheduleStudentPayment courseScheduleStudentPayment : courseScheduleStudentPayments) {
 			courseScheduleStudentPayment.setCourseScheduleId(courseMergeInfo.getId());
+			courseScheduleStudentPayment.setClassGroupId(courseMergeInfo.getClassGroupId());
 		}
 		courseScheduleStudentPaymentDao.batchUpdate(courseScheduleStudentPayments);
 

+ 5 - 5
mec-biz/src/main/resources/config/mybatis/ClassGroupMapper.xml

@@ -776,7 +776,7 @@
     </select>
 
     <select id="queryMusicGroupCourseScheduleDetail" resultMap="MusicGroupCourseScheduleDto">
-        SELECT cs.id_ course_schedule_id_,
+        SELECT (CASE WHEN cs.new_course_id_ IS NULL THEN cs.id_ ELSE cs.new_course_id_ END) course_schedule_id_,
         cs.class_date_,
         cs.start_class_time_,
         cs.end_class_time_,
@@ -793,8 +793,8 @@
         cs.schoole_id_ school_id_
         FROM course_schedule cs
         LEFT JOIN class_group cg ON cg.id_ = cs.class_group_id_
-        LEFT JOIN teacher_attendance ta ON ta.course_schedule_id_ = cs.id_
-        LEFT JOIN course_schedule_teacher_salary csts ON csts.course_schedule_id_ = cs.id_ AND csts.teacher_role_ = 'BISHOP'
+        LEFT JOIN teacher_attendance ta ON ta.course_schedule_id_ = (CASE WHEN cs.new_course_id_ IS NULL THEN cs.id_ ELSE cs.new_course_id_ END)
+        LEFT JOIN course_schedule_teacher_salary csts ON csts.course_schedule_id_ = (CASE WHEN cs.new_course_id_ IS NULL THEN cs.id_ ELSE cs.new_course_id_ END) AND csts.teacher_role_ = 'BISHOP'
         <include refid="queryMusicGroupCourseScheduleDetailSql"/>
         ORDER BY cs.class_date_ ,cs.start_class_time_ ,cg.name_
         <include refid="global.limit"/>
@@ -804,8 +804,8 @@
         SELECT COUNT(cs.id_)
         FROM course_schedule cs
         LEFT JOIN class_group cg ON cg.id_ = cs.class_group_id_
-        LEFT JOIN teacher_attendance ta ON ta.course_schedule_id_ = cs.id_
-        LEFT JOIN course_schedule_teacher_salary csts ON csts.course_schedule_id_ = cs.id_ AND csts.teacher_role_ = 'BISHOP'
+        LEFT JOIN teacher_attendance ta ON ta.course_schedule_id_ = (CASE WHEN cs.new_course_id_ IS NULL THEN cs.id_ ELSE cs.new_course_id_ END)
+        LEFT JOIN course_schedule_teacher_salary csts ON csts.course_schedule_id_ = (CASE WHEN cs.new_course_id_ IS NULL THEN cs.id_ ELSE cs.new_course_id_ END) AND csts.teacher_role_ = 'BISHOP'
         <include refid="queryMusicGroupCourseScheduleDetailSql"/>
     </select>
 

+ 1 - 1
mec-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml

@@ -2335,7 +2335,7 @@
         COUNT(DISTINCT cs.id_)
         FROM
         course_schedule cs
-        LEFT JOIN student_attendance sa ON sa.course_schedule_id_ = cs.id_ AND sa.remark_ IS NULL
+        LEFT JOIN student_attendance sa ON sa.course_schedule_id_ = (CASE WHEN cs.new_course_id_ IS NULL THEN cs.id_ ELSE cs.new_course_id_ END) AND sa.remark_ IS NULL
         <include refid="endFindCourseSchedulesCondition"/>
     </select>
     <select id="findCourseIdsByStudent" resultType="int">