|
@@ -9,12 +9,27 @@ import cn.com.qmth.examcloud.commons.logging.ExamCloudLogFactory;
|
|
|
import cn.com.qmth.examcloud.commons.util.JsonUtil;
|
|
|
import cn.com.qmth.examcloud.core.oe.admin.api.ExamScoreNoticeQueueCloudService;
|
|
|
import cn.com.qmth.examcloud.core.oe.admin.api.SyncExamDataCloudService;
|
|
|
-import cn.com.qmth.examcloud.core.oe.admin.api.bean.*;
|
|
|
+import cn.com.qmth.examcloud.core.oe.admin.api.bean.ExamCaptureBean;
|
|
|
+import cn.com.qmth.examcloud.core.oe.admin.api.bean.ExamContinuedRecordBean;
|
|
|
+import cn.com.qmth.examcloud.core.oe.admin.api.bean.ExamFaceLivenessVerifyBean;
|
|
|
+import cn.com.qmth.examcloud.core.oe.admin.api.bean.ExamProcessRecordBean;
|
|
|
+import cn.com.qmth.examcloud.core.oe.admin.api.bean.ExamQuestionBean;
|
|
|
+import cn.com.qmth.examcloud.core.oe.admin.api.bean.ExamRecordDataBean;
|
|
|
+import cn.com.qmth.examcloud.core.oe.admin.api.bean.ExamRecordPaperStructBean;
|
|
|
+import cn.com.qmth.examcloud.core.oe.admin.api.bean.ExamRecordQuestionsBean;
|
|
|
+import cn.com.qmth.examcloud.core.oe.admin.api.bean.ExamSyncCaptureBean;
|
|
|
+import cn.com.qmth.examcloud.core.oe.admin.api.bean.FaceBiopsyBean;
|
|
|
+import cn.com.qmth.examcloud.core.oe.admin.api.bean.FaceBiopsyItemBean;
|
|
|
+import cn.com.qmth.examcloud.core.oe.admin.api.bean.FaceBiopsyItemStepBean;
|
|
|
import cn.com.qmth.examcloud.core.oe.admin.api.request.AddExamScoreNoticeQueueReq;
|
|
|
import cn.com.qmth.examcloud.core.oe.admin.api.request.SyncExamDataReq;
|
|
|
import cn.com.qmth.examcloud.core.oe.student.api.ExamRecordDataCloudService;
|
|
|
import cn.com.qmth.examcloud.core.oe.student.api.bean.StuExamQuestionBean;
|
|
|
-import cn.com.qmth.examcloud.core.oe.student.api.request.*;
|
|
|
+import cn.com.qmth.examcloud.core.oe.student.api.request.GetExamFaceLivenessVerifiesReq;
|
|
|
+import cn.com.qmth.examcloud.core.oe.student.api.request.GetExamRecordPaperStructReq;
|
|
|
+import cn.com.qmth.examcloud.core.oe.student.api.request.GetExamRecordQuestionsReq;
|
|
|
+import cn.com.qmth.examcloud.core.oe.student.api.request.GetFaceBiopsyReq;
|
|
|
+import cn.com.qmth.examcloud.core.oe.student.api.request.UpdatePartialExamRecordReq;
|
|
|
import cn.com.qmth.examcloud.core.oe.student.api.response.GetExamFaceLivenessVerifiesResp;
|
|
|
import cn.com.qmth.examcloud.core.oe.student.api.response.GetExamRecordPaperStructResp;
|
|
|
import cn.com.qmth.examcloud.core.oe.student.api.response.GetExamRecordQuestionsResp;
|
|
@@ -143,8 +158,6 @@ public class SyncExamDataExecutor implements NodeExecuter<Long, ExamRecordData,
|
|
|
//同步数据
|
|
|
SyncExamDataReq syncReq = new SyncExamDataReq();
|
|
|
|
|
|
- syncReq.setExamRecordData(copyExamRecordDataFrom(examRecordData));
|
|
|
-
|
|
|
syncReq.setExamRecordPaperStruct(getExamRecordPaperStruct(examRecordDataId));
|
|
|
|
|
|
syncReq.setExamRecordQuestions(getExamRecordQuestions(examRecordDataId));
|
|
@@ -157,7 +170,15 @@ public class SyncExamDataExecutor implements NodeExecuter<Long, ExamRecordData,
|
|
|
Long rootOrgId = examRecordData.getRootOrgId();
|
|
|
Long examId = examRecordData.getExamId();
|
|
|
if (FaceBiopsyHelper.isFaceEnable(rootOrgId, examId, studentId)) {
|
|
|
- syncReq.setExamCaptures(getExamCaptures(examRecordDataId));
|
|
|
+ List<ExamCaptureBean> captures = getExamCaptures(examRecordDataId);
|
|
|
+ //虚拟摄像头进入待审核,且有虚拟摄像头的,更新缓存
|
|
|
+ boolean hasVirtualCamera = captures.stream().anyMatch(e->e.getHasVirtualCamera()!=null&&e.getHasVirtualCamera());
|
|
|
+ if (examRecordDataService.isVirtualToWaiting(examId) && hasVirtualCamera) {
|
|
|
+ examRecordData.setIsWarn(true);
|
|
|
+ examRecordDataService.saveExamRecordDataCache(examRecordDataId, examRecordData);
|
|
|
+ }
|
|
|
+
|
|
|
+ syncReq.setExamCaptures(captures);
|
|
|
|
|
|
syncReq.setExamSyncCapture(getExamSyncCapture(examRecordDataId));
|
|
|
|
|
@@ -167,6 +188,9 @@ public class SyncExamDataExecutor implements NodeExecuter<Long, ExamRecordData,
|
|
|
syncReq.setFaceBiopsy(getFaceBiopsy(examRecordDataId));
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ syncReq.setExamRecordData(copyExamRecordDataFrom(examRecordData));
|
|
|
+
|
|
|
long startTime = System.currentTimeMillis();
|
|
|
|
|
|
//同步数据
|