|
@@ -853,27 +853,24 @@ public class MarkServiceImpl implements MarkService {
|
|
|
List<MarkSubjectiveScore> list = markSubjectiveScoreService.listByStudentId(studentId);
|
|
|
// list.sort(null);
|
|
|
for (MarkSubjectiveScore ss : list) {
|
|
|
+ // -1分不参与计算
|
|
|
+ if (SystemConstant.AI_MARK_ERROR_SCORE.equals(ss.getScore())) {
|
|
|
+ aiMarkAbnormal = true;
|
|
|
+ continue;
|
|
|
+ }
|
|
|
List<MarkSubjectiveScore> mainScoreList = mainScoreMap.get(ss.getMainNumber());
|
|
|
if (mainScoreList == null) {
|
|
|
mainScoreList = new ArrayList<>();
|
|
|
}
|
|
|
mainScoreList.add(ss);
|
|
|
mainScoreMap.put(ss.getMainNumber(), mainScoreList);
|
|
|
- if (!SystemConstant.AI_MARK_ERROR_SCORE.equals(ss.getScore())) {
|
|
|
- scoreList.add(new ScoreItem(ss));
|
|
|
- } else {
|
|
|
- aiMarkAbnormal = true;
|
|
|
- }
|
|
|
+ scoreList.add(new ScoreItem(ss));
|
|
|
}
|
|
|
// 计算大题分
|
|
|
for (Integer mainNumber : mainScoreMap.keySet()) {
|
|
|
List<MarkSubjectiveScore> mainScoreList = mainScoreMap.get(mainNumber);
|
|
|
BigDecimal mainScore = BigDecimal.ZERO;
|
|
|
for (MarkSubjectiveScore subjectiveScore : mainScoreList) {
|
|
|
- // -1分不参与计算
|
|
|
- if (subjectiveScore.getScore() == SystemConstant.AI_MARK_ERROR_SCORE) {
|
|
|
- continue;
|
|
|
- }
|
|
|
mainScore = mainScore.add(BigDecimal.valueOf(subjectiveScore.getScore()));
|
|
|
}
|
|
|
for (MarkSubjectiveScore subjectiveScore : mainScoreList) {
|
|
@@ -1182,7 +1179,7 @@ public class MarkServiceImpl implements MarkService {
|
|
|
} else if (questionModel.equals(QuestionModel.MULTI)) {
|
|
|
Set<Long> questions = markUserQuestions.stream().map(MarkUserQuestion::getQuestionId).collect(Collectors.toSet());
|
|
|
List<MarkQuestion> markQuestionList = markQuestionService.listByIds(questions);
|
|
|
- questions = markQuestionList.stream().filter(m->m.getPersonTask() && m.getTaskCount() > m.getMarkedCount()).map(MarkQuestion::getId).collect(Collectors.toSet());
|
|
|
+ questions = markQuestionList.stream().filter(m -> m.getPersonTask() && m.getTaskCount() > m.getMarkedCount()).map(MarkQuestion::getId).collect(Collectors.toSet());
|
|
|
studentIds = markStudentService.findUnMarked(new Page<>(pageNumber, 20), examId, paperNumber, questions, classNames);
|
|
|
if (studentIds.isEmpty()) {
|
|
|
break;
|