Browse Source

将考试分数表和考试记录表拆分

lideyin 5 years ago
parent
commit
1735427dc1

+ 28 - 10
examcloud-core-oe-admin-api-provider/src/main/java/cn/com/qmth/examcloud/core/oe/admin/api/provider/SyncExamDataCloudServiceProvider.java

@@ -78,6 +78,8 @@ public class SyncExamDataCloudServiceProvider extends ControllerSupport implemen
     private ExamAuditService examAuditService;
     @Autowired
     private ExamRecordDataSyncRepo examRecordDataSyncRepo;
+    @Autowired
+    private ExamScoreRepo examScoreRepo;
 
 
     /**
@@ -109,6 +111,9 @@ public class SyncExamDataCloudServiceProvider extends ControllerSupport implemen
         //添加同步记录
         addExamRecordDataSync(transitionExamRecordData.getId(), realExamRecordDataId);
 
+        //同步考试分数表
+        Long examScoreId = syncExamScore(transitionExamRecordData, realExamRecordDataId);
+
         //同步抓拍照片结果(同步抓拍的数据)
         if (null != req.getExamSyncCapture()) {
             syncExamSyncCapture(req.getExamSyncCapture(), realExamRecordDataId);
@@ -146,11 +151,30 @@ public class SyncExamDataCloudServiceProvider extends ControllerSupport implemen
         }
 
         //同步后续处理
-        processAfterSyncExamData(realExamRecordDataId, transitionExamRecordData.getExamId());
+        processAfterSyncExamData(realExamRecordDataId, examScoreId);
 
         return new SyncExamDataResp();
     }
 
+    public Long syncExamScore(ExamRecordDataBean transitionExamRecordData, Long realExamRecordDataId) {
+        //如果考试成绩不存在,则新增,否则更新数据
+        ExamScoreEntity examScoreEntity = examScoreRepo.findByExamRecordDataId(realExamRecordDataId);
+
+        if (examScoreEntity == null) {
+            examScoreEntity = new ExamScoreEntity();
+            examScoreEntity.setExamRecordDataId(realExamRecordDataId);
+        }
+        examScoreEntity.setObjectiveScore(transitionExamRecordData.getObjectiveScore());
+        examScoreEntity.setObjectiveAccuracy(transitionExamRecordData.getObjectiveAccuracy());
+        examScoreEntity.setTotalScore(transitionExamRecordData.getTotalScore());//交卷时,总分=客观分得分
+        examScoreEntity.setSubjectiveScore(transitionExamRecordData.getSubjectiveScore());
+        examScoreEntity.setSuccPercent(transitionExamRecordData.getSuccPercent());
+
+        ExamScoreEntity result = examScoreRepo.save(examScoreEntity);
+
+        return result.getId();
+    }
+
     /**
      * 增加考试次数
      *
@@ -267,12 +291,6 @@ public class SyncExamDataCloudServiceProvider extends ControllerSupport implemen
         result.setIsAllObjectivePaper(examRecordData.getAllObjectivePaper());
         result.setBaiduFaceLivenessSuccessPercent(examRecordData.getBaiduFaceLivenessSuccessPercent());
         result.setIsExceed(examRecordData.getExceed());
-//        result.setExamRecordQuestionsId(examRecordData.getExamRecordQuestionsId());
-        result.setTotalScore(examRecordData.getTotalScore());
-        result.setObjectiveScore(examRecordData.getObjectiveScore());
-        result.setObjectiveAccuracy(examRecordData.getObjectiveAccuracy());
-        result.setSubjectiveScore(examRecordData.getSubjectiveScore());
-        result.setSuccPercent(examRecordData.getSuccPercent());
 
         return result;
     }
@@ -548,14 +566,14 @@ public class SyncExamDataCloudServiceProvider extends ControllerSupport implemen
      * 同步后的后续操作
      *
      * @param realExamRecordDataId
-     * @param examId
+     * @param examScoreId
      */
