|
@@ -773,11 +773,11 @@ public class MarkServiceImpl implements MarkService {
|
|
|
|
|
|
private List<Integer> getArbitrateIndex(MarkLibrary other, MarkResult result, MarkGroup group) {
|
|
private List<Integer> getArbitrateIndex(MarkLibrary other, MarkResult result, MarkGroup group) {
|
|
List<Integer> arbitrateIndex = null;
|
|
List<Integer> arbitrateIndex = null;
|
|
|
|
+ List<ExamQuestion> questionList = questionService.findByExamAndSubjectAndObjectiveAndGroupNumber(
|
|
|
|
+ other.getExamId(), other.getSubjectCode(), false, other.getGroupNumber());
|
|
|
|
+ List<ScoreItem> list1 = other.getMarkerScoreItem();
|
|
|
|
+ Double[] list2 = result.getMarkerScoreList();
|
|
if (ArbitrateType.QUESTION.equals(group.getArbitrateType())) {
|
|
if (ArbitrateType.QUESTION.equals(group.getArbitrateType())) {
|
|
- List<ExamQuestion> questionList = questionService.findByExamAndSubjectAndObjectiveAndGroupNumber(
|
|
|
|
- other.getExamId(), other.getSubjectCode(), false, other.getGroupNumber());
|
|
|
|
- List<ScoreItem> list1 = other.getMarkerScoreItem();
|
|
|
|
- Double[] list2 = result.getMarkerScoreList();
|
|
|
|
if (questionList.size() == list1.size() && list1.size() == list2.length) {
|
|
if (questionList.size() == list1.size() && list1.size() == list2.length) {
|
|
for (int i = 0; i < questionList.size(); i++) {
|
|
for (int i = 0; i < questionList.size(); i++) {
|
|
Double arbitrateThreshold = questionList.get(i).getArbitrateThreshold();
|
|
Double arbitrateThreshold = questionList.get(i).getArbitrateThreshold();
|
|
@@ -795,6 +795,14 @@ public class MarkServiceImpl implements MarkService {
|
|
return new ArrayList<>();
|
|
return new ArrayList<>();
|
|
}
|
|
}
|
|
} else {
|
|
} else {
|
|
|
|
+ if (questionList.size() == list1.size() && list1.size() == list2.length) {
|
|
|
|
+ for (int i = 0; i < questionList.size(); i++) {
|
|
|
|
+ if ((list1.get(i).getScore() == UN_SELECTIVE_SCORE && list2[i] != UN_SELECTIVE_SCORE)
|
|
|
|
+ || (list1.get(i).getScore() != UN_SELECTIVE_SCORE && list2[i] == UN_SELECTIVE_SCORE)) {
|
|
|
|
+ return new ArrayList<>();
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
if (Math.abs(other.getMarkerScore() - result.getMarkerScore()) > group.getArbitrateThreshold()) {
|
|
if (Math.abs(other.getMarkerScore() - result.getMarkerScore()) > group.getArbitrateThreshold()) {
|
|
return new ArrayList<>();
|
|
return new ArrayList<>();
|
|
}
|
|
}
|