瀏覽代碼

实时审核通过时不绑定考生,并修改部分流程验证

yin 7 月之前
父節點
當前提交
92c6be2793
共有 1 個文件被更改,包括 23 次插入6 次删除
  1. 23 6
      src/main/java/cn/com/qmth/scancentral/service/impl/BatchServiceImpl.java

+ 23 - 6
src/main/java/cn/com/qmth/scancentral/service/impl/BatchServiceImpl.java

@@ -317,6 +317,10 @@ public class BatchServiceImpl extends ServiceImpl<BatchDao, BatchEntity> impleme
         if (exam == null) {
             throw ParameterExceptions.EXAM_NOT_FOUND;
         }
+//        if (exam.getScanByPackage() != null && exam.getScanByPackage()
+//                && exam.getEnableSyncVerify()!=null && !exam.getEnableSyncVerify()) {
+//            throw new ParameterException("已开启整袋扫描,未开启实时审核");
+//        }
         String examNumber = domain.getExamNumber();
         StudentEntity student = studentService.findByExamAndSubjectCodeAndExamNumber(batch.getExamId(),
                 domain.getSubjectCode(), examNumber);
@@ -453,7 +457,8 @@ public class BatchServiceImpl extends ServiceImpl<BatchDao, BatchEntity> impleme
             throw new ParameterException("批次已被处理");
         }
         if (comfirm) {
-            updateBatchAssignedStudentData(user, batchId, entity.getExamId());
+            //实时审核通过后无需更新考生,待后续整袋上传时更新
+//            updateBatchAssignedStudentData(user, batchId, entity.getExamId());
             entity.setVerifyStatus(VerifyStatus.CONFIRM);
         } else {
             entity.setVerifyStatus(VerifyStatus.REJECT);
@@ -494,7 +499,18 @@ public class BatchServiceImpl extends ServiceImpl<BatchDao, BatchEntity> impleme
         if (entity == null) {
             throw new ParameterException("批次不存在");
         }
-        checkBatchStatus(entity);
+        if (VerifyStatus.WAITING.equals(entity.getVerifyStatus())) {
+            throw new ParameterException("批次正在审核中");
+        }
+        if (VerifyStatus.REJECT.equals(entity.getVerifyStatus())) {
+            throw new ParameterException("批次审核不通过");
+        }
+        if (BatchStatus.FINISH.equals(entity.getStatus())) {
+            BatchFinishVo vo = new BatchFinishVo();
+            vo.setStatus(entity.getStatus());
+            vo.setUpdateTime(System.currentTimeMillis());
+            return vo;
+        }
         ExamEntity exam = examService.getById(entity.getExamId());
         if (exam.getScanByPackage() != null && exam.getScanByPackage()) {
             checkStudentCount(entity);
@@ -964,6 +980,7 @@ public class BatchServiceImpl extends ServiceImpl<BatchDao, BatchEntity> impleme
     }
 
     @Override
+    @Transactional
     public AnswerPackageSave batchPackageSave(AnswerPackageDomain domain, User user) {
         BatchEntity batch = checkBatchStatus(getById(domain.getBatchId()));
         ExamEntity exam = examService.getById(batch.getExamId());
@@ -1013,7 +1030,7 @@ public class BatchServiceImpl extends ServiceImpl<BatchDao, BatchEntity> impleme
         for (String examNumber:studentMap.keySet()) {
             AnswerPackageStudent answerPackageStudent = answerPackageStudentMap.get(examNumber);
             StudentEntity student = studentMap.get(examNumber);
-            boolean studentAssigned = false;
+//            boolean studentAssigned = false;
             List<StudentPaperEntity> studentPaperList = new ArrayList<>();
             for (AnswerPaper answerPaper : answerPackageStudent.getPapers()) {
                 // 验证page数量
@@ -1035,13 +1052,13 @@ public class BatchServiceImpl extends ServiceImpl<BatchDao, BatchEntity> impleme
                 batchPaperService.update(batch, paper, student.getId(), paperNumber, false);
                 // 创建student与paper的关联关系
                 studentPaperList.add(new StudentPaperEntity(student.getId(), paperNumber, paper.getId()));
-                studentAssigned = studentAssigned || paper.getAssigned();
+//                studentAssigned = studentAssigned || paper.getAssigned();
                 // 更新批次统计数量,改到finish的时候更新
                 // updateAssignedCount(batch.getId());
                 // updateScanCount(batch.getId());
-                // 不开启实时审核,或者没有人工绑定的情况下,或者当前批次无需审核,直接更新考生扫描状态
+                // 不开启实时审核,或者当前批次无需审核,直接更新考生扫描状态
                 if (VerifyStatus.CANCEL.equals(batch.getVerifyStatus()) || exam.getEnableSyncVerify() == null
-                        || !exam.getEnableSyncVerify() || !studentAssigned) {
+                        || !exam.getEnableSyncVerify()) {
                     concurrentService.getReadWriteLock(LockType.STUDENT + "-" + student.getId()).writeLock().lock();
                     try {
                         studentService.updateStudentAndPaper(user, student.getId(), studentPaperList);