|
@@ -276,6 +276,7 @@ public class TEOpenServiceImpl implements TEOpenService {
|
|
|
}
|
|
|
double highestObjectiveScore = 0.0;
|
|
|
long maxFinishTime = 0L;
|
|
|
+ boolean subjective = false;
|
|
|
for (OpenRecordNeedMarkBean bean : list) {
|
|
|
//获取对应的试卷信息
|
|
|
ExamPaperCacheBean paper = paperMap.get(bean.getPaperId());
|
|
@@ -290,6 +291,8 @@ public class TEOpenServiceImpl implements TEOpenService {
|
|
|
}
|
|
|
//根据试卷结构过滤没有主观题的情况
|
|
|
if (paper.getTotalSubjectiveScore() == 0) {
|
|
|
+ subjective = true;
|
|
|
+ maxFinishTime = Math.max(maxFinishTime, bean.getFinishTime());
|
|
|
continue;
|
|
|
}
|
|
|
highestObjectiveScore = Math.max(highestObjectiveScore, bean.getObjectiveScore());
|
|
@@ -301,9 +304,14 @@ public class TEOpenServiceImpl implements TEOpenService {
|
|
|
}
|
|
|
switch (strategy) {
|
|
|
case HIGHEST_OBJECTIVE_SCORE:
|
|
|
- //客观分最高,客观分相同则全部提交阅卷
|
|
|
- final double score = highestObjectiveScore;
|
|
|
- return result.stream().filter(bean -> bean.getObjectiveScore() == score).collect(Collectors.toList());
|
|
|
+ if (subjective) {
|
|
|
+ final long time = maxFinishTime;
|
|
|
+ return result.stream().filter(bean -> bean.getFinishTime() == time).collect(Collectors.toList());
|
|
|
+ } else {
|
|
|
+ //客观分最高,客观分相同则全部提交阅卷
|
|
|
+ final double score = highestObjectiveScore;
|
|
|
+ return result.stream().filter(bean -> bean.getObjectiveScore() == score).collect(Collectors.toList());
|
|
|
+ }
|
|
|
case LATEST:
|
|
|
//最后一次提交
|
|
|
final long time = maxFinishTime;
|