-    private void processAfterSyncExamData(Long realExamRecordDataId, Long examId) {
+    private void processAfterSyncExamData(Long realExamRecordDataId, Long examScoreId) {
         // 保存阅卷相关数据
         examRecordForMarkingService.saveExamRecordForMarking(realExamRecordDataId);
 
         // 保存考试分数数据到推分队列
-        examScorePushQueueService.saveScoreDataInfoToQueue(realExamRecordDataId);
+        examScorePushQueueService.saveScoreDataInfoToQueue(realExamRecordDataId, examScoreId);
 
         // 保存考试分数数据到分数获取队列
         examScoreObtainQueueService.saveExamScoreObtainQueue(realExamRecordDataId);

+ 0 - 66
examcloud-core-oe-admin-dao/src/main/java/cn/com/qmth/examcloud/core/oe/admin/dao/entity/ExamRecordDataEntity.java

@@ -204,32 +204,6 @@ public class ExamRecordDataEntity extends JpaEntity {
      */
     private Double faceLandmarkVal;
 
-    /**
-     * 总分
-     */
-    private Double totalScore;
-
-    /**
-     * 客观题得分总分
-     */
-    private Double objectiveScore;
-
-    /**
-     * 客观题答对的比率
-     * (客观题答对的题数/客观题总题数)*100  取2位小数
-     */
-    private Double objectiveAccuracy;
-
-    /**
-     * 主观题得分总分
-     */
-    private Double subjectiveScore;
-
-    /**
-     * 答题正确率
-     */
-    private Double succPercent;
-
     public Long getId() {
         return id;
     }
@@ -547,44 +521,4 @@ public class ExamRecordDataEntity extends JpaEntity {
     public void setExamRecordQuestionsId(String examRecordQuestionsId) {
         this.examRecordQuestionsId = examRecordQuestionsId;
     }
-
-    public Double getTotalScore() {
-        return totalScore;
-    }
-
-    public void setTotalScore(Double totalScore) {
-        this.totalScore = totalScore;
-    }
-
-    public Double getObjectiveScore() {
-        return objectiveScore;
-    }
-
-    public void setObjectiveScore(Double objectiveScore) {
-        this.objectiveScore = objectiveScore;
-    }
-
-    public Double getObjectiveAccuracy() {
-        return objectiveAccuracy;
-    }
-
-    public void setObjectiveAccuracy(Double objectiveAccuracy) {
-        this.objectiveAccuracy = objectiveAccuracy;
-    }
-
-    public Double getSubjectiveScore() {
-        return subjectiveScore;
-    }
-
-    public void setSubjectiveScore(Double subjectiveScore) {
-        this.subjectiveScore = subjectiveScore;
-    }
-
-    public Double getSuccPercent() {
-        return succPercent;
-    }
-
-    public void setSuccPercent(Double succPercent) {
-        this.succPercent = succPercent;
-    }
 }

+ 1 - 1
examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/ExamScorePushQueueService.java

@@ -18,6 +18,6 @@ public interface ExamScorePushQueueService {
 	 * 保存分数推送数据
 	 * @param examRecordDataId
 	 */
-	void saveScoreDataInfoToQueue(Long examRecordDataId);
+	void saveScoreDataInfoToQueue(Long examRecordDataId,Long examScoreId);
 	
 }

+ 3 - 3
examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/impl/ExamAuditServiceImpl.java

@@ -387,9 +387,9 @@ public class ExamAuditServiceImpl implements ExamAuditService {
     	//审核通过且为非全客观题卷,保存阅卷需要数据
     	saveExamRecordForMarkingWithAudit(examRecordData,examScore);
     	//保存推送分数队列
-        examScorePushQueueService.saveScoreDataInfoToQueue(examRecordData,examScore.getId());
+        examScorePushQueueService.saveScoreDataInfoToQueue(examRecordData.getId(),examScore.getId());
         //保存获取分数队列
-        examScoreObtainQueueService.saveExamScoreObtainQueue(examRecordData);
+        examScoreObtainQueueService.saveExamScoreObtainQueue(examRecordData.getId());
         //发送通知
         examScoreObtainQueueService.sendObtainScoreNotify(examRecordData.getRootOrgId());
 	}
@@ -436,7 +436,7 @@ public class ExamAuditServiceImpl implements ExamAuditService {
 			examRecordForMarkingRepo.delete(examRecordForMarking);
 		}
 		//保存获取分数队列
-        examScoreObtainQueueService.saveExamScoreObtainQueue(examRecordData);
+        examScoreObtainQueueService.saveExamScoreObtainQueue(examRecordData.getId());
         //发送通知
         examScoreObtainQueueService.sendObtainScoreNotify(examRecordData.getRootOrgId());
 	}

+ 2 - 1
examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/impl/ExamScorePushQueueServiceImpl.java

@@ -42,7 +42,7 @@ public class ExamScorePushQueueServiceImpl implements ExamScorePushQueueService
     private ExamRecordDataRepo examRecordDataRepo;
 
     @Override
-    public void saveScoreDataInfoToQueue(Long examRecordDataId) {
+    public void saveScoreDataInfoToQueue(Long examRecordDataId, Long examScoreId) {
         ExamRecordDataEntity examRecordData =
                 GlobalHelper.getEntity(examRecordDataRepo, examRecordDataId, ExamRecordDataEntity.class);
 
@@ -72,6 +72,7 @@ public class ExamScorePushQueueServiceImpl implements ExamScorePushQueueService
                     examScorePushQueue.setStatus(ExamScoreQueueStatus.PENDING);
                     examScorePushQueue.setFailedTimes(0);
                     examScorePushQueue.setUpdateTime(new Date());
+                    examScorePushQueue.setExamScoreId(examScoreId);
                     examScorePushQueueRepo.save(examScorePushQueue);
                 }
             }