Преглед изворни кода

Merge remote-tracking branch 'origin/dev' into dev

大数据与最优化研究所 пре 8 месеци
родитељ
комит
6212227893

+ 10 - 3
src/main/java/com/xjrsoft/module/courseTable/service/impl/CourseTableServiceImpl.java

@@ -259,7 +259,7 @@ public class CourseTableServiceImpl extends ServiceImpl<CourseTableMapper, Cours
                 tableVo.setTeacherName(xjrUser.getName());
             }
         }
-        if (dto.getStartDate() != null && dto.getEndDate() != null) {
+        if (dto.getStartDate() != null && dto.getEndDate() != null && dto.getIsCustom() == null) {
             if (dto.getStudentId() == null && dto.getTeacherId() == null && dto.getClassId() == null) {
                 dto.setTeacherId(StpUtil.getLoginIdAsLong());
             } else {
@@ -393,6 +393,9 @@ public class CourseTableServiceImpl extends ServiceImpl<CourseTableMapper, Cours
                 for (int i = 0; i < courseIds.length; i++) {
                     String courseId = courseIds[i];
                     String exchangeCourseId = exchangeCourseIds[i];
+                    if (StrUtil.isEmpty(exchangeCourseId)) {
+                        continue;
+                    }
 
                     //调课,将双方课程的日期(schedule_date)、时段(time_period)、节次(time_number)、周(week)、星期几(1-7)(weeks)、星期中文(weeks_cn)对调
                     CourseTable courseTable = courseMap.get(bakKeyInfoMap.get(Long.parseLong(courseId)));
@@ -1275,9 +1278,10 @@ public class CourseTableServiceImpl extends ServiceImpl<CourseTableMapper, Cours
         CourseTableDto dataDto = new CourseTableDto();
         dataDto.setSemesterId(dto.getSemesterId());
         dataDto.setWeek(dto.getWeek());
+        dataDto.setIsCustom(1);
         CourseTableVo tableVo = this.getList(dataDto);
 
-        if("calss".equals(dto.getCourseType())){//班级课表
+        if("class".equals(dto.getCourseType())){//班级课表
             //根据年级、专业部,查询需要导出的班级
             List<BaseClass> classList = baseClassService.list(
                     new QueryWrapper<BaseClass>().lambda()
@@ -1287,7 +1291,7 @@ public class CourseTableServiceImpl extends ServiceImpl<CourseTableMapper, Cours
                             .in(BaseClass::getOrgId, dto.getDeptIds())
             );
 
-            Map<String, List<CourseDetailVo>> classDataMap = tableVo.getCourseList().stream().collect(Collectors.groupingBy(CourseDetailVo::getClassName));
+            Map<String, List<CourseDetailVo>> classDataMap = tableVo.getCourseList().stream().filter(x -> x.getClassName() != null).collect(Collectors.groupingBy(CourseDetailVo::getClassName));
 
             Workbook workbook = new XSSFWorkbook();
             String sheetName = "班级课表";
@@ -1300,6 +1304,9 @@ public class CourseTableServiceImpl extends ServiceImpl<CourseTableMapper, Cours
 
                 CourseTableVo classData = new CourseTableVo();
                 classData.setClassTimeList(tableVo.getClassTimeList());
+                if(!classDataMap.containsKey(baseClass.getName())){
+                    continue;
+                }
                 classData.setCourseList(classDataMap.get(baseClass.getName()));
 
                 String rightName = "班主任:" + tableVo.getTeacherName() + " 行政班:" + baseClass.getName();

+ 5 - 0
src/main/java/com/xjrsoft/module/schedule/dto/CourseTableDto.java

@@ -1,5 +1,6 @@
 package com.xjrsoft.module.schedule.dto;
 
+import com.fasterxml.jackson.annotation.JsonIgnore;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import org.springframework.format.annotation.DateTimeFormat;
@@ -60,4 +61,8 @@ public class CourseTableDto implements Serializable {
     @ApiModelProperty("当前日期")
     private LocalDateTime scheduleDate;
 
+    @JsonIgnore
+    @ApiModelProperty("教师id")
+    private Integer isCustom;
+
 }

+ 2 - 2
src/main/java/com/xjrsoft/module/schedule/util/CourseTableExportQueryUtil.java

@@ -64,7 +64,7 @@ public class CourseTableExportQueryUtil {
 
     public void createContent(Workbook workbook, Sheet sheet, int rowNumber, CourseTableVo data, String courseType){
         Map<Integer, ClassTime> timeNumberMap = data.getClassTimeList().stream().collect(Collectors.toMap(ClassTime::getNumber, x -> x));
-        Map<String, List<CourseDetailVo>> timeNumberDataMap = data.getCourseList().stream().collect(Collectors.groupingBy(CourseDetailVo::getTimeNumber));
+        Map<String, List<CourseDetailVo>> timeNumberDataMap = data.getCourseList().stream().filter(x -> x.getTimeNumber() != null).collect(Collectors.groupingBy(CourseDetailVo::getTimeNumber));
 
         List<Integer> weekList = new ArrayList<>();
         weekList.add(1);
@@ -173,7 +173,7 @@ public class CourseTableExportQueryUtil {
         //合并
         Map<Integer, List<Integer>> collect = data.getClassTimeList().stream()
                 .collect(Collectors.groupingBy(ClassTime::getTimePeriod, Collectors.mapping(ClassTime::getNumber, Collectors.toList())));
-        int firstRow = 2;
+        int firstRow = rowNumber;
         for (Integer i : collect.keySet()) {
             int lastRow = firstRow + collect.get(i).size() - 1;
             if (lastRow == firstRow) {