|
@@ -1,5 +1,6 @@
|
|
|
package cn.com.qmth.stmms.biz.mark.service.Impl;
|
|
|
|
|
|
+import java.math.BigDecimal;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.Collections;
|
|
|
import java.util.Date;
|
|
@@ -301,13 +302,14 @@ public class MarkServiceImpl implements MarkService {
|
|
|
question.setGroupNumber(null);
|
|
|
questionDao.saveAndFlush(question);
|
|
|
}
|
|
|
- double totalScore = 0d;
|
|
|
+ BigDecimal totalScore = BigDecimal.ZERO;
|
|
|
for (ExamQuestion question : questionList) {
|
|
|
- totalScore = BigDecimalUtils.add(totalScore, question.getTotalScore());
|
|
|
+ totalScore = totalScore.add(BigDecimal.valueOf(question.getTotalScore()));
|
|
|
question.setGroupNumber(group.getNumber());
|
|
|
questionDao.saveAndFlush(question);
|
|
|
}
|
|
|
- groupDao.updateTotalScore(group.getExamId(), group.getSubjectCode(), group.getNumber(), totalScore);
|
|
|
+ groupDao.updateTotalScore(group.getExamId(), group.getSubjectCode(), group.getNumber(),
|
|
|
+ totalScore.doubleValue());
|
|
|
groupDao.updateScorePolicy(group.getExamId(), group.getSubjectCode(), group.getNumber(), policy);
|
|
|
groupDao.updateThirdPolicy(group.getExamId(), group.getSubjectCode(), group.getNumber(), third);
|
|
|
groupDao.updateSelective(group.getExamId(), group.getSubjectCode(), group.getNumber(), selective);
|
|
@@ -920,17 +922,17 @@ public class MarkServiceImpl implements MarkService {
|
|
|
// 计算大题分
|
|
|
for (Integer mainNumber : mainScoreMap.keySet()) {
|
|
|
List<SubjectiveScore> mainScoreList = mainScoreMap.get(mainNumber);
|
|
|
- double mainScore = 0.0;
|
|
|
+ BigDecimal mainScore = BigDecimal.ZERO;
|
|
|
for (SubjectiveScore subjectiveScore : mainScoreList) {
|
|
|
if (subjectiveScore.getScore() != UN_SELECTIVE_SCORE) {
|
|
|
- mainScore = BigDecimalUtils.add(mainScore, subjectiveScore.getScore());
|
|
|
+ mainScore = mainScore.add(BigDecimal.valueOf(subjectiveScore.getScore()));
|
|
|
}
|
|
|
}
|
|
|
for (SubjectiveScore subjectiveScore : mainScoreList) {
|
|
|
- subjectiveScore.setMainScore(mainScore);
|
|
|
+ subjectiveScore.setMainScore(mainScore.doubleValue());
|
|
|
scoreDao.saveAndFlush(subjectiveScore);
|
|
|
}
|
|
|
- scoreMap.put(mainNumber, mainScore);
|
|
|
+ scoreMap.put(mainNumber, mainScore.doubleValue());
|
|
|
}
|
|
|
// 计算选做题分数
|
|
|
ExamStudent student = studentService.findById(studentId);
|
|
@@ -950,17 +952,17 @@ public class MarkServiceImpl implements MarkService {
|
|
|
Collections.sort(selectiveList);
|
|
|
Collections.reverse(selectiveList);
|
|
|
// 计算总分
|
|
|
- double totalScore = 0.0;
|
|
|
+ BigDecimal totalScore = BigDecimal.ZERO;
|
|
|
for (Integer mainNumber : scoreMap.keySet()) {
|
|
|
- totalScore = BigDecimalUtils.add(totalScore, scoreMap.get(mainNumber));
|
|
|
+ totalScore = totalScore.add(BigDecimal.valueOf(scoreMap.get(mainNumber)));
|
|
|
}
|
|
|
for (int i = 0; i < selectiveList.size(); i++) {
|
|
|
if (i < selectiveCount && selectiveList.get(i) != UN_SELECTIVE_SCORE) {
|
|
|
- totalScore = BigDecimalUtils.add(totalScore, selectiveList.get(i));
|
|
|
+ totalScore = totalScore.add(BigDecimal.valueOf(selectiveList.get(i)));
|
|
|
}
|
|
|
}
|
|
|
// 全部评完,更新考生主观题得分
|
|
|
- studentService.updateSubjectiveStatusAndScore(studentId, SubjectiveStatus.MARKED, totalScore,
|
|
|
+ studentService.updateSubjectiveStatusAndScore(studentId, SubjectiveStatus.MARKED, totalScore.doubleValue(),
|
|
|
ExamStudent.buildScoreList(scoreList));
|
|
|
}
|
|
|
|