浏览代码

papertype识别结果记录在page上,更新到考生上再判定是否为?;修改papertype识别结果会更新到page上再更新考生;

yin 8 月之前
父节点
当前提交
bf20063615

+ 2 - 0
src/main/java/cn/com/qmth/scancentral/service/MarkSiteService.java

@@ -23,4 +23,6 @@ public interface MarkSiteService extends IService<MarkSiteEntity> {
     List<SubjectConfigVo> findByExam(Long examId);
 
     void saveByExamIdAndSubjectCode(Long examId,List<SubjectConfigVo> paperTypeBarcodeContent);
+
+    List<String> findPaperTypeBarcodeContentByExamAndSubjectCode(Long examId, String subejctCode);
 }

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

@@ -8,6 +8,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
+import cn.com.qmth.scancentral.service.*;
 import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.lang.math.RandomUtils;
 import org.apache.commons.lang3.StringUtils;
@@ -51,20 +52,6 @@ import cn.com.qmth.scancentral.enums.Role;
 import cn.com.qmth.scancentral.enums.VerifyStatus;
 import cn.com.qmth.scancentral.exception.NotFoundExceptions;
 import cn.com.qmth.scancentral.exception.ParameterExceptions;
-import cn.com.qmth.scancentral.service.AnswerCardService;
-import cn.com.qmth.scancentral.service.AnswerCardSubjectService;
-import cn.com.qmth.scancentral.service.AssignedCheckHistoryService;
-import cn.com.qmth.scancentral.service.BatchPaperService;
-import cn.com.qmth.scancentral.service.BatchService;
-import cn.com.qmth.scancentral.service.ExamRoomService;
-import cn.com.qmth.scancentral.service.ExamService;
-import cn.com.qmth.scancentral.service.FilePropertyService;
-import cn.com.qmth.scancentral.service.FileService;
-import cn.com.qmth.scancentral.service.PaperPageService;
-import cn.com.qmth.scancentral.service.PaperService;
-import cn.com.qmth.scancentral.service.ScannerService;
-import cn.com.qmth.scancentral.service.StudentService;
-import cn.com.qmth.scancentral.service.SubjectService;
 import cn.com.qmth.scancentral.support.TaskLock;
 import cn.com.qmth.scancentral.support.TaskLockUtil;
 import cn.com.qmth.scancentral.util.PageUtil;
@@ -347,11 +334,11 @@ public class BatchServiceImpl extends ServiceImpl<BatchDao, BatchEntity> impleme
         if (!exam.getAllowUnexistPaper() && domain.getPapers().size() != answerCard.getPaperCount()) {
             throw new ParameterException("卡格式张数不一致");
         }
-        List<String> paperTypeBarcodeContents = exam.getPaperTypeBarcodeContent();
-        SubjectEntity subject = subjectService.findByExamIdAndCode(student.getExamId(), student.getSubjectCode());
-        if (subject.getPaperTypeBarcodeContent() != null && !subject.getPaperTypeBarcodeContent().isEmpty()) {
-            paperTypeBarcodeContents = subject.getPaperTypeBarcodeContent();
-        }
+//        List<String> paperTypeBarcodeContents  = markSiteService.findPaperTypeBarcodeContentByExamAndSubjectCode(student.getExamId(), student.getSubjectCode());
+//        if (paperTypeBarcodeContents == null || paperTypeBarcodeContents.isEmpty()) {
+//            paperTypeBarcodeContents = exam.getPaperTypeBarcodeContent();
+//        }
+
         boolean studentAssigned = false;
         List<StudentPaperEntity> studentPaperList = new ArrayList<>();
         for (AnswerPaper answerPaper : domain.getPapers()) {
@@ -369,8 +356,8 @@ public class BatchServiceImpl extends ServiceImpl<BatchDao, BatchEntity> impleme
             paper.setOmrExamNumber(answerPaper.getOmrExamNumber());
             paper.setAssigned(answerPaper.getAssigned());
             // 保存paper与page到数据库
-            paperService.savePaperAndPages(paper, answerPaper.buildPageList(paperTypeBarcodeContents));
-            // 记录paper与batch关联关系
+            paperService.savePaperAndPages(paper, answerPaper.buildPageList(null));
+                    // 记录paper与batch关联关系
             batchPaperService.update(batch, paper, student.getId(), paperNumber, false);
             // 创建student与paper的关联关系
             studentPaperList.add(new StudentPaperEntity(student.getId(), paperNumber, paper.getId()));

+ 6 - 0
src/main/java/cn/com/qmth/scancentral/service/impl/MarkSiteServiceImpl.java

@@ -133,4 +133,10 @@ public class MarkSiteServiceImpl extends ServiceImpl<MarkSiteDao, MarkSiteEntity
         }
         this.saveBatch(saveList);
     }
