xiatian 8 ヶ月 前
コミット
71d4230695

+ 1 - 1
src/main/java/cn/com/qmth/scancentral/controller/admin/CheckController.java → src/main/java/cn/com/qmth/scancentral/controller/admin/CheckAbsentController.java

@@ -76,7 +76,7 @@ import io.swagger.annotations.ApiOperation;
 @Api(tags = "缺考接口")
 @RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/admin/check")
 @Aac(strict = false, auth = true)
-public class CheckController extends BaseController {
+public class CheckAbsentController extends BaseController {
 
     @Autowired
     private StudentService studentService;

+ 6 - 0
src/main/java/cn/com/qmth/scancentral/controller/admin/ExamController.java

@@ -39,6 +39,12 @@ public class ExamController extends BaseController {
     @Autowired
     private ExamService examService;
 
+    @ApiOperation(value = "证号填涂位数获取")
+    @PostMapping(value = "exam-number/fill-count")
+    public Integer getexamNumberFillCount(@RequestParam Long examId) {
+        return examService.getexamNumberFillCount(examId);
+    }
+
     @ApiOperation(value = "扫描点代码获取")
     @PostMapping(value = "scan-site")
     public String getScanSite(@RequestParam Long examId) {

+ 2 - 1
src/main/java/cn/com/qmth/scancentral/entity/StudentEntity.java

@@ -52,9 +52,10 @@ public class StudentEntity extends AuditingWithoutIdEntity {
     // 识别缺考
     private Boolean omrAbsent;
 
-    // 是否有填涂
+    // 是否有客观题填涂
     private Boolean questionFilled;
 
+    // 是否有主观题填涂
     private Boolean subjectiveFilled;
 
     // 是否人工绑定

+ 2 - 1
src/main/java/cn/com/qmth/scancentral/enums/ExamStatus.java

@@ -2,7 +2,8 @@ package cn.com.qmth.scancentral.enums;
 
 public enum ExamStatus {
 
-    OK("正常"), ABSENT("缺考"), UNCHECK("待确认"),;
+    OK("正常"), ABSENT("缺考"), UNCHECK1("客观题未作答+主观题有作答(待确认)"), UNCHECK2("客观题未作答+主观题未作答+填涂≥N+有卷型(待确认)"), UNCHECK3(
+            "交叉对比缺考不一致(待确认)"),;
 
     private String name;
 

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

@@ -58,4 +58,6 @@ public interface ExamService extends IService<ExamEntity> {
 
     String getScanSite(Long examId);
 
+    Integer getexamNumberFillCount(Long examId);
+
 }

+ 1 - 1
src/main/java/cn/com/qmth/scancentral/service/StudentService.java

@@ -178,7 +178,7 @@ public interface StudentService extends IService<StudentEntity> {
 
     int getCountByExamAndAssignedCheckCount(Long examId, String subjectCode, int assignedCheckCount, OP op);
 
-    int countByExamIdAndExamStatus(Long examId, ExamStatus examStatus);
+    int countByExamIdAndExamStatus(Long examId, ExamStatus... examStatus);
 
     void updateAssignedCheckCount(Long id, boolean deleteHistory);
 

+ 7 - 3
src/main/java/cn/com/qmth/scancentral/service/impl/ExamServiceImpl.java

@@ -2,7 +2,6 @@ package cn.com.qmth.scancentral.service.impl;
 
 import java.util.List;
 
-import com.baomidou.mybatisplus.core.metadata.OrderItem;
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -167,7 +166,7 @@ public class ExamServiceImpl extends ServiceImpl<ExamDao, ExamEntity> implements
             subjectService.initSubject(examEntity.getId());
             List<SubjectEntity> subjects = subjectService.listByExamId(examEntity.getId());
             for (SubjectEntity subject : subjects) {
-               omrGroupService.addFixOmrCondition(1L,examEntity.getId(),subject.getCode());
+                omrGroupService.addFixOmrCondition(1L, examEntity.getId(), subject.getCode());
             }
         }
         log.warn("新增考试成功! examId:{}", examEntity.getId());
@@ -237,7 +236,7 @@ public class ExamServiceImpl extends ServiceImpl<ExamDao, ExamEntity> implements
 
         int absentCount = studentService.countByExamIdAndExamStatus(examId, ExamStatus.ABSENT);
         int okCount = studentService.countByExamIdAndExamStatus(examId, ExamStatus.OK);
-        int todoCount = studentService.countByExamIdAndExamStatus(examId, ExamStatus.UNCHECK);
+        int todoCount = studentService.countByExamIdAndExamStatus(examId, ExamStatus.UNCHECK1, ExamStatus.UNCHECK2);
         vo.getAbsentCheck().setAbsentCount(absentCount);
         vo.getAbsentCheck().setOkCount(okCount);
         vo.getAbsentCheck().setTodoCount(todoCount);
@@ -558,4 +557,9 @@ public class ExamServiceImpl extends ServiceImpl<ExamDao, ExamEntity> implements
         return this.getById(examId).getScanSite();
     }
 
+    @Override
+    public Integer getexamNumberFillCount(Long examId) {
+        return this.getById(examId).getExamNumberFillCount();
+    }
+
 }

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

@@ -6,6 +6,7 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.math.BigDecimal;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Date;
 import java.util.HashMap;
 import java.util.HashSet;
@@ -1648,10 +1649,10 @@ public class StudentServiceImpl extends ServiceImpl<StudentDao, StudentEntity> i
         if (ScanStatus.UNEXIST.equals(student.getStatus())) {
             student.setExamStatus(null);
         } else if (!student.getQuestionFilled() && student.getSubjectiveFilled()) {
-            student.setExamStatus(ExamStatus.UNCHECK);
+            student.setExamStatus(ExamStatus.UNCHECK1);
         } else if (!student.getQuestionFilled() && !student.getSubjectiveFilled()
                 && omrExamNumberCount >= examNumberFillCount) {
-            student.setExamStatus(ExamStatus.UNCHECK);
+            student.setExamStatus(ExamStatus.UNCHECK2);
         } else if (!student.getQuestionFilled() && !student.getSubjectiveFilled()
                 && omrExamNumberCount < examNumberFillCount) {
             student.setExamStatus(ExamStatus.ABSENT);
@@ -1753,10 +1754,10 @@ public class StudentServiceImpl extends ServiceImpl<StudentDao, StudentEntity> i
                 concurrentService.getReadWriteLock(LockType.STUDENT + "-" + student.getId()).writeLock().lock();
                 try {
                     if (absentMap.get(student.getExamNumber()) && !ExamStatus.ABSENT.equals(student.getExamStatus())) {
-                        student.setExamStatus(ExamStatus.UNCHECK);
+                        student.setExamStatus(ExamStatus.UNCHECK3);
                     }
                     if (!absentMap.get(student.getExamNumber()) && !ExamStatus.OK.equals(student.getExamStatus())) {
-                        student.setExamStatus(ExamStatus.UNCHECK);
+                        student.setExamStatus(ExamStatus.UNCHECK3);
                     }
                     saveOrUpdate(student);
                     vo.setProgress(vo.getProgress() + 1);
@@ -1805,10 +1806,10 @@ public class StudentServiceImpl extends ServiceImpl<StudentDao, StudentEntity> i
     }
 
     @Override
-    public int countByExamIdAndExamStatus(Long examId, ExamStatus examStatus) {
+    public int countByExamIdAndExamStatus(Long examId, ExamStatus... examStatus) {
         LambdaQueryWrapper<StudentEntity> wrapper = new LambdaQueryWrapper<>();
         wrapper.eq(StudentEntity::getExamId, examId);
-        wrapper.eq(StudentEntity::getExamStatus, examStatus);
+        wrapper.in(StudentEntity::getExamStatus, Arrays.asList(examStatus));
         return this.count(wrapper);
     }