浏览代码

scancheck新增状态ignore,并更新人工指定缺考转换逻辑

ting.yin 5 年之前
父节点
当前提交
d6c39e6e0e

+ 6 - 2
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/exam/dao/ExamStudentDao.java

@@ -10,6 +10,7 @@ import org.springframework.data.jpa.repository.Query;
 import org.springframework.data.repository.PagingAndSortingRepository;
 
 import cn.com.qmth.stmms.biz.exam.model.ExamStudent;
+import cn.com.qmth.stmms.common.enums.ScanCheck;
 
 public interface ExamStudentDao
         extends PagingAndSortingRepository<ExamStudent, Integer>, JpaSpecificationExecutor<ExamStudent> {
@@ -59,8 +60,8 @@ public interface ExamStudentDao
     public void updateManualAbsent(int id, boolean manualAbsent);
 
     @Modifying
-    @Query("update ExamStudent s set s.manualAbsent=?3 where s.examId=?1 and s.examNumber=?2")
-    public void updateManualAbsent(int examId, String examNumber, boolean manualAbsent);
+    @Query("update ExamStudent s set s.manualAbsent=?3 and s.scanCheck=?4 where s.examId=?1 and s.examNumber=?2")
+    public void updateManualAbsent(int examId, String examNumber, boolean manualAbsent, ScanCheck s);
 
     @Modifying
     @Query("update ExamStudent s set s.manualAbsent=0 where s.examId=?1")
@@ -125,4 +126,7 @@ public interface ExamStudentDao
     @Query(value = "select s.id from eb_exam_student s where 1=1 and s.id in (select m.student_id from m_library m where 1=1 and m.marker_id in (select m.id from eb_marker m where 1=1 and m.name = ?1))", nativeQuery = true)
     public List<String[]> findIdsByMarkName(String markName);
 
+    @Query("select s from ExamStudent s where s.examId=?1 and s.manualAbsent = ?2 ")
+    public List<ExamStudent> findByExamIdAndManualAbsent(int examId, boolean manualAbsent);
+
 }

+ 2 - 1
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/exam/service/ExamStudentService.java

@@ -7,6 +7,7 @@ import cn.com.qmth.stmms.biz.exam.model.ExamStudent;
 import cn.com.qmth.stmms.biz.exam.query.ExamStudentSearchQuery;
 import cn.com.qmth.stmms.biz.utils.OriginTag;
 import cn.com.qmth.stmms.biz.utils.PictureTag;
