lideyin 5 vuotta sitten
vanhempi
commit
de6e9e3c87

+ 8 - 6
examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/impl/ExamStudentFinalScoreServiceImpl.java

@@ -13,7 +13,6 @@ import cn.com.qmth.examcloud.core.oe.common.repository.ExamRecordDataRepo;
 import cn.com.qmth.examcloud.core.oe.common.repository.ExamScoreRepo;
 import cn.com.qmth.examcloud.core.oe.common.repository.ExamStudentFinalScoreRepo;
 import cn.com.qmth.examcloud.core.oe.common.repository.ExamStudentRepo;
-import cn.com.qmth.examcloud.web.helpers.GlobalHelper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -51,8 +50,7 @@ public class ExamStudentFinalScoreServiceImpl implements ExamStudentFinalScoreSe
         ExamScoreEntity finalEffectiveExamScore = getFinalEffectiveExamScore(allExamRecordDataList, examType, markingType);
 
         //保存最终考试结果
-        ExamStudentFinalScoreEntity finalScoreEntity = copyExamStudentFinalScoreEntityFrom(finalEffectiveExamScore);
-        examStudentFinalScoreRepo.save(finalScoreEntity);
+        saveExamStudentFinalScore(examStudent.getExamStudentId(), finalEffectiveExamScore);
     }
 
 
@@ -61,8 +59,12 @@ public class ExamStudentFinalScoreServiceImpl implements ExamStudentFinalScoreSe
         return examStudentFinalScoreRepo.findByExamStudentId(examStudentId);
     }
 
-    private ExamStudentFinalScoreEntity copyExamStudentFinalScoreEntityFrom(ExamScoreEntity finalEffectiveExamScore) {
-        ExamStudentFinalScoreEntity finalScoreEntity = new ExamStudentFinalScoreEntity();
+    private void saveExamStudentFinalScore(Long examStudentId, final ExamScoreEntity finalEffectiveExamScore) {
+        ExamStudentFinalScoreEntity finalScoreEntity
+                = examStudentFinalScoreRepo.findByExamStudentId(examStudentId);
+        if (finalScoreEntity == null) {
+            finalScoreEntity = new ExamStudentFinalScoreEntity();
+        }
 
         finalScoreEntity.setExamRecordDataId(finalEffectiveExamScore.getExamRecordDataId());
         finalScoreEntity.setExamStudentId(finalEffectiveExamScore.getExamRecordDataId());
@@ -72,7 +74,7 @@ public class ExamStudentFinalScoreServiceImpl implements ExamStudentFinalScoreSe
         finalScoreEntity.setSuccPercent(finalEffectiveExamScore.getSuccPercent());
         finalScoreEntity.setTotalScore(finalEffectiveExamScore.getTotalScore());
 
-        return finalScoreEntity;
+        examStudentFinalScoreRepo.save(finalScoreEntity);
     }