|
|
@@ -84,6 +84,8 @@ import java.io.IOException;
|
|
|
import java.io.InputStream;
|
|
|
import java.time.*;
|
|
|
import java.time.format.DateTimeFormatter;
|
|
|
+import java.time.temporal.ChronoUnit;
|
|
|
+import java.time.temporal.TemporalAdjusters;
|
|
|
import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
@@ -139,10 +141,7 @@ public class CourseTableServiceImpl extends ServiceImpl<CourseTableMapper, Cours
|
|
|
|
|
|
// 获取教师信息
|
|
|
MPJLambdaWrapper<XjrUser> queryWrapper = new MPJLambdaWrapper<>();
|
|
|
- queryWrapper
|
|
|
- .disableSubLogicDel()
|
|
|
- .innerJoin(BaseTeacher.class, BaseTeacher::getUserId, XjrUser::getId)
|
|
|
- .selectAll(XjrUser.class);
|
|
|
+ queryWrapper.disableSubLogicDel().innerJoin(BaseTeacher.class, BaseTeacher::getUserId, XjrUser::getId).selectAll(XjrUser.class);
|
|
|
List<XjrUser> xjrUserList = teacherbaseManagerService.list(queryWrapper);
|
|
|
Map<String, XjrUser> xjrUsersMap = xjrUserList.stream().collect(Collectors.toMap(XjrUser::getName, a -> a, (k1, k2) -> k1));
|
|
|
|
|
|
@@ -172,8 +171,7 @@ public class CourseTableServiceImpl extends ServiceImpl<CourseTableMapper, Cours
|
|
|
@Override
|
|
|
public List<ClassListVo> classList(ClassListDto dto) {
|
|
|
LambdaQueryWrapper<CourseTable> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
- queryWrapper.eq(CourseTable::getClassId, dto.getClassId())
|
|
|
- .eq(ObjectUtil.isNotEmpty(dto.getWeeks()), CourseTable::getWeeks, dto.getWeeks());
|
|
|
+ queryWrapper.eq(CourseTable::getClassId, dto.getClassId()).eq(ObjectUtil.isNotEmpty(dto.getWeeks()), CourseTable::getWeeks, dto.getWeeks());
|
|
|
|
|
|
List<CourseTable> courseTables = courseTableMapper.selectList(queryWrapper);
|
|
|
|
|
|
@@ -203,10 +201,7 @@ public class CourseTableServiceImpl extends ServiceImpl<CourseTableMapper, Cours
|
|
|
@Override
|
|
|
public CourseTableVo getList(CourseTableDto dto) {
|
|
|
|
|
|
- List<ClassTime> classTimes = classTimeMapper.selectList(
|
|
|
- new QueryWrapper<ClassTime>().lambda()
|
|
|
- .ne(ClassTime::getTimePeriod, 0)
|
|
|
- .orderByAsc(ClassTime::getSummerStartTime)
|
|
|
+ List<ClassTime> classTimes = classTimeMapper.selectList(new QueryWrapper<ClassTime>().lambda().ne(ClassTime::getTimePeriod, 0).orderByAsc(ClassTime::getSummerStartTime)
|
|
|
|
|
|
);
|
|
|
|
|
|
@@ -217,42 +212,66 @@ public class CourseTableServiceImpl extends ServiceImpl<CourseTableMapper, Cours
|
|
|
BaseSemester baseSemester = baseSemesterMapper.selectById(dto.getSemesterId());
|
|
|
tableVo.setSemesterName(baseSemester.getName());
|
|
|
LocalDateTime now = LocalDateTime.now();
|
|
|
- //计算本周是第几周
|
|
|
- LocalDateTime startDateTime = LocalDateTime.ofInstant(baseSemester.getTeachingStart().toInstant(), ZoneId.systemDefault());
|
|
|
- LocalDateTime endDateTime = LocalDateTime.ofInstant(baseSemester.getTeachingEnd().toInstant(), ZoneId.systemDefault());
|
|
|
- Duration between = Duration.between(startDateTime, endDateTime);
|
|
|
- long days = between.toDays();
|
|
|
- int weeks = (int) Math.ceil((double) days / 7);
|
|
|
+ // 计算本周是第几周
|
|
|
+ LocalDate semesterStart = LocalDate.ofInstant(baseSemester.getTeachingStart().toInstant(), ZoneId.systemDefault());
|
|
|
+ LocalDate semesterEnd = LocalDate.ofInstant(baseSemester.getTeachingEnd().toInstant(), ZoneId.systemDefault());
|
|
|
+
|
|
|
+ // 调整到完整的周范围(周一到周日)
|
|
|
+ LocalDate weekStart = semesterStart.with(TemporalAdjusters.previousOrSame(DayOfWeek.MONDAY));
|
|
|
+ LocalDate weekEnd = semesterEnd.with(TemporalAdjusters.nextOrSame(DayOfWeek.SUNDAY));
|
|
|
+
|
|
|
+ // 计算总周数
|
|
|
+ long totalWeeks = ChronoUnit.WEEKS.between(weekStart, weekEnd.plusDays(1)); // 加1天以确保包含最后一周
|
|
|
+
|
|
|
if (dto.getWeek() == null) {
|
|
|
- for (int i = 0; i < weeks; i++) {
|
|
|
- LocalDateTime startDate = startDateTime.plusDays(i * 7L).withHour(0).withMinute(0).withSecond(0).withNano(0);
|
|
|
- LocalDateTime endDate = startDate.plusDays(6).withHour(23).withMinute(59).withSecond(59).withNano(9999);
|
|
|
- if (now.isAfter(startDate) && now.isBefore(endDate)) {
|
|
|
- tableVo.setWeek("第" + (i + 1) + "周");
|
|
|
- }
|
|
|
- tableVo.setStartDate(startDate.toLocalDate());
|
|
|
- tableVo.setEndDate(endDate.toLocalDate());
|
|
|
+ // 查找当前日期所在的周
|
|
|
+ long weeksBetween = ChronoUnit.WEEKS.between(weekStart, now);
|
|
|
+ LocalDate calculatedWeekStart = weekStart.plusWeeks(weeksBetween);
|
|
|
+ LocalDate calculatedWeekEnd = calculatedWeekStart.plusDays(6);
|
|
|
+
|
|
|
+ // 验证是否在学期范围内
|
|
|
+ LocalDate nowDate = now.toLocalDate();
|
|
|
+
|
|
|
+ if (!nowDate.isBefore(weekStart) && !nowDate.isAfter(weekEnd)) {
|
|
|
+ int currentWeek = (int) (weeksBetween + 1);
|
|
|
+ tableVo.setWeek("第" + currentWeek + "周");
|
|
|
+ tableVo.setStartDate(calculatedWeekStart);
|
|
|
+ tableVo.setEndDate(calculatedWeekEnd);
|
|
|
+ } else {
|
|
|
+ tableVo.setWeek("不在学期范围内");
|
|
|
+ tableVo.setStartDate(weekStart);
|
|
|
+ tableVo.setEndDate(weekEnd);
|
|
|
}
|
|
|
} else {
|
|
|
- LocalDateTime startDate = startDateTime.plusDays((dto.getWeek() - 1) * 7L).withHour(0).withMinute(0).withSecond(0).withNano(0);
|
|
|
- LocalDateTime endDate = startDate.plusDays(6).withHour(23).withMinute(59).withSecond(59).withNano(9999);
|
|
|
- dto.setStartDate(startDate);
|
|
|
- dto.setEndDate(endDate);
|
|
|
- tableVo.setWeek("第" + dto.getWeek() + "周");
|
|
|
- tableVo.setStartDate(startDate.toLocalDate());
|
|
|
- tableVo.setEndDate(endDate.toLocalDate());
|
|
|
- }
|
|
|
+ // 根据指定周数计算日期范围
|
|
|
+ int weekNumber = dto.getWeek();
|
|
|
+ if (weekNumber < 1 || weekNumber > totalWeeks) {
|
|
|
+ throw new MyException("周数必须在1到" + totalWeeks + "之间");
|
|
|
+ }
|
|
|
+
|
|
|
+ LocalDateTime semesterStartDateTime = baseSemester.getTeachingStart().toInstant()
|
|
|
+ .atZone(ZoneId.systemDefault())
|
|
|
+ .toLocalDateTime();
|
|
|
+
|
|
|
+ LocalDateTime weekStartDateTime = semesterStartDateTime
|
|
|
+ .plusWeeks(weekNumber - 1)
|
|
|
+ .toLocalDate()
|
|
|
+ .with(TemporalAdjusters.previousOrSame(DayOfWeek.MONDAY))
|
|
|
+ .atStartOfDay();
|
|
|
+
|
|
|
+ LocalDateTime weekEndDateTime = weekStartDateTime.plusDays(6)
|
|
|
+ .with(LocalTime.MAX);
|
|
|
|
|
|
+ dto.setStartDate(weekStartDateTime);
|
|
|
+ dto.setEndDate(weekEndDateTime);
|
|
|
+ tableVo.setWeek("第" + weekNumber + "周");
|
|
|
+ tableVo.setStartDate(weekStartDateTime.toLocalDate());
|
|
|
+ tableVo.setEndDate(weekEndDateTime.toLocalDate());
|
|
|
+ }
|
|
|
}
|
|
|
if (!StrUtil.isEmpty(dto.getTeacherName())) {
|
|
|
- List<XjrUser> userList = teacherbaseManagerService.list(
|
|
|
- new QueryWrapper<XjrUser>().lambda()
|
|
|
- .like(!StrUtil.isEmpty(dto.getTeacherName()), XjrUser::getName, dto.getTeacherName())
|
|
|
- );
|
|
|
- List<XjrUser> userList2 = teacherbaseManagerService.list(
|
|
|
- new QueryWrapper<XjrUser>().lambda()
|
|
|
- .like(!StrUtil.isEmpty(dto.getTeacherName()), XjrUser::getCode, dto.getTeacherName())
|
|
|
- );
|
|
|
+ List<XjrUser> userList = teacherbaseManagerService.list(new QueryWrapper<XjrUser>().lambda().like(!StrUtil.isEmpty(dto.getTeacherName()), XjrUser::getName, dto.getTeacherName()));
|
|
|
+ List<XjrUser> userList2 = teacherbaseManagerService.list(new QueryWrapper<XjrUser>().lambda().like(!StrUtil.isEmpty(dto.getTeacherName()), XjrUser::getCode, dto.getTeacherName()));
|
|
|
userList.addAll(userList2);
|
|
|
if (!userList.isEmpty()) {
|
|
|
XjrUser xjrUser = userList.get(0);
|
|
|
@@ -264,9 +283,7 @@ public class CourseTableServiceImpl extends ServiceImpl<CourseTableMapper, Cours
|
|
|
if (dto.getStudentId() == null && dto.getTeacherId() == null && dto.getClassId() == null) {
|
|
|
dto.setTeacherId(StpUtil.getLoginIdAsLong());
|
|
|
} else {
|
|
|
- List<BaseStudentSchoolRoll> schoolRolls = baseStudentSchoolRollService.list(
|
|
|
- new QueryWrapper<BaseStudentSchoolRoll>().lambda().eq(BaseStudentSchoolRoll::getUserId, dto.getStudentId())
|
|
|
- );
|
|
|
+ List<BaseStudentSchoolRoll> schoolRolls = baseStudentSchoolRollService.list(new QueryWrapper<BaseStudentSchoolRoll>().lambda().eq(BaseStudentSchoolRoll::getUserId, dto.getStudentId()));
|
|
|
if (schoolRolls != null && !schoolRolls.isEmpty()) {
|
|
|
dto.setCourseType("class");
|
|
|
dto.setClassId(schoolRolls.get(0).getClassId());
|
|
|
@@ -354,13 +371,7 @@ public class CourseTableServiceImpl extends ServiceImpl<CourseTableMapper, Cours
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public Boolean adjustCourse(WfCourseAdjust courseAdjust) {
|
|
|
//先查询课表数据,看是否能够查询到,如果能查到
|
|
|
- List<CourseTable> list = this.list(
|
|
|
- new MPJLambdaWrapper<CourseTable>()
|
|
|
- .select(CourseTable::getId)
|
|
|
- .select(CourseTable.class, x -> VoToColumnUtil.fieldsToColumns(CourseTable.class).contains(x.getProperty()))
|
|
|
- .innerJoin(CourseTableBak.class, CourseTableBak::getId, CourseTable::getId)
|
|
|
- .eq(CourseTableBak::getWfCourseAdjustId, courseAdjust.getId())
|
|
|
- );
|
|
|
+ List<CourseTable> list = this.list(new MPJLambdaWrapper<CourseTable>().select(CourseTable::getId).select(CourseTable.class, x -> VoToColumnUtil.fieldsToColumns(CourseTable.class).contains(x.getProperty())).innerJoin(CourseTableBak.class, CourseTableBak::getId, CourseTable::getId).eq(CourseTableBak::getWfCourseAdjustId, courseAdjust.getId()));
|
|
|
String[] courseIds = courseAdjust.getCourseId().split(",");
|
|
|
|
|
|
ArrayList<String> courseIdList = new ArrayList<>(Arrays.asList(courseIds));
|
|
|
@@ -375,18 +386,9 @@ public class CourseTableServiceImpl extends ServiceImpl<CourseTableMapper, Cours
|
|
|
LocalDateTime now = LocalDateTime.now();
|
|
|
|
|
|
if (list.isEmpty() || list.size() != courseCount) {
|
|
|
- list = this.list(
|
|
|
- new MPJLambdaWrapper<CourseTable>()
|
|
|
- .select(CourseTable::getId)
|
|
|
- .select(CourseTable.class, x -> VoToColumnUtil.fieldsToColumns(CourseTable.class).contains(x.getProperty()))
|
|
|
- .innerJoin(CourseTableBak.class, CourseTableBak::getKeyInfo, CourseTable::getKeyInfo)
|
|
|
- .eq(CourseTableBak::getWfCourseAdjustId, courseAdjust.getId())
|
|
|
- );
|
|
|
+ list = this.list(new MPJLambdaWrapper<CourseTable>().select(CourseTable::getId).select(CourseTable.class, x -> VoToColumnUtil.fieldsToColumns(CourseTable.class).contains(x.getProperty())).innerJoin(CourseTableBak.class, CourseTableBak::getKeyInfo, CourseTable::getKeyInfo).eq(CourseTableBak::getWfCourseAdjustId, courseAdjust.getId()));
|
|
|
Map<String, CourseTable> courseMap = list.stream().collect(Collectors.toMap(CourseTable::getKeyInfo, x -> x));
|
|
|
- List<CourseTableBak> bakList = courseTableBakMapper.selectList(
|
|
|
- new QueryWrapper<CourseTableBak>().lambda()
|
|
|
- .eq(CourseTableBak::getWfCourseAdjustId, courseAdjust.getId())
|
|
|
- );
|
|
|
+ List<CourseTableBak> bakList = courseTableBakMapper.selectList(new QueryWrapper<CourseTableBak>().lambda().eq(CourseTableBak::getWfCourseAdjustId, courseAdjust.getId()));
|
|
|
Map<Long, String> bakKeyInfoMap = bakList.stream().collect(Collectors.toMap(CourseTableBak::getId, CourseTableBak::getKeyInfo));
|
|
|
Map<Long, CourseTableBak> bakCourseMap = bakList.stream().collect(Collectors.toMap(CourseTableBak::getId, x -> x));
|
|
|
|
|
|
@@ -519,7 +521,7 @@ public class CourseTableServiceImpl extends ServiceImpl<CourseTableMapper, Cours
|
|
|
} else if (CourseAdjustTypeEnum.courseSubstitute.getCode().equals(courseAdjust.getAdjustType())) {
|
|
|
for (String courseId : courseIds) {
|
|
|
CourseTable courseTable = courseTableMapper.selectById(courseId);
|
|
|
- if(courseTable == null){
|
|
|
+ if (courseTable == null) {
|
|
|
continue;
|
|
|
}
|
|
|
|
|
|
@@ -628,10 +630,7 @@ public class CourseTableServiceImpl extends ServiceImpl<CourseTableMapper, Cours
|
|
|
continue;
|
|
|
}
|
|
|
if (courseDetailVo != null) {
|
|
|
- String courseInfo = courseDetailVo.getCourseName() + "\n" +
|
|
|
- courseDetailVo.getTeacherName() + "\n" +
|
|
|
- courseDetailVo.getClassName() + "\n" +
|
|
|
- courseDetailVo.getClassroomName() + "\n";
|
|
|
+ String courseInfo = courseDetailVo.getCourseName() + "\n" + courseDetailVo.getTeacherName() + "\n" + courseDetailVo.getClassName() + "\n" + courseDetailVo.getClassroomName() + "\n";
|
|
|
switch (i) {
|
|
|
case 1:
|
|
|
scheduleWeekExportQueryVo.setMonday(courseInfo);
|
|
|
@@ -673,9 +672,7 @@ public class CourseTableServiceImpl extends ServiceImpl<CourseTableMapper, Cours
|
|
|
// 创建头部样式
|
|
|
WriteCellStyle headWriteCellStyle = createHeadCellStyle();
|
|
|
// 将数据写入Excel文件
|
|
|
- try (ExcelWriter excelWriter = EasyExcel.write(outputStream, ScheduleWeekExportQueryVo.class)
|
|
|
- .registerWriteHandler(new HorizontalCellStyleStrategy(headWriteCellStyle, contentWriteCellStyle))
|
|
|
- .build()) {
|
|
|
+ try (ExcelWriter excelWriter = EasyExcel.write(outputStream, ScheduleWeekExportQueryVo.class).registerWriteHandler(new HorizontalCellStyleStrategy(headWriteCellStyle, contentWriteCellStyle)).build()) {
|
|
|
|
|
|
writeSheetHead(courseTableVo, excelWriter);
|
|
|
|
|
|
@@ -695,10 +692,7 @@ public class CourseTableServiceImpl extends ServiceImpl<CourseTableMapper, Cours
|
|
|
|
|
|
private void writeSheetHead(CourseTableVo courseTableVo, ExcelWriter excelWriter) {
|
|
|
List<List<String>> sheetHeadList = new ArrayList<>();
|
|
|
- sheetHeadList.add(Collections.singletonList(courseTableVo.getSemesterName() + " "
|
|
|
- + ((courseTableVo.getTeacherName() != null) ? courseTableVo.getTeacherName() : courseTableVo.getClassName()) + " "
|
|
|
- + courseTableVo.getWeek() + " "
|
|
|
- + "课程表"));
|
|
|
+ sheetHeadList.add(Collections.singletonList(courseTableVo.getSemesterName() + " " + ((courseTableVo.getTeacherName() != null) ? courseTableVo.getTeacherName() : courseTableVo.getClassName()) + " " + courseTableVo.getWeek() + " " + "课程表"));
|
|
|
|
|
|
ExcelFillCellMergePrevColUtil sheetHeadColumn = new ExcelFillCellMergePrevColUtil();
|
|
|
sheetHeadColumn.add(0, 0, 8);
|
|
|
@@ -1117,8 +1111,7 @@ public class CourseTableServiceImpl extends ServiceImpl<CourseTableMapper, Cours
|
|
|
row.setHeightInPoints(48);
|
|
|
}
|
|
|
//合并
|
|
|
- Map<Integer, List<Integer>> collect = data.getClassTimeList().stream()
|
|
|
- .collect(Collectors.groupingBy(ClassTime::getTimePeriod, Collectors.mapping(ClassTime::getNumber, Collectors.toList())));
|
|
|
+ Map<Integer, List<Integer>> collect = data.getClassTimeList().stream().collect(Collectors.groupingBy(ClassTime::getTimePeriod, Collectors.mapping(ClassTime::getNumber, Collectors.toList())));
|
|
|
int firstRow = 2;
|
|
|
for (Integer i : collect.keySet()) {
|
|
|
int lastRow = firstRow + collect.get(i).size() - 1;
|
|
|
@@ -1285,16 +1278,10 @@ public class CourseTableServiceImpl extends ServiceImpl<CourseTableMapper, Cours
|
|
|
dataDto.setIsCustom(1);
|
|
|
CourseTableVo tableVo = this.getList(dataDto);
|
|
|
|
|
|
- if("class".equals(dto.getCourseType())){//班级课表
|
|
|
+ if ("class".equals(dto.getCourseType())) {//班级课表
|
|
|
//根据年级、专业部,查询需要导出的班级
|
|
|
- List<BaseClass> classList = baseClassService.list(
|
|
|
- new QueryWrapper<BaseClass>().lambda()
|
|
|
- .eq(BaseClass::getDeleteMark, DeleteMark.NODELETE.getCode())
|
|
|
- .eq(BaseClass::getIsGraduate, 1)
|
|
|
- .in(BaseClass::getGradeId, dto.getGradeIds())
|
|
|
- .in(BaseClass::getOrgId, dto.getDeptIds())
|
|
|
- );
|
|
|
- if(classList.isEmpty()){
|
|
|
+ List<BaseClass> classList = baseClassService.list(new QueryWrapper<BaseClass>().lambda().eq(BaseClass::getDeleteMark, DeleteMark.NODELETE.getCode()).eq(BaseClass::getIsGraduate, 1).in(BaseClass::getGradeId, dto.getGradeIds()).in(BaseClass::getOrgId, dto.getDeptIds()));
|
|
|
+ if (classList.isEmpty()) {
|
|
|
throw new MyException("未查询到班级,无法导出");
|
|
|
}
|
|
|
|
|
|
@@ -1314,7 +1301,7 @@ public class CourseTableServiceImpl extends ServiceImpl<CourseTableMapper, Cours
|
|
|
for (BaseClass baseClass : classList) {
|
|
|
CourseTableVo classData = new CourseTableVo();
|
|
|
classData.setClassTimeList(tableVo.getClassTimeList());
|
|
|
- if(!classDataMap.containsKey(baseClass.getName())){
|
|
|
+ if (!classDataMap.containsKey(baseClass.getName())) {
|
|
|
continue;
|
|
|
}
|
|
|
classData.setCourseList(classDataMap.get(baseClass.getName()));
|
|
|
@@ -1331,22 +1318,17 @@ public class CourseTableServiceImpl extends ServiceImpl<CourseTableMapper, Cours
|
|
|
createSecondTitle(workbook, sheet, bigHeadRow + 3);
|
|
|
//生成内容
|
|
|
exportQueryUtil.createContent(workbook, sheet, bigHeadRow + 4, classData, dto.getCourseType());
|
|
|
- i ++;
|
|
|
+ i++;
|
|
|
}
|
|
|
workbook.write(bot);
|
|
|
- }else if("teacher".equals(dto.getCourseType())){//教师课表
|
|
|
+ } else if ("teacher".equals(dto.getCourseType())) {//教师课表
|
|
|
//根据学期和周次,查询当前所有有课表的教师id
|
|
|
LocalDateTime startDateTime = LocalDateTime.ofInstant(baseSemester.getTeachingStart().toInstant(), ZoneId.systemDefault());
|
|
|
|
|
|
LocalDate startDate = startDateTime.plusDays((dto.getWeek() - 1) * 7L).toLocalDate();
|
|
|
LocalDate endDate = startDate.plusDays(6);
|
|
|
|
|
|
- List<CourseTable> list = this.list(
|
|
|
- new QueryWrapper<CourseTable>().lambda()
|
|
|
- .eq(CourseTable::getBaseSemesterId, dto.getSemesterId())
|
|
|
- .ge(CourseTable::getScheduleDate, startDate)
|
|
|
- .le(CourseTable::getScheduleDate, endDate)
|
|
|
- );
|
|
|
+ List<CourseTable> list = this.list(new QueryWrapper<CourseTable>().lambda().eq(CourseTable::getBaseSemesterId, dto.getSemesterId()).ge(CourseTable::getScheduleDate, startDate).le(CourseTable::getScheduleDate, endDate));
|
|
|
Set<String> teacherIds = list.stream().map(CourseTable::getTeacherId).collect(Collectors.toSet());
|
|
|
Set<Long> teacherIdList = new HashSet<>();
|
|
|
for (String teacherId : teacherIds) {
|
|
|
@@ -1363,7 +1345,7 @@ public class CourseTableServiceImpl extends ServiceImpl<CourseTableMapper, Cours
|
|
|
String bigHead = "课程表";
|
|
|
int classTableRowCount = 16;//每个班的课表占用的总行数
|
|
|
|
|
|
- for(int i = 0; i < userList.size(); i ++){
|
|
|
+ for (int i = 0; i < userList.size(); i++) {
|
|
|
User user = userList.get(i);
|
|
|
List<CourseDetailVo> courseList = tableVo.getCourseList().stream().filter(x -> x.getTeacherName().contains(user.getName())).collect(Collectors.toList());
|
|
|
|
|
|
@@ -1385,16 +1367,10 @@ public class CourseTableServiceImpl extends ServiceImpl<CourseTableMapper, Cours
|
|
|
exportQueryUtil.createContent(workbook, sheet, bigHeadRow + 4, classData, dto.getCourseType());
|
|
|
}
|
|
|
workbook.write(bot);
|
|
|
- }else if("classroom".equals(dto.getCourseType())){//教室课表
|
|
|
+ } else if ("classroom".equals(dto.getCourseType())) {//教室课表
|
|
|
Map<String, List<CourseDetailVo>> classroomDataMap = tableVo.getCourseList().stream().filter(x -> x.getClassroomName() != null).collect(Collectors.groupingBy(CourseDetailVo::getClassroomName));
|
|
|
- List<BaseClassroom> classroomList = classroomMapper.selectList(
|
|
|
- new QueryWrapper<BaseClassroom>().lambda()
|
|
|
- .eq(BaseClassroom::getDeleteMark, DeleteMark.NODELETE.getCode())
|
|
|
- );
|
|
|
- List<BaseOfficeBuild> buildList = officeBuildMapper.selectList(
|
|
|
- new QueryWrapper<BaseOfficeBuild>().lambda()
|
|
|
- .eq(BaseOfficeBuild::getDeleteMark, DeleteMark.NODELETE.getCode())
|
|
|
- );
|
|
|
+ List<BaseClassroom> classroomList = classroomMapper.selectList(new QueryWrapper<BaseClassroom>().lambda().eq(BaseClassroom::getDeleteMark, DeleteMark.NODELETE.getCode()));
|
|
|
+ List<BaseOfficeBuild> buildList = officeBuildMapper.selectList(new QueryWrapper<BaseOfficeBuild>().lambda().eq(BaseOfficeBuild::getDeleteMark, DeleteMark.NODELETE.getCode()));
|
|
|
Map<Long, String> buildMap = buildList.stream().collect(Collectors.toMap(BaseOfficeBuild::getId, BaseOfficeBuild::getName));
|
|
|
|
|
|
Workbook workbook = new XSSFWorkbook();
|
|
|
@@ -1405,7 +1381,7 @@ public class CourseTableServiceImpl extends ServiceImpl<CourseTableMapper, Cours
|
|
|
int i = 0;
|
|
|
for (BaseClassroom baseClassroom : classroomList) {
|
|
|
String classroomName = buildMap.get(baseClassroom.getOfficeBuildId()) + baseClassroom.getName();
|
|
|
- if(!classroomDataMap.containsKey(classroomName)){
|
|
|
+ if (!classroomDataMap.containsKey(classroomName)) {
|
|
|
continue;
|
|
|
}
|
|
|
|
|
|
@@ -1427,27 +1403,20 @@ public class CourseTableServiceImpl extends ServiceImpl<CourseTableMapper, Cours
|
|
|
//生成内容
|
|
|
exportQueryUtil.createContent(workbook, sheet, bigHeadRow + 4, classData, dto.getCourseType());
|
|
|
|
|
|
- i ++;
|
|
|
+ i++;
|
|
|
}
|
|
|
workbook.write(bot);
|
|
|
- }else if("all".equals(dto.getCourseType())){//总课表
|
|
|
+ } else if ("all".equals(dto.getCourseType())) {//总课表
|
|
|
//根据年级、专业部,查询需要导出的班级
|
|
|
- List<BaseClass> classList = baseClassService.list(
|
|
|
- new QueryWrapper<BaseClass>().lambda()
|
|
|
- .eq(BaseClass::getDeleteMark, DeleteMark.NODELETE.getCode())
|
|
|
- .eq(BaseClass::getIsGraduate, 1)
|
|
|
- .in(BaseClass::getGradeId, dto.getGradeIds())
|
|
|
- .in(BaseClass::getOrgId, dto.getDeptIds())
|
|
|
- .orderByAsc(BaseClass::getName)
|
|
|
- );
|
|
|
- if(classList.isEmpty()){
|
|
|
+ List<BaseClass> classList = baseClassService.list(new QueryWrapper<BaseClass>().lambda().eq(BaseClass::getDeleteMark, DeleteMark.NODELETE.getCode()).eq(BaseClass::getIsGraduate, 1).in(BaseClass::getGradeId, dto.getGradeIds()).in(BaseClass::getOrgId, dto.getDeptIds()).orderByAsc(BaseClass::getName));
|
|
|
+ if (classList.isEmpty()) {
|
|
|
throw new MyException("未查询到班级,无法导出");
|
|
|
}
|
|
|
Map<String, List<CourseDetailVo>> classDataMap = tableVo.getCourseList().stream().filter(x -> x.getClassName() != null).collect(Collectors.groupingBy(CourseDetailVo::getClassName));
|
|
|
ArrayList<ArrayList<String>> dataList = new ArrayList<>();
|
|
|
for (BaseClass baseClass : classList) {
|
|
|
List<CourseDetailVo> detailVoList = classDataMap.get(baseClass.getName());
|
|
|
- if(detailVoList == null){
|
|
|
+ if (detailVoList == null) {
|
|
|
continue;
|
|
|
}
|
|
|
Map<Integer, List<CourseDetailVo>> weeksMap = detailVoList.stream().collect(Collectors.groupingBy(CourseDetailVo::getWeeks));
|
|
|
@@ -1464,7 +1433,7 @@ public class CourseTableServiceImpl extends ServiceImpl<CourseTableMapper, Cours
|
|
|
ArrayList<String> classData = new ArrayList<>();
|
|
|
classData.add(baseClass.getName());
|
|
|
for (Integer weeks : weekList) {
|
|
|
- if(!weeksMap.containsKey(weeks)){
|
|
|
+ if (!weeksMap.containsKey(weeks)) {
|
|
|
for (ClassTime classTime : tableVo.getClassTimeList()) {
|
|
|
classData.add("");
|
|
|
}
|
|
|
@@ -1473,12 +1442,12 @@ public class CourseTableServiceImpl extends ServiceImpl<CourseTableMapper, Cours
|
|
|
Map<String, CourseDetailVo> timeNumberMap = weeksMap.get(weeks).stream().filter(x -> x.getTimeNumber() != null).collect(Collectors.toMap(CourseDetailVo::getTimeNumber, x -> x));
|
|
|
for (ClassTime classTime : tableVo.getClassTimeList()) {
|
|
|
CourseDetailVo courseDetailVo = timeNumberMap.get(classTime.getNumber().toString());
|
|
|
- if(courseDetailVo == null){
|
|
|
+ if (courseDetailVo == null) {
|
|
|
classData.add("");
|
|
|
continue;
|
|
|
}
|
|
|
String content = courseDetailVo.getCourseName() + "\r\n" + courseDetailVo.getTeacherName();
|
|
|
- if(courseDetailVo.getClassroomName() != null){
|
|
|
+ if (courseDetailVo.getClassroomName() != null) {
|
|
|
content += "\r\n" + courseDetailVo.getClassroomName();
|
|
|
}
|
|
|
classData.add(content);
|
|
|
@@ -1545,7 +1514,7 @@ public class CourseTableServiceImpl extends ServiceImpl<CourseTableMapper, Cours
|
|
|
LocalDateTime endDate = startDate.plusDays(6).withHour(23).withMinute(59).withSecond(59).withNano(9999);
|
|
|
if (now.isAfter(startDate) && now.isBefore(endDate)) {
|
|
|
CurrentWeekVo currentWeekVo = new CurrentWeekVo();
|
|
|
- currentWeekVo.setWeek(i+ 1);
|
|
|
+ currentWeekVo.setWeek(i + 1);
|
|
|
currentWeekVo.setStartDate(startDate.toLocalDate());
|
|
|
currentWeekVo.setEndDate(endDate.toLocalDate());
|
|
|
return currentWeekVo;
|