浏览代码

1、课程调整时排除自动补签记录

Joburgess 5 年之前
父节点
当前提交
227cfd0ac0

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

@@ -358,6 +358,11 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
         Map<String, Object> params = new HashMap<>();
         MapUtil.populateMap(params, queryInfo);
 
+        List<Group> groups = groupDao.searchGroups(params);
+        if(!CollectionUtils.isEmpty(groups)){
+            params.put("groups", groups);
+        }
+
         List<CourseScheduleDto> dataList = null;
         int count = courseScheduleDao.countCourseSchedulesWithDate(params);
         if (count > 0) {

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

@@ -450,15 +450,19 @@
             ta.sign_in_status_ attendance_status_,
             s.name_ school_name_
         FROM
-            music_group mg
-            LEFT JOIN class_group cg ON mg.id_ = cg.music_group_id_
-            LEFT JOIN course_schedule cs ON cg.id_ = cs.class_group_id_
+            course_schedule cs
+            LEFT JOIN class_group cg ON cs.class_group_id_ = cg.id_
             LEFT JOIN sys_user su ON cs.teacher_id_=su.id_
             LEFT JOIN teacher_attendance ta ON cs.id_=ta.class_group_id_ AND ta.teacher_id_=cs.teacher_id_
             LEFT JOIN school s ON mg.school_id_=s.id_
         WHERE
         (cs.del_flag_ != 1 OR cs.del_flag_ IS NULL)
-        AND FIND_IN_SET(mg.organ_id_,#{organIdList})
+        <if test="groups != null and organIdList!=null">
+            AND cs.music_group_id_ IN
+            <foreach collection="groups" item="group" open="(" close=")" separator=",">
+                #{group.id}
+            </foreach>
+        </if>
         AND cs.id_ IS NOT NULL
         <if test="type!=null">
             AND cg.group_type_ = #{type}
@@ -471,16 +475,20 @@
         SELECT
           count(*)
         FROM
-          music_group mg
-        LEFT JOIN class_group cg ON mg.id_ = cg.music_group_id_
-        LEFT JOIN course_schedule cs ON cg.id_ = cs.class_group_id_
+        course_schedule cs
+        LEFT JOIN class_group cg ON cs.class_group_id_ = cg.id_
         WHERE
         (cs.del_flag_ != 1 OR cs.del_flag_ IS NULL)
-        AND FIND_IN_SET(mg.organ_id_,#{organIdList})
         AND cs.id_ IS NOT NULL
         <if test="type!=null">
             AND cg.group_type_ = #{type}
         </if>
+        <if test="groups != null and organIdList!=null">
+            AND cs.music_group_id_ IN
+            <foreach collection="groups" item="group" open="(" close=")" separator=",">
+                #{group.id}
+            </foreach>
+        </if>
         AND cs.class_date_ = DATE_FORMAT(#{date},'%Y-%m-%d')
     </select>
 
@@ -1884,7 +1892,7 @@
                 )
             </if>
             <if test="groups != null and organIdList!=null">
-                AND (cs.music_group_id_ IN
+                AND cs.music_group_id_ IN
                 <foreach collection="groups" item="group" open="(" close=")" separator=",">
                     #{group.id}
                 </foreach>