|
@@ -10,9 +10,11 @@ import com.qmth.themis.business.constant.SystemConstant;
|
|
|
import com.qmth.themis.business.dto.MarkResultSimpleExportDto;
|
|
|
import com.qmth.themis.business.dto.response.MarkResultDto;
|
|
|
import com.qmth.themis.business.entity.TOeExamRecord;
|
|
|
+import com.qmth.themis.business.entity.TSyncExamStudentScore;
|
|
|
import com.qmth.themis.business.service.TEExamService;
|
|
|
import com.qmth.themis.business.service.TEExamStudentService;
|
|
|
import com.qmth.themis.business.service.TOeExamRecordService;
|
|
|
+import com.qmth.themis.business.service.TSyncExamStudentScoreService;
|
|
|
import com.qmth.themis.business.templete.TaskExportCommon;
|
|
|
import com.qmth.themis.business.templete.TaskExportTemplete;
|
|
|
import com.qmth.themis.business.templete.service.TempleteLogicService;
|
|
@@ -25,6 +27,7 @@ import org.apache.poi.xssf.streaming.SXSSFWorkbook;
|
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
+import org.springframework.util.CollectionUtils;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
import java.io.*;
|
|
@@ -32,6 +35,8 @@ import java.lang.annotation.Annotation;
|
|
|
import java.lang.reflect.Field;
|
|
|
import java.time.LocalDateTime;
|
|
|
import java.util.*;
|
|
|
+import java.util.function.Function;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
* @Description: 成绩简版导出任务
|
|
@@ -57,6 +62,9 @@ public class TaskMarkResultSimpleExportTemplete implements TaskExportTemplete {
|
|
|
@Resource
|
|
|
TOeExamRecordService tOeExamRecordService;
|
|
|
|
|
|
+ @Resource
|
|
|
+ TSyncExamStudentScoreService tSyncExamStudentScoreService;
|
|
|
+
|
|
|
/**
|
|
|
* 考场导出模版
|
|
|
*
|
|
@@ -95,7 +103,8 @@ public class TaskMarkResultSimpleExportTemplete implements TaskExportTemplete {
|
|
|
markResultQueryExportIpage = teExamStudentService.markResultQueryExportIpage(new Page<>(pageNumber, pageSize), examId, activityId, identity, name, courseCode);
|
|
|
}
|
|
|
|
|
|
- if (Objects.nonNull(markResultSimpleExportDtoList) && markResultSimpleExportDtoList.size() > 0) {
|
|
|
+ if (!CollectionUtils.isEmpty(markResultSimpleExportDtoList)) {
|
|
|
+ Set<String> examRecordIdsSet = new LinkedHashSet<>(markResultSimpleExportDtoList.size());
|
|
|
for (MarkResultSimpleExportDto markResultSimpleExportDto : markResultSimpleExportDtoList) {
|
|
|
MarkResultDto markResultDto = GsonUtil
|
|
|
.fromJson(GsonUtil.toJson(markResultSimpleExportDto), MarkResultDto.class);
|
|
@@ -104,15 +113,24 @@ public class TaskMarkResultSimpleExportTemplete implements TaskExportTemplete {
|
|
|
TOeExamRecord tOeExamRecord = tOeExamRecordService
|
|
|
.findMarkResult(markResultDto, examCacheBean.getRecordSelectStrategy());
|
|
|
if (Objects.nonNull(tOeExamRecord)) {
|
|
|
- markResultSimpleExportDto.setObjectiveScore(
|
|
|
- Objects.isNull(tOeExamRecord.getObjectiveScore()) ?
|
|
|
- "0" :
|
|
|
- String.valueOf(tOeExamRecord.getObjectiveScore()));
|
|
|
+ examRecordIdsSet.add(String.valueOf(tOeExamRecord.getId()));
|
|
|
+ markResultSimpleExportDto.setObjectiveScore(Objects.isNull(tOeExamRecord.getObjectiveScore()) ? "0" : String.valueOf(tOeExamRecord.getObjectiveScore()));
|
|
|
markResultSimpleExportDto.setRecordId(tOeExamRecord.getId());
|
|
|
markResultSimpleExportDto.setPaperId(tOeExamRecord.getPaperId());
|
|
|
- markResultSimpleExportDto.setSumScore(
|
|
|
- markResultSimpleExportDto.getObjectiveScore() + markResultSimpleExportDto
|
|
|
- .getSubjectiveScore());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ Map<Long, MarkResultSimpleExportDto> markResultSimpleExportDtoMap = markResultSimpleExportDtoList.stream().collect(
|
|
|
+ Collectors.toMap(MarkResultSimpleExportDto::getRecordId, Function.identity(), (dto1, dto2) -> dto1));
|
|
|
+
|
|
|
+ //获取云阅卷同步成绩
|
|
|
+ List<TSyncExamStudentScore> tSyncExamStudentScoreList = tSyncExamStudentScoreService.findByExamRecordIds(examRecordIdsSet);
|
|
|
+ if (!CollectionUtils.isEmpty(tSyncExamStudentScoreList)) {
|
|
|
+ for (TSyncExamStudentScore t : tSyncExamStudentScoreList) {
|
|
|
+ MarkResultSimpleExportDto markResultSimpleExportDto = markResultSimpleExportDtoMap.get(Long.parseLong(t.getExamNumber()));
|
|
|
+ if (Objects.nonNull(markResultSimpleExportDto)) {
|
|
|
+ markResultSimpleExportDto.setSubjectiveScore(Objects.isNull(t.getSubjectiveScore()) ? "0" : String.valueOf(t.getSubjectiveScore()));
|
|
|
+ markResultSimpleExportDto.setSumScore(String.valueOf(Double.parseDouble(markResultSimpleExportDto.getObjectiveScore()) + Double.parseDouble(markResultSimpleExportDto.getSubjectiveScore())));
|
|
|
}
|
|
|
}
|
|
|
}
|