|
@@ -1,20 +1,8 @@
|
|
|
package cn.com.qmth.scancentral.service.impl;
|
|
|
|
|
|
-import java.io.File;
|
|
|
-import java.io.FileInputStream;
|
|
|
-import java.io.IOException;
|
|
|
-import java.io.InputStream;
|
|
|
-import java.io.InputStreamReader;
|
|
|
-import java.io.LineNumberReader;
|
|
|
+import java.io.*;
|
|
|
import java.math.BigDecimal;
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.Date;
|
|
|
-import java.util.HashMap;
|
|
|
-import java.util.HashSet;
|
|
|
-import java.util.LinkedHashSet;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Map;
|
|
|
-import java.util.Set;
|
|
|
+import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
import javax.validation.constraints.NotNull;
|
|
@@ -47,14 +35,7 @@ import com.qmth.boot.tools.excel.ExcelReader;
|
|
|
import com.qmth.boot.tools.excel.enums.ExcelType;
|
|
|
import com.qmth.boot.tools.uuid.FastUUID;
|
|
|
|
|
|
-import cn.com.qmth.scancentral.bean.AbsentQueryDomain;
|
|
|
-import cn.com.qmth.scancentral.bean.AnswerDeleteDomain;
|
|
|
-import cn.com.qmth.scancentral.bean.AnswerQueryDomain;
|
|
|
-import cn.com.qmth.scancentral.bean.AssignedQueryDomain;
|
|
|
-import cn.com.qmth.scancentral.bean.ImportCetAbsentDomain;
|
|
|
-import cn.com.qmth.scancentral.bean.ImportStudentDomain;
|
|
|
-import cn.com.qmth.scancentral.bean.PageDeleteDomain;
|
|
|
-import cn.com.qmth.scancentral.bean.User;
|
|
|
+import cn.com.qmth.scancentral.bean.*;
|
|
|
import cn.com.qmth.scancentral.bean.answersave.ArrayResult;
|
|
|
import cn.com.qmth.scancentral.bean.answersave.BoolResult;
|
|
|
import cn.com.qmth.scancentral.bean.answersave.StringResult;
|
|
@@ -66,91 +47,29 @@ import cn.com.qmth.scancentral.bean.refix.PageRefixDomain;
|
|
|
import cn.com.qmth.scancentral.bean.refix.PaperRefixDomain;
|
|
|
import cn.com.qmth.scancentral.config.SysProperty;
|
|
|
import cn.com.qmth.scancentral.dao.StudentDao;
|
|
|
-import cn.com.qmth.scancentral.entity.AnswerCardEntity;
|
|
|
-import cn.com.qmth.scancentral.entity.ExamEntity;
|
|
|
-import cn.com.qmth.scancentral.entity.OmrGroupEntity;
|
|
|
-import cn.com.qmth.scancentral.entity.PaperEntity;
|
|
|
-import cn.com.qmth.scancentral.entity.PaperPageEntity;
|
|
|
-import cn.com.qmth.scancentral.entity.QuestionEntity;
|
|
|
-import cn.com.qmth.scancentral.entity.StudentEntity;
|
|
|
-import cn.com.qmth.scancentral.entity.StudentPaperEntity;
|
|
|
-import cn.com.qmth.scancentral.entity.SubjectEntity;
|
|
|
-import cn.com.qmth.scancentral.entity.UserEntity;
|
|
|
-import cn.com.qmth.scancentral.enums.ExamMode;
|
|
|
-import cn.com.qmth.scancentral.enums.ExamStatus;
|
|
|
-import cn.com.qmth.scancentral.enums.ExamStatusCheckMode;
|
|
|
-import cn.com.qmth.scancentral.enums.GroupType;
|
|
|
-import cn.com.qmth.scancentral.enums.ImageCheckStatus;
|
|
|
-import cn.com.qmth.scancentral.enums.LockType;
|
|
|
-import cn.com.qmth.scancentral.enums.OP;
|
|
|
-import cn.com.qmth.scancentral.enums.OmrField;
|
|
|
-import cn.com.qmth.scancentral.enums.Role;
|
|
|
-import cn.com.qmth.scancentral.enums.ScanStatus;
|
|
|
-import cn.com.qmth.scancentral.enums.UploadStatus;
|
|
|
+import cn.com.qmth.scancentral.entity.*;
|
|
|
+import cn.com.qmth.scancentral.enums.*;
|
|
|
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.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.service.*;
|
|
|
import cn.com.qmth.scancentral.support.TaskLock;
|
|
|
import cn.com.qmth.scancentral.support.TaskLockUtil;
|
|
|
import cn.com.qmth.scancentral.util.BatchGetDataUtil;
|
|
|
import cn.com.qmth.scancentral.util.BatchSetDataUtil;
|
|
|
import cn.com.qmth.scancentral.util.MD5Util;
|
|
|
import cn.com.qmth.scancentral.util.PageUtil;
|
|
|
-import cn.com.qmth.scancentral.vo.AbsentInfoVo;
|
|
|
-import cn.com.qmth.scancentral.vo.AbsentManualImportVo;
|
|
|
-import cn.com.qmth.scancentral.vo.AbsentQueryVo;
|
|
|
-import cn.com.qmth.scancentral.vo.AnswerDeleteVo;
|
|
|
-import cn.com.qmth.scancentral.vo.AnswerExportK12Vo;
|
|
|
-import cn.com.qmth.scancentral.vo.AnswerExportVo;
|
|
|
-import cn.com.qmth.scancentral.vo.AnswerRefixVo;
|
|
|
-import cn.com.qmth.scancentral.vo.CampusVo;
|
|
|
-import cn.com.qmth.scancentral.vo.ExamSiteVo;
|
|
|
-import cn.com.qmth.scancentral.vo.ExportCetMarkingQueryVo;
|
|
|
-import cn.com.qmth.scancentral.vo.ExportCetVo;
|
|
|
-import cn.com.qmth.scancentral.vo.ImportBreachResult;
|
|
|
-import cn.com.qmth.scancentral.vo.ImportResult;
|
|
|
-import cn.com.qmth.scancentral.vo.ImportStudentQueryVo;
|
|
|
-import cn.com.qmth.scancentral.vo.ImportStudentVo;
|
|
|
-import cn.com.qmth.scancentral.vo.PaperDeleteVo;
|
|
|
-import cn.com.qmth.scancentral.vo.ScanAnswerInfoVo;
|
|
|
-import cn.com.qmth.scancentral.vo.StudentUploadVo;
|
|
|
-import cn.com.qmth.scancentral.vo.UpdateTimeVo;
|
|
|
-import cn.com.qmth.scancentral.vo.answerquery.AnswerPageVo;
|
|
|
-import cn.com.qmth.scancentral.vo.answerquery.AnswerPaperVo;
|
|
|
-import cn.com.qmth.scancentral.vo.answerquery.AnswerQueryParam;
|
|
|
-import cn.com.qmth.scancentral.vo.answerquery.AnswerQueryVo;
|
|
|
-import cn.com.qmth.scancentral.vo.answerquery.StudentPaperVo;
|
|
|
+import cn.com.qmth.scancentral.vo.*;
|
|
|
+import cn.com.qmth.scancentral.vo.answerquery.*;
|
|
|
import cn.com.qmth.scancentral.vo.assginedcheck.AssginedTaskResult;
|
|
|
import cn.com.qmth.scancentral.vo.assginedcheck.AssignedCheckExamRoomExport;
|
|
|
import cn.com.qmth.scancentral.vo.assginedcheck.AssignedCheckExport;
|
|
|
-import cn.com.qmth.scancentral.vo.assginedcheck.AssignedTaskResultPaper;
|
|
|
import cn.com.qmth.scancentral.vo.assginedcheck.AssignedTaskSaveVo;
|
|
|
import cn.com.qmth.scancentral.vo.examroom.ExamRoomScannedQuery;
|
|
|
import cn.com.qmth.scancentral.vo.examroom.ExamRoomScannedVo;
|
|
|
import cn.com.qmth.scancentral.vo.paper.PaperCetVo;
|
|
|
import cn.com.qmth.scancentral.vo.paper.PaperPageCetVo;
|
|
|
-import cn.com.qmth.scancentral.vo.student.StudentAnswerVo;
|
|
|
-import cn.com.qmth.scancentral.vo.student.StudentExamRoomVo;
|
|
|
-import cn.com.qmth.scancentral.vo.student.StudentPageQuery;
|
|
|
-import cn.com.qmth.scancentral.vo.student.StudentPageVo;
|
|
|
-import cn.com.qmth.scancentral.vo.student.StudentQuery;
|
|
|
-import cn.com.qmth.scancentral.vo.student.StudentVo;
|
|
|
+import cn.com.qmth.scancentral.vo.student.*;
|
|
|
import cn.com.qmth.scancentral.vo.studentimport.StudentCountVo;
|
|
|
import cn.com.qmth.scancentral.vo.subject.SubjectScanProgressVo;
|
|
|
import cn.com.qmth.scancentral.vo.task.TaskStatusVo;
|
|
@@ -266,7 +185,7 @@ public class StudentServiceImpl extends ServiceImpl<StudentDao, StudentEntity> i
|
|
|
// 获取paper详情更新考生状态
|
|
|
PaperEntity paper = paperService.getById(studentPaper.getPaperId());
|
|
|
student.setAssigned(student.getAssigned() || paper.getAssigned());
|
|
|
- student.setAssignedSuspect(student.getAssignedSuspect() || paper.getAssignedSuspect());
|
|
|
+// student.setAssignedSuspect(student.getAssignedSuspect() || paper.getAssignedSuspect());
|
|
|
student.setQuestionFilled(student.getQuestionFilled() || paper.getQuestionFilled());
|
|
|
student.setSubjectiveFilled(student.getSubjectiveFilled() || paper.getSubjectiveFilled());
|
|
|
student.setCardNumber(paper.getCardNumber());
|
|
@@ -1942,10 +1861,12 @@ public class StudentServiceImpl extends ServiceImpl<StudentDao, StudentEntity> i
|
|
|
concurrentService.getReadWriteLock(LockType.STUDENT + "-" + student.getId()).writeLock().lock();
|
|
|
try {
|
|
|
assignedCheckHistoryService.save(user.getId(), student.getId(), student.getExamId());
|
|
|
- for (AssignedTaskResultPaper paper : result.getPapers()) {
|
|
|
- paperService.updatePaperAssignedSuspect(student.getId(), paper.getNumber(), paper.getAssignedSuspect());
|
|
|
- }
|
|
|
- updateStudentByPaper(user, student.getId(), false);
|
|
|
+// for (AssignedTaskResultPaper paper : result.getPapers()) {
|
|
|
+// paperService.updatePaperAssignedSuspect(student.getId(), paper.getNumber(), result.getAssignedSuspect());
|
|
|
+// }
|
|
|
+// updateStudentByPaper(user, student.getId(), false);
|
|
|
+ student.setAbsentSuspect(result.getAssignedSuspect());
|
|
|
+ saveOrUpdate(student);
|
|
|
updateAssignedCheckCount(student.getId(), false);
|
|
|
} finally {
|
|
|
concurrentService.getReadWriteLock(LockType.STUDENT + "-" + student.getId()).writeLock().unlock();
|
|
@@ -1968,17 +1889,23 @@ public class StudentServiceImpl extends ServiceImpl<StudentDao, StudentEntity> i
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public AnswerQueryVo getAssignedCheckTask(Long examId, String account) {
|
|
|
+ public AnswerQueryVo getAssignedCheckTask(Long examId,String subjectCode, User user) {
|
|
|
int retry = 0;
|
|
|
AnswerQueryVo task = null;
|
|
|
+ int checkCount = 0;
|
|
|
+ if (Role.AUDITOR.equals(user.getRole())) {
|
|
|
+ checkCount = 0;
|
|
|
+ }else{
|
|
|
+ checkCount = 1;
|
|
|
+ }
|
|
|
while (task == null) {
|
|
|
- List<AnswerQueryVo> list = this.findUnCheck(examId, retry * 20, 20, 0);
|
|
|
+ List<AnswerQueryVo> list = this.findUnCheck(examId,subjectCode,checkCount, retry * 20, 20);
|
|
|
if (list.isEmpty()) {
|
|
|
break;
|
|
|
}
|
|
|
for (AnswerQueryVo t : list) {
|
|
|
StudentEntity student = this.getById(t.getId());
|
|
|
- if (this.apply(student, account)) {
|
|
|
+ if (this.apply(student, user.getAccount())) {
|
|
|
task = toTaskVo(t);
|
|
|
break;
|
|
|
}
|
|
@@ -1993,8 +1920,8 @@ public class StudentServiceImpl extends ServiceImpl<StudentDao, StudentEntity> i
|
|
|
return task;
|
|
|
}
|
|
|
|
|
|
- private List<AnswerQueryVo> findUnCheck(Long examId, int pageNumber, int pageSize, int checkCount) {
|
|
|
- return this.baseMapper.findUnCheck(examId, pageNumber, pageSize, checkCount);
|
|
|
+ private List<AnswerQueryVo> findUnCheck(Long examId,String subjectCode,int checkCount, int pageNumber, int pageSize) {
|
|
|
+ return this.baseMapper.findUnCheck(examId,subjectCode, checkCount,pageNumber, pageSize );
|
|
|
}
|
|
|
|
|
|
private AnswerQueryVo toTaskVo(AnswerQueryVo t) {
|