Browse Source

Merge branch 'master' of http://git.dayaedu.com/yonge/mec

zouxuan 4 năm trước cách đây
mục cha
commit
8c824cbd00

+ 14 - 3
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java

@@ -6,9 +6,11 @@ import static com.ym.mec.biz.dal.enums.GroupType.VIP;
 import static com.ym.mec.biz.dal.enums.PracticeGroupType.CHARGE;
 import static com.ym.mec.biz.dal.enums.PracticeGroupType.FREE;
 import static com.ym.mec.biz.dal.enums.PracticeGroupType.TRIAL;
+import static java.math.BigDecimal.ONE;
 
 import java.lang.reflect.InvocationTargetException;
 import java.math.BigDecimal;
+import java.math.BigInteger;
 import java.text.SimpleDateFormat;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
@@ -292,6 +294,9 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 				if (DateUtil.stringToDate(endDateStr, sdf).before(date)) {
 					throw new BizException("删除失败,未开始的课程才能删除");
 				}
+				if(Objects.nonNull(cs.getNewCourseId())){
+					throw new BizException("删除失败,被合并课程不能删除");
+				}
 			}
 		}
 		courseScheduleDao.batchDeleteCourseSchedules(courseScheduleIds);
@@ -2800,6 +2805,12 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
         //保存修改记录
         for (int i=0;i<classGroupCourseSchedulesWithDate.size();i++) {
             CourseSchedule courseSchedule=classGroupCourseSchedulesWithDate.get(i);
+            if(Objects.nonNull(courseSchedule.getNewCourseId())){
+            	throw new BizException("选择的班级中存在已合并课程,无法进行顺延操作");
+			}
+            if(Integer.valueOf(1).equals(courseSchedule.getIsLock())){
+				throw new BizException("选择的班级中部分课程已被锁定,无法进行顺延操作");
+			}
             calendar.setTime(courseSchedule.getClassDate());
             calendar.add(Calendar.DATE, betweenDays);
 
@@ -5291,9 +5302,9 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 			courseSchedule.setClassDate(courseMergeInfo.getClassDate());
 			courseSchedule.setStartClassTime(courseMergeInfo.getStartClassTime());
 			courseSchedule.setEndClassTime(courseMergeInfo.getEndClassTime());
-			courseSchedule.setActualTeacherId(courseMergeInfo.getActualTeacherId());
-			courseSchedule.setClassGroupId(courseMergeInfo.getClassGroupId());
-			courseSchedule.setSchoolId(courseMergeInfo.getSchoolId());
+//			courseSchedule.setActualTeacherId(courseMergeInfo.getActualTeacherId());
+//			courseSchedule.setClassGroupId(courseMergeInfo.getClassGroupId());
+//			courseSchedule.setSchoolId(courseMergeInfo.getSchoolId());
 
 			courseScheduleModifyLog.setCurrentCourseSchedule(JsonUtil.toJSONString(courseSchedule));
 			courseScheduleModifyLog.setOperatorId(courseMergeInfo.getOperatorId());

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

@@ -776,7 +776,7 @@
     </select>
 
     <select id="queryMusicGroupCourseScheduleDetail" resultMap="MusicGroupCourseScheduleDto">
-        SELECT (CASE WHEN cs.new_course_id_ IS NULL THEN cs.id_ ELSE cs.new_course_id_ END) course_schedule_id_,
+        SELECT cs.id_ 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_ = (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'
+        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'
         <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_ = (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'
+        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'
         <include refid="queryMusicGroupCourseScheduleDetailSql"/>
     </select>
 

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

@@ -1007,6 +1007,8 @@
             cssp.user_id_=#{userId}
             AND cs.status_ != 'NOT_START'
             AND cs.del_flag_ = 0
+            AND (cs.is_lock_=0 OR cs.is_lock_ IS NULL)
+            AND cs.new_course_id_ IS NULL
             <if test="teachMode!=null and teachMode!=''">
                 AND cs.teach_mode_=#{teachMode}
             </if>
@@ -1068,10 +1070,12 @@
                  LEFT JOIN course_schedule cs ON cs.class_group_id_ = cgsm.class_group_id_
                  LEFT JOIN sys_user su ON cs.teacher_id_ = su.id_
         WHERE (cs.del_flag_ != 1 OR cs.del_flag_ IS NULL)
-          AND cs.status_ = 'NOT_START'
-          AND cgsm.user_id_ = #{userId}
-          AND cs.class_date_ = DATE_FORMAT(#{date}, '%Y%m%d')
-          AND cgsm.status_ != 'QUIT'
+            AND (cs.is_lock_=0 OR cs.is_lock_ IS NULL)
+            AND cs.new_course_id_ IS NULL
+            AND cs.status_ = 'NOT_START'
+            AND cgsm.user_id_ = #{userId}
+            AND cs.class_date_ = DATE_FORMAT(#{date}, '%Y%m%d')
+            AND cgsm.status_ != 'QUIT'
         ORDER BY cs.class_date_, cs.start_class_time_
     </select>
     <select id="findCourseScheduleByMusicGroup" resultMap="CourseSchedule">
@@ -2311,7 +2315,7 @@
 
     <select id="endFindCourseSchedules" resultMap="CourseScheduleEndDto">
         SELECT
-            (CASE WHEN cs.new_course_id_ IS NULL THEN cs.id_ ELSE cs.new_course_id_ END) id_,
+            cs.id_ id_,
             cs.new_course_id_,
             cs.group_type_,
             cs.music_group_id_,
@@ -2347,7 +2351,7 @@
         COUNT(DISTINCT cs.id_)
         FROM
         course_schedule cs
-        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
+        LEFT JOIN student_attendance sa ON sa.course_schedule_id_ = cs.id_ AND sa.remark_ IS NULL
         <include refid="endFindCourseSchedulesCondition"/>
     </select>
     <select id="findCourseIdsByStudent" resultType="int">

+ 3 - 0
mec-web/src/main/java/com/ym/mec/web/controller/CourseScheduleController.java

@@ -195,6 +195,9 @@ public class CourseScheduleController extends BaseController {
         if(Objects.isNull(oldCourseSchedule)){
             return failed("未找到指定课程");
         }
+        if(Objects.nonNull(oldCourseSchedule.getNewCourseId())){
+            return failed("被合并课程禁止调整");
+        }
         if(GroupType.VIP.equals(oldCourseSchedule.getGroupType())){
             VipGroup vipGroup = vipGroupDao.findByCourseSchedule(courseSchedule.getId());
             if(Objects.nonNull(vipGroup)