Forráskód Böngészése

节假日补班调整

dzx 1 éve
szülő
commit
af900b2cca

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

@@ -9,7 +9,9 @@ import com.xjrsoft.module.classtime.dto.AddClassTimeCalendarDto;
 import com.xjrsoft.module.classtime.entity.ClassTimeCalendar;
 import com.xjrsoft.module.classtime.mapper.ClassTimeCalendarMapper;
 import com.xjrsoft.module.classtime.service.IClassTimeCalendarService;
+import com.xjrsoft.module.courseTable.entity.ClassTime;
 import com.xjrsoft.module.courseTable.entity.CourseTable;
+import com.xjrsoft.module.courseTable.service.IClassTimeService;
 import com.xjrsoft.module.courseTable.service.ICourseTableService;
 import com.xjrsoft.module.schedule.entity.CourseTableBak;
 import com.xjrsoft.module.schedule.service.ICourseTableBakService;
@@ -34,21 +36,31 @@ import java.util.stream.Collectors;
 public class ClassTimeCalendarServiceImpl extends MPJBaseServiceImpl<ClassTimeCalendarMapper, ClassTimeCalendar> implements IClassTimeCalendarService {
     private final ICourseTableService courseTableService;
     private final ICourseTableBakService courseTableBakService;
+    private final IClassTimeService classTimeService;
 
     @Override
     public Boolean add(AddClassTimeCalendarDto dto) {
         try {
             ClassTimeCalendar classTimeCalendar = BeanUtil.toBean(dto, ClassTimeCalendar.class);
 
+            List<String> timePeriod = Arrays.asList(dto.getTimePeriod().split(","));
             //1、查询补课日期的数据,将日期设置为补班日期然后新增
             List<CourseTable> list = courseTableService.list(
                     new QueryWrapper<CourseTable>().lambda()
                             .eq(CourseTable::getScheduleDate, dto.getReplaceDate())
-                            .in(dto.getCoverType() == 1, CourseTable::getTimeNumber, Arrays.asList(dto.getTimePeriod().split(",")))
+                            .in(CourseTable::getTimeNumber, timePeriod)
             );
             if(list.isEmpty()){
                 throw new MyException("未能查询到补课日期那天的课表信息,请联系管理员");
             }
+            List<Integer> timeNumbers = classTimeService.list().stream().map(ClassTime::getNumber).collect(Collectors.toList());
+
+            List<Integer> notSelectedTimeNumbers = new ArrayList<>();
+            for (Integer timeNumber : timeNumbers) {
+                if(!timePeriod.contains(timeNumber.toString())){
+                    notSelectedTimeNumbers.add(timeNumber);
+                }
+            }
 
             classTimeCalendar.setCreateDate(new Date());
             boolean isSuccess = this.save(classTimeCalendar);
@@ -57,7 +69,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(",")))
+                            .in(dto.getCoverType() == 1, CourseTable::getTimeNumber, timePeriod)
             );
             List<CourseTableBak> bakList = new ArrayList<>();
             for (CourseTable courseTable : deleteList) {
@@ -138,11 +150,13 @@ public class ClassTimeCalendarServiceImpl extends MPJBaseServiceImpl<ClassTimeCa
     public Boolean cancel(Long id) {
         try{
             ClassTimeCalendar calendar = this.getById(id);
+            List<String> timePeriod = Arrays.asList(calendar.getTimePeriod().split(","));
             //1、作废后,删除新增的补班课表数据
             courseTableService.remove(
                     new QueryWrapper<CourseTable>().lambda()
                             .eq(CourseTable::getScheduleDate, calendar.getSupplementDate())
                             .eq(CourseTable::getAdjustType, CourseAdjustTypeEnum.courseReplace.getCode())
+                            .in(CourseTable::getTimeNumber, timePeriod)
             );
             //查询出来备份的数据,并恢复到课表中
             List<CourseTableBak> list = courseTableBakService.list(