wangliang 4 gadi atpakaļ
vecāks
revīzija
9787391d02

+ 3 - 4
themis-business/src/main/java/com/qmth/themis/business/cache/ExamRecordCacheUtil.java

@@ -10,8 +10,6 @@ import com.qmth.themis.business.constant.SpringContextHolder;
 import com.qmth.themis.business.constant.SystemConstant;
 import com.qmth.themis.business.enums.*;
 import com.qmth.themis.business.util.RedisUtil;
-import com.qmth.themis.common.enums.ExceptionResultEnum;
-import com.qmth.themis.common.exception.BusinessException;
 
 import java.util.Objects;
 
@@ -185,9 +183,10 @@ public class ExamRecordCacheUtil {
     public static ExamRecordStatusEnum getStatus(Long recordId) {
         ExamStatusBean examStatusBean = getStatusBean(recordId);
         if (Objects.isNull(examStatusBean) || Objects.isNull(examStatusBean.getExamRecordStatusEnum())) {
-            throw new BusinessException(ExceptionResultEnum.EXAM_STATUS_NOT_NULL);
+            return null;
+        } else {
+            return examStatusBean.getExamRecordStatusEnum();
         }
-        return examStatusBean.getExamRecordStatusEnum();
     }
 
     public static Long getLastBreakId(Long recordId) {

+ 3 - 0
themis-business/src/main/java/com/qmth/themis/business/dto/ExamStudentImportDto.java

@@ -36,12 +36,15 @@ public class ExamStudentImportDto implements Serializable {
     @ExcelNote(value = "教学班级")
     private String classNo; //教学班级
 
+    @NotNull
     @ExcelNote(value = "场次")
     private String examActivityCode; //场次
 
+    @NotNull
     @ExcelNote(value = "考场代码")
     private String roomCode; //考场代码
 
+    @NotNull
     @ExcelNote(value = "考场名称")
     private String roomName; //考场名称
 

+ 95 - 93
themis-business/src/main/java/com/qmth/themis/business/service/impl/TOeExamRecordServiceImpl.java

@@ -500,99 +500,101 @@ public class TOeExamRecordServiceImpl extends ServiceImpl<TOeExamRecordMapper, T
         Long clientLastSyncTime = ExamRecordCacheUtil.getClientLastSyncTime(recordId);
         Integer alreadyBreakCount = ExamRecordCacheUtil.getAlreadyBreakCount(recordId);
         ExamRecordStatusEnum examRecordStatusEnum = ExamRecordCacheUtil.getStatus(recordId);
-        Long breakId = ExamRecordCacheUtil.getLastBreakId(recordId);
-        Long lastBreakTime = ExamRecordCacheUtil.getLastBreakTime(recordId);
-        Long examActivityId = ExamRecordCacheUtil.getExamActivityId(recordId);
-        Integer warningCount = ExamRecordCacheUtil.getWarningCount(recordId);
-        Integer breachStatus = ExamRecordCacheUtil.getBreachStatus(recordId);
-        Integer inProcessLivenessVerifyCount = ExamRecordCacheUtil.getInProcessLivenessVerifyCount(recordId);
-        String monitorKey = ExamRecordCacheUtil.getMonitorKey(recordId);
-        WebsocketStatusEnum websocketStatusEnum = ExamRecordCacheUtil.getClientWebsocketStatus(recordId);
-        Long lastStartTime = ExamRecordCacheUtil.getLastStartTime(recordId);
-        Integer paperDownLoad = ExamRecordCacheUtil.getPaperDownload(recordId);
-        Long startTime = ExamRecordCacheUtil.getStartTime(recordId);
-        Long endTime = ExamRecordCacheUtil.getEndTime(recordId);
-        Integer openingSeconds = ExamRecordCacheUtil.getOpeningSeconds(recordId);
-        Integer minDurationSeconds = ExamRecordCacheUtil.getMinDurationSeconds(recordId);
-        Integer maxDurationSeconds = ExamRecordCacheUtil.getMaxDurationSeconds(recordId);
-        Integer forceFinish = ExamRecordCacheUtil.getForceFinish(recordId);
-        Integer hasAnswerFile = ExamRecordCacheUtil.getHasAnswerFile(recordId);
-        Integer cameraPhotoUpload = ExamRecordCacheUtil.getCameraPhotoUpload(recordId);
-        Integer mobilePhotoUpload = ExamRecordCacheUtil.getMobilePhotoUpload(recordId);
-        String entryAuthenticationPolicy = ExamRecordCacheUtil.getEntryAuthenticationPolicy(recordId);
-        Integer inProcessFaceStrangerIgnore = ExamRecordCacheUtil.getInProcessFaceStrangerIgnore(recordId);
-        String inProcessLivenessFixedRange = ExamRecordCacheUtil.getInProcessLivenessFixedRange(recordId);
-        String inProcessLivenessJudgePolicy = ExamRecordCacheUtil.getInProcessLivenessJudgePolicy(recordId);
-        String monitorVideoSource = ExamRecordCacheUtil.getMonitorVideoSource(recordId);
-        Integer inProcessRealnessVerifyStatus = ExamRecordCacheUtil.getInProcessRealnessVerifyStatus(recordId);
-        Integer inProcessLivenessVerifyStatus = ExamRecordCacheUtil.getInProcessLivenessVerifyStatus(recordId);
-        Integer inProcessFaceVerifyStatus = ExamRecordCacheUtil.getInProcessFaceVerifyStatus(recordId);
-        Long firstPrepareTime = ExamRecordCacheUtil.getFirstPrepareTime(recordId);
-        Long lastPrepareTime = ExamRecordCacheUtil.getLastPrepareTime(recordId);
-        String clientCurrentIp = ExamRecordCacheUtil.getClientCurrentIp(recordId);
-        String clientWebsocketId = ExamRecordCacheUtil.getClientWebsocketId(recordId);
-        Double answerProgress = ExamRecordCacheUtil.getAnswerProgress(recordId);
-        ReviewResultEnum reviewResultEnum = ExamRecordCacheUtil.getReviewResult(recordId);
-        String paperStructPath = ExamRecordCacheUtil.getPaperStructPath(recordId);
-        Integer paperStructUpload = ExamRecordCacheUtil.getPaperStructUpload(recordId);
-        Integer serialNumber = ExamRecordCacheUtil.getSerialNumber(recordId);
-        VerifyExceptionEnum verifyExceptionEnum = ExamRecordCacheUtil.getEntryAuthenticationResult(recordId);
-        Long entryAuthenticationId = ExamRecordCacheUtil.getEntryAuthenticationId(recordId);
-        ScoreStatusEnum scoreStatusEnum = ExamRecordCacheUtil.getScoreStatus(recordId);
-
-        TOeExamRecord er = new TOeExamRecord();
-        er.setId(recordId);
-        er.setExamId(examId);
-        er.setExamActivityId(examActivityId);
-        er.setExamStudentId(examStudentId);
-        er.setPaperId(paperId);
-        er.setStatus(examRecordStatusEnum);
-        er.setFirstPrepareTime(firstPrepareTime);
-        er.setFirstStartTime(firstStartTime);
-        er.setLastBreakTime(lastBreakTime);
-        er.setLastPrepareTime(lastPrepareTime);
-        er.setLastStartTime(lastStartTime);
-        er.setAlreadyBreakCount(alreadyBreakCount);
-        er.setClientCurrentIp(clientCurrentIp);
-        er.setClientWebsocketStatus(websocketStatusEnum);
-        er.setClientWebsocketId(clientWebsocketId);
-        er.setClientLastSyncTime(clientLastSyncTime);
-        er.setAnswerProgress(answerProgress);
-        er.setDurationSeconds(durationSeconds);
-        er.setFinishTime(finishTime);
-        er.setFinishType(finishTypeEnum);
-        er.setWarningCount(warningCount);
-        er.setReviewResult(reviewResultEnum);
-        er.setObjectiveScore(objectiveScore);
-        er.setPaperDownload(paperDownLoad);
-        er.setBreachStatus(breachStatus);
-        er.setPaperStructPath(paperStructPath);
-        er.setPaperStructUpload(paperStructUpload);
-        er.setSerialNumber(serialNumber);
-        er.setLastBreakId(breakId);
-        er.setEntryAuthenticationResult(verifyExceptionEnum);
-        er.setEntryAuthenticationId(entryAuthenticationId);
-        er.setInProcessFaceVerifyStatus(inProcessFaceVerifyStatus);
-        er.setInProcessLivenessVerifyStatus(inProcessLivenessVerifyStatus);
-        er.setInProcessLivenessVerifyCount(inProcessLivenessVerifyCount);
-        er.setMonitorKey(monitorKey);
-        er.setScoreStatus(scoreStatusEnum);
-        er.setStartTime(startTime);
-        er.setEndTime(endTime);
-        er.setOpeningSeconds(openingSeconds);
-        er.setMinDurationSeconds(minDurationSeconds);
-        er.setMaxDurationSeconds(maxDurationSeconds);
-        er.setForceFinish(forceFinish);
-        er.setHasAnswerFile(hasAnswerFile);
-        er.setInProcessRealnessVerifyStatus(inProcessRealnessVerifyStatus);
-        er.setCameraPhotoUpload(cameraPhotoUpload);
-        er.setMobilePhotoUpload(mobilePhotoUpload);
-        er.setEntryAuthenticationPolicy(EntryAuthenticationPolicyEnum.valueOf(entryAuthenticationPolicy));
-        er.setInProcessFaceStrangerIgnore(inProcessFaceStrangerIgnore);
-        er.setInProcessLivenessFixedRange(inProcessLivenessFixedRange);
-        er.setInProcessLivenessJudgePolicy(InProcessLivenessJudgePolicyEnum.valueOf(inProcessLivenessJudgePolicy));
-        er.setMonitorVideoSource(monitorVideoSource);
-        this.saveOrUpdate(er);
+        if (Objects.nonNull(examRecordStatusEnum)) {
+            Long breakId = ExamRecordCacheUtil.getLastBreakId(recordId);
+            Long lastBreakTime = ExamRecordCacheUtil.getLastBreakTime(recordId);
+            Long examActivityId = ExamRecordCacheUtil.getExamActivityId(recordId);
+            Integer warningCount = ExamRecordCacheUtil.getWarningCount(recordId);
+            Integer breachStatus = ExamRecordCacheUtil.getBreachStatus(recordId);
+            Integer inProcessLivenessVerifyCount = ExamRecordCacheUtil.getInProcessLivenessVerifyCount(recordId);
+            String monitorKey = ExamRecordCacheUtil.getMonitorKey(recordId);
+            WebsocketStatusEnum websocketStatusEnum = ExamRecordCacheUtil.getClientWebsocketStatus(recordId);
+            Long lastStartTime = ExamRecordCacheUtil.getLastStartTime(recordId);
+            Integer paperDownLoad = ExamRecordCacheUtil.getPaperDownload(recordId);
+            Long startTime = ExamRecordCacheUtil.getStartTime(recordId);
+            Long endTime = ExamRecordCacheUtil.getEndTime(recordId);
+            Integer openingSeconds = ExamRecordCacheUtil.getOpeningSeconds(recordId);
+            Integer minDurationSeconds = ExamRecordCacheUtil.getMinDurationSeconds(recordId);
+            Integer maxDurationSeconds = ExamRecordCacheUtil.getMaxDurationSeconds(recordId);
+            Integer forceFinish = ExamRecordCacheUtil.getForceFinish(recordId);
+            Integer hasAnswerFile = ExamRecordCacheUtil.getHasAnswerFile(recordId);
+            Integer cameraPhotoUpload = ExamRecordCacheUtil.getCameraPhotoUpload(recordId);
+            Integer mobilePhotoUpload = ExamRecordCacheUtil.getMobilePhotoUpload(recordId);
+            String entryAuthenticationPolicy = ExamRecordCacheUtil.getEntryAuthenticationPolicy(recordId);
+            Integer inProcessFaceStrangerIgnore = ExamRecordCacheUtil.getInProcessFaceStrangerIgnore(recordId);
+            String inProcessLivenessFixedRange = ExamRecordCacheUtil.getInProcessLivenessFixedRange(recordId);
+            String inProcessLivenessJudgePolicy = ExamRecordCacheUtil.getInProcessLivenessJudgePolicy(recordId);
+            String monitorVideoSource = ExamRecordCacheUtil.getMonitorVideoSource(recordId);
+            Integer inProcessRealnessVerifyStatus = ExamRecordCacheUtil.getInProcessRealnessVerifyStatus(recordId);
+            Integer inProcessLivenessVerifyStatus = ExamRecordCacheUtil.getInProcessLivenessVerifyStatus(recordId);
+            Integer inProcessFaceVerifyStatus = ExamRecordCacheUtil.getInProcessFaceVerifyStatus(recordId);
+            Long firstPrepareTime = ExamRecordCacheUtil.getFirstPrepareTime(recordId);
+            Long lastPrepareTime = ExamRecordCacheUtil.getLastPrepareTime(recordId);
+            String clientCurrentIp = ExamRecordCacheUtil.getClientCurrentIp(recordId);
+            String clientWebsocketId = ExamRecordCacheUtil.getClientWebsocketId(recordId);
+            Double answerProgress = ExamRecordCacheUtil.getAnswerProgress(recordId);
+            ReviewResultEnum reviewResultEnum = ExamRecordCacheUtil.getReviewResult(recordId);
+            String paperStructPath = ExamRecordCacheUtil.getPaperStructPath(recordId);
+            Integer paperStructUpload = ExamRecordCacheUtil.getPaperStructUpload(recordId);
+            Integer serialNumber = ExamRecordCacheUtil.getSerialNumber(recordId);
+            VerifyExceptionEnum verifyExceptionEnum = ExamRecordCacheUtil.getEntryAuthenticationResult(recordId);
+            Long entryAuthenticationId = ExamRecordCacheUtil.getEntryAuthenticationId(recordId);
+            ScoreStatusEnum scoreStatusEnum = ExamRecordCacheUtil.getScoreStatus(recordId);
+
+            TOeExamRecord er = new TOeExamRecord();
+            er.setId(recordId);
+            er.setExamId(examId);
+            er.setExamActivityId(examActivityId);
+            er.setExamStudentId(examStudentId);
+            er.setPaperId(paperId);
+            er.setStatus(examRecordStatusEnum);
+            er.setFirstPrepareTime(firstPrepareTime);
+            er.setFirstStartTime(firstStartTime);
+            er.setLastBreakTime(lastBreakTime);
+            er.setLastPrepareTime(lastPrepareTime);
+            er.setLastStartTime(lastStartTime);
+            er.setAlreadyBreakCount(alreadyBreakCount);
+            er.setClientCurrentIp(clientCurrentIp);
+            er.setClientWebsocketStatus(websocketStatusEnum);
+            er.setClientWebsocketId(clientWebsocketId);
+            er.setClientLastSyncTime(clientLastSyncTime);
+            er.setAnswerProgress(answerProgress);
+            er.setDurationSeconds(durationSeconds);
+            er.setFinishTime(finishTime);
+            er.setFinishType(finishTypeEnum);
+            er.setWarningCount(warningCount);
+            er.setReviewResult(reviewResultEnum);
+            er.setObjectiveScore(objectiveScore);
+            er.setPaperDownload(paperDownLoad);
+            er.setBreachStatus(breachStatus);
+            er.setPaperStructPath(paperStructPath);
+            er.setPaperStructUpload(paperStructUpload);
+            er.setSerialNumber(serialNumber);
+            er.setLastBreakId(breakId);
+            er.setEntryAuthenticationResult(verifyExceptionEnum);
+            er.setEntryAuthenticationId(entryAuthenticationId);
+            er.setInProcessFaceVerifyStatus(inProcessFaceVerifyStatus);
+            er.setInProcessLivenessVerifyStatus(inProcessLivenessVerifyStatus);
+            er.setInProcessLivenessVerifyCount(inProcessLivenessVerifyCount);
+            er.setMonitorKey(monitorKey);
+            er.setScoreStatus(scoreStatusEnum);
+            er.setStartTime(startTime);
+            er.setEndTime(endTime);
+            er.setOpeningSeconds(openingSeconds);
+            er.setMinDurationSeconds(minDurationSeconds);
+            er.setMaxDurationSeconds(maxDurationSeconds);
+            er.setForceFinish(forceFinish);
+            er.setHasAnswerFile(hasAnswerFile);
+            er.setInProcessRealnessVerifyStatus(inProcessRealnessVerifyStatus);
+            er.setCameraPhotoUpload(cameraPhotoUpload);
+            er.setMobilePhotoUpload(mobilePhotoUpload);
+            er.setEntryAuthenticationPolicy(EntryAuthenticationPolicyEnum.valueOf(entryAuthenticationPolicy));
+            er.setInProcessFaceStrangerIgnore(inProcessFaceStrangerIgnore);
+            er.setInProcessLivenessFixedRange(inProcessLivenessFixedRange);
+            er.setInProcessLivenessJudgePolicy(InProcessLivenessJudgePolicyEnum.valueOf(inProcessLivenessJudgePolicy));
+            er.setMonitorVideoSource(monitorVideoSource);
+            this.saveOrUpdate(er);
+        }
     }
 
     /**