Selaa lähdekoodia

1、课时删除增加节次设置
2、节假日调班增加节次设置

dzx 4 kuukautta sitten
vanhempi
commit
d38d95c39e

+ 16 - 4
src/main/java/com/xjrsoft/module/classtime/service/impl/ClassTimeCalendarServiceImpl.java

@@ -18,6 +18,7 @@ import org.springframework.stereotype.Service;
 
 import java.time.DayOfWeek;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Date;
 import java.util.List;
 import java.util.stream.Collectors;
@@ -38,10 +39,12 @@ public class ClassTimeCalendarServiceImpl extends MPJBaseServiceImpl<ClassTimeCa
     public Boolean add(AddClassTimeCalendarDto dto) {
         try {
             ClassTimeCalendar classTimeCalendar = BeanUtil.toBean(dto, ClassTimeCalendar.class);
+
             //1、查询补课日期的数据,将日期设置为补班日期然后新增
             List<CourseTable> list = courseTableService.list(
                     new QueryWrapper<CourseTable>().lambda()
                             .eq(CourseTable::getScheduleDate, dto.getReplaceDate())
+                            .in(CourseTable::getTimeNumber, Arrays.asList(dto.getTimePeriod().split(",")))
             );
             if(list.isEmpty()){
                 throw new MyException("未能查询到补课日期那天的课表信息,请联系管理员");
@@ -51,6 +54,7 @@ public class ClassTimeCalendarServiceImpl extends MPJBaseServiceImpl<ClassTimeCa
             List<CourseTable> deleteList = courseTableService.list(
                     new QueryWrapper<CourseTable>().lambda()
                             .eq(CourseTable::getScheduleDate, dto.getSupplementDate())
+                            .in(dto.getCoverType() == 1, CourseTable::getTimeNumber, Arrays.asList(dto.getTimePeriod().split(",")))
             );
             List<CourseTableBak> bakList = new ArrayList<>();
             for (CourseTable courseTable : deleteList) {
@@ -79,8 +83,12 @@ public class ClassTimeCalendarServiceImpl extends MPJBaseServiceImpl<ClassTimeCa
             boolean isSuccess = this.save(classTimeCalendar);
             return isSuccess;
         }catch (Exception e){
-            log.error(e.getMessage());
-            throw new MyException("添加出错,请联系管理员");
+            log.error(e.getMessage(), e);
+            if(e.getClass().equals(MyException.class)){
+                throw new MyException(e.getMessage());
+            }else{
+                throw new MyException("添加出错,请联系管理员");
+            }
         }
     }
 
@@ -152,8 +160,12 @@ public class ClassTimeCalendarServiceImpl extends MPJBaseServiceImpl<ClassTimeCa
             calendar.setModifyDate(new Date());
             return this.updateById(calendar);
         }catch (Exception e){
-            log.error(e.getMessage());
-            throw new MyException("作废出错,请联系管理员");
+            log.error(e.getMessage(), e);
+            if(e.getClass().equals(MyException.class)){
+                throw new MyException(e.getMessage());
+            }else{
+                throw new MyException("添加出错,请联系管理员");
+            }
         }
     }
 }

+ 17 - 16
src/main/java/com/xjrsoft/module/classtime/service/impl/ClassTimeStatisticsServiceImpl.java

@@ -188,18 +188,18 @@ public class ClassTimeStatisticsServiceImpl extends MPJBaseServiceImpl<ClassTime
                             .ne(ClassTimeDelete::getStatus, 2)
             );
             Map<Long, List<ClassTimeDelete>> deleteDataMap = deleteList.stream().collect(Collectors.groupingBy(ClassTimeDelete::getClassId));
-            Map<Long, Set<LocalDate>> deleteMap = new HashMap<>();//将每个班级计算出来所有被删除的日期存入map
+            Map<Long, Map<LocalDate, String>> deleteMap = new HashMap<>();//将每个班级计算出来所有被删除的日期存入map
             for (Long classId : deleteDataMap.keySet()) {
-                List<LocalDate> dateList = new ArrayList<>();
+                Map<LocalDate, String> dateMap = new HashMap<>();
                 for (ClassTimeDelete classTimeDelete : deleteDataMap.get(classId)) {
                     LocalDate currentDate = classTimeDelete.getStartDate();
                     while (!currentDate.isAfter(classTimeDelete.getEndDate())) {
-                        dateList.add(currentDate);
+                        dateMap.put(currentDate, classTimeDelete.getTimePeriod());
                         currentDate = currentDate.plusDays(1); // 增加一天
                     }
                 }
                 //去重并存到map中
-                deleteMap.put(classId, new HashSet<>(dateList));
+                deleteMap.put(classId, dateMap);
             }
             DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
 