+import cn.com.qmth.stmms.common.enums.ScanCheck;
 
 public interface ExamStudentService {
 
@@ -68,7 +69,7 @@ public interface ExamStudentService {
 
     void updateManualAbsent(int id, boolean manualAbsent);
 
-    void updateManualAbsent(int examId, String examNumber, boolean manualAbsent);
+    void updateManualAbsent(int examId, String examNumber, boolean manualAbsent,ScanCheck s);
 
     void clearManualAbsent(int examId);
 

+ 11 - 3
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/exam/service/impl/ExamStudentServiceImpl.java

@@ -54,6 +54,7 @@ import cn.com.qmth.stmms.biz.utils.PictureTag;
 import cn.com.qmth.stmms.biz.utils.ScoreItem;
 import cn.com.qmth.stmms.common.enums.ExamSubjectStatus;
 import cn.com.qmth.stmms.common.enums.Role;
+import cn.com.qmth.stmms.common.enums.ScanCheck;
 import cn.com.qmth.stmms.common.enums.UserType;
 import cn.com.qmth.stmms.common.utils.Md5EncryptUtils;
 
@@ -438,14 +439,21 @@ public class ExamStudentServiceImpl extends BaseQueryService<ExamStudent> implem
 
     @Override
     @Transactional
-    public void updateManualAbsent(int examId, String examNumber, boolean manualAbsent) {
-        studentDao.updateManualAbsent(examId, examNumber, manualAbsent);
+    public void updateManualAbsent(int examId, String examNumber, boolean manualAbsent,ScanCheck scanCheck) {
+        studentDao.updateManualAbsent(examId, examNumber, manualAbsent,scanCheck);
     }
 
     @Override
     @Transactional
     public void clearManualAbsent(int examId) {
-        studentDao.clearManualAbsent(examId);
+        List<ExamStudent> list = studentDao.findByExamIdAndManualAbsent(examId,true);
+        for (ExamStudent student : list) {
+            if(student.getScanCheck().equals(ScanCheck.IGNORE)){
+                updateManualAbsent(examId,student.getExamNumber(),false,ScanCheck.TODO);
+            }else{
+                updateManualAbsent(student.getId(),false);
+            }
+        }
     }
 
     @Override

+ 1 - 1
stmms-common/src/main/java/cn/com/qmth/stmms/common/enums/ScanCheck.java

@@ -2,7 +2,7 @@ package cn.com.qmth.stmms.common.enums;
 
 public enum ScanCheck {
 
-    TODO("未审核", 1), PENDING("待定", 2), CHECKED("已审核", 3);
+    TODO("未审核", 1), PENDING("待定", 2), CHECKED("已审核", 3), IGNORE("忽略", 4);
 
     private String name;
 

+ 1 - 3
stmms-web/src/main/java/cn/com/qmth/stmms/admin/exam/parameter/ExamStudentController.java

@@ -449,9 +449,7 @@ public class ExamStudentController extends BaseParameterController {
                 }
                 ExamStudent student = studentService.findByExamIdAndExamNumber(examId, studentVO.getExamNumber());
                 if (student != null) {
-                    student.setManualAbsent(true);
-                    student.setScanCheck(ScanCheck.CHECKED);
-                    studentService.save(student);
+                    studentService.updateManualAbsent(examId, studentVO.getExamNumber(),true,ScanCheck.IGNORE);
                     successNum++;
                 } else {
                     failureMsg.append("<br/>准考证号 " + studentVO.getExamNumber() + " 不存在; ");

+ 2 - 1
stmms-web/src/main/java/cn/com/qmth/stmms/api/controller/ExamStudentController.java

@@ -44,6 +44,7 @@ import cn.com.qmth.stmms.biz.mark.service.MarkLibraryService;
 import cn.com.qmth.stmms.biz.user.model.User;
 import cn.com.qmth.stmms.biz.utils.ScoreItem;
 import cn.com.qmth.stmms.common.enums.LibraryStatus;
+import cn.com.qmth.stmms.common.enums.ScanCheck;
 import cn.com.qmth.stmms.common.utils.RequestUtils;
 import net.sf.json.JSONArray;
 import net.sf.json.JSONObject;
@@ -87,7 +88,7 @@ public class ExamStudentController extends BaseApiController {
         Exam exam = examService.findById(examId);
         if (exam != null && user.getSchoolIds().contains(exam.getSchoolId())) {
             for (MenualAbsentDTO dto : datas) {
-                examStudentService.updateManualAbsent(examId, dto.getExamNumber(), dto.isAbsent());
+                examStudentService.updateManualAbsent(examId, dto.getExamNumber(), dto.isAbsent(),ScanCheck.IGNORE);
             }
             return true;
         } else {

+ 1 - 1
stmms-web/src/main/java/cn/com/qmth/stmms/api/controller/ScanController.java

@@ -88,7 +88,7 @@ public class ScanController extends BaseApiController {
                     student.setBatchCode(sc.getBatchCode());
                     student.setSliceCount(sc.getSliceCount());
                     student.setSheetCount(sc.getSheetCount());
-                    student.setScanCheck(ScanCheck.CHECKED);
+                    student.setScanCheck(ScanCheck.IGNORE);
                     // 同步更新评卷任务及客观题分数
                     saveMarkLibrary(student);