|
@@ -40,7 +40,7 @@ public class ExamStudentFinalScoreServiceImpl implements ExamStudentFinalScoreSe
|
|
|
private ExamStudentFinalScoreRepo examStudentFinalScoreRepo;
|
|
|
|
|
|
@Override
|
|
|
- public void calculateFinalScore(Long examStudentId) {
|
|
|
+ public ExamStudentFinalScoreEntity calculateFinalScore(Long examStudentId) {
|
|
|
ExamStudentEntity examStudent = examStudentRepo.findByExamStudentId(examStudentId);
|
|
|
String markingType = ExamCacheTransferHelper.
|
|
|
getDefaultCachedExamProperty(examStudent.getExamId(), ExamProperties.MARKING_TYPE.name()).getValue();
|
|
@@ -51,16 +51,23 @@ public class ExamStudentFinalScoreServiceImpl implements ExamStudentFinalScoreSe
|
|
|
ExamScoreEntity finalEffectiveExamScore = getFinalEffectiveExamScore(allExamRecordDataList, examType, markingType);
|
|
|
|
|
|
//保存最终考试结果
|
|
|
- saveExamStudentFinalScore(examStudent.getExamStudentId(), finalEffectiveExamScore);
|
|
|
+ return saveExamStudentFinalScore(examStudent.getExamStudentId(), finalEffectiveExamScore);
|
|
|
}
|
|
|
|
|
|
|
|
|
@Override
|
|
|
public ExamStudentFinalScoreEntity getFinalEffectiveExamScore(Long examStudentId) {
|
|
|
- return examStudentFinalScoreRepo.findByExamStudentId(examStudentId);
|
|
|
+ ExamStudentFinalScoreEntity finalExamScore = examStudentFinalScoreRepo.findByExamStudentId(examStudentId);
|
|
|
+
|
|
|
+ if (null != finalExamScore) {
|
|
|
+ return finalExamScore;
|
|
|
+ }
|
|
|
+
|
|
|
+ //历史数据弥补:如果数据不存在,则重新计算并保存
|
|
|
+ return this.calculateFinalScore(examStudentId);
|
|
|
}
|
|
|
|
|
|
- private void saveExamStudentFinalScore(Long examStudentId, final ExamScoreEntity finalEffectiveExamScore) {
|
|
|
+ private ExamStudentFinalScoreEntity saveExamStudentFinalScore(Long examStudentId, final ExamScoreEntity finalEffectiveExamScore) {
|
|
|
ExamStudentFinalScoreEntity finalScoreEntity
|
|
|
= examStudentFinalScoreRepo.findByExamStudentId(examStudentId);
|
|
|
if (finalScoreEntity == null) {
|
|
@@ -75,7 +82,8 @@ public class ExamStudentFinalScoreServiceImpl implements ExamStudentFinalScoreSe
|
|
|
finalScoreEntity.setSuccPercent(finalEffectiveExamScore.getSuccPercent());
|
|
|
finalScoreEntity.setTotalScore(finalEffectiveExamScore.getTotalScore());
|
|
|
|
|
|
- examStudentFinalScoreRepo.save(finalScoreEntity);
|
|
|
+ return examStudentFinalScoreRepo.save(finalScoreEntity);
|
|
|
+
|
|
|
}
|
|
|
|
|
|
|