xiatian před 8 měsíci
rodič
revize
b6254cc2ed

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

@@ -238,4 +238,6 @@ public interface StudentService extends IService<StudentEntity> {
     void breachImportDispose(BreachAndStatusImportTaskVo vo);
 
     void custStatusImportDispose(BreachAndStatusImportTaskVo vo);
+
+    boolean existUncheck(Long examId, String subjectCode);
 }

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

@@ -2564,7 +2564,7 @@ public class StudentServiceImpl extends ServiceImpl<StudentDao, StudentEntity> i
                 student.setAbsentSuspect(false);
                 student.setAssignedCheckCount(1);
                 saveOrUpdate(student);
-                assignedCheckHistoryService.deleteByStudentIdAndUserRole(student.getId(),Role.SCHOOL_ADMIN);
+                assignedCheckHistoryService.deleteByStudentIdAndUserRole(student.getId(), Role.SCHOOL_ADMIN);
             } finally {
                 concurrentService.getReadWriteLock(LockType.STUDENT + "-" + student.getId()).writeLock().unlock();
             }
@@ -2580,4 +2580,18 @@ public class StudentServiceImpl extends ServiceImpl<StudentDao, StudentEntity> i
         update(lw);
     }
 
+    @Override
+    public boolean existUncheck(Long examId, String subjectCode) {
+        List<ExamStatus> st = new ArrayList<>();
+        st.add(ExamStatus.UNCHECK1);
+        st.add(ExamStatus.UNCHECK2);
+        st.add(ExamStatus.UNCHECK3);
+        LambdaQueryWrapper<StudentEntity> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(StudentEntity::getExamId, examId);
+        wrapper.eq(StudentEntity::getSubjectCode, subjectCode);
+        wrapper.in(StudentEntity::getExamStatus, st);
+        wrapper.last("LIMIT 1");
+        return this.getOne(wrapper) != null;
+    }
+
 }

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

@@ -312,6 +312,9 @@ public class SubjectServiceImpl extends MppServiceImpl<SubjectDao, SubjectEntity
         if (scount == 0) {
             throw new ParameterException("没有考生信息");
         }
+        if (studentService.existUncheck(examId, subjectCode)) {
+            throw new ParameterException("有缺考待确认考生");
+        }
         if (StringUtils.isBlank(examService.getById(examId).getScanSite())) {
             throw new ParameterException("扫描点代码未设置");
         }
@@ -338,6 +341,9 @@ public class SubjectServiceImpl extends MppServiceImpl<SubjectDao, SubjectEntity
         if (scount == 0) {
             throw new ParameterException("没有考生信息");
         }
+        if (studentService.existUncheck(examId, subjectCode)) {
+            throw new ParameterException("有缺考待确认考生");
+        }
         if (StringUtils.isBlank(examService.getById(examId).getScanSite())) {
             throw new ParameterException("扫描点代码未设置");
         }