|
@@ -22,6 +22,7 @@ import com.google.gson.JsonArray;
|
|
|
import com.google.gson.JsonObject;
|
|
import com.google.gson.JsonObject;
|
|
|
import com.google.gson.JsonParser;
|
|
import com.google.gson.JsonParser;
|
|
|
import com.xjrsoft.common.enums.CourseAdjustTypeEnum;
|
|
import com.xjrsoft.common.enums.CourseAdjustTypeEnum;
|
|
|
|
|
+import com.xjrsoft.common.enums.DeleteMark;
|
|
|
import com.xjrsoft.common.enums.TimeNumberEnum;
|
|
import com.xjrsoft.common.enums.TimeNumberEnum;
|
|
|
import com.xjrsoft.common.enums.TimePeriodEnum;
|
|
import com.xjrsoft.common.enums.TimePeriodEnum;
|
|
|
import com.xjrsoft.common.enums.WeekEnum;
|
|
import com.xjrsoft.common.enums.WeekEnum;
|
|
@@ -49,10 +50,12 @@ import com.xjrsoft.module.organization.service.IUserService;
|
|
|
import com.xjrsoft.module.schedule.dto.ClassOptionDto;
|
|
import com.xjrsoft.module.schedule.dto.ClassOptionDto;
|
|
|
import com.xjrsoft.module.schedule.dto.CourseTableAdjustDto;
|
|
import com.xjrsoft.module.schedule.dto.CourseTableAdjustDto;
|
|
|
import com.xjrsoft.module.schedule.dto.CourseTableDto;
|
|
import com.xjrsoft.module.schedule.dto.CourseTableDto;
|
|
|
|
|
+import com.xjrsoft.module.schedule.dto.CourseTableExportQueryDto;
|
|
|
import com.xjrsoft.module.schedule.dto.ScheduleWeekExportQueryDto;
|
|
import com.xjrsoft.module.schedule.dto.ScheduleWeekExportQueryDto;
|
|
|
import com.xjrsoft.module.schedule.entity.CourseTableBak;
|
|
import com.xjrsoft.module.schedule.entity.CourseTableBak;
|
|
|
import com.xjrsoft.module.schedule.entity.WfCourseAdjust;
|
|
import com.xjrsoft.module.schedule.entity.WfCourseAdjust;
|
|
|
import com.xjrsoft.module.schedule.mapper.CourseTableBakMapper;
|
|
import com.xjrsoft.module.schedule.mapper.CourseTableBakMapper;
|
|
|
|
|
+import com.xjrsoft.module.schedule.util.CourseTableExportQueryUtil;
|
|
|
import com.xjrsoft.module.schedule.util.ScheduleUtil;
|
|
import com.xjrsoft.module.schedule.util.ScheduleUtil;
|
|
|
import com.xjrsoft.module.schedule.vo.*;
|
|
import com.xjrsoft.module.schedule.vo.*;
|
|
|
import com.xjrsoft.module.student.entity.BaseStudentSchoolRoll;
|
|
import com.xjrsoft.module.student.entity.BaseStudentSchoolRoll;
|
|
@@ -60,6 +63,7 @@ import com.xjrsoft.module.student.service.IBaseStudentSchoolRollService;
|
|
|
import com.xjrsoft.module.teacher.entity.BaseTeacher;
|
|
import com.xjrsoft.module.teacher.entity.BaseTeacher;
|
|
|
import com.xjrsoft.module.teacher.entity.XjrUser;
|
|
import com.xjrsoft.module.teacher.entity.XjrUser;
|
|
|
import com.xjrsoft.module.teacher.service.ITeacherbaseManagerService;
|
|
import com.xjrsoft.module.teacher.service.ITeacherbaseManagerService;
|
|
|
|
|
+import com.xjrsoft.module.veb.util.ImportExcelUtil;
|
|
|
import lombok.AllArgsConstructor;
|
|
import lombok.AllArgsConstructor;
|
|
|
import me.zhyd.oauth.log.Log;
|
|
import me.zhyd.oauth.log.Log;
|
|
|
import org.apache.poi.ss.usermodel.*;
|
|
import org.apache.poi.ss.usermodel.*;
|
|
@@ -995,7 +999,7 @@ public class CourseTableServiceImpl extends ServiceImpl<CourseTableMapper, Cours
|
|
|
|
|
|
|
|
createFirstTitle(workbook, sheet, data, dto);
|
|
createFirstTitle(workbook, sheet, data, dto);
|
|
|
|
|
|
|
|
- createSecondTitle(workbook, sheet);
|
|
|
|
|
|
|
+ createSecondTitle(workbook, sheet, 1);
|
|
|
|
|
|
|
|
Map<Integer, ClassTime> timeNumberMap = data.getClassTimeList().stream().collect(Collectors.toMap(ClassTime::getNumber, x -> x));
|
|
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().collect(Collectors.groupingBy(CourseDetailVo::getTimeNumber));
|
|
@@ -1122,7 +1126,7 @@ public class CourseTableServiceImpl extends ServiceImpl<CourseTableMapper, Cours
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- void createSecondTitle(Workbook workbook, Sheet sheet) {
|
|
|
|
|
|
|
+ void createSecondTitle(Workbook workbook, Sheet sheet, int rowNumber) {
|
|
|
// 创建一个字体对象
|
|
// 创建一个字体对象
|
|
|
Font font = workbook.createFont();
|
|
Font font = workbook.createFont();
|
|
|
font.setBold(true);// 设置为粗体
|
|
font.setBold(true);// 设置为粗体
|
|
@@ -1140,7 +1144,6 @@ public class CourseTableServiceImpl extends ServiceImpl<CourseTableMapper, Cours
|
|
|
cellStyle.setBorderLeft(BorderStyle.THIN);
|
|
cellStyle.setBorderLeft(BorderStyle.THIN);
|
|
|
cellStyle.setBorderRight(BorderStyle.THIN);
|
|
cellStyle.setBorderRight(BorderStyle.THIN);
|
|
|
|
|
|
|
|
- int rowNumber = 1;
|
|
|
|
|
Row row = sheet.createRow(rowNumber);
|
|
Row row = sheet.createRow(rowNumber);
|
|
|
|
|
|
|
|
int cellNumber = 0;
|
|
int cellNumber = 0;
|
|
@@ -1249,4 +1252,59 @@ public class CourseTableServiceImpl extends ServiceImpl<CourseTableMapper, Cours
|
|
|
return this.baseMapper.getSubstituteTeacherCourseCountByParams(dto);
|
|
return this.baseMapper.getSubstituteTeacherCourseCountByParams(dto);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 课表导出
|
|
|
|
|
+ *
|
|
|
|
|
+ * @param dto
|
|
|
|
|
+ * @return
|
|
|
|
|
+ */
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public ByteArrayOutputStream exportQuery(CourseTableExportQueryDto dto) throws IOException {
|
|
|
|
|
+ BaseSemester semester = baseSemesterMapper.selectById(dto.getSemesterId());
|
|
|
|
|
+ //根据年级、专业部,查询需要导出的班级
|
|
|
|
|
+ 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())
|
|
|
|
|
+ );
|
|
|
|
|
+ CourseTableExportQueryUtil exportQueryUtil = new CourseTableExportQueryUtil();
|
|
|
|
|
+ String schoolName = "重庆市铜梁职业教育中心";
|
|
|
|
|
+ ByteArrayOutputStream bot = new ByteArrayOutputStream();
|
|
|
|
|
+ if("calss".equals(dto.getCourseType())){
|
|
|
|
|
+ Workbook workbook = new XSSFWorkbook();
|
|
|
|
|
+ String sheetName = "班级课表";
|
|
|
|
|
+ Sheet sheet = workbook.createSheet(sheetName);
|
|
|
|
|
+ String bigHead = "课程表";
|
|
|
|
|
+
|
|
|
|
|
+ int classTableRowCount = 16;//每个班的课表占用的总行数
|
|
|
|
|
+ for(int i = 0; i < classList.size(); i ++){
|
|
|
|
|
+ BaseClass baseClass = classList.get(i);
|
|
|
|
|
+ //查询数据
|
|
|
|
|
+ CourseTableDto dataDto = new CourseTableDto();
|
|
|
|
|
+ dataDto.setSemesterId(dto.getSemesterId());
|
|
|
|
|
+ dataDto.setClassId(baseClass.getId());
|
|
|
|
|
+ dataDto.setWeek(dto.getWeek());
|
|
|
|
|
+ CourseTableVo tableVo = this.getList(dataDto);
|
|
|
|
|
+ String rightName = "班主任:" + tableVo.getTeacherName() + " 行政班:" + tableVo.getClassName();
|
|
|
|
|
+
|
|
|
|
|
+ int bigHeadRow = (classTableRowCount + 2) * i;
|
|
|
|
|
+ //生成第一行title
|
|
|
|
|
+ ImportExcelUtil.createBigHead(workbook, sheet, bigHead, bigHeadRow, 9);
|
|
|
|
|
+ //生成副标题,展示所属学期
|
|
|
|
|
+ ImportExcelUtil.createSubtitle(workbook, sheet, semester.getName(), bigHeadRow + 1, 9);
|
|
|
|
|
+ //生成第三行,显示学校名字、班主任和班级名字
|
|
|
|
|
+ exportQueryUtil.createThirdTitle(workbook, sheet, bigHeadRow + 2, schoolName, rightName);
|
|
|
|
|
+ //生成表头
|
|
|
|
|
+ createSecondTitle(workbook, sheet, bigHeadRow + 3);
|
|
|
|
|
+ //生成内容
|
|
|
|
|
+ exportQueryUtil.createContent(workbook, sheet, bigHeadRow + 4, tableVo, dto.getCourseType());
|
|
|
|
|
+ }
|
|
|
|
|
+ workbook.write(bot);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ return bot;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
}
|
|
}
|