+
+    @Override
+    public List<String> findPaperTypeBarcodeContentByExamAndSubjectCode(Long examId, String subejctCode) {
+        List<MarkSiteEntity> list =this.findByExamAndSubject(examId,subejctCode);
+        return list.stream().map(MarkSiteEntity::getPaperType).collect(Collectors.toList());
+    }
 }

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

@@ -22,6 +22,7 @@ import java.util.stream.Collectors;
 
 import javax.validation.constraints.NotNull;
 
+import cn.com.qmth.scancentral.service.*;
 import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.io.FileUtils;
 import org.apache.commons.io.IOUtils;
@@ -96,23 +97,6 @@ import cn.com.qmth.scancentral.enums.UploadStatus;
 import cn.com.qmth.scancentral.exception.NotFoundExceptions;
 import cn.com.qmth.scancentral.exception.ParameterExceptions;
 import cn.com.qmth.scancentral.model.ManualAbsentImportDTO;
-import cn.com.qmth.scancentral.service.AnswerCardService;
-import cn.com.qmth.scancentral.service.AnswerCardSubjectService;
-import cn.com.qmth.scancentral.service.AssignedCheckHistoryService;
-import cn.com.qmth.scancentral.service.AsyncTaskService;
-import cn.com.qmth.scancentral.service.BatchService;
-import cn.com.qmth.scancentral.service.ExamService;
-import cn.com.qmth.scancentral.service.FileService;
-import cn.com.qmth.scancentral.service.OmrGroupService;
-import cn.com.qmth.scancentral.service.OmrTaskService;
-import cn.com.qmth.scancentral.service.PaperPageService;
-import cn.com.qmth.scancentral.service.PaperService;
-import cn.com.qmth.scancentral.service.QuestionService;
-import cn.com.qmth.scancentral.service.StudentPaperService;
-import cn.com.qmth.scancentral.service.StudentService;
-import cn.com.qmth.scancentral.service.SubjectService;
-import cn.com.qmth.scancentral.service.ToolExportService;
-import cn.com.qmth.scancentral.service.UserService;
 import cn.com.qmth.scancentral.support.SpringContextHolder;
 import cn.com.qmth.scancentral.support.TaskLock;
 import cn.com.qmth.scancentral.support.TaskLockUtil;
@@ -221,6 +205,9 @@ public class StudentServiceImpl extends ServiceImpl<StudentDao, StudentEntity> i
     @Autowired
     private FileService fileService;
 
+    @Autowired
+    private MarkSiteService markSiteService;
+
     static {
         int threadCount = 5;
         exec = new ThreadPoolExecutor(threadCount, threadCount, 0L, TimeUnit.SECONDS,
@@ -302,7 +289,18 @@ public class StudentServiceImpl extends ServiceImpl<StudentDao, StudentEntity> i
             if (studentPaper.getPaperNumber() == 1) {
                 // 根据识别结果更新考生属性
                 PaperPageEntity page = paperPageService.findPaperIdAndIndex(paper.getId(), 1);
-                student.setPaperType(page.getPaperType() != null ? page.getPaperType().getResult() : "#");
+                List<String> paperTypeBarcodeContents  = markSiteService.findPaperTypeBarcodeContentByExamAndSubjectCode(student.getExamId(), student.getSubjectCode());
+                if (paperTypeBarcodeContents == null || paperTypeBarcodeContents.isEmpty()) {
+                    paperTypeBarcodeContents = exam.getPaperTypeBarcodeContent();
+                }
+                if(page.getPaperType() == null||page.getPaperType().getResult().length()==0 || page.getPaperType().getResult().equals("#")){
+                    student.setPaperType("#");
+                }else if (CollectionUtils.isNotEmpty(paperTypeBarcodeContents) && !paperTypeBarcodeContents.contains(page.getPaperType().getResult())) {
+                    student.setPaperType("?");
+                }else{
+                    student.setPaperType(page.getPaperType().getResult());
+                }
+//                student.setPaperType(page.getPaperType() != null ? page.getPaperType().getResult() : "#");
                 student.setOmrAbsent(page.getAbsent() == null ? false : page.getAbsent().getResult());
                 student.setDevice(batchService.findByPaperId(paper.getId()).getDevice());
             }