|
@@ -818,7 +818,15 @@ public class MarkServiceImpl implements MarkService {
|
|
|
List<ScoreItem> scoreItemList2 = list.get(2).getMarkerScoreItem();
|
|
|
for (int j = 0; j < questionList.size(); j++) {
|
|
|
Double arbitrateThreshold = questionList.get(j).getArbitrateThreshold();
|
|
|
- if (Math.abs(scoreItemList.get(j).getScore() - scoreItemList1.get(j).getScore()) > arbitrateThreshold
|
|
|
+ if(scoreItemList.get(j).getScore()==UN_SELECTIVE_SCORE
|
|
|
+ && scoreItemList1.get(j).getScore()==UN_SELECTIVE_SCORE
|
|
|
+ && scoreItemList2.get(j).getScore()==UN_SELECTIVE_SCORE){
|
|
|
+ continue;
|
|
|
+ }else if(scoreItemList.get(j).getScore()==UN_SELECTIVE_SCORE
|
|
|
+ || scoreItemList1.get(j).getScore()==UN_SELECTIVE_SCORE
|
|
|
+ || scoreItemList2.get(j).getScore()==UN_SELECTIVE_SCORE){
|
|
|
+ arbitrateIndex.add(j + 1);
|
|
|
+ }else if (Math.abs(scoreItemList.get(j).getScore() - scoreItemList1.get(j).getScore()) > arbitrateThreshold
|
|
|
&& Math.abs(scoreItemList1.get(j).getScore()
|
|
|
- scoreItemList2.get(j).getScore()) > arbitrateThreshold
|
|
|
&& Math.abs(scoreItemList2.get(j).getScore()
|
|
@@ -1109,14 +1117,27 @@ public class MarkServiceImpl implements MarkService {
|
|
|
partScoreMap.put(part, partScore.doubleValue());
|
|
|
}
|
|
|
}
|
|
|
+// 判断少选做、多选做、未选做
|
|
|
+ if (partScoreList.size() > 0 && partScoreList.size() < selectiveCount) {
|
|
|
+ lessSelective = true;
|
|
|
+ }
|
|
|
+ if (partScoreList.size() > 0 && partScoreList.size() > selectiveCount) {
|
|
|
+ mutiSelective = true;
|
|
|
+ }
|
|
|
+ if (partScoreList.size() == 0) {
|
|
|
+ notSelective = true;
|
|
|
+ }
|
|
|
+// 从小到大排序
|
|
|
Collections.sort(partScoreList);
|
|
|
+
|
|
|
if (policy == null || ScorePolicy.MAX.equals(policy)) {
|
|
|
+ // 最高分从大到小排序
|
|
|
Collections.reverse(partScoreList);
|
|
|
} if (ScorePolicy.MIN_WITHOUT_ZERO.equals(policy)) {
|
|
|
+ //剔除0分,当part分数多余,从第一个0分开始剔除,直至满足数量
|
|
|
while(partScoreList.size()>selectiveCount && partScoreList.get(0)==0){
|
|
|
partScoreList.remove(0);
|
|
|
}
|
|
|
-// partScoreList = partScoreList.stream().filter(s -> s.doubleValue() > 0).collect(Collectors.toList());
|
|
|
}
|
|
|
// 计算一个选做题分组得分
|
|
|
for (int i = 0; i < partScoreList.size(); i++) {
|
|
@@ -1134,6 +1155,7 @@ public class MarkServiceImpl implements MarkService {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ //剩余未合分的part
|
|
|
for (Integer part : partScoreMap.keySet()) {
|
|
|
List<SelectiveGroup> selectiveGroups = partMap.get(part);
|
|
|
for (SelectiveGroup group : selectiveGroups) {
|
|
@@ -1143,15 +1165,6 @@ public class MarkServiceImpl implements MarkService {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- if (partScoreList.size() > 0 && partScoreList.size() < selectiveCount) {
|
|
|
- lessSelective = true;
|
|
|
- }
|
|
|
- if (partScoreList.size() > 0 && partScoreList.size() > selectiveCount) {
|
|
|
- mutiSelective = true;
|
|
|
- }
|
|
|
- if (partScoreList.size() == 0) {
|
|
|
- notSelective = true;
|
|
|
- }
|
|
|
}
|
|
|
// 统一更新得分详情
|
|
|
for (List<SubjectiveScore> mainScoreList : mainScoreMap.values()) {
|