@@ -316,9 +316,10 @@ public class ClassTimeStatisticsServiceImpl extends MPJBaseServiceImpl<ClassTime
                 //循环,统计出各项数据
                 for (CourseListVo courseListVo : courseList) {
                     //如果这个课程数据包含在被删除的课时中,跳过不计算
-                    Set<LocalDate> deleteDates = deleteMap.get(courseListVo.getClassId());
+                    Map<LocalDate, String> deleteDates = deleteMap.get(courseListVo.getClassId());
                     JsonObject courseJson = new JsonObject();
-                    if(deleteDates != null && deleteDates.contains(courseListVo.getScheduleDate())){
+                    if(deleteDates != null && deleteDates.containsKey(courseListVo.getScheduleDate())
+                            && deleteDates.get(courseListVo.getScheduleDate()).contains(courseListVo.getTimeNumber()) ){
                         courseJson.addProperty("type", courseListVo.getShortName());
                         courseJson.addProperty("scheduleDate", courseListVo.getScheduleDate().format(formatter));
                         courseJson.addProperty("content", "");
@@ -366,8 +367,8 @@ public class ClassTimeStatisticsServiceImpl extends MPJBaseServiceImpl<ClassTime
                     for (CourseListVo courseListVo : courseList) {
                         LocalDate scheduleDate = courseListVo.getScheduleDate();
                         //如果这个课程数据包含在被删除的课时中,跳过不计算
-                        Set<LocalDate> deleteDates = deleteMap.get(courseListVo.getClassId());
-                        if(deleteDates != null && deleteDates.contains(scheduleDate)){
+                        Map<LocalDate, String> deleteDates = deleteMap.get(courseListVo.getClassId());
+                        if(deleteDates != null && deleteDates.containsKey(scheduleDate) && deleteDates.get(courseListVo.getScheduleDate()).contains(courseListVo.getTimeNumber())){
                             continue;
                         }
 
@@ -395,8 +396,8 @@ public class ClassTimeStatisticsServiceImpl extends MPJBaseServiceImpl<ClassTime
                             .collect(Collectors.toList());
                     Double reduceTime = 0d;//顶课课时
                     for (CourseListVo courseListVo : substituteList) {
-                        Set<LocalDate> deleteDates = deleteMap.get(courseListVo.getClassId());
-                        if(deleteDates !=null && deleteDates.contains(courseListVo.getScheduleDate())){
+                        Map<LocalDate, String> deleteDates = deleteMap.get(courseListVo.getClassId());
+                        if(deleteDates != null && deleteDates.containsKey(courseListVo.getScheduleDate()) && deleteDates.get(courseListVo.getScheduleDate()).contains(courseListVo.getTimeNumber())){
                             continue;
                         }
                         if(!( (courseListVo.getScheduleDate().equals(timeRangeVo.getMondayDate()) || courseListVo.getScheduleDate().isAfter(timeRangeVo.getMondayDate()))
@@ -409,8 +410,8 @@ public class ClassTimeStatisticsServiceImpl extends MPJBaseServiceImpl<ClassTime
                     substituteList = allSubstituteList.stream().filter(x -> x.getTeacherId().equals(teacher.getId().toString()))
                             .collect(Collectors.toList());
                     for (CourseListVo courseListVo : substituteList) {
-                        Set<LocalDate> deleteDates = deleteMap.get(courseListVo.getClassId());
-                        if(deleteDates !=null && deleteDates.contains(courseListVo.getScheduleDate())){
+                        Map<LocalDate, String> deleteDates = deleteMap.get(courseListVo.getClassId());
+                        if(deleteDates != null && deleteDates.containsKey(courseListVo.getScheduleDate()) && deleteDates.get(courseListVo.getScheduleDate()).contains(courseListVo.getTimeNumber())){
                             continue;
                         }
                         if(!( (courseListVo.getScheduleDate().equals(timeRangeVo.getMondayDate()) || courseListVo.getScheduleDate().isAfter(timeRangeVo.getMondayDate()))
@@ -486,8 +487,8 @@ public class ClassTimeStatisticsServiceImpl extends MPJBaseServiceImpl<ClassTime
                     Double reduceTime = 0d;//顶课课时
                     Double dkClassTime = 0d;//去顶课的数量,所有顶课数量
                     for (CourseListVo courseListVo : substituteList) {
-                        Set<LocalDate> deleteDates = deleteMap.get(courseListVo.getClassId());
-                        if(deleteDates !=null && deleteDates.contains(courseListVo.getScheduleDate())){
+                        Map<LocalDate, String> deleteDates = deleteMap.get(courseListVo.getClassId());
+                        if(deleteDates != null && deleteDates.containsKey(courseListVo.getScheduleDate()) && deleteDates.get(courseListVo.getScheduleDate()).contains(courseListVo.getTimeNumber())){
                             continue;
                         }
                         reduceTime += weightSetMap.get(courseListVo.getShortName());
@@ -499,8 +500,8 @@ public class ClassTimeStatisticsServiceImpl extends MPJBaseServiceImpl<ClassTime
                     substituteList = allSubstituteList.stream().filter(x -> x.getTeacherId().equals(teacher.getId().toString()))
                             .collect(Collectors.toList());
                     for (CourseListVo courseListVo : substituteList) {
-                        Set<LocalDate> deleteDates = deleteMap.get(courseListVo.getClassId());
-                        if(deleteDates !=null && deleteDates.contains(courseListVo.getScheduleDate())){
+                        Map<LocalDate, String> deleteDates = deleteMap.get(courseListVo.getClassId());
+                        if(deleteDates != null && deleteDates.containsKey(courseListVo.getScheduleDate()) && deleteDates.get(courseListVo.getScheduleDate()).contains(courseListVo.getTimeNumber())){
                             continue;
                         }
                         reduceTime = reduceTime - weightSetMap.get(courseListVo.getShortName());

+ 3 - 0
src/main/java/com/xjrsoft/module/classtime/vo/CourseListVo.java

@@ -42,5 +42,8 @@ public class CourseListVo {
     @ApiModelProperty("课程名称")
     private String courseName;
 
+    @ApiModelProperty("节次")
+    private String timeNumber;
+
 
 }

+ 3 - 3
src/main/resources/mapper/classtime/ClassTimeStatisticsMapper.xml

@@ -17,7 +17,7 @@
     </select>
 
     <select id="getCourseList" parameterType="com.xjrsoft.module.classtime.entity.ClassTimeStatistics" resultType="com.xjrsoft.module.classtime.vo.CourseListVo">
-        SELECT t1.class_id, t1.teacher_id, t2.short_name,t1.adjust_type,t4.reason,t1.schedule_date,t1.class_name,t1.course_name FROM course_table t1
+        SELECT t1.class_id, t1.teacher_id, t2.short_name,t1.adjust_type,t4.reason,t1.schedule_date,t1.class_name,t1.course_name,t1.time_number FROM course_table t1
         LEFT JOIN class_time t2 ON t1.time_period = t2.time_period AND t1.time_number = t2.number
         LEFT JOIN course_table_bak t3 ON t1.id = t3.id
         LEFT JOIN wf_course_adjust t4 ON t4.id = t3.wf_course_adjust_id
@@ -29,7 +29,7 @@
     </select>
 
     <select id="getHolidayReplaceCourseList" parameterType="com.xjrsoft.module.classtime.entity.ClassTimeStatistics" resultType="com.xjrsoft.module.classtime.vo.CourseListVo">
-        SELECT t1.class_id, t1.teacher_id, t2.short_name,t1.adjust_type,t4.reason,t1.schedule_date,t1.class_name,t1.course_name FROM course_table t1
+        SELECT t1.class_id, t1.teacher_id, t2.short_name,t1.adjust_type,t4.reason,t1.schedule_date,t1.class_name,t1.course_name,t1.time_number FROM course_table t1
         LEFT JOIN class_time t2 ON t1.time_period = t2.time_period AND t1.time_number = t2.number
         LEFT JOIN course_table_bak t3 ON t1.id = t3.id
         LEFT JOIN wf_course_adjust t4 ON t4.id = t3.wf_course_adjust_id
@@ -42,7 +42,7 @@
     </select>
 
     <select id="getReplaceCourseList" parameterType="com.xjrsoft.module.classtime.entity.ClassTimeStatistics" resultType="com.xjrsoft.module.classtime.vo.CourseListVo">
-        SELECT t1.class_id, t1.teacher_id, t2.short_name,t1.adjust_type,t4.reason,t1.schedule_date FROM course_table t1
+        SELECT t1.class_id, t1.teacher_id, t2.short_name,t1.adjust_type,t4.reason,t1.schedule_date,t1.time_number FROM course_table t1
         LEFT JOIN class_time t2 ON t1.time_period = t2.time_period AND t1.time_number = t2.number
         LEFT JOIN course_table_bak t3 ON t1.id = t3.id
         LEFT JOIN wf_course_adjust t4 ON t4.id = t3.wf_course_adjust_id