Selaa lähdekoodia

修复实施审核后无需进入第一次复核校验问题

yin 7 kuukautta sitten
vanhempi
commit
6375d4cc8e

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

@@ -423,13 +423,13 @@ public class BatchServiceImpl extends ServiceImpl<BatchDao, BatchEntity> impleme
         for (Map.Entry<Long, List<StudentPaperEntity>> entry : studentMap.entrySet()) {
             concurrentService.getReadWriteLock(LockType.STUDENT + "-" + entry.getKey()).writeLock().lock();
             try {
-                studentService.updateStudentAndPaper(user, entry.getKey(), entry.getValue());
+//                studentService.updateStudentAndPaper(user, entry.getKey(), entry.getValue());
                 StudentEntity student = studentService.getById(entry.getKey());
-                if(student.getAssigned()){
+//                if(student.getAssigned()){
                     assignedCheckHistoryService.deleteByStudentIdAndUserRole(user.getId(),Role.AUDITOR);
                     assignedCheckHistoryService.save(user.getId(), entry.getKey(), examId);
                     studentService.updateAssignedCheckCount(entry.getKey(), false);
-                }
+//                }
             } finally {
                 concurrentService.getReadWriteLock(LockType.STUDENT + "-" + entry.getKey()).writeLock().unlock();
             }
@@ -447,8 +447,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);
@@ -1071,6 +1071,7 @@ public class BatchServiceImpl extends ServiceImpl<BatchDao, BatchEntity> impleme
         String campusCode = null;
         String examSite = null;
         String examRoom = null ;
+        boolean updateAssignedCount = !VerifyStatus.CONFIRM.equals(batch.getVerifyStatus());
         for (StudentEntity student:studentMap.values()) {
             province = student.getProvince();
             campusCode = student.getCampusCode();
@@ -1085,7 +1086,7 @@ public class BatchServiceImpl extends ServiceImpl<BatchDao, BatchEntity> impleme
             // 更新绑定关系
             studentPaperService.saveOrUpdateBatchByMultiId(studentPaperList);
             // 更新考生状态
-            student = studentService.updateStudentByPaper(user, student.getId(), false,true);
+            student = studentService.updateStudentByPaper(user, student.getId(), false,updateAssignedCount);
             if(student.getAssigned()){
                 assignedCount++;
             }

+ 8 - 8
src/main/java/cn/com/qmth/scancentral/service/impl/StudentServiceImpl.java

@@ -1366,16 +1366,16 @@ public class StudentServiceImpl extends ServiceImpl<StudentDao, StudentEntity> i
         Set<String> sliceSet = new HashSet<>();
         setCardStatus(paperTypeBarcodeContents, student, card, pages, pmap);
         int index = 0;
-        for (PaperPageCetVo p : pages) {
-            if (CollectionUtils.isNotEmpty(p.getSlicePath())) {
-                for (int i = 0; i < p.getSlicePath().size(); i++) {
-                    String sliceName = card.getSliceName().get(index);
-                    sliceSet.add(sliceName);
-                    index++;
+        if(useSlice){
+            for (PaperPageCetVo p : pages) {
+                if (CollectionUtils.isNotEmpty(p.getSlicePath())) {
+                    for (int i = 0; i < p.getSlicePath().size(); i++) {
+                        String sliceName = card.getSliceName().get(index);
+                        sliceSet.add(sliceName);
+                        index++;
+                    }
                 }
             }
-        }
-        if(useSlice){
             List<String> sliceNameList = new ArrayList<>(sliceSet);
             sliceNameList.sort((v1, v2) -> Integer.parseInt(v1) > Integer.parseInt(v2) ? 1 : -1);
             // 获取图片大小