snihwxf 2 mēneši atpakaļ
vecāks
revīzija
d7ef3c8176

+ 2 - 0
src/main/java/com/xjrsoft/module/courseTable/mapper/CourseTableMapper.java

@@ -34,6 +34,8 @@ public interface CourseTableMapper extends MPJBaseMapper<CourseTable> {
 
     List<CourseListVo> getAdjustList1(@Param("dto") CourseTableAdjustDto1 dto);
 
+    List<CourseListVo> getAdjustList2(@Param("dto") CourseTableAdjustDto1 dto);
+
     List<ClassOptionVo> getClassListByTeacherId(@Param("dto") ClassOptionDto dto);
 
     //查询流程正在进行中或者已经完成的调课或者顶课申请

+ 19 - 4
src/main/java/com/xjrsoft/module/courseTable/service/impl/CourseTableServiceImpl.java

@@ -339,7 +339,7 @@ public class CourseTableServiceImpl extends ServiceImpl<CourseTableMapper, Cours
     @Override
     public List<CourseListVo> getAdjustList1(String classId,String teacherId, String adjustDate,String timeNumber,String applicantTeacherId,  String exchangeDate,  String adjustType) {
         CourseTableAdjustDto1 dto = new CourseTableAdjustDto1();
-        if (exchangeDate != null && !"".equals(exchangeDate)) {
+        if (exchangeDate != null && !exchangeDate.isEmpty()) {
             DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
             LocalDate localDateTime = LocalDate.parse(exchangeDate, formatter);
             DayOfWeek dayOfWeek = localDateTime.getDayOfWeek();
@@ -347,7 +347,7 @@ public class CourseTableServiceImpl extends ServiceImpl<CourseTableMapper, Cours
             dto.setWeek(dayOfWeek.getValue());
         }
 
-        if (adjustDate != null && !"".equals(adjustDate)) {
+        if (adjustDate != null && !adjustDate.isEmpty()) {
             dto.setAdjustDate(adjustDate);
         }
 
@@ -356,12 +356,12 @@ public class CourseTableServiceImpl extends ServiceImpl<CourseTableMapper, Cours
         List<String> timeNumbers = timeNumber == null ? Collections.emptyList() : Arrays.asList(timeNumber.split(","));
         dto.setTimeNumbers(timeNumbers);
 
-        if (applicantTeacherId != null && !"".equals(applicantTeacherId)) {
+        if (applicantTeacherId != null && !applicantTeacherId.isEmpty()) {
             dto.setApplicantTeacherId(Long.parseLong(applicantTeacherId));
         }
 
         dto.setClassId(classId);
-        if (teacherId != null && !"".equals(teacherId)) {
+        if (teacherId != null && !teacherId.isEmpty()) {
             dto.setTeacherId(Long.parseLong(teacherId));
         }
         dto.setAdjustType(adjustType);
@@ -369,6 +369,21 @@ public class CourseTableServiceImpl extends ServiceImpl<CourseTableMapper, Cours
         List<Long> courseIds = courseTableMapper.getExceptCourseIds(dto.getApplicantTeacherId());
         dto.setExceptCourseList(courseIds);
         List<CourseListVo> list = courseTableMapper.getAdjustList1(dto);
+
+        if(!list.isEmpty()) {
+            List<String> idList = list.stream()
+                    .map(CourseListVo::getTimeNumber)
+                    .collect(Collectors.toList());
+            dto.setTimeNumbers(idList);
+            List<CourseListVo> excludeList = courseTableMapper.getAdjustList2(dto);
+
+            list = list.stream()
+                    .filter(vo -> excludeList.stream()
+                            .noneMatch(ex -> ex.getTimeNumber().equals(vo.getTimeNumber()))
+                    )
+                    .collect(Collectors.toList());
+        }
+
         for (CourseListVo courseListVo : list) {
             if (courseListVo.getTimePeriod() == 1) {
                 courseListVo.setTimePeriodCn("上午");

+ 15 - 0
src/main/resources/mapper/courseTable/CourseTable.xml

@@ -110,6 +110,21 @@
         order by t4.number asc
     </select>
 
+    <select id="getAdjustList2" parameterType="com.xjrsoft.module.schedule.dto.CourseTableAdjustDto1" resultType="com.xjrsoft.module.schedule.vo.CourseListVo">
+        SELECT t1.time_period,t4.short_name as time_number,t1.course_name,t2.name AS class_name,t3.name AS classroom_name,t1.id,t2.id as class_id FROM course_table t1
+        LEFT JOIN base_class t2 ON t1.class_id = t2.id
+        LEFT JOIN base_classroom t3 ON t1.site_id = t3.id
+        left join class_time t4 on t1.time_number = t4.number and t1.time_period = t4.time_period
+        WHERE t1.status = 1
+        AND FIND_IN_SET(t_prev.teacher_id, #{dto.teacherId}) > 0
+        DATE(t_prev.schedule_date) = #{dto.exchangeDate}
+        AND t_prev.time_number in
+        <foreach item="timeNumber" collection="dto.timeNumbers" open="(" separator="," close=")">
+            #{timeNumber}
+        </foreach>
+        order by t4.number asc
+    </select>
+
 
     <select id="getExceptCourseList" parameterType="java.lang.Long" resultType="com.xjrsoft.module.schedule.entity.WfCourseAdjust">
         SELECT a1.* FROM wf_course_adjust a1