|
@@ -818,15 +818,7 @@ 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(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
|
|
|
+ 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()
|
|
@@ -1117,27 +1109,14 @@ 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++) {
|
|
@@ -1155,7 +1134,6 @@ public class MarkServiceImpl implements MarkService {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- //剩余未合分的part
|
|
|
for (Integer part : partScoreMap.keySet()) {
|
|
|
List<SelectiveGroup> selectiveGroups = partMap.get(part);
|
|
|
for (SelectiveGroup group : selectiveGroups) {
|
|
@@ -1165,6 +1143,15 @@ 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()) {
|
|
@@ -1589,6 +1576,7 @@ public class MarkServiceImpl implements MarkService {
|
|
|
* @param studentId
|
|
|
*/
|
|
|
@Override
|
|
|
+ @Transactional
|
|
|
public void checkStudentSubjective(Integer studentId, long groupCount, long unGroupQuestionCount) {
|
|
|
if (groupStudentDao.countByStudentIdAndStatus(studentId, SubjectiveStatus.MARKED) == groupCount
|
|
|
&& unGroupQuestionCount == 0) {
|