deason 1 жил өмнө
parent
commit
91d0f9da73

+ 8 - 2
examcloud-core-oe-task-service/src/main/java/cn/com/qmth/examcloud/core/oe/task/service/job/BeforeHandInExamJobHandler.java

@@ -116,13 +116,13 @@ public class BeforeHandInExamJobHandler {
 
         long diff = System.currentTimeMillis() - examRecordDataCache.getEnterExamTime().getTime();
         if (diff <= 180000L) {
-            // 跳过刚进入考试3分钟内的记录
+            // 跳过刚进入考试3分钟内的记录(减少无意义的状态处理)
             log.debug("enterExamTime just 3 minutes, skip... examRecordDataId:{}", examRecordDataId);
             return;
         }
 
         ExamingSession examingSession = examingSessionService.getExamingSession(examRecordDataCache.getStudentId());
-        if (examingSession == null || ExamingStatus.INFORMAL.equals(examingSession.getExamingStatus())) {
+        if (examingSession == null) {
             // 考试会话不存在,则自动交卷
             log.warn("redisKey {}{} value not exist, do autoHandInExam, examRecordDataId:{}",
                     CacheConstants.CACHE_OE_SESSION, examRecordDataCache.getStudentId(), examRecordDataId);
@@ -130,6 +130,12 @@ public class BeforeHandInExamJobHandler {
             return;
         }
 
+        if (ExamingStatus.INFORMAL.equals(examingSession.getExamingStatus())) {
+            // 考试会话若为“非正式状态”状态,暂不特殊处理!
+            log.warn("ExamSession_INFORMAL, examRecordDataId:{}, studentId:{}", examRecordDataId, examRecordDataCache.getStudentId());
+            return;
+        }
+
         // 超过断点续考时间,则自动交卷
         if (this.overBreakpointTime(examingSession)) {
             log.warn("overBreakpointTime do autoHandInExam, examRecordDataId:{}, studentId:{}", examRecordDataCache.getId(), examRecordDataCache.getStudentId());