|
@@ -22,10 +22,7 @@ import org.apache.commons.collections4.CollectionUtils;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Map;
|
|
|
-import java.util.Objects;
|
|
|
+import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
import java.util.stream.Stream;
|
|
|
|
|
@@ -50,12 +47,6 @@ public class OpenApiServiceImpl implements OpenApiService {
|
|
|
@Resource
|
|
|
private GradeModuleEvaluationService gradeModuleEvaluationService;
|
|
|
|
|
|
- @Resource
|
|
|
- ExamTaskService examTaskService;
|
|
|
-
|
|
|
- @Resource
|
|
|
- private TSyncExamStudentScoreService tSyncExamStudentScoreService;
|
|
|
-
|
|
|
@Resource
|
|
|
private GradeBatchStudentClazzService gradeBatchStudentClazzService;
|
|
|
|
|
@@ -211,6 +202,9 @@ public class OpenApiServiceImpl implements OpenApiService {
|
|
|
// 客观题架构
|
|
|
List<MarkQuestion> os = markQuestionService.listByExamIdAndPaperNumberAndPaperType(examId, paperNumber,
|
|
|
paperType, true);
|
|
|
+ final String link = SystemConstant.HYPHEN;
|
|
|
+ Set<String> osk = os.stream().map(e -> e.getMainNumber() + link + e.getSubNumber()).collect(Collectors.toSet());
|
|
|
+
|
|
|
// 主观题结构
|
|
|
List<MarkQuestion> ss = markQuestionService.listByExamIdAndPaperNumberAndPaperType(examId, paperNumber,
|
|
|
paperType, false);
|
|
@@ -225,7 +219,8 @@ public class OpenApiServiceImpl implements OpenApiService {
|
|
|
examStudentScore.setPaperType(paperType);
|
|
|
examStudentScore.setCollege(e.getCollegeName());
|
|
|
examStudentScore.setMajor(SystemConstant.strNotNull(e.getMajorName()) ? e.getMajorName() : "未知专业");
|
|
|
- examStudentScore.setClassName(SystemConstant.strNotNull(e.getTeachClassName()) ? e.getTeachClassName() : "未知班级");
|
|
|
+ examStudentScore.setClassName(
|
|
|
+ SystemConstant.strNotNull(e.getTeachClassName()) ? e.getTeachClassName() : "未知班级");
|
|
|
|
|
|
List<GradeBatchStudentClazz> gradeBatchStudentClasses = gradeBatchStudentClazzList.isEmpty() ?
|
|
|
null :
|
|
@@ -261,6 +256,9 @@ public class OpenApiServiceImpl implements OpenApiService {
|
|
|
List<ExamStudentScore.TopicInfo> subjectiveScoreDetail;
|
|
|
if (CollectionUtils.isNotEmpty(objectiveScoreList)) {
|
|
|
objectiveScoreDetail = objectiveScoreList.stream().flatMap(ol -> {
|
|
|
+ String key = ol.getMainNumber() + link + ol.getSubNumber();
|
|
|
+ osk.remove(key);
|
|
|
+
|
|
|
ExamStudentScore.TopicInfo topicInfo = new ExamStudentScore.TopicInfo();
|
|
|
topicInfo.setMainNumber(ol.getMainNumber());
|
|
|
topicInfo.setSubNumber(String.valueOf(ol.getSubNumber()));
|
|
@@ -268,6 +266,23 @@ public class OpenApiServiceImpl implements OpenApiService {
|
|
|
topicInfo.setScore(ol.getScoreString());
|
|
|
return Stream.of(topicInfo);
|
|
|
}).collect(Collectors.toList());
|
|
|
+
|
|
|
+ // 如果考生作答的客观题数量小于试卷结构的,则补充#作为考生作答
|
|
|
+ if (CollectionUtils.isNotEmpty(osk)) {
|
|
|
+ for (String key : osk) {
|
|
|
+ String[] keyArray = key.split(link);
|
|
|
+ Integer mainNumber = Integer.parseInt(keyArray[0]);
|
|
|
+ String subNumber = keyArray[1];
|
|
|
+
|
|
|
+ ExamStudentScore.TopicInfo topicInfo = new ExamStudentScore.TopicInfo();
|
|
|
+ topicInfo.setMainNumber(mainNumber);
|
|
|
+ topicInfo.setSubNumber(subNumber);
|
|
|
+ topicInfo.setAnswer("#");
|
|
|
+ topicInfo.setScore("0");
|
|
|
+ objectiveScoreDetail.add(topicInfo);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
examStudentScore.setObjectiveScoreDetail(objectiveScoreDetail);
|
|
|
}
|
|
|
|