瀏覽代碼

update 异常或违纪场景!!!

deason 1 年之前
父節點
當前提交
4b16cdef13

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

@@ -166,7 +166,7 @@ public class SyncExamDataCloudServiceProvider extends ControllerSupport implemen
         // 是否开启人脸验证
         boolean isFaceEnable = FaceBiopsyHelper.isFaceEnable(rootOrgId, examId, studentId);
 
-        boolean skipFace = false, isFaceVerify = false, isFaceVerifyForceExit = false, isVirtualCameraAuditEnabled = false;
+        boolean skipFace = false, isFaceCheck = false, isFaceVerify = false, isFaceVerifyForceExit = false, isVirtualCameraAuditEnabled = false;
         if (isFaceEnable) {
             // 检查当前考生是否跳过人脸识别
             skipFace = this.checkExamSkipFace(examId, examStudentId);
@@ -174,6 +174,9 @@ public class SyncExamDataCloudServiceProvider extends ControllerSupport implemen
             // 是否开启考中人脸活体检测
             isFaceVerify = FaceBiopsyHelper.isFaceVerify(rootOrgId, examId, studentId);
 
+            // 是否强制人脸验证
+            isFaceCheck = FaceBiopsyHelper.isFaceCheck(examId, studentId);
+
             // 是否考中活体不通过强制退出
             ExamPropertyCacheBean faceVerifyForceExitProperty = CacheHelper.getExamProperty(examId, ExamProperties.FACE_VERIFY_FORCE_EXIT.name());
             isFaceVerifyForceExit = faceVerifyForceExitProperty != null && StringUtil.isTrue(faceVerifyForceExitProperty.getValue());
@@ -250,7 +253,9 @@ public class SyncExamDataCloudServiceProvider extends ControllerSupport implemen
 
         //若开启人脸验证
         if (isFaceEnable) {
-            if (skipFace) {
+
+            //若强制人脸验证
+            if (isFaceCheck && skipFace) {
                 //【异常】人工跳过人脸验证
                 examWarnService.saveExamWarn(realExamRecordDataId, WarnType.SKIP_FACE);
                 //修改为异常状态
@@ -271,8 +276,6 @@ public class SyncExamDataCloudServiceProvider extends ControllerSupport implemen
             if (CollectionUtils.isEmpty(req.getExamCaptures())) {
                 //【违纪】抓拍照片数量为0
                 examAuditService.saveExamAuditByNoPhoto(realExamRecordDataId);
-                //修改为已审状态
-                examRecordDataRepo.updateExamRecordIsAuditById(realExamRecordDataId, true);
                 LOG.warn("{}_{}_{} OTHER_抓拍照片数量为0...", studentId, tempExamRecordDataId, realExamRecordDataId);
             } else {
                 if (isVirtualCameraAuditEnabled) {
@@ -281,6 +284,7 @@ public class SyncExamDataCloudServiceProvider extends ControllerSupport implemen
                     if (hasVirtualCamera) {
                         //修改为异常状态
                         examRecordDataRepo.updateExamRecordIsWarnById(realExamRecordDataId, true);
+                        LOG.warn("{}_{}_{} 存在虚拟摄像头...", studentId, tempExamRecordDataId, realExamRecordDataId);
                     }
                 }
             }
@@ -290,8 +294,6 @@ public class SyncExamDataCloudServiceProvider extends ControllerSupport implemen
                 if (isFaceVerifyForceExit) {
                     //【违纪】指定动作失败
                     examAuditService.saveExamAuditByFaceVerifyFailed(realExamRecordDataId, rootOrgId);
-                    //修改为已审状态
-                    examRecordDataRepo.updateExamRecordIsAuditById(realExamRecordDataId, true);
                     LOG.warn("{}_{}_{} ACTION_FAILURE...", studentId, tempExamRecordDataId, realExamRecordDataId);
                 } else {
                     //【异常】过程活体不通过

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

@@ -540,12 +540,13 @@ public class ExamAuditServiceImpl implements ExamAuditService {
         examAuditEntity.setDisciplineDetail(getFaceVerifyDisciplineDetail(examRecordDataId, rootOrgId));//计算违纪描述
         examAuditEntity.setStatus(AuditStatus.UN_PASS);
         examAuditRepo.save(examAuditEntity);
+
+        // 修改考试记录为违纪、异常、已审
+        this.disciplineExamRecordData(examRecordDataId);
     }
 
     /**
      * 抓拍照片为0,系统审核
-     *
-     * @param examRecordDataId
      */
     @Override
     public void saveExamAuditByNoPhoto(Long examRecordDataId) {
@@ -561,6 +562,9 @@ public class ExamAuditServiceImpl implements ExamAuditService {
         examAuditEntity.setAuditUserName(AUDIT_USER_NAME);
         examAuditEntity.setStatus(AuditStatus.UN_PASS);
         examAuditRepo.save(examAuditEntity);
+
+        // 修改考试记录为违纪、异常、已审
+        this.disciplineExamRecordData(examRecordDataId);
     }
 
     @Override