Procházet zdrojové kódy

重新算分后同时更新客观分至阅卷模块

deason před 1 měsícem
rodič
revize
fc64b9e0c1

+ 15 - 0
examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/impl/FixExamScoreServiceImpl.java

@@ -8,6 +8,8 @@ import cn.com.qmth.examcloud.core.oe.admin.service.ExamRecordQuestionsService;
 import cn.com.qmth.examcloud.core.oe.admin.service.ExamStudentFinalScoreService;
 import cn.com.qmth.examcloud.core.oe.admin.service.FixExamScoreService;
 import cn.com.qmth.examcloud.core.oe.admin.service.bean.examscore.ReFixScoreReq;
+import cn.com.qmth.examcloud.marking.api.StudentPaperCloudService;
+import cn.com.qmth.examcloud.marking.api.request.UpdateObjectiveScoreReq;
 import cn.com.qmth.examcloud.question.commons.core.paper.DefaultPaper;
 import cn.com.qmth.examcloud.question.commons.core.paper.DefaultQuestionGroup;
 import cn.com.qmth.examcloud.question.commons.core.paper.DefaultQuestionStructureWrapper;
@@ -54,6 +56,9 @@ public class FixExamScoreServiceImpl implements FixExamScoreService {
     @Autowired
     private ExamStudentFinalScoreService examStudentFinalScoreService;
 
+    @Autowired
+    private StudentPaperCloudService studentPaperCloudService;
+
     /**
      * 按考生ID重算成绩分数(用于实施小工具,适用场景:考后修改试题正确答案、试题分值)
      */
@@ -224,6 +229,15 @@ public class FixExamScoreServiceImpl implements FixExamScoreService {
             log.warn("【重算成绩】ExamRecordForMarkingEntity-已更新!examRecordDataId:{} objectiveScore:{}",
                     examRecordDataId, objectiveScore);
         }
+
+        try {
+            UpdateObjectiveScoreReq fixReq = new UpdateObjectiveScoreReq();
+            fixReq.setExamRecordDataId(examRecordDataId);
+            fixReq.setScore(objectiveScore);
+            studentPaperCloudService.updateObjectiveScore(fixReq);
+        } catch (Exception e) {
+            log.error("【重算成绩】更新阅卷模块的客观分失败!examRecordDataId:{} err:{}", examRecordDataId, e.getMessage());
+        }
     }
 
     private void changeQuestionScore(ReFixScoreReq req, ExamRecordDataEntity examRecordData,
@@ -366,6 +380,7 @@ public class FixExamScoreServiceImpl implements FixExamScoreService {
             }
 
             if (curQuestionUnits.size() != rightAnswers.size()) {
+                // 注:千人千卷调卷模式出现过抽到重复题BUG,此处需特殊处理 to do...
                 log.warn("【修改试题正确答案】跳过,正确答案集合与小题数量不匹配!questionId:{}", curExamQuestionId);
                 continue;
             }