|
@@ -282,12 +282,12 @@ public class MarkStudentServiceImpl extends ServiceImpl<MarkStudentMapper, MarkS
|
|
// 主观题检查标记
|
|
// 主观题检查标记
|
|
scoreDetailDto.setSubjectiveCheckFlag(
|
|
scoreDetailDto.setSubjectiveCheckFlag(
|
|
!scoreDetailDto.getAbsent() && !scoreDetailDto.getOmrAbsent() && scoreDetailDto.getUpload() && ScanStatus.SCANNED.equals(scoreDetailDto.getScanStatus())
|
|
!scoreDetailDto.getAbsent() && !scoreDetailDto.getOmrAbsent() && scoreDetailDto.getUpload() && ScanStatus.SCANNED.equals(scoreDetailDto.getScanStatus())
|
|
- && SubjectiveStatus.MARKED.equals(scoreDetailDto.getSubjectiveStatus()) && StringUtils.isNotBlank(scoreDetailDto.getSubjectiveScore()) && StringUtils.isNotBlank(
|
|
|
|
|
|
+ && SubjectiveStatus.MARKED.equals(scoreDetailDto.getSubjectiveStatus()) && scoreDetailDto.getSubjectiveScore() != null && StringUtils.isNotBlank(
|
|
scoreDetailDto.getSubjectiveScoreList()));
|
|
scoreDetailDto.getSubjectiveScoreList()));
|
|
// 客观题检查标记
|
|
// 客观题检查标记
|
|
scoreDetailDto.setObjectiveCheckFlag(
|
|
scoreDetailDto.setObjectiveCheckFlag(
|
|
- !scoreDetailDto.getAbsent() && !scoreDetailDto.getManualAbsent() && !scoreDetailDto.getOmrAbsent() && scoreDetailDto.getUpload() && ScanStatus.SCANNED.equals(scoreDetailDto.getScanStatus()) && StringUtils.isNotBlank(
|
|
|
|
- scoreDetailDto.getObjectiveScore()) && StringUtils.isNotBlank(scoreDetailDto.getObjectiveScoreList()));
|
|
|
|
|
|
+ !scoreDetailDto.getAbsent() && !scoreDetailDto.getManualAbsent() && !scoreDetailDto.getOmrAbsent() && scoreDetailDto.getUpload() && ScanStatus.SCANNED.equals(scoreDetailDto.getScanStatus())
|
|
|
|
+ && scoreDetailDto.getObjectiveScore() != null && StringUtils.isNotBlank(scoreDetailDto.getObjectiveScoreList()));
|
|
|
|
|
|
// 格式化分数
|
|
// 格式化分数
|
|
scoreDetailDto.setObjectiveScore(Calculator.round(scoreDetailDto.getObjectiveScore(), 1));
|
|
scoreDetailDto.setObjectiveScore(Calculator.round(scoreDetailDto.getObjectiveScore(), 1));
|
|
@@ -354,9 +354,11 @@ public class MarkStudentServiceImpl extends ServiceImpl<MarkStudentMapper, MarkS
|
|
}
|
|
}
|
|
|
|
|
|
// 违纪状态
|
|
// 违纪状态
|
|
|
|
+ String breachDisplay = "-";
|
|
if (BasicExamStudentStatusEnum.B.equals(scoreDetailDto.getStudentStatus()) || scoreDetailDto.getBreach() || scoreDetailDto.getOmrBreach() || scoreDetailDto.getManualBreach()) {
|
|
if (BasicExamStudentStatusEnum.B.equals(scoreDetailDto.getStudentStatus()) || scoreDetailDto.getBreach() || scoreDetailDto.getOmrBreach() || scoreDetailDto.getManualBreach()) {
|
|
- scoreDetailDto.setBreachDisplay("违纪");
|
|
|
|
|
|
+ breachDisplay = "违纪";
|
|
}
|
|
}
|
|
|
|
+ scoreDetailDto.setBreachDisplay(breachDisplay);
|
|
}
|
|
}
|
|
|
|
|
|
if (!CollectionUtils.isEmpty(studentScoreDetailExportDtoSet)) {
|
|
if (!CollectionUtils.isEmpty(studentScoreDetailExportDtoSet)) {
|
|
@@ -367,45 +369,49 @@ public class MarkStudentServiceImpl extends ServiceImpl<MarkStudentMapper, MarkS
|
|
|
|
|
|
HttpServletResponse response = ServletUtil.getResponse();
|
|
HttpServletResponse response = ServletUtil.getResponse();
|
|
//生成表头
|
|
//生成表头
|
|
- String[] columnName = new String[]{"姓名", "学号", "学院", "教学班", "行政班", "课程代码", "课程名称", "状态", "违纪状态", "客观分", "主观分", "成绩"};
|
|
|
|
|
|
+ String[] columnName = new String[]{"学生姓名", "学号", "学院", "教学班", "行政班", "课程代码", "课程名称", "状态", "违纪状态", "客观分", "主观分", "成绩"};
|
|
List<MarkQuestion> oQuestionList = markQuestionService.listQuestionByExamIdAndPaperNumberAndGroupNumber(examId, paperNumber, null, true);
|
|
List<MarkQuestion> oQuestionList = markQuestionService.listQuestionByExamIdAndPaperNumberAndGroupNumber(examId, paperNumber, null, true);
|
|
List<MarkQuestion> sQuestionList = markQuestionService.listQuestionByExamIdAndPaperNumberAndGroupNumber(examId, paperNumber, null, false);
|
|
List<MarkQuestion> sQuestionList = markQuestionService.listQuestionByExamIdAndPaperNumberAndGroupNumber(examId, paperNumber, null, false);
|
|
List<String> columnNameList = new ArrayList<>(Arrays.asList(columnName));
|
|
List<String> columnNameList = new ArrayList<>(Arrays.asList(columnName));
|
|
for (MarkQuestion question : oQuestionList) {
|
|
for (MarkQuestion question : oQuestionList) {
|
|
columnNameList.add(question.getMainTitle() + " " + question.getMainNumber() + "-" + question.getSubNumber() + "选项");
|
|
columnNameList.add(question.getMainTitle() + " " + question.getMainNumber() + "-" + question.getSubNumber() + "选项");
|
|
columnNameList.add(question.getMainTitle() + " " + question.getMainNumber() + "-" + question.getSubNumber() + "得分");
|
|
columnNameList.add(question.getMainTitle() + " " + question.getMainNumber() + "-" + question.getSubNumber() + "得分");
|
|
|
|
+ columnNameList.add(question.getMainTitle() + " " + question.getMainNumber() + "-" + question.getSubNumber() + "满分");
|
|
}
|
|
}
|
|
for (MarkQuestion question : sQuestionList) {
|
|
for (MarkQuestion question : sQuestionList) {
|
|
columnNameList.add(question.getMainTitle() + " " + question.getMainNumber() + "-" + question.getSubNumber());
|
|
columnNameList.add(question.getMainTitle() + " " + question.getMainNumber() + "-" + question.getSubNumber());
|
|
|
|
+ columnNameList.add(question.getMainTitle() + " " + question.getMainNumber() + "-" + question.getSubNumber() + "满分");
|
|
}
|
|
}
|
|
String[] columnNames = columnNameList.toArray(new String[0]);
|
|
String[] columnNames = columnNameList.toArray(new String[0]);
|
|
//生成动态内容
|
|
//生成动态内容
|
|
- List<String[]> columnValues = new ArrayList<>();
|
|
|
|
|
|
+ List<CellValue[]> columnValues = new ArrayList<>();
|
|
for (StudentScoreDetailDto s : studentScoreDetailDtoList) {
|
|
for (StudentScoreDetailDto s : studentScoreDetailDtoList) {
|
|
- List<String> valueList = new ArrayList<>();
|
|
|
|
- valueList.add(s.getStudentName());
|
|
|
|
- valueList.add(s.getStudentCode());
|
|
|
|
- valueList.add(s.getCollegeName());
|
|
|
|
- valueList.add(s.getTeachClassName());
|
|
|
|
- valueList.add(s.getClassName());
|
|
|
|
- valueList.add(s.getCourseCode());
|
|
|
|
- valueList.add(s.getCourseName());
|
|
|
|
|
|
+ List<CellValue> valueList = new ArrayList<>();
|
|
|
|
+ valueList.add(CellValue.of(s.getStudentName()));
|
|
|
|
+ valueList.add(CellValue.of(s.getStudentCode()));
|
|
|
|
+ valueList.add(CellValue.of(s.getCollegeName()));
|
|
|
|
+ valueList.add(CellValue.of(s.getTeachClassName()));
|
|
|
|
+ valueList.add(CellValue.of(s.getClassName()));
|
|
|
|
+ valueList.add(CellValue.of(s.getCourseCode()));
|
|
|
|
+ valueList.add(CellValue.of(s.getCourseName()));
|
|
// 扫描状态
|
|
// 扫描状态
|
|
- valueList.add(s.getStudentStatusDisplay());
|
|
|
|
|
|
+ valueList.add(CellValue.of(s.getStudentStatusDisplay()));
|
|
|
|
|
|
// 违纪状态
|
|
// 违纪状态
|
|
- valueList.add(s.getBreachDisplay());
|
|
|
|
- valueList.add(s.getObjectiveScore() == null ? "" : s.getObjectiveScore().toString());
|
|
|
|
- valueList.add(s.getSubjectiveScore() == null ? "" : s.getSubjectiveScore().toString());
|
|
|
|
- valueList.add(s.getTotalScore() == null ? "" : s.getTotalScore().toString());
|
|
|
|
|
|
+ valueList.add(CellValue.of(s.getBreachDisplay()));
|
|
|
|
+ valueList.add(s.getObjectiveScore() == null ? CellValue.of("") : CellValue.of(s.getObjectiveScore()));
|
|
|
|
+ valueList.add(s.getSubjectiveScore() == null ? CellValue.of("") : CellValue.of(s.getSubjectiveScore()));
|
|
|
|
+ valueList.add(s.getTotalScore() == null ? CellValue.of("") : CellValue.of(s.getTotalScore()));
|
|
for (ScoreItem item : s.getScoreList(true, oQuestionList)) {
|
|
for (ScoreItem item : s.getScoreList(true, oQuestionList)) {
|
|
- valueList.add(item.getAnswer());
|
|
|
|
- valueList.add(item.getScore() == null ? "" : item.getScore().toString());
|
|
|
|
|
|
+ valueList.add(CellValue.of(item.getAnswer()));
|
|
|
|
+ valueList.add(item.getScore() == null ? CellValue.of("") : CellValue.of(item.getScore()));
|
|
|
|
+ valueList.add(item.getTotalScore() == null ? CellValue.of("") : CellValue.of(item.getTotalScore()));
|
|
}
|
|
}
|
|
for (ScoreItem item : s.getScoreList(false, sQuestionList)) {
|
|
for (ScoreItem item : s.getScoreList(false, sQuestionList)) {
|
|
- valueList.add(item.getScore().toString());
|
|
|
|
|
|
+ valueList.add(CellValue.of(item.getScore()));
|
|
|
|
+ valueList.add(item.getTotalScore() == null ? CellValue.of("") : CellValue.of(item.getTotalScore()));
|
|
}
|
|
}
|
|
- String[] columnValue = valueList.toArray(new String[valueList.size()]);
|
|
|
|
|
|
+ CellValue[] columnValue = valueList.toArray(new CellValue[valueList.size()]);
|
|
columnValues.add(columnValue);
|
|
columnValues.add(columnValue);
|
|
}
|
|
}
|
|
try {
|
|
try {
|
|
@@ -414,7 +420,7 @@ public class MarkStudentServiceImpl extends ServiceImpl<MarkStudentMapper, MarkS
|
|
response.setContentType("application/vnd.ms-excel");
|
|
response.setContentType("application/vnd.ms-excel");
|
|
ServletOutputStream outputStream = response.getOutputStream();
|
|
ServletOutputStream outputStream = response.getOutputStream();
|
|
ExcelWriter writer = ExcelWriter.create(ExcelType.XLSX);
|
|
ExcelWriter writer = ExcelWriter.create(ExcelType.XLSX);
|
|
- writer.writeStringArrays("成绩导出", null, columnNames, columnValues.listIterator());
|
|
|
|
|
|
+ writer.writeDataArrays("成绩导出", null, columnNames, columnValues.listIterator());
|
|
writer.output(outputStream);
|
|
writer.output(outputStream);
|
|
outputStream.flush();
|
|
outputStream.flush();
|
|
outputStream.close();
|
|
outputStream.close();
|
|
@@ -1318,7 +1324,7 @@ public class MarkStudentServiceImpl extends ServiceImpl<MarkStudentMapper, MarkS
|
|
s.setStudentStatusDisplay(studentStatusDisplay);
|
|
s.setStudentStatusDisplay(studentStatusDisplay);
|
|
valueList.add(CellValue.of(studentStatusDisplay));
|
|
valueList.add(CellValue.of(studentStatusDisplay));
|
|
|
|
|
|
- String breachDisplay = "";
|
|
|
|
|
|
+ String breachDisplay = "-";
|
|
// 违纪状态
|
|
// 违纪状态
|
|
if (BasicExamStudentStatusEnum.B.equals(s.getStudentStatus()) || s.getBreach() || s.getOmrBreach() || s.getManualBreach()) {
|
|
if (BasicExamStudentStatusEnum.B.equals(s.getStudentStatus()) || s.getBreach() || s.getOmrBreach() || s.getManualBreach()) {
|
|
breachDisplay = "违纪";
|
|
breachDisplay = "违纪";
|