lideyin 5 жил өмнө
parent
commit
4b92491a5c

+ 37 - 46
examcloud-core-oe-task-service/src/main/java/cn/com/qmth/examcloud/core/oe/task/service/impl/ExamRecordDataServiceImpl.java

@@ -102,13 +102,48 @@ public class ExamRecordDataServiceImpl implements ExamRecordDataService {
 
             // 计算人脸检测结果
             CalculateFaceCheckResultInfo faceCheckResult = examCaptureService.calculateFaceCheckResult(examRecordDataId);
-            modifyExamRecordDataByFaceCheckResult(examRecordData, faceCheckResult);
+            if (null != faceCheckResult.getFaceTotalCount()) {
+                examRecordData.setFaceTotalCount(faceCheckResult.getFaceTotalCount());
+            }
+            if (null != faceCheckResult.getFaceSuccessPercent()) {
+                examRecordData.setFaceSuccessPercent(faceCheckResult.getFaceSuccessPercent());
+            }
+            if (null != faceCheckResult.getFaceStrangerCount()) {
+                examRecordData.setFaceStrangerCount(faceCheckResult.getFaceStrangerCount());
+            }
+            if (null != faceCheckResult.getFaceSuccessCount()) {
+                examRecordData.setFaceSuccessCount(faceCheckResult.getFaceSuccessCount());
+            }
+            if (null != faceCheckResult.getFaceFailedCount()) {
+                examRecordData.setFaceFailedCount(faceCheckResult.getFaceFailedCount());
+            }
+            if (null != faceCheckResult.getBaiduFaceLivenessSuccessPercent()) {
+                examRecordData.setBaiduFaceLivenessSuccessPercent(faceCheckResult.getBaiduFaceLivenessSuccessPercent());
+            }
 
             // 计算活体检测结果
             CalcFaceBiopsyResultReq req = new CalcFaceBiopsyResultReq();
             req.setExamRecordDataId(examRecordDataId);
             CalcFaceBiopsyResultResp calcFaceBiopsyResultResp = examRecordDataCloudService.calcFaceBiopsyResult(req);
-            modifyExamRecordDataByFaceBiopsyResult(examRecordData, calcFaceBiopsyResultResp);
+            if (null != calcFaceBiopsyResultResp.getFaceVerifyResult()) {
+                examRecordData.setFaceVerifyResult(calcFaceBiopsyResultResp.getFaceVerifyResult());
+            }
+
+            //判断是否违纪
+            if (null != calcFaceBiopsyResultResp.getFaceVerifyResult() &&
+                    IsSuccess.FAILED == calcFaceBiopsyResultResp.getFaceVerifyResult()) {
+                examRecordData.setIsIllegality(true);//活检失败,直接判定为违纪
+            } else {
+                //人脸检测或活栓中有一个判断为违纪,则为违纪
+                boolean bi = (null != faceCheckResult.getIllegality() && faceCheckResult.getIllegality()) ||
+                        (null != calcFaceBiopsyResultResp.getIllegality() && calcFaceBiopsyResultResp.getIllegality());
+                examRecordData.setIsIllegality(bi);
+            }
+
+            //判断数据是否异常
+            boolean bw = (null != faceCheckResult.getWarn() && faceCheckResult.getWarn()) ||
+                    (null != calcFaceBiopsyResultResp.getWarn() && calcFaceBiopsyResultResp.getWarn());
+            examRecordData.setIsWarn(bw);//人脸检测或活检中有一个判断为异常,则为异常数据
 
             // 违纪自动审核
             Boolean isAudit = this.calcAutoAuditResult(faceCheckResult.getNoPhotoAndIllegality(),
@@ -138,48 +173,4 @@ public class ExamRecordDataServiceImpl implements ExamRecordDataService {
 
         return examRecordData;
     }
-
-    private void modifyExamRecordDataByFaceBiopsyResult(ExamRecordData examRecordData, CalcFaceBiopsyResultResp calcFaceBiopsyResultResp) {
-        if (null != calcFaceBiopsyResultResp.getIllegality()) {
-            examRecordData.setIsIllegality(calcFaceBiopsyResultResp.getIllegality());
-        }
-        if (null != calcFaceBiopsyResultResp.getWarn()) {
-            examRecordData.setIsWarn(calcFaceBiopsyResultResp.getWarn());
-        }
-        if (null != calcFaceBiopsyResultResp.getFaceVerifyResult()) {
-            examRecordData.setFaceVerifyResult(calcFaceBiopsyResultResp.getFaceVerifyResult());
-
-            //活检失败,则认为违纪
-            if (IsSuccess.FAILED == calcFaceBiopsyResultResp.getFaceVerifyResult()) {
-                examRecordData.setIsIllegality(true);
-            }
-        }
-    }
-
-    private void modifyExamRecordDataByFaceCheckResult(ExamRecordData examRecordData, CalculateFaceCheckResultInfo faceCheckResult) {
-        if (null != faceCheckResult.getWarn()) {
-            examRecordData.setIsWarn(faceCheckResult.getWarn());
-        }
-        if (null != faceCheckResult.getIllegality()) {
-            examRecordData.setIsIllegality(faceCheckResult.getIllegality());
-        }
-        if (null != faceCheckResult.getFaceTotalCount()) {
-            examRecordData.setFaceTotalCount(faceCheckResult.getFaceTotalCount());
-        }
-        if (null != faceCheckResult.getFaceSuccessPercent()) {
-            examRecordData.setFaceSuccessPercent(faceCheckResult.getFaceSuccessPercent());
-        }
-        if (null != faceCheckResult.getFaceStrangerCount()) {
-            examRecordData.setFaceStrangerCount(faceCheckResult.getFaceStrangerCount());
-        }
-        if (null != faceCheckResult.getFaceSuccessCount()) {
-            examRecordData.setFaceSuccessCount(faceCheckResult.getFaceSuccessCount());
-        }
-        if (null != faceCheckResult.getFaceFailedCount()) {
-            examRecordData.setFaceFailedCount(faceCheckResult.getFaceFailedCount());
-        }
-        if (null != faceCheckResult.getBaiduFaceLivenessSuccessPercent()) {
-            examRecordData.setBaiduFaceLivenessSuccessPercent(faceCheckResult.getBaiduFaceLivenessSuccessPercent());
-        }
-    }
 }