|
@@ -3,12 +3,15 @@ package cn.com.qmth.stmms.ms.admin.exporter;
|
|
import cn.com.qmth.stmms.ms.admin.dto.ExportLevelResultDTO;
|
|
import cn.com.qmth.stmms.ms.admin.dto.ExportLevelResultDTO;
|
|
import cn.com.qmth.stmms.ms.admin.dto.HeaderNode;
|
|
import cn.com.qmth.stmms.ms.admin.dto.HeaderNode;
|
|
import cn.com.qmth.stmms.ms.admin.dto.ScoreDTO;
|
|
import cn.com.qmth.stmms.ms.admin.dto.ScoreDTO;
|
|
|
|
+import cn.com.qmth.stmms.ms.commons.config.ImageConfig;
|
|
import cn.com.qmth.stmms.ms.commons.utils.SqlUtil;
|
|
import cn.com.qmth.stmms.ms.commons.utils.SqlUtil;
|
|
import cn.com.qmth.stmms.ms.commons.utils.excel.ExportUtils;
|
|
import cn.com.qmth.stmms.ms.commons.utils.excel.ExportUtils;
|
|
|
|
+import cn.com.qmth.stmms.ms.core.domain.MarkSubject;
|
|
import cn.com.qmth.stmms.ms.core.domain.Paper;
|
|
import cn.com.qmth.stmms.ms.core.domain.Paper;
|
|
import cn.com.qmth.stmms.ms.core.domain.Student;
|
|
import cn.com.qmth.stmms.ms.core.domain.Student;
|
|
import cn.com.qmth.stmms.ms.core.domain.enums.TrialEnum;
|
|
import cn.com.qmth.stmms.ms.core.domain.enums.TrialEnum;
|
|
import cn.com.qmth.stmms.ms.core.repository.ExamQuestionRepo;
|
|
import cn.com.qmth.stmms.ms.core.repository.ExamQuestionRepo;
|
|
|
|
+import cn.com.qmth.stmms.ms.core.repository.MarkSubjectRepo;
|
|
import cn.com.qmth.stmms.ms.core.repository.PaperRepo;
|
|
import cn.com.qmth.stmms.ms.core.repository.PaperRepo;
|
|
import cn.com.qmth.stmms.ms.core.repository.StudentRepo;
|
|
import cn.com.qmth.stmms.ms.core.repository.StudentRepo;
|
|
import cn.com.qmth.stmms.ms.core.vo.Subject;
|
|
import cn.com.qmth.stmms.ms.core.vo.Subject;
|
|
@@ -28,6 +31,7 @@ import org.springframework.web.bind.annotation.RequestMethod;
|
|
import org.springframework.web.bind.annotation.RequestParam;
|
|
import org.springframework.web.bind.annotation.RequestParam;
|
|
import org.springframework.web.bind.annotation.RestController;
|
|
import org.springframework.web.bind.annotation.RestController;
|
|
|
|
|
|
|
|
+import javax.annotation.Resource;
|
|
import javax.servlet.http.HttpServletResponse;
|
|
import javax.servlet.http.HttpServletResponse;
|
|
import java.util.*;
|
|
import java.util.*;
|
|
import java.util.concurrent.atomic.AtomicInteger;
|
|
import java.util.concurrent.atomic.AtomicInteger;
|
|
@@ -70,6 +74,12 @@ public class ScoreExporter {
|
|
LEVEL_FILE_NAME = "档位成绩表",
|
|
LEVEL_FILE_NAME = "档位成绩表",
|
|
SCORE_FILE_NAME = "分数成绩表";
|
|
SCORE_FILE_NAME = "分数成绩表";
|
|
|
|
|
|
|
|
+ @Resource
|
|
|
|
+ MarkSubjectRepo markSubjectRepo;
|
|
|
|
+
|
|
|
|
+ @Resource
|
|
|
|
+ ImageConfig imageConfig;
|
|
|
|
+
|
|
//@RequestMapping(method = RequestMethod.GET)
|
|
//@RequestMapping(method = RequestMethod.GET)
|
|
public void export(@RequestParam Long workId, HttpServletResponse response) {
|
|
public void export(@RequestParam Long workId, HttpServletResponse response) {
|
|
List<ScoreDTO> scoreDTOs = new ArrayList<>();
|
|
List<ScoreDTO> scoreDTOs = new ArrayList<>();
|
|
@@ -175,9 +185,10 @@ public class ScoreExporter {
|
|
* @param sheet
|
|
* @param sheet
|
|
* @param style
|
|
* @param style
|
|
* @param row
|
|
* @param row
|
|
|
|
+ * @param workId
|
|
* @param subjectMap
|
|
* @param subjectMap
|
|
*/
|
|
*/
|
|
- public Sheet drawExcelFixedHead(int type, Sheet sheet, CellStyle style, Row row, Map<String, Map<String, ExportLevelResultDTO>> subjectMap) {
|
|
|
|
|
|
+ public Sheet drawExcelFixedHead(int type, Sheet sheet, CellStyle style, Row row, Map<String, Map<String, ExportLevelResultDTO>> subjectMap, Long workId) {
|
|
//准考证号
|
|
//准考证号
|
|
Cell cell = row.createCell(0);
|
|
Cell cell = row.createCell(0);
|
|
cell.setCellValue(EXAM_NUMBER);
|
|
cell.setCellValue(EXAM_NUMBER);
|
|
@@ -204,66 +215,89 @@ public class ScoreExporter {
|
|
cell3.setCellStyle(style);
|
|
cell3.setCellStyle(style);
|
|
CellRangeAddress region4 = new CellRangeAddress(0, 1, (short) 3, (short) 3);
|
|
CellRangeAddress region4 = new CellRangeAddress(0, 1, (short) 3, (short) 3);
|
|
sheet.addMergedRegion(region4);
|
|
sheet.addMergedRegion(region4);
|
|
- //色彩
|
|
|
|
- int size = 0;
|
|
|
|
- if (Objects.nonNull(subjectMap.get(Subject.SC.toString()))) {
|
|
|
|
- size = subjectMap.get(Subject.SC.toString()).size();
|
|
|
|
- }
|
|
|
|
- int scSumCount = 0;
|
|
|
|
- if (type == 2) {
|
|
|
|
- scSumCount = level + size + 1;
|
|
|
|
- } else {
|
|
|
|
- scSumCount = level + size;
|
|
|
|
- }
|
|
|
|
- Cell cell4 = row.createCell(level);
|
|
|
|
- cell4.setCellValue(SC_NAME);
|
|
|
|
- cell4.setCellStyle(style);
|
|
|
|
- if (level != scSumCount) {
|
|
|
|
- CellRangeAddress region5 = new CellRangeAddress(0, 0, (short) level, scSumCount);
|
|
|
|
- sheet.addMergedRegion(region5);
|
|
|
|
- }
|
|
|
|
- LOGGER.info("level:{},scSumCount:{}", level, scSumCount);
|
|
|
|
|
|
+ if (!imageConfig.isCustomSubject()) {
|
|
|
|
+ //色彩
|
|
|
|
+ int size = 0;
|
|
|
|
+ if (Objects.nonNull(subjectMap.get(Subject.SC.toString()))) {
|
|
|
|
+ size = subjectMap.get(Subject.SC.toString()).size();
|
|
|
|
+ }
|
|
|
|
+ int scSumCount = 0;
|
|
|
|
+ if (type == 2) {
|
|
|
|
+ scSumCount = level + size + 1;
|
|
|
|
+ } else {
|
|
|
|
+ scSumCount = level + size;
|
|
|
|
+ }
|
|
|
|
+ Cell cell4 = row.createCell(level);
|
|
|
|
+ cell4.setCellValue(SC_NAME);
|
|
|
|
+ cell4.setCellStyle(style);
|
|
|
|
+ if (level != scSumCount) {
|
|
|
|
+ CellRangeAddress region5 = new CellRangeAddress(0, 0, (short) level, scSumCount);
|
|
|
|
+ sheet.addMergedRegion(region5);
|
|
|
|
+ }
|
|
|
|
+ LOGGER.info("level:{},scSumCount:{}", level, scSumCount);
|
|
|
|
|
|
- //素描
|
|
|
|
- scSumCount = scSumCount + 1;//起始列+1
|
|
|
|
- size = 0;
|
|
|
|
- if (Objects.nonNull(subjectMap.get(Subject.SM.toString()))) {
|
|
|
|
- size = subjectMap.get(Subject.SM.toString()).size();
|
|
|
|
- }
|
|
|
|
- int smSumCount = 0;
|
|
|
|
- if (type == 2) {
|
|
|
|
- smSumCount = scSumCount + size + 1;//最终列+1,因为从0开始
|
|
|
|
- } else {
|
|
|
|
- smSumCount = scSumCount + size;
|
|
|
|
- }
|
|
|
|
- Cell cell5 = row.createCell(scSumCount);
|
|
|
|
- cell5.setCellValue(SM_NAME);
|
|
|
|
- cell5.setCellStyle(style);
|
|
|
|
- if (scSumCount != smSumCount) {
|
|
|
|
- CellRangeAddress region6 = new CellRangeAddress(0, 0, (short) scSumCount, smSumCount);
|
|
|
|
- sheet.addMergedRegion(region6);
|
|
|
|
- }
|
|
|
|
- LOGGER.info("scSumCount:{},smSumCount:{}", scSumCount, smSumCount);
|
|
|
|
- //速写
|
|
|
|
- smSumCount = smSumCount + 1;//起始列+1
|
|
|
|
- size = 0;
|
|
|
|
- if (Objects.nonNull(subjectMap.get(Subject.SX.toString()))) {
|
|
|
|
- size = subjectMap.get(Subject.SX.toString()).size();
|
|
|
|
- }
|
|
|
|
- int sxSumCount = 0;
|
|
|
|
- if (type == 2) {
|
|
|
|
- sxSumCount = smSumCount + size + 1;//最终列+1,因为从0开始
|
|
|
|
|
|
+ //素描
|
|
|
|
+ scSumCount = scSumCount + 1;//起始列+1
|
|
|
|
+ size = 0;
|
|
|
|
+ if (Objects.nonNull(subjectMap.get(Subject.SM.toString()))) {
|
|
|
|
+ size = subjectMap.get(Subject.SM.toString()).size();
|
|
|
|
+ }
|
|
|
|
+ int smSumCount = 0;
|
|
|
|
+ if (type == 2) {
|
|
|
|
+ smSumCount = scSumCount + size + 1;//最终列+1,因为从0开始
|
|
|
|
+ } else {
|
|
|
|
+ smSumCount = scSumCount + size;
|
|
|
|
+ }
|
|
|
|
+ Cell cell5 = row.createCell(scSumCount);
|
|
|
|
+ cell5.setCellValue(SM_NAME);
|
|
|
|
+ cell5.setCellStyle(style);
|
|
|
|
+ if (scSumCount != smSumCount) {
|
|
|
|
+ CellRangeAddress region6 = new CellRangeAddress(0, 0, (short) scSumCount, smSumCount);
|
|
|
|
+ sheet.addMergedRegion(region6);
|
|
|
|
+ }
|
|
|
|
+ LOGGER.info("scSumCount:{},smSumCount:{}", scSumCount, smSumCount);
|
|
|
|
+ //速写
|
|
|
|
+ smSumCount = smSumCount + 1;//起始列+1
|
|
|
|
+ size = 0;
|
|
|
|
+ if (Objects.nonNull(subjectMap.get(Subject.SX.toString()))) {
|
|
|
|
+ size = subjectMap.get(Subject.SX.toString()).size();
|
|
|
|
+ }
|
|
|
|
+ int sxSumCount = 0;
|
|
|
|
+ if (type == 2) {
|
|
|
|
+ sxSumCount = smSumCount + size + 1;//最终列+1,因为从0开始
|
|
|
|
+ } else {
|
|
|
|
+ sxSumCount = smSumCount + size;
|
|
|
|
+ }
|
|
|
|
+ Cell cell6 = row.createCell(smSumCount);
|
|
|
|
+ cell6.setCellValue(SX_NAME);
|
|
|
|
+ cell6.setCellStyle(style);
|
|
|
|
+ if (smSumCount != sxSumCount) {
|
|
|
|
+ CellRangeAddress region7 = new CellRangeAddress(0, 0, (short) smSumCount, sxSumCount);
|
|
|
|
+ sheet.addMergedRegion(region7);
|
|
|
|
+ }
|
|
|
|
+ LOGGER.info("smSumCount:{},sxSumCount:{}", smSumCount, sxSumCount);
|
|
} else {
|
|
} else {
|
|
- sxSumCount = smSumCount + size;
|
|
|
|
- }
|
|
|
|
- Cell cell6 = row.createCell(smSumCount);
|
|
|
|
- cell6.setCellValue(SX_NAME);
|
|
|
|
- cell6.setCellStyle(style);
|
|
|
|
- if (smSumCount != sxSumCount) {
|
|
|
|
- CellRangeAddress region7 = new CellRangeAddress(0, 0, (short) smSumCount, sxSumCount);
|
|
|
|
- sheet.addMergedRegion(region7);
|
|
|
|
|
|
+ //自定义
|
|
|
|
+ int size = 0;
|
|
|
|
+ if (Objects.nonNull(subjectMap.get(Subject.CUSTOM.toString()))) {
|
|
|
|
+ size = subjectMap.get(Subject.CUSTOM.toString()).size();
|
|
|
|
+ }
|
|
|
|
+ int customSumCount = 0;
|
|
|
|
+ if (type == 2) {
|
|
|
|
+ customSumCount = level + size + 1;
|
|
|
|
+ } else {
|
|
|
|
+ customSumCount = level + size;
|
|
|
|
+ }
|
|
|
|
+ MarkSubject markSubject = markSubjectRepo.findOne(workId + "-" + Subject.CUSTOM.name());
|
|
|
|
+ Cell cell4 = row.createCell(level);
|
|
|
|
+ cell4.setCellValue(markSubject.getName());
|
|
|
|
+ cell4.setCellStyle(style);
|
|
|
|
+ if (level != customSumCount) {
|
|
|
|
+ CellRangeAddress region5 = new CellRangeAddress(0, 0, (short) level, customSumCount);
|
|
|
|
+ sheet.addMergedRegion(region5);
|
|
|
|
+ }
|
|
|
|
+ LOGGER.info("level:{},customSumCount:{}", level, customSumCount);
|
|
}
|
|
}
|
|
- LOGGER.info("smSumCount:{},sxSumCount:{}", smSumCount, sxSumCount);
|
|
|
|
return sheet;
|
|
return sheet;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -276,17 +310,24 @@ public class ScoreExporter {
|
|
@RequestMapping(value = "exportLevelResult", method = RequestMethod.GET)
|
|
@RequestMapping(value = "exportLevelResult", method = RequestMethod.GET)
|
|
public void exportLevelResult(@RequestParam Long workId, HttpServletResponse response) {
|
|
public void exportLevelResult(@RequestParam Long workId, HttpServletResponse response) {
|
|
//测试-导出档位成绩表
|
|
//测试-导出档位成绩表
|
|
- String scSql = "select temp.*, mt.`result`, p.source_name as sourceName, p.exam_number as examNumber, p.student_name as studentName, t.area_name as areaName, p.mark_by_leader as markByLeader, p.`level` from mark_task as mt , (select mu.id, mu.name as teacherName, mu.`role`, mu.subject, mu.work_id as workId from mark_user as mu where mu.work_id = ? and mu.`role` = 'MARKER'and (mu.mark_right = 0 or mu.mark_right = 2) and mu.subject = 'SC' and mu.enabled = 1) temp, paper p, student t where mt.marker_id = temp.id and mt.paper_id = p.id and t.exam_number = p.exam_number and mt.work_id = ? and mt.stage = 1 and p.is_missing = false UNION ALL select temp.*, null as result, p.source_name as sourceName, p.exam_number as examNumber, p.student_name as studentName, t.area_name as areaName, p.mark_by_leader as markByLeader, p.`level` from paper p, (select mu.id, mu.name as teacherName, mu.`role`, mu.subject, mu.work_id as workId from mark_user as mu where mu.work_id = ? and mu.`role` = 'MARKER' and (mu.mark_right = 0 or mu.mark_right = 2) and mu.subject = 'SC' and mu.enabled = 1) temp, student t where (p.is_missing = true or p.is_test = 3) and p.work_id = ? and p.subject = 'SC' and t.exam_number = p.exam_number ";
|
|
|
|
- String smSql = "select temp.*, mt.`result`, p.source_name as sourceName, p.exam_number as examNumber, p.student_name as studentName, t.area_name as areaName, p.mark_by_leader as markByLeader, p.`level` from mark_task as mt , (select mu.id, mu.name as teacherName, mu.`role`, mu.subject, mu.work_id as workId from mark_user as mu where mu.work_id = ? and mu.`role` = 'MARKER'and (mu.mark_right = 0 or mu.mark_right = 2) and mu.subject = 'SM' and mu.enabled = 1) temp, paper p, student t where mt.marker_id = temp.id and mt.paper_id = p.id and t.exam_number = p.exam_number and mt.work_id = ? and mt.stage = 1 and p.is_missing = false UNION ALL select temp.*, null as result, p.source_name as sourceName, p.exam_number as examNumber, p.student_name as studentName, t.area_name as areaName, p.mark_by_leader as markByLeader, p.`level` from paper p, (select mu.id, mu.name as teacherName, mu.`role`, mu.subject, mu.work_id as workId from mark_user as mu where mu.work_id = ? and mu.`role` = 'MARKER' and (mu.mark_right = 0 or mu.mark_right = 2) and mu.subject = 'SM' and mu.enabled = 1) temp, student t where (p.is_missing = true or p.is_test = 3) and p.work_id = ? and p.subject = 'SM' and t.exam_number = p.exam_number ";
|
|
|
|
- String sxSql = "select temp.*, mt.`result`, p.source_name as sourceName, p.exam_number as examNumber, p.student_name as studentName, t.area_name as areaName, p.mark_by_leader as markByLeader, p.`level` from mark_task as mt , (select mu.id, mu.name as teacherName, mu.`role`, mu.subject, mu.work_id as workId from mark_user as mu where mu.work_id = ? and mu.`role` = 'MARKER'and (mu.mark_right = 0 or mu.mark_right = 2) and mu.subject = 'SX' and mu.enabled = 1) temp, paper p, student t where mt.marker_id = temp.id and mt.paper_id = p.id and t.exam_number = p.exam_number and mt.work_id = ? and mt.stage = 1 and p.is_missing = false UNION ALL select temp.*, null as result, p.source_name as sourceName, p.exam_number as examNumber, p.student_name as studentName, t.area_name as areaName, p.mark_by_leader as markByLeader, p.`level` from paper p, (select mu.id, mu.name as teacherName, mu.`role`, mu.subject, mu.work_id as workId from mark_user as mu where mu.work_id = ? and mu.`role` = 'MARKER' and (mu.mark_right = 0 or mu.mark_right = 2) and mu.subject = 'SX' and mu.enabled = 1) temp, student t where (p.is_missing = true or p.is_test = 3) and p.work_id = ? and p.subject = 'SX' and t.exam_number = p.exam_number ";
|
|
|
|
- //拼装问号
|
|
|
|
- scSql = sqlUtil.sqlPrint(scSql, workId, workId, workId, workId);
|
|
|
|
- smSql = sqlUtil.sqlPrint(smSql, workId, workId, workId, workId);
|
|
|
|
- sxSql = sqlUtil.sqlPrint(sxSql, workId, workId, workId, workId);
|
|
|
|
- StringBuilder sbAll = new StringBuilder(sqlUtil.sqlUnionAll(scSql));//union all
|
|
|
|
- sbAll = sbAll.append(smSql);
|
|
|
|
- sbAll = new StringBuilder(sqlUtil.sqlUnionAll(sbAll.toString()));//union all
|
|
|
|
- sbAll = sbAll.append(sxSql);
|
|
|
|
|
|
+ StringBuilder sbAll = null;
|
|
|
|
+ if (!imageConfig.isCustomSubject()) {
|
|
|
|
+ String scSql = "select temp.*, mt.`result`, p.source_name as sourceName, p.exam_number as examNumber, p.student_name as studentName, t.area_name as areaName, p.mark_by_leader as markByLeader, p.`level` from mark_task as mt , (select mu.id, mu.name as teacherName, mu.`role`, mu.subject, mu.work_id as workId from mark_user as mu where mu.work_id = ? and mu.`role` = 'MARKER'and (mu.mark_right = 0 or mu.mark_right = 2) and mu.subject = 'SC' and mu.enabled = 1) temp, paper p, student t where mt.marker_id = temp.id and mt.paper_id = p.id and t.exam_number = p.exam_number and mt.work_id = ? and mt.stage = 1 and p.is_missing = false UNION ALL select temp.*, null as result, p.source_name as sourceName, p.exam_number as examNumber, p.student_name as studentName, t.area_name as areaName, p.mark_by_leader as markByLeader, p.`level` from paper p, (select mu.id, mu.name as teacherName, mu.`role`, mu.subject, mu.work_id as workId from mark_user as mu where mu.work_id = ? and mu.`role` = 'MARKER' and (mu.mark_right = 0 or mu.mark_right = 2) and mu.subject = 'SC' and mu.enabled = 1) temp, student t where (p.is_missing = true or p.is_test = 3) and p.work_id = ? and p.subject = 'SC' and t.exam_number = p.exam_number ";
|
|
|
|
+ String smSql = "select temp.*, mt.`result`, p.source_name as sourceName, p.exam_number as examNumber, p.student_name as studentName, t.area_name as areaName, p.mark_by_leader as markByLeader, p.`level` from mark_task as mt , (select mu.id, mu.name as teacherName, mu.`role`, mu.subject, mu.work_id as workId from mark_user as mu where mu.work_id = ? and mu.`role` = 'MARKER'and (mu.mark_right = 0 or mu.mark_right = 2) and mu.subject = 'SM' and mu.enabled = 1) temp, paper p, student t where mt.marker_id = temp.id and mt.paper_id = p.id and t.exam_number = p.exam_number and mt.work_id = ? and mt.stage = 1 and p.is_missing = false UNION ALL select temp.*, null as result, p.source_name as sourceName, p.exam_number as examNumber, p.student_name as studentName, t.area_name as areaName, p.mark_by_leader as markByLeader, p.`level` from paper p, (select mu.id, mu.name as teacherName, mu.`role`, mu.subject, mu.work_id as workId from mark_user as mu where mu.work_id = ? and mu.`role` = 'MARKER' and (mu.mark_right = 0 or mu.mark_right = 2) and mu.subject = 'SM' and mu.enabled = 1) temp, student t where (p.is_missing = true or p.is_test = 3) and p.work_id = ? and p.subject = 'SM' and t.exam_number = p.exam_number ";
|
|
|
|
+ String sxSql = "select temp.*, mt.`result`, p.source_name as sourceName, p.exam_number as examNumber, p.student_name as studentName, t.area_name as areaName, p.mark_by_leader as markByLeader, p.`level` from mark_task as mt , (select mu.id, mu.name as teacherName, mu.`role`, mu.subject, mu.work_id as workId from mark_user as mu where mu.work_id = ? and mu.`role` = 'MARKER'and (mu.mark_right = 0 or mu.mark_right = 2) and mu.subject = 'SX' and mu.enabled = 1) temp, paper p, student t where mt.marker_id = temp.id and mt.paper_id = p.id and t.exam_number = p.exam_number and mt.work_id = ? and mt.stage = 1 and p.is_missing = false UNION ALL select temp.*, null as result, p.source_name as sourceName, p.exam_number as examNumber, p.student_name as studentName, t.area_name as areaName, p.mark_by_leader as markByLeader, p.`level` from paper p, (select mu.id, mu.name as teacherName, mu.`role`, mu.subject, mu.work_id as workId from mark_user as mu where mu.work_id = ? and mu.`role` = 'MARKER' and (mu.mark_right = 0 or mu.mark_right = 2) and mu.subject = 'SX' and mu.enabled = 1) temp, student t where (p.is_missing = true or p.is_test = 3) and p.work_id = ? and p.subject = 'SX' and t.exam_number = p.exam_number ";
|
|
|
|
+ //拼装问号
|
|
|
|
+ scSql = sqlUtil.sqlPrint(scSql, workId, workId, workId, workId);
|
|
|
|
+ smSql = sqlUtil.sqlPrint(smSql, workId, workId, workId, workId);
|
|
|
|
+ sxSql = sqlUtil.sqlPrint(sxSql, workId, workId, workId, workId);
|
|
|
|
+ sbAll = new StringBuilder(sqlUtil.sqlUnionAll(scSql));//union all
|
|
|
|
+ sbAll = sbAll.append(smSql);
|
|
|
|
+ sbAll = new StringBuilder(sqlUtil.sqlUnionAll(sbAll.toString()));//union all
|
|
|
|
+ sbAll = sbAll.append(sxSql);
|
|
|
|
+ } else {
|
|
|
|
+ String customSql = "select temp.*, mt.`result`, p.source_name as sourceName, p.exam_number as examNumber, p.student_name as studentName, t.area_name as areaName, p.mark_by_leader as markByLeader, p.`level` from mark_task as mt , (select mu.id, mu.name as teacherName, mu.`role`, mu.subject, mu.work_id as workId from mark_user as mu where mu.work_id = ? and mu.`role` = 'MARKER'and (mu.mark_right = 0 or mu.mark_right = 2) and mu.subject = 'CUSTOM' and mu.enabled = 1) temp, paper p, student t where mt.marker_id = temp.id and mt.paper_id = p.id and t.exam_number = p.exam_number and mt.work_id = ? and mt.stage = 1 and p.is_missing = false UNION ALL select temp.*, null as result, p.source_name as sourceName, p.exam_number as examNumber, p.student_name as studentName, t.area_name as areaName, p.mark_by_leader as markByLeader, p.`level` from paper p, (select mu.id, mu.name as teacherName, mu.`role`, mu.subject, mu.work_id as workId from mark_user as mu where mu.work_id = ? and mu.`role` = 'MARKER' and (mu.mark_right = 0 or mu.mark_right = 2) and mu.subject = 'CUSTOM' and mu.enabled = 1) temp, student t where (p.is_missing = true or p.is_test = 3) and p.work_id = ? and p.subject = 'CUSTOM' and t.exam_number = p.exam_number ";
|
|
|
|
+ customSql = sqlUtil.sqlPrint(customSql, workId, workId, workId, workId);
|
|
|
|
+ sbAll = new StringBuilder(customSql);
|
|
|
|
+ }
|
|
List list = sqlUtil.execSqlForMap(sbAll.toString());
|
|
List list = sqlUtil.execSqlForMap(sbAll.toString());
|
|
if (Objects.nonNull(list)) {
|
|
if (Objects.nonNull(list)) {
|
|
Map<String, Map<String, ExportLevelResultDTO>> subjectMap = new HashMap<>();//课程老师批改集合
|
|
Map<String, Map<String, ExportLevelResultDTO>> subjectMap = new HashMap<>();//课程老师批改集合
|
|
@@ -305,80 +346,122 @@ public class ScoreExporter {
|
|
Row row = sheet.createRow(0);
|
|
Row row = sheet.createRow(0);
|
|
|
|
|
|
//绘制固定表头
|
|
//绘制固定表头
|
|
- sheet = drawExcelFixedHead(levelInterval, sheet, style, row, subjectMap);
|
|
|
|
|
|
+ sheet = drawExcelFixedHead(levelInterval, sheet, style, row, subjectMap, workId);
|
|
|
|
|
|
//绘制动态表头
|
|
//绘制动态表头
|
|
Row dynamicHeadRow = sheet.createRow(1);
|
|
Row dynamicHeadRow = sheet.createRow(1);
|
|
- //SC表头
|
|
|
|
- Map<String, ExportLevelResultDTO> scMap = subjectMap.get(Subject.SC.toString());
|
|
|
|
- int size = 0;
|
|
|
|
- if (Objects.nonNull(scMap) && scMap.size() > 0) {
|
|
|
|
- drawExcelTeacher(levelInterval, scMap, sheet, style, dynamicHeadRow, new AtomicInteger(level));
|
|
|
|
- size = scMap.size();
|
|
|
|
- }
|
|
|
|
- //SM表头
|
|
|
|
- Map<String, ExportLevelResultDTO> smMap = subjectMap.get(Subject.SM.toString());
|
|
|
|
- if (Objects.nonNull(smMap) && smMap.size() > 0) {
|
|
|
|
- drawExcelTeacher(levelInterval, smMap, sheet, style, dynamicHeadRow, new AtomicInteger(level + size + levelInterval));
|
|
|
|
- size = size + smMap.size();
|
|
|
|
- }
|
|
|
|
- //SX表头
|
|
|
|
- Map<String, ExportLevelResultDTO> sxMap = subjectMap.get(Subject.SX.toString());
|
|
|
|
- if (Objects.nonNull(sxMap) && sxMap.size() > 0) {
|
|
|
|
- drawExcelTeacher(levelInterval, sxMap, sheet, style, dynamicHeadRow, new AtomicInteger(level + size + levelInterval * 2));
|
|
|
|
- }
|
|
|
|
- //加载excel数据
|
|
|
|
- AtomicInteger cellIndex = new AtomicInteger(0);
|
|
|
|
- Sheet finalSheet = sheet;
|
|
|
|
- AtomicInteger i = new AtomicInteger(0);
|
|
|
|
- AtomicInteger r = new AtomicInteger(2);
|
|
|
|
- exportLevelResultDTOs.forEach((listk, listv) -> {
|
|
|
|
- int firstRow = i.get() + r.get();
|
|
|
|
- cellIndex.set(0);
|
|
|
|
- Row hssfRow = finalSheet.createRow(firstRow);
|
|
|
|
- drawExcelFixedHead(finalSheet, style, hssfRow, new HeaderNode(listv.getExamNumber(), firstRow, firstRow, cellIndex.get(), cellIndex.get()));
|
|
|
|
- cellIndex.getAndIncrement();
|
|
|
|
- drawExcelFixedHead(finalSheet, style, hssfRow, new HeaderNode(listv.getStudentName(), firstRow, firstRow, cellIndex.get(), cellIndex.get()));
|
|
|
|
- cellIndex.getAndIncrement();
|
|
|
|
- drawExcelFixedHead(finalSheet, style, hssfRow, new HeaderNode(listv.getAreaName(), firstRow, firstRow, cellIndex.get(), cellIndex.get()));
|
|
|
|
- cellIndex.getAndIncrement();
|
|
|
|
- drawExcelFixedHead(finalSheet, style, hssfRow, new HeaderNode(listv.getSourceName(), firstRow, firstRow, cellIndex.get(), cellIndex.get()));
|
|
|
|
- cellIndex.getAndIncrement();
|
|
|
|
- Map<String, ExportLevelResultDTO> map = studentAnswerMap.get(listv.getExamNumber());
|
|
|
|
- if (Objects.nonNull(map) && map.size() > 0) {
|
|
|
|
- map.forEach((k, v) -> {
|
|
|
|
- if (k.contains(Subject.SC.toString())) {
|
|
|
|
- ExportLevelResultDTO exportLevelResultDTO = scMap.get(v.getTeacherName());
|
|
|
|
- drawExcelFixedHead(finalSheet, style, hssfRow, new HeaderNode(v.getResult(), firstRow, firstRow, exportLevelResultDTO.getFirstCol(), exportLevelResultDTO.getFirstCol()));
|
|
|
|
- if (v.getMarkByLeader()) {
|
|
|
|
- drawExcelFixedHead(finalSheet, style, hssfRow, new HeaderNode(v.getLevel(), firstRow, firstRow, level + (scMap == null ? 0 : scMap.size()), level + (scMap == null ? 0 : scMap.size())));
|
|
|
|
- }
|
|
|
|
- if (Objects.nonNull(v.getLevel())) {
|
|
|
|
- drawExcelFixedHead(finalSheet, style, hssfRow, new HeaderNode(v.getLevel(), firstRow, firstRow, level + (scMap == null ? 0 : scMap.size()) + 1, level + (scMap == null ? 0 : scMap.size()) + 1));
|
|
|
|
- }
|
|
|
|
- } else if (k.contains(Subject.SM.toString())) {
|
|
|
|
- ExportLevelResultDTO exportLevelResultDTO = smMap.get(v.getTeacherName());
|
|
|
|
- drawExcelFixedHead(finalSheet, style, hssfRow, new HeaderNode(v.getResult(), firstRow, firstRow, exportLevelResultDTO.getFirstCol(), exportLevelResultDTO.getFirstCol()));
|
|
|
|
- if (v.getMarkByLeader()) {
|
|
|
|
- drawExcelFixedHead(finalSheet, style, hssfRow, new HeaderNode(v.getLevel(), firstRow, firstRow, level + (scMap == null ? 0 : scMap.size()) + (smMap == null ? 0 : smMap.size()) + levelInterval, level + (scMap == null ? 0 : scMap.size()) + (smMap == null ? 0 : smMap.size()) + levelInterval));
|
|
|
|
- }
|
|
|
|
- if (Objects.nonNull(v.getLevel())) {
|
|
|
|
- drawExcelFixedHead(finalSheet, style, hssfRow, new HeaderNode(v.getLevel(), firstRow, firstRow, level + (scMap == null ? 0 : scMap.size()) + (smMap == null ? 0 : smMap.size()) + levelInterval + 1, level + (scMap == null ? 0 : scMap.size()) + (smMap == null ? 0 : smMap.size()) + levelInterval + 1));
|
|
|
|
|
|
+ if (!imageConfig.isCustomSubject()) {
|
|
|
|
+ //SC表头
|
|
|
|
+ Map<String, ExportLevelResultDTO> scMap = subjectMap.get(Subject.SC.toString());
|
|
|
|
+ int size = 0;
|
|
|
|
+ if (Objects.nonNull(scMap) && scMap.size() > 0) {
|
|
|
|
+ drawExcelTeacher(levelInterval, scMap, sheet, style, dynamicHeadRow, new AtomicInteger(level));
|
|
|
|
+ size = scMap.size();
|
|
|
|
+ }
|
|
|
|
+ //SM表头
|
|
|
|
+ Map<String, ExportLevelResultDTO> smMap = subjectMap.get(Subject.SM.toString());
|
|
|
|
+ if (Objects.nonNull(smMap) && smMap.size() > 0) {
|
|
|
|
+ drawExcelTeacher(levelInterval, smMap, sheet, style, dynamicHeadRow, new AtomicInteger(level + size + levelInterval));
|
|
|
|
+ size = size + smMap.size();
|
|
|
|
+ }
|
|
|
|
+ //SX表头
|
|
|
|
+ Map<String, ExportLevelResultDTO> sxMap = subjectMap.get(Subject.SX.toString());
|
|
|
|
+ if (Objects.nonNull(sxMap) && sxMap.size() > 0) {
|
|
|
|
+ drawExcelTeacher(levelInterval, sxMap, sheet, style, dynamicHeadRow, new AtomicInteger(level + size + levelInterval * 2));
|
|
|
|
+ }
|
|
|
|
+ //加载excel数据
|
|
|
|
+ AtomicInteger cellIndex = new AtomicInteger(0);
|
|
|
|
+ Sheet finalSheet = sheet;
|
|
|
|
+ AtomicInteger i = new AtomicInteger(0);
|
|
|
|
+ AtomicInteger r = new AtomicInteger(2);
|
|
|
|
+ exportLevelResultDTOs.forEach((listk, listv) -> {
|
|
|
|
+ int firstRow = i.get() + r.get();
|
|
|
|
+ cellIndex.set(0);
|
|
|
|
+ Row hssfRow = finalSheet.createRow(firstRow);
|
|
|
|
+ drawExcelFixedHead(finalSheet, style, hssfRow, new HeaderNode(listv.getExamNumber(), firstRow, firstRow, cellIndex.get(), cellIndex.get()));
|
|
|
|
+ cellIndex.getAndIncrement();
|
|
|
|
+ drawExcelFixedHead(finalSheet, style, hssfRow, new HeaderNode(listv.getStudentName(), firstRow, firstRow, cellIndex.get(), cellIndex.get()));
|
|
|
|
+ cellIndex.getAndIncrement();
|
|
|
|
+ drawExcelFixedHead(finalSheet, style, hssfRow, new HeaderNode(listv.getAreaName(), firstRow, firstRow, cellIndex.get(), cellIndex.get()));
|
|
|
|
+ cellIndex.getAndIncrement();
|
|
|
|
+ drawExcelFixedHead(finalSheet, style, hssfRow, new HeaderNode(listv.getSourceName(), firstRow, firstRow, cellIndex.get(), cellIndex.get()));
|
|
|
|
+ cellIndex.getAndIncrement();
|
|
|
|
+ Map<String, ExportLevelResultDTO> map = studentAnswerMap.get(listv.getExamNumber());
|
|
|
|
+ if (Objects.nonNull(map) && map.size() > 0) {
|
|
|
|
+ map.forEach((k, v) -> {
|
|
|
|
+ if (k.contains(Subject.SC.toString())) {
|
|
|
|
+ ExportLevelResultDTO exportLevelResultDTO = scMap.get(v.getTeacherName());
|
|
|
|
+ drawExcelFixedHead(finalSheet, style, hssfRow, new HeaderNode(v.getResult(), firstRow, firstRow, exportLevelResultDTO.getFirstCol(), exportLevelResultDTO.getFirstCol()));
|
|
|
|
+ if (v.getMarkByLeader()) {
|
|
|
|
+ drawExcelFixedHead(finalSheet, style, hssfRow, new HeaderNode(v.getLevel(), firstRow, firstRow, level + (scMap == null ? 0 : scMap.size()), level + (scMap == null ? 0 : scMap.size())));
|
|
|
|
+ }
|
|
|
|
+ if (Objects.nonNull(v.getLevel())) {
|
|
|
|
+ drawExcelFixedHead(finalSheet, style, hssfRow, new HeaderNode(v.getLevel(), firstRow, firstRow, level + (scMap == null ? 0 : scMap.size()) + 1, level + (scMap == null ? 0 : scMap.size()) + 1));
|
|
|
|
+ }
|
|
|
|
+ } else if (k.contains(Subject.SM.toString())) {
|
|
|
|
+ ExportLevelResultDTO exportLevelResultDTO = smMap.get(v.getTeacherName());
|
|
|
|
+ drawExcelFixedHead(finalSheet, style, hssfRow, new HeaderNode(v.getResult(), firstRow, firstRow, exportLevelResultDTO.getFirstCol(), exportLevelResultDTO.getFirstCol()));
|
|
|
|
+ if (v.getMarkByLeader()) {
|
|
|
|
+ drawExcelFixedHead(finalSheet, style, hssfRow, new HeaderNode(v.getLevel(), firstRow, firstRow, level + (scMap == null ? 0 : scMap.size()) + (smMap == null ? 0 : smMap.size()) + levelInterval, level + (scMap == null ? 0 : scMap.size()) + (smMap == null ? 0 : smMap.size()) + levelInterval));
|
|
|
|
+ }
|
|
|
|
+ if (Objects.nonNull(v.getLevel())) {
|
|
|
|
+ drawExcelFixedHead(finalSheet, style, hssfRow, new HeaderNode(v.getLevel(), firstRow, firstRow, level + (scMap == null ? 0 : scMap.size()) + (smMap == null ? 0 : smMap.size()) + levelInterval + 1, level + (scMap == null ? 0 : scMap.size()) + (smMap == null ? 0 : smMap.size()) + levelInterval + 1));
|
|
|
|
+ }
|
|
|
|
+ } else if (k.contains(Subject.SX.toString())) {
|
|
|
|
+ ExportLevelResultDTO exportLevelResultDTO = sxMap.get(v.getTeacherName());
|
|
|
|
+ drawExcelFixedHead(finalSheet, style, hssfRow, new HeaderNode(v.getResult(), firstRow, firstRow, exportLevelResultDTO.getFirstCol(), exportLevelResultDTO.getFirstCol()));
|
|
|
|
+ if (v.getMarkByLeader()) {
|
|
|
|
+ drawExcelFixedHead(finalSheet, style, hssfRow, new HeaderNode(v.getLevel(), firstRow, firstRow, level + (scMap == null ? 0 : scMap.size()) + (smMap == null ? 0 : smMap.size()) + (sxMap == null ? 0 : sxMap.size()) + levelInterval * 2, level + (scMap == null ? 0 : scMap.size()) + (smMap == null ? 0 : smMap.size()) + (sxMap == null ? 0 : sxMap.size()) + levelInterval * 2));
|
|
|
|
+ }
|
|
|
|
+ if (Objects.nonNull(v.getLevel())) {
|
|
|
|
+ drawExcelFixedHead(finalSheet, style, hssfRow, new HeaderNode(v.getLevel(), firstRow, firstRow, level + (scMap == null ? 0 : scMap.size()) + (smMap == null ? 0 : smMap.size()) + (sxMap == null ? 0 : sxMap.size()) + levelInterval * 2 + 1, level + (scMap == null ? 0 : scMap.size()) + (smMap == null ? 0 : smMap.size()) + (sxMap == null ? 0 : sxMap.size()) + levelInterval * 2 + 1));
|
|
|
|
+ }
|
|
}
|
|
}
|
|
- } else if (k.contains(Subject.SX.toString())) {
|
|
|
|
- ExportLevelResultDTO exportLevelResultDTO = sxMap.get(v.getTeacherName());
|
|
|
|
|
|
+ });
|
|
|
|
+ }
|
|
|
|
+ i.getAndIncrement();
|
|
|
|
+ });
|
|
|
|
+ } else {
|
|
|
|
+ //SC表头
|
|
|
|
+ Map<String, ExportLevelResultDTO> customMap = subjectMap.get(Subject.CUSTOM.toString());
|
|
|
|
+ int size = 0;
|
|
|
|
+ if (Objects.nonNull(customMap) && customMap.size() > 0) {
|
|
|
|
+ drawExcelTeacher(levelInterval, customMap, sheet, style, dynamicHeadRow, new AtomicInteger(level));
|
|
|
|
+ size = customMap.size();
|
|
|
|
+ }
|
|
|
|
+ //加载excel数据
|
|
|
|
+ AtomicInteger cellIndex = new AtomicInteger(0);
|
|
|
|
+ Sheet finalSheet = sheet;
|
|
|
|
+ AtomicInteger i = new AtomicInteger(0);
|
|
|
|
+ AtomicInteger r = new AtomicInteger(2);
|
|
|
|
+ exportLevelResultDTOs.forEach((listk, listv) -> {
|
|
|
|
+ int firstRow = i.get() + r.get();
|
|
|
|
+ cellIndex.set(0);
|
|
|
|
+ Row hssfRow = finalSheet.createRow(firstRow);
|
|
|
|
+ drawExcelFixedHead(finalSheet, style, hssfRow, new HeaderNode(listv.getExamNumber(), firstRow, firstRow, cellIndex.get(), cellIndex.get()));
|
|
|
|
+ cellIndex.getAndIncrement();
|
|
|
|
+ drawExcelFixedHead(finalSheet, style, hssfRow, new HeaderNode(listv.getStudentName(), firstRow, firstRow, cellIndex.get(), cellIndex.get()));
|
|
|
|
+ cellIndex.getAndIncrement();
|
|
|
|
+ drawExcelFixedHead(finalSheet, style, hssfRow, new HeaderNode(listv.getAreaName(), firstRow, firstRow, cellIndex.get(), cellIndex.get()));
|
|
|
|
+ cellIndex.getAndIncrement();
|
|
|
|
+ drawExcelFixedHead(finalSheet, style, hssfRow, new HeaderNode(listv.getSourceName(), firstRow, firstRow, cellIndex.get(), cellIndex.get()));
|
|
|
|
+ cellIndex.getAndIncrement();
|
|
|
|
+ Map<String, ExportLevelResultDTO> map = studentAnswerMap.get(listv.getExamNumber());
|
|
|
|
+ if (Objects.nonNull(map) && map.size() > 0) {
|
|
|
|
+ map.forEach((k, v) -> {
|
|
|
|
+ ExportLevelResultDTO exportLevelResultDTO = customMap.get(v.getTeacherName());
|
|
drawExcelFixedHead(finalSheet, style, hssfRow, new HeaderNode(v.getResult(), firstRow, firstRow, exportLevelResultDTO.getFirstCol(), exportLevelResultDTO.getFirstCol()));
|
|
drawExcelFixedHead(finalSheet, style, hssfRow, new HeaderNode(v.getResult(), firstRow, firstRow, exportLevelResultDTO.getFirstCol(), exportLevelResultDTO.getFirstCol()));
|
|
if (v.getMarkByLeader()) {
|
|
if (v.getMarkByLeader()) {
|
|
- drawExcelFixedHead(finalSheet, style, hssfRow, new HeaderNode(v.getLevel(), firstRow, firstRow, level + (scMap == null ? 0 : scMap.size()) + (smMap == null ? 0 : smMap.size()) + (sxMap == null ? 0 : sxMap.size()) + levelInterval * 2, level + (scMap == null ? 0 : scMap.size()) + (smMap == null ? 0 : smMap.size()) + (sxMap == null ? 0 : sxMap.size()) + levelInterval * 2));
|
|
|
|
|
|
+ drawExcelFixedHead(finalSheet, style, hssfRow, new HeaderNode(v.getLevel(), firstRow, firstRow, level + (customMap == null ? 0 : customMap.size()), level + (customMap == null ? 0 : customMap.size())));
|
|
}
|
|
}
|
|
if (Objects.nonNull(v.getLevel())) {
|
|
if (Objects.nonNull(v.getLevel())) {
|
|
- drawExcelFixedHead(finalSheet, style, hssfRow, new HeaderNode(v.getLevel(), firstRow, firstRow, level + (scMap == null ? 0 : scMap.size()) + (smMap == null ? 0 : smMap.size()) + (sxMap == null ? 0 : sxMap.size()) + levelInterval * 2 + 1, level + (scMap == null ? 0 : scMap.size()) + (smMap == null ? 0 : smMap.size()) + (sxMap == null ? 0 : sxMap.size()) + levelInterval * 2 + 1));
|
|
|
|
|
|
+ drawExcelFixedHead(finalSheet, style, hssfRow, new HeaderNode(v.getLevel(), firstRow, firstRow, level + (customMap == null ? 0 : customMap.size()) + 1, level + (customMap == null ? 0 : customMap.size()) + 1));
|
|
}
|
|
}
|
|
- }
|
|
|
|
- });
|
|
|
|
- }
|
|
|
|
- i.getAndIncrement();
|
|
|
|
- });
|
|
|
|
|
|
+ });
|
|
|
|
+ }
|
|
|
|
+ i.getAndIncrement();
|
|
|
|
+ });
|
|
|
|
+ }
|
|
ExportUtils.exportEXCEL(LEVEL_FILE_NAME, wb, response);
|
|
ExportUtils.exportEXCEL(LEVEL_FILE_NAME, wb, response);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -392,17 +475,24 @@ public class ScoreExporter {
|
|
@RequestMapping(value = "exportScoreResult", method = RequestMethod.GET)
|
|
@RequestMapping(value = "exportScoreResult", method = RequestMethod.GET)
|
|
public void exportScoreResult(@RequestParam Long workId, HttpServletResponse response) {
|
|
public void exportScoreResult(@RequestParam Long workId, HttpServletResponse response) {
|
|
//测试-导出分数成绩表
|
|
//测试-导出分数成绩表
|
|
- String scSql = "select temp.*, IFNULL(mt.`result`,0) as result, p.source_name as sourceName, p.exam_number as examNumber, p.student_name as studentName, t.area_name as areaName, IFNULL(p.score,0) as level,p.mark_by_leader as markByLeader from mark_task as mt , (select mu.id, mu.name as teacherName, mu.`role`, mu.subject, mu.work_id as workId from mark_user as mu where mu.work_id = ? and mu.`role` = 'MARKER'and (mu.mark_right = 1 or mu.mark_right = 2) and mu.subject = 'SC'and mu.enabled = 1) temp, paper p, student t where mt.marker_id = temp.id and mt.paper_id = p.id and t.exam_number = p.exam_number and mt.work_id = ? and mt.stage = 2 and p.is_missing = false UNION ALL select temp.*, 0 as result, p.source_name as sourceName, p.exam_number as examNumber, p.student_name as studentName, t.area_name as areaName, IFNULL(p.score,0) as level, p.mark_by_leader as markByLeader from paper p, (select mu.id, mu.name as teacherName, mu.`role`, mu.subject, mu.work_id as workId from mark_user as mu where mu.work_id = ? and mu.`role` = 'MARKER' and (mu.mark_right = 1 or mu.mark_right = 2) and mu.subject = 'SC' and mu.enabled = 1) temp, student t where p.is_missing = true and p.work_id = ? and p.subject = 'SC' and t.exam_number = p.exam_number ";
|
|
|
|
- String smSql = "select temp.*, IFNULL(mt.`result`,0) as result, p.source_name as sourceName, p.exam_number as examNumber, p.student_name as studentName, t.area_name as areaName, IFNULL(p.score,0) as level,p.mark_by_leader as markByLeader from mark_task as mt , (select mu.id, mu.name as teacherName, mu.`role`, mu.subject, mu.work_id as workId from mark_user as mu where mu.work_id = ? and mu.`role` = 'MARKER'and (mu.mark_right = 1 or mu.mark_right = 2) and mu.subject = 'SM'and mu.enabled = 1) temp, paper p, student t where mt.marker_id = temp.id and mt.paper_id = p.id and t.exam_number = p.exam_number and mt.work_id = ? and mt.stage = 2 and p.is_missing = false UNION ALL select temp.*, 0 as result, p.source_name as sourceName, p.exam_number as examNumber, p.student_name as studentName, t.area_name as areaName, IFNULL(p.score,0) as level, p.mark_by_leader as markByLeader from paper p, (select mu.id, mu.name as teacherName, mu.`role`, mu.subject, mu.work_id as workId from mark_user as mu where mu.work_id = ? and mu.`role` = 'MARKER' and (mu.mark_right = 1 or mu.mark_right = 2) and mu.subject = 'SM' and mu.enabled = 1) temp, student t where p.is_missing = true and p.work_id = ? and p.subject = 'SM' and t.exam_number = p.exam_number ";
|
|
|
|
- String sxSql = "select temp.*, IFNULL(mt.`result`,0) as result, p.source_name as sourceName, p.exam_number as examNumber, p.student_name as studentName, t.area_name as areaName, IFNULL(p.score,0) as level,p.mark_by_leader as markByLeader from mark_task as mt , (select mu.id, mu.name as teacherName, mu.`role`, mu.subject, mu.work_id as workId from mark_user as mu where mu.work_id = ? and mu.`role` = 'MARKER'and (mu.mark_right = 1 or mu.mark_right = 2) and mu.subject = 'SX'and mu.enabled = 1) temp, paper p, student t where mt.marker_id = temp.id and mt.paper_id = p.id and t.exam_number = p.exam_number and mt.work_id = ? and mt.stage = 2 and p.is_missing = false UNION ALL select temp.*, 0 as result, p.source_name as sourceName, p.exam_number as examNumber, p.student_name as studentName, t.area_name as areaName, IFNULL(p.score,0) as level, p.mark_by_leader as markByLeader from paper p, (select mu.id, mu.name as teacherName, mu.`role`, mu.subject, mu.work_id as workId from mark_user as mu where mu.work_id = ? and mu.`role` = 'MARKER' and (mu.mark_right = 1 or mu.mark_right = 2) and mu.subject = 'SX' and mu.enabled = 1) temp, student t where p.is_missing = true and p.work_id = ? and p.subject = 'SX' and t.exam_number = p.exam_number ";
|
|
|
|
- //拼装问号
|
|
|
|
- scSql = sqlUtil.sqlPrint(scSql, workId, workId, workId, workId);
|
|
|
|
- smSql = sqlUtil.sqlPrint(smSql, workId, workId, workId, workId);
|
|
|
|
- sxSql = sqlUtil.sqlPrint(sxSql, workId, workId, workId, workId);
|
|
|
|
- StringBuilder sbAll = new StringBuilder(sqlUtil.sqlUnionAll(scSql));//union all
|
|
|
|
- sbAll = sbAll.append(smSql);
|
|
|
|
- sbAll = new StringBuilder(sqlUtil.sqlUnionAll(sbAll.toString()));//union all
|
|
|
|
- sbAll = sbAll.append(sxSql);
|
|
|
|
|
|
+ StringBuilder sbAll = null;
|
|
|
|
+ if (!imageConfig.isCustomSubject()) {
|
|
|
|
+ String scSql = "select temp.*, IFNULL(mt.`result`,0) as result, p.source_name as sourceName, p.exam_number as examNumber, p.student_name as studentName, t.area_name as areaName, IFNULL(p.score,0) as level,p.mark_by_leader as markByLeader from mark_task as mt , (select mu.id, mu.name as teacherName, mu.`role`, mu.subject, mu.work_id as workId from mark_user as mu where mu.work_id = ? and mu.`role` = 'MARKER'and (mu.mark_right = 1 or mu.mark_right = 2) and mu.subject = 'SC'and mu.enabled = 1) temp, paper p, student t where mt.marker_id = temp.id and mt.paper_id = p.id and t.exam_number = p.exam_number and mt.work_id = ? and mt.stage = 2 and p.is_missing = false UNION ALL select temp.*, 0 as result, p.source_name as sourceName, p.exam_number as examNumber, p.student_name as studentName, t.area_name as areaName, IFNULL(p.score,0) as level, p.mark_by_leader as markByLeader from paper p, (select mu.id, mu.name as teacherName, mu.`role`, mu.subject, mu.work_id as workId from mark_user as mu where mu.work_id = ? and mu.`role` = 'MARKER' and (mu.mark_right = 1 or mu.mark_right = 2) and mu.subject = 'SC' and mu.enabled = 1) temp, student t where p.is_missing = true and p.work_id = ? and p.subject = 'SC' and t.exam_number = p.exam_number ";
|
|
|
|
+ String smSql = "select temp.*, IFNULL(mt.`result`,0) as result, p.source_name as sourceName, p.exam_number as examNumber, p.student_name as studentName, t.area_name as areaName, IFNULL(p.score,0) as level,p.mark_by_leader as markByLeader from mark_task as mt , (select mu.id, mu.name as teacherName, mu.`role`, mu.subject, mu.work_id as workId from mark_user as mu where mu.work_id = ? and mu.`role` = 'MARKER'and (mu.mark_right = 1 or mu.mark_right = 2) and mu.subject = 'SM'and mu.enabled = 1) temp, paper p, student t where mt.marker_id = temp.id and mt.paper_id = p.id and t.exam_number = p.exam_number and mt.work_id = ? and mt.stage = 2 and p.is_missing = false UNION ALL select temp.*, 0 as result, p.source_name as sourceName, p.exam_number as examNumber, p.student_name as studentName, t.area_name as areaName, IFNULL(p.score,0) as level, p.mark_by_leader as markByLeader from paper p, (select mu.id, mu.name as teacherName, mu.`role`, mu.subject, mu.work_id as workId from mark_user as mu where mu.work_id = ? and mu.`role` = 'MARKER' and (mu.mark_right = 1 or mu.mark_right = 2) and mu.subject = 'SM' and mu.enabled = 1) temp, student t where p.is_missing = true and p.work_id = ? and p.subject = 'SM' and t.exam_number = p.exam_number ";
|
|
|
|
+ String sxSql = "select temp.*, IFNULL(mt.`result`,0) as result, p.source_name as sourceName, p.exam_number as examNumber, p.student_name as studentName, t.area_name as areaName, IFNULL(p.score,0) as level,p.mark_by_leader as markByLeader from mark_task as mt , (select mu.id, mu.name as teacherName, mu.`role`, mu.subject, mu.work_id as workId from mark_user as mu where mu.work_id = ? and mu.`role` = 'MARKER'and (mu.mark_right = 1 or mu.mark_right = 2) and mu.subject = 'SX'and mu.enabled = 1) temp, paper p, student t where mt.marker_id = temp.id and mt.paper_id = p.id and t.exam_number = p.exam_number and mt.work_id = ? and mt.stage = 2 and p.is_missing = false UNION ALL select temp.*, 0 as result, p.source_name as sourceName, p.exam_number as examNumber, p.student_name as studentName, t.area_name as areaName, IFNULL(p.score,0) as level, p.mark_by_leader as markByLeader from paper p, (select mu.id, mu.name as teacherName, mu.`role`, mu.subject, mu.work_id as workId from mark_user as mu where mu.work_id = ? and mu.`role` = 'MARKER' and (mu.mark_right = 1 or mu.mark_right = 2) and mu.subject = 'SX' and mu.enabled = 1) temp, student t where p.is_missing = true and p.work_id = ? and p.subject = 'SX' and t.exam_number = p.exam_number ";
|
|
|
|
+ //拼装问号
|
|
|
|
+ scSql = sqlUtil.sqlPrint(scSql, workId, workId, workId, workId);
|
|
|
|
+ smSql = sqlUtil.sqlPrint(smSql, workId, workId, workId, workId);
|
|
|
|
+ sxSql = sqlUtil.sqlPrint(sxSql, workId, workId, workId, workId);
|
|
|
|
+ sbAll = new StringBuilder(sqlUtil.sqlUnionAll(scSql));//union all
|
|
|
|
+ sbAll = sbAll.append(smSql);
|
|
|
|
+ sbAll = new StringBuilder(sqlUtil.sqlUnionAll(sbAll.toString()));//union all
|
|
|
|
+ sbAll = sbAll.append(sxSql);
|
|
|
|
+ } else {
|
|
|
|
+ String customSql = "select temp.*, IFNULL(mt.`result`,0) as result, p.source_name as sourceName, p.exam_number as examNumber, p.student_name as studentName, t.area_name as areaName, IFNULL(p.score,0) as level,p.mark_by_leader as markByLeader from mark_task as mt , (select mu.id, mu.name as teacherName, mu.`role`, mu.subject, mu.work_id as workId from mark_user as mu where mu.work_id = ? and mu.`role` = 'MARKER'and (mu.mark_right = 1 or mu.mark_right = 2) and mu.subject = 'CUSTOM'and mu.enabled = 1) temp, paper p, student t where mt.marker_id = temp.id and mt.paper_id = p.id and t.exam_number = p.exam_number and mt.work_id = ? and mt.stage = 2 and p.is_missing = false UNION ALL select temp.*, 0 as result, p.source_name as sourceName, p.exam_number as examNumber, p.student_name as studentName, t.area_name as areaName, IFNULL(p.score,0) as level, p.mark_by_leader as markByLeader from paper p, (select mu.id, mu.name as teacherName, mu.`role`, mu.subject, mu.work_id as workId from mark_user as mu where mu.work_id = ? and mu.`role` = 'MARKER' and (mu.mark_right = 1 or mu.mark_right = 2) and mu.subject = 'CUSTOM' and mu.enabled = 1) temp, student t where p.is_missing = true and p.work_id = ? and p.subject = 'CUSTOM' and t.exam_number = p.exam_number ";
|
|
|
|
+ customSql = sqlUtil.sqlPrint(customSql, workId, workId, workId, workId);
|
|
|
|
+ sbAll = new StringBuilder(customSql);
|
|
|
|
+ }
|
|
List list = sqlUtil.execSqlForMap(sbAll.toString());
|
|
List list = sqlUtil.execSqlForMap(sbAll.toString());
|
|
if (Objects.nonNull(list)) {
|
|
if (Objects.nonNull(list)) {
|
|
Map<String, Map<String, ExportLevelResultDTO>> subjectMap = new HashMap<>();//课程老师批改集合
|
|
Map<String, Map<String, ExportLevelResultDTO>> subjectMap = new HashMap<>();//课程老师批改集合
|
|
@@ -421,71 +511,110 @@ public class ScoreExporter {
|
|
Row row = sheet.createRow(0);
|
|
Row row = sheet.createRow(0);
|
|
|
|
|
|
//绘制固定表头
|
|
//绘制固定表头
|
|
- sheet = drawExcelFixedHead(scoreInterval, sheet, style, row, subjectMap);
|
|
|
|
|
|
+ sheet = drawExcelFixedHead(scoreInterval, sheet, style, row, subjectMap, workId);
|
|
|
|
|
|
//绘制动态表头
|
|
//绘制动态表头
|
|
Row dynamicHeadRow = sheet.createRow(1);
|
|
Row dynamicHeadRow = sheet.createRow(1);
|
|
- //SC表头
|
|
|
|
- Map<String, ExportLevelResultDTO> scMap = subjectMap.get(Subject.SC.toString());
|
|
|
|
- int size = 0;
|
|
|
|
- if (Objects.nonNull(scMap) && scMap.size() > 0) {
|
|
|
|
- drawExcelTeacher(scoreInterval, scMap, sheet, style, dynamicHeadRow, new AtomicInteger(level));
|
|
|
|
- size = scMap.size();
|
|
|
|
- }
|
|
|
|
- //SM表头
|
|
|
|
- Map<String, ExportLevelResultDTO> smMap = subjectMap.get(Subject.SM.toString());
|
|
|
|
- if (Objects.nonNull(smMap) && smMap.size() > 0) {
|
|
|
|
- drawExcelTeacher(scoreInterval, smMap, sheet, style, dynamicHeadRow, new AtomicInteger(level + size + scoreInterval));
|
|
|
|
- size = size + smMap.size();
|
|
|
|
- }
|
|
|
|
- //SX表头
|
|
|
|
- Map<String, ExportLevelResultDTO> sxMap = subjectMap.get(Subject.SX.toString());
|
|
|
|
- if (Objects.nonNull(sxMap) && sxMap.size() > 0) {
|
|
|
|
- drawExcelTeacher(scoreInterval, sxMap, sheet, style, dynamicHeadRow, new AtomicInteger(level + size + scoreInterval * 2));
|
|
|
|
- }
|
|
|
|
- //加载excel数据
|
|
|
|
- AtomicInteger cellIndex = new AtomicInteger(0);
|
|
|
|
- Sheet finalSheet = sheet;
|
|
|
|
- AtomicInteger i = new AtomicInteger(0);
|
|
|
|
- AtomicInteger r = new AtomicInteger(2);
|
|
|
|
- exportLevelResultDTOs.forEach((listk, listv) -> {
|
|
|
|
- int firstRow = i.get() + r.get();
|
|
|
|
- cellIndex.set(0);
|
|
|
|
- Row hssfRow = finalSheet.createRow(firstRow);
|
|
|
|
- drawExcelFixedHead(finalSheet, style, hssfRow, new HeaderNode(listv.getExamNumber(), firstRow, firstRow, cellIndex.get(), cellIndex.get()));
|
|
|
|
- cellIndex.getAndIncrement();
|
|
|
|
- drawExcelFixedHead(finalSheet, style, hssfRow, new HeaderNode(listv.getStudentName(), firstRow, firstRow, cellIndex.get(), cellIndex.get()));
|
|
|
|
- cellIndex.getAndIncrement();
|
|
|
|
- drawExcelFixedHead(finalSheet, style, hssfRow, new HeaderNode(listv.getAreaName(), firstRow, firstRow, cellIndex.get(), cellIndex.get()));
|
|
|
|
- cellIndex.getAndIncrement();
|
|
|
|
- drawExcelFixedHead(finalSheet, style, hssfRow, new HeaderNode(listv.getSourceName(), firstRow, firstRow, cellIndex.get(), cellIndex.get()));
|
|
|
|
- cellIndex.getAndIncrement();
|
|
|
|
- Map<String, ExportLevelResultDTO> map = studentAnswerMap.get(listv.getExamNumber());
|
|
|
|
- if (Objects.nonNull(map) && map.size() > 0) {
|
|
|
|
- map.forEach((k, v) -> {
|
|
|
|
- if (k.contains(Subject.SC.toString())) {
|
|
|
|
- ExportLevelResultDTO exportLevelResultDTO = scMap.get(v.getTeacherName());
|
|
|
|
- drawExcelFixedHead(finalSheet, style, hssfRow, new HeaderNode(v.getResult(), firstRow, firstRow, exportLevelResultDTO.getFirstCol(), exportLevelResultDTO.getFirstCol()));
|
|
|
|
- if (Objects.nonNull(v.getLevel())) {
|
|
|
|
- drawExcelFixedHead(finalSheet, style, hssfRow, new HeaderNode(v.getLevel(), firstRow, firstRow, level + (scMap == null ? 0 : scMap.size()), level + (scMap == null ? 0 : scMap.size())));
|
|
|
|
- }
|
|
|
|
- } else if (k.contains(Subject.SM.toString())) {
|
|
|
|
- ExportLevelResultDTO exportLevelResultDTO = smMap.get(v.getTeacherName());
|
|
|
|
- drawExcelFixedHead(finalSheet, style, hssfRow, new HeaderNode(v.getResult(), firstRow, firstRow, exportLevelResultDTO.getFirstCol(), exportLevelResultDTO.getFirstCol()));
|
|
|
|
- if (Objects.nonNull(v.getLevel())) {
|
|
|
|
- drawExcelFixedHead(finalSheet, style, hssfRow, new HeaderNode(v.getLevel(), firstRow, firstRow, level + (scMap == null ? 0 : scMap.size()) + (smMap == null ? 0 : smMap.size()) + scoreInterval, level + (scMap == null ? 0 : scMap.size()) + (smMap == null ? 0 : smMap.size()) + scoreInterval));
|
|
|
|
|
|
+ if (!imageConfig.isCustomSubject()) {
|
|
|
|
+ //SC表头
|
|
|
|
+ Map<String, ExportLevelResultDTO> scMap = subjectMap.get(Subject.SC.toString());
|
|
|
|
+ int size = 0;
|
|
|
|
+ if (Objects.nonNull(scMap) && scMap.size() > 0) {
|
|
|
|
+ drawExcelTeacher(scoreInterval, scMap, sheet, style, dynamicHeadRow, new AtomicInteger(level));
|
|
|
|
+ size = scMap.size();
|
|
|
|
+ }
|
|
|
|
+ //SM表头
|
|
|
|
+ Map<String, ExportLevelResultDTO> smMap = subjectMap.get(Subject.SM.toString());
|
|
|
|
+ if (Objects.nonNull(smMap) && smMap.size() > 0) {
|
|
|
|
+ drawExcelTeacher(scoreInterval, smMap, sheet, style, dynamicHeadRow, new AtomicInteger(level + size + scoreInterval));
|
|
|
|
+ size = size + smMap.size();
|
|
|
|
+ }
|
|
|
|
+ //SX表头
|
|
|
|
+ Map<String, ExportLevelResultDTO> sxMap = subjectMap.get(Subject.SX.toString());
|
|
|
|
+ if (Objects.nonNull(sxMap) && sxMap.size() > 0) {
|
|
|
|
+ drawExcelTeacher(scoreInterval, sxMap, sheet, style, dynamicHeadRow, new AtomicInteger(level + size + scoreInterval * 2));
|
|
|
|
+ }
|
|
|
|
+ //加载excel数据
|
|
|
|
+ AtomicInteger cellIndex = new AtomicInteger(0);
|
|
|
|
+ Sheet finalSheet = sheet;
|
|
|
|
+ AtomicInteger i = new AtomicInteger(0);
|
|
|
|
+ AtomicInteger r = new AtomicInteger(2);
|
|
|
|
+ exportLevelResultDTOs.forEach((listk, listv) -> {
|
|
|
|
+ int firstRow = i.get() + r.get();
|
|
|
|
+ cellIndex.set(0);
|
|
|
|
+ Row hssfRow = finalSheet.createRow(firstRow);
|
|
|
|
+ drawExcelFixedHead(finalSheet, style, hssfRow, new HeaderNode(listv.getExamNumber(), firstRow, firstRow, cellIndex.get(), cellIndex.get()));
|
|
|
|
+ cellIndex.getAndIncrement();
|
|
|
|
+ drawExcelFixedHead(finalSheet, style, hssfRow, new HeaderNode(listv.getStudentName(), firstRow, firstRow, cellIndex.get(), cellIndex.get()));
|
|
|
|
+ cellIndex.getAndIncrement();
|
|
|
|
+ drawExcelFixedHead(finalSheet, style, hssfRow, new HeaderNode(listv.getAreaName(), firstRow, firstRow, cellIndex.get(), cellIndex.get()));
|
|
|
|
+ cellIndex.getAndIncrement();
|
|
|
|
+ drawExcelFixedHead(finalSheet, style, hssfRow, new HeaderNode(listv.getSourceName(), firstRow, firstRow, cellIndex.get(), cellIndex.get()));
|
|
|
|
+ cellIndex.getAndIncrement();
|
|
|
|
+ Map<String, ExportLevelResultDTO> map = studentAnswerMap.get(listv.getExamNumber());
|
|
|
|
+ if (Objects.nonNull(map) && map.size() > 0) {
|
|
|
|
+ map.forEach((k, v) -> {
|
|
|
|
+ if (k.contains(Subject.SC.toString())) {
|
|
|
|
+ ExportLevelResultDTO exportLevelResultDTO = scMap.get(v.getTeacherName());
|
|
|
|
+ drawExcelFixedHead(finalSheet, style, hssfRow, new HeaderNode(v.getResult(), firstRow, firstRow, exportLevelResultDTO.getFirstCol(), exportLevelResultDTO.getFirstCol()));
|
|
|
|
+ if (Objects.nonNull(v.getLevel())) {
|
|
|
|
+ drawExcelFixedHead(finalSheet, style, hssfRow, new HeaderNode(v.getLevel(), firstRow, firstRow, level + (scMap == null ? 0 : scMap.size()), level + (scMap == null ? 0 : scMap.size())));
|
|
|
|
+ }
|
|
|
|
+ } else if (k.contains(Subject.SM.toString())) {
|
|
|
|
+ ExportLevelResultDTO exportLevelResultDTO = smMap.get(v.getTeacherName());
|
|
|
|
+ drawExcelFixedHead(finalSheet, style, hssfRow, new HeaderNode(v.getResult(), firstRow, firstRow, exportLevelResultDTO.getFirstCol(), exportLevelResultDTO.getFirstCol()));
|
|
|
|
+ if (Objects.nonNull(v.getLevel())) {
|
|
|
|
+ drawExcelFixedHead(finalSheet, style, hssfRow, new HeaderNode(v.getLevel(), firstRow, firstRow, level + (scMap == null ? 0 : scMap.size()) + (smMap == null ? 0 : smMap.size()) + scoreInterval, level + (scMap == null ? 0 : scMap.size()) + (smMap == null ? 0 : smMap.size()) + scoreInterval));
|
|
|
|
+ }
|
|
|
|
+ } else if (k.contains(Subject.SX.toString())) {
|
|
|
|
+ ExportLevelResultDTO exportLevelResultDTO = sxMap.get(v.getTeacherName());
|
|
|
|
+ drawExcelFixedHead(finalSheet, style, hssfRow, new HeaderNode(v.getResult(), firstRow, firstRow, exportLevelResultDTO.getFirstCol(), exportLevelResultDTO.getFirstCol()));
|
|
|
|
+ if (Objects.nonNull(v.getLevel())) {
|
|
|
|
+ drawExcelFixedHead(finalSheet, style, hssfRow, new HeaderNode(v.getLevel(), firstRow, firstRow, level + (scMap == null ? 0 : scMap.size()) + (smMap == null ? 0 : smMap.size()) + (sxMap == null ? 0 : sxMap.size()) + scoreInterval * 2, level + (scMap == null ? 0 : scMap.size()) + (smMap == null ? 0 : smMap.size()) + (sxMap == null ? 0 : sxMap.size()) + scoreInterval * 2));
|
|
|
|
+ }
|
|
}
|
|
}
|
|
- } else if (k.contains(Subject.SX.toString())) {
|
|
|
|
- ExportLevelResultDTO exportLevelResultDTO = sxMap.get(v.getTeacherName());
|
|
|
|
|
|
+ });
|
|
|
|
+ }
|
|
|
|
+ i.getAndIncrement();
|
|
|
|
+ });
|
|
|
|
+ } else {
|
|
|
|
+ //SC表头
|
|
|
|
+ Map<String, ExportLevelResultDTO> customMap = subjectMap.get(Subject.CUSTOM.toString());
|
|
|
|
+ int size = 0;
|
|
|
|
+ if (Objects.nonNull(customMap) && customMap.size() > 0) {
|
|
|
|
+ drawExcelTeacher(scoreInterval, customMap, sheet, style, dynamicHeadRow, new AtomicInteger(level));
|
|
|
|
+ size = customMap.size();
|
|
|
|
+ }
|
|
|
|
+ //加载excel数据
|
|
|
|
+ AtomicInteger cellIndex = new AtomicInteger(0);
|
|
|
|
+ Sheet finalSheet = sheet;
|
|
|
|
+ AtomicInteger i = new AtomicInteger(0);
|
|
|
|
+ AtomicInteger r = new AtomicInteger(2);
|
|
|
|
+ exportLevelResultDTOs.forEach((listk, listv) -> {
|
|
|
|
+ int firstRow = i.get() + r.get();
|
|
|
|
+ cellIndex.set(0);
|
|
|
|
+ Row hssfRow = finalSheet.createRow(firstRow);
|
|
|
|
+ drawExcelFixedHead(finalSheet, style, hssfRow, new HeaderNode(listv.getExamNumber(), firstRow, firstRow, cellIndex.get(), cellIndex.get()));
|
|
|
|
+ cellIndex.getAndIncrement();
|
|
|
|
+ drawExcelFixedHead(finalSheet, style, hssfRow, new HeaderNode(listv.getStudentName(), firstRow, firstRow, cellIndex.get(), cellIndex.get()));
|
|
|
|
+ cellIndex.getAndIncrement();
|
|
|
|
+ drawExcelFixedHead(finalSheet, style, hssfRow, new HeaderNode(listv.getAreaName(), firstRow, firstRow, cellIndex.get(), cellIndex.get()));
|
|
|
|
+ cellIndex.getAndIncrement();
|
|
|
|
+ drawExcelFixedHead(finalSheet, style, hssfRow, new HeaderNode(listv.getSourceName(), firstRow, firstRow, cellIndex.get(), cellIndex.get()));
|
|
|
|
+ cellIndex.getAndIncrement();
|
|
|
|
+ Map<String, ExportLevelResultDTO> map = studentAnswerMap.get(listv.getExamNumber());
|
|
|
|
+ if (Objects.nonNull(map) && map.size() > 0) {
|
|
|
|
+ map.forEach((k, v) -> {
|
|
|
|
+ ExportLevelResultDTO exportLevelResultDTO = customMap.get(v.getTeacherName());
|
|
drawExcelFixedHead(finalSheet, style, hssfRow, new HeaderNode(v.getResult(), firstRow, firstRow, exportLevelResultDTO.getFirstCol(), exportLevelResultDTO.getFirstCol()));
|
|
drawExcelFixedHead(finalSheet, style, hssfRow, new HeaderNode(v.getResult(), firstRow, firstRow, exportLevelResultDTO.getFirstCol(), exportLevelResultDTO.getFirstCol()));
|
|
if (Objects.nonNull(v.getLevel())) {
|
|
if (Objects.nonNull(v.getLevel())) {
|
|
- drawExcelFixedHead(finalSheet, style, hssfRow, new HeaderNode(v.getLevel(), firstRow, firstRow, level + (scMap == null ? 0 : scMap.size()) + (smMap == null ? 0 : smMap.size()) + (sxMap == null ? 0 : sxMap.size()) + scoreInterval * 2, level + (scMap == null ? 0 : scMap.size()) + (smMap == null ? 0 : smMap.size()) + (sxMap == null ? 0 : sxMap.size()) + scoreInterval * 2));
|
|
|
|
|
|
+ drawExcelFixedHead(finalSheet, style, hssfRow, new HeaderNode(v.getLevel(), firstRow, firstRow, level + (customMap == null ? 0 : customMap.size()), level + (customMap == null ? 0 : customMap.size())));
|
|
}
|
|
}
|
|
- }
|
|
|
|
- });
|
|
|
|
- }
|
|
|
|
- i.getAndIncrement();
|
|
|
|
- });
|
|
|
|
|
|
+ });
|
|
|
|
+ }
|
|
|
|
+ i.getAndIncrement();
|
|
|
|
+ });
|
|
|
|
+ }
|
|
ExportUtils.exportEXCEL(SCORE_FILE_NAME, wb, response);
|
|
ExportUtils.exportEXCEL(SCORE_FILE_NAME, wb, response);
|
|
}
|
|
}
|
|
}
|
|
}
|