Эх сурвалжийг харах

联考版-v3.0.0优化-试评

xiaof 3 жил өмнө
parent
commit
add62077d3
26 өөрчлөгдсөн 164 нэмэгдсэн , 435 устгасан
  1. 0 1
      sql/msyj-local-v3.0.0-last.sql
  2. 33 35
      stmms-ms-admin/src/main/java/cn/com/qmth/stmms/ms/admin/api/QualityAnalyseController.java
  3. 2 3
      stmms-ms-admin/src/main/java/cn/com/qmth/stmms/ms/admin/api/StudentApi.java
  4. 1 1
      stmms-ms-admin/src/main/java/cn/com/qmth/stmms/ms/admin/exporter/ScoreExporter.java
  5. 10 14
      stmms-ms-admin/src/main/java/cn/com/qmth/stmms/ms/admin/service/DataUploadService.java
  6. 5 7
      stmms-ms-admin/src/main/java/cn/com/qmth/stmms/ms/admin/service/TrialService.java
  7. 1 1
      stmms-ms-admin/src/main/java/cn/com/qmth/stmms/ms/admin/service/WorkService.java
  8. 8 8
      stmms-ms-collect/src/main/java/cn/com/qmth/stmms/ms/collect/api/CollectApi.java
  9. 3 3
      stmms-ms-collect/src/main/java/cn/com/qmth/stmms/ms/collect/util/RotateTask.java
  10. 1 14
      stmms-ms-core/src/main/java/cn/com/qmth/stmms/ms/core/domain/Student.java
  11. 27 100
      stmms-ms-core/src/main/java/cn/com/qmth/stmms/ms/core/repository/MarkTaskRepo.java
  12. 28 186
      stmms-ms-core/src/main/java/cn/com/qmth/stmms/ms/core/repository/PaperRepo.java
  13. 3 22
      stmms-ms-core/src/main/java/cn/com/qmth/stmms/ms/core/repository/StudentRepo.java
  14. 1 2
      stmms-ms-core/src/main/java/cn/com/qmth/stmms/ms/core/specification/StudentSpecification.java
  15. 0 1
      stmms-ms-main/src/test/java/BatchCreateDataTest.java
  16. 11 9
      stmms-ms-marking/src/main/java/cn/com/qmth/stmms/ms/marking/api/ChangeLevelApi.java
  17. 1 1
      stmms-ms-marking/src/main/java/cn/com/qmth/stmms/ms/marking/api/MakrerApi.java
  18. 1 1
      stmms-ms-marking/src/main/java/cn/com/qmth/stmms/ms/marking/api/MarkSubjectApi.java
  19. 3 2
      stmms-ms-marking/src/main/java/cn/com/qmth/stmms/ms/marking/api/MarkTaskApi.java
  20. 2 1
      stmms-ms-marking/src/main/java/cn/com/qmth/stmms/ms/marking/api/PaperApi.java
  21. 1 1
      stmms-ms-marking/src/main/java/cn/com/qmth/stmms/ms/marking/assembler/ChangeLevelAssembler.java
  22. 3 3
      stmms-ms-marking/src/main/java/cn/com/qmth/stmms/ms/marking/assembler/MarkTaskAssembler.java
  23. 4 4
      stmms-ms-marking/src/main/java/cn/com/qmth/stmms/ms/marking/assembler/PaperAssembler.java
  24. 1 1
      stmms-ms-marking/src/main/java/cn/com/qmth/stmms/ms/marking/service/AssignTaskService.java
  25. 2 2
      stmms-ms-marking/src/main/java/cn/com/qmth/stmms/ms/marking/service/GroupingService.java
  26. 12 12
      stmms-ms-marking/src/main/java/cn/com/qmth/stmms/ms/marking/service/StageControlService.java

+ 0 - 1
sql/msyj-local-v3.0.0-last.sql

@@ -518,7 +518,6 @@ CREATE TABLE `student`  (
   `is_absent` bit(1) NOT NULL,
   `upload_status` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
   `source_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL,
-  `is_test` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '0' COMMENT '是否试评,0:不是,1:数据已导入,2:试评中',
   `relate_exam_number` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '关联考号',
   PRIMARY KEY (`id`) USING BTREE,
   UNIQUE INDEX `exam_number`(`exam_number`, `work_id`, `is_test`) USING BTREE,

+ 33 - 35
stmms-ms-admin/src/main/java/cn/com/qmth/stmms/ms/admin/api/QualityAnalyseController.java

@@ -4,14 +4,11 @@ import cn.com.qmth.stmms.ms.commons.utils.SqlUtil;
 import cn.com.qmth.stmms.ms.core.domain.Level;
 import cn.com.qmth.stmms.ms.core.domain.MarkLogOperType;
 import cn.com.qmth.stmms.ms.core.domain.MarkStage;
-import cn.com.qmth.stmms.ms.core.domain.Paper;
 import cn.com.qmth.stmms.ms.core.domain.task.MarkTask;
 import cn.com.qmth.stmms.ms.core.domain.user.MarkUser;
-import cn.com.qmth.stmms.ms.core.domain.user.MarkerGroupLeader;
 import cn.com.qmth.stmms.ms.core.repository.LevelRepo;
 import cn.com.qmth.stmms.ms.core.repository.MarkTaskRepo;
 import cn.com.qmth.stmms.ms.core.repository.MarkUserRepo;
-import cn.com.qmth.stmms.ms.core.repository.MarkerGroupLeaderRepo;
 import cn.com.qmth.stmms.ms.core.vo.Subject;
 import cn.com.qmth.stmms.ms.marking.service.MarkerGroupLeaderService;
 import org.apache.commons.lang.StringUtils;
@@ -37,7 +34,6 @@ import java.util.stream.Collectors;
  * @Author: wangliang
  * @Date: 2019/11/8
  */
-//@Api(tags = "质量分析报表接口controller")
 @RestController
 @RequestMapping("api/quality")
 public class QualityAnalyseController {
@@ -60,11 +56,11 @@ public class QualityAnalyseController {
     /**
      * 档位占比报表
      *
-     * @param workId
-     * @param subject
-     * @param areaCode
-     * @param startTime
-     * @param endTime
+     * @param workId    工作ID
+     * @param subject   科目
+     * @param areaCode  考区
+     * @param startTime 查询时间段(开始时间)
+     * @param endTime   查询时间段(结束时间)
      */
     @RequestMapping(value = "levelsPropReport", method = RequestMethod.GET)
     public Object levelsPropReport(
@@ -79,7 +75,7 @@ public class QualityAnalyseController {
         List<Long> markerIds = markerGroupLeaderService.listByWorkIdAndSubjectAndStageAndGroupId(workId, subject, MarkStage.LEVEL, groupId);
         String markerId = null;
         if (!CollectionUtils.isEmpty(markerIds)) {
-            markerId = markerIds.stream().map(m -> String.valueOf(m)).collect(Collectors.joining(","));
+            markerId = markerIds.stream().map(String::valueOf).collect(Collectors.joining(","));
         }
         String finalMarkerId = markerId;
         levels.forEach(l -> {
@@ -153,12 +149,11 @@ public class QualityAnalyseController {
     /**
      * 打回次数报表
      *
-     * @param workId
-     * @param subject
-     * @param areaCode
-     * @param startTime
-     * @param endTime
-     * @return
+     * @param workId    工作ID
+     * @param subject   科目
+     * @param areaCode  考区
+     * @param startTime 查询时间段(开始时间)
+     * @param endTime   查询时间段(结束时间)
      */
     @RequestMapping(value = "callbackReport", method = RequestMethod.GET)
     public List callbackReport(
@@ -169,7 +164,8 @@ public class QualityAnalyseController {
             @RequestParam(required = false) String startTime,
             @RequestParam(required = false) String endTime) {
         List list = new ArrayList();
-        List<Long> markerIds = markerGroupLeaderService.listByWorkIdAndSubjectAndStageAndGroupId(workId, subject, MarkStage.LEVEL, groupId);;
+        List<Long> markerIds = markerGroupLeaderService.listByWorkIdAndSubjectAndStageAndGroupId(workId, subject, MarkStage.LEVEL, groupId);
+        ;
         Specification<MarkTask> specification = (root, query, builder) -> {
             List<Predicate> predicates = new ArrayList<>();
             predicates.add(builder.equal(root.get("workId"), workId));
@@ -179,7 +175,7 @@ public class QualityAnalyseController {
             if (Objects.nonNull(areaCode)) {
                 predicates.add(builder.equal(root.get("paper").get("areaCode"), areaCode));
             }
-            if(!CollectionUtils.isEmpty(markerIds)){
+            if (!CollectionUtils.isEmpty(markerIds)) {
                 CriteriaBuilder.In<Object> in = builder.in(root.get("markerId"));
                 for (Long id : markerIds) {
                     in.value(id);
@@ -191,7 +187,7 @@ public class QualityAnalyseController {
         List<MarkTask> markTasks = markTaskRepo.findAll(specification);
         if (Objects.nonNull(markTasks) && markTasks.size() > 0) {
             Map<Long, MarkTask> markerMap = markTasks.stream().collect(Collectors.toMap(MarkTask::getMarkerId, Function.identity(), (dto1, dto2) -> dto1));
-            List<Long> markerIdList = markerMap.values().stream().map(i -> i.getMarkerId()).collect(Collectors.toList());
+            List<Long> markerIdList = markerMap.values().stream().map(MarkTask::getMarkerId).collect(Collectors.toList());
             Object o = StringUtils.join(markerIdList.toArray(), ",");
             String sql = new StringBuffer("select mu.login_name as userName, count(t.create_user_id) as sumCount,t.create_user_id as userId from mark_log t left join mark_user mu on t.create_user_id = mu.id where t.oper_type BETWEEN ").append(MarkLogOperType.SYSTEM_CALLBACK_LEVEl.getId()).append(" and ").append(MarkLogOperType.HANDLE_LEVEl.getId()).append(" and t.create_user_id in (").append(o).append(")").toString();
             if (Objects.nonNull(startTime)) {
@@ -210,11 +206,11 @@ public class QualityAnalyseController {
     /**
      * 差值和报表
      *
-     * @param workId
-     * @param subject
-     * @param areaCode
-     * @param startTime
-     * @param endTime
+     * @param workId    工作ID
+     * @param subject   科目
+     * @param areaCode  考区
+     * @param startTime 查询时间段(开始时间)
+     * @param endTime   查询时间段(结束时间)
      */
     @RequestMapping(value = "distanceReport", method = RequestMethod.GET)
     public List distanceReport(
@@ -225,7 +221,8 @@ public class QualityAnalyseController {
             @RequestParam(required = false) String startTime,
             @RequestParam(required = false) String endTime) {
         List list = new ArrayList();
-        List<Long> markerIds = markerGroupLeaderService.listByWorkIdAndSubjectAndStageAndGroupId(workId, subject, MarkStage.LEVEL, groupId);;
+        List<Long> markerIds = markerGroupLeaderService.listByWorkIdAndSubjectAndStageAndGroupId(workId, subject, MarkStage.LEVEL, groupId);
+        ;
         Specification<MarkTask> specification = (root, query, builder) -> {
             List<Predicate> predicates = new ArrayList<>();
             predicates.add(builder.equal(root.get("workId"), workId));
@@ -235,7 +232,7 @@ public class QualityAnalyseController {
             if (Objects.nonNull(areaCode)) {
                 predicates.add(builder.equal(root.get("paper").get("areaCode"), areaCode));
             }
-            if(!CollectionUtils.isEmpty(markerIds)){
+            if (!CollectionUtils.isEmpty(markerIds)) {
                 CriteriaBuilder.In<Object> in = builder.in(root.get("markerId"));
                 for (Long id : markerIds) {
                     in.value(id);
@@ -266,11 +263,11 @@ public class QualityAnalyseController {
     /**
      * 累计误差报表
      *
-     * @param workId
-     * @param subject
-     * @param areaCode
-     * @param startTime
-     * @param endTime
+     * @param workId    工作ID
+     * @param subject   科目
+     * @param areaCode  考区
+     * @param startTime 查询时间段(开始时间)
+     * @param endTime   查询时间段(结束时间)
      */
     @RequestMapping(value = "deviationReport", method = RequestMethod.GET)
     public List cumulativeReport(
@@ -281,7 +278,8 @@ public class QualityAnalyseController {
             @RequestParam(required = false) String startTime,
             @RequestParam(required = false) String endTime) {
         List list = new ArrayList();
-        List<Long> markerIds = markerGroupLeaderService.listByWorkIdAndSubjectAndStageAndGroupId(workId, subject, MarkStage.LEVEL, groupId);;
+        List<Long> markerIds = markerGroupLeaderService.listByWorkIdAndSubjectAndStageAndGroupId(workId, subject, MarkStage.LEVEL, groupId);
+        ;
         Specification<MarkTask> specification = (root, query, builder) -> {
             List<Predicate> predicates = new ArrayList<>();
             predicates.add(builder.equal(root.get("workId"), workId));
@@ -291,7 +289,7 @@ public class QualityAnalyseController {
             if (Objects.nonNull(areaCode)) {
                 predicates.add(builder.equal(root.get("paper").get("areaCode"), areaCode));
             }
-            if(!CollectionUtils.isEmpty(markerIds)){
+            if (!CollectionUtils.isEmpty(markerIds)) {
                 CriteriaBuilder.In<Object> in = builder.in(root.get("markerId"));
                 for (Long id : markerIds) {
                     in.value(id);
@@ -303,7 +301,7 @@ public class QualityAnalyseController {
         List<MarkTask> markTasks = markTaskRepo.findAll(specification);
         if (Objects.nonNull(markTasks) && markTasks.size() > 0) {
             Map<Long, MarkTask> markerMap = markTasks.stream().collect(Collectors.toMap(MarkTask::getMarkerId, Function.identity(), (dto1, dto2) -> dto1));
-            List<Long> markerIdList = markerMap.values().stream().map(i -> i.getMarkerId()).collect(Collectors.toList());
+            List<Long> markerIdList = markerMap.values().stream().map(MarkTask::getMarkerId).collect(Collectors.toList());
             Object o = StringUtils.join(markerIdList.toArray(), ",");
             String sql = new StringBuffer("select mu.login_name as userName, sum(t.oper_data_after) as sumCount,t.create_user_id as userId from mark_log t left join mark_user mu on t.create_user_id = mu.id where t.oper_type = ").append(MarkLogOperType.LEVEl_DEVIATION.getId()).append(" and t.create_user_id in (").append(o).append(")").toString();
             if (Objects.nonNull(startTime)) {
@@ -336,7 +334,7 @@ public class QualityAnalyseController {
             }
             //求差值id集合
             List<Long> distinctIdList = markerIdList.stream().filter(item -> !dataIdList.contains(item)).collect(Collectors.toList());
-            if (Objects.nonNull(distinctIdList) && distinctIdList.size() > 0) {
+            if (distinctIdList.size() > 0) {
                 for (Long l : distinctIdList) {
                     Map map = new HashMap();
                     MarkUser markUser = markUserRepo.findOne(markerMap.get(l).getMarkerId());

+ 2 - 3
stmms-ms-admin/src/main/java/cn/com/qmth/stmms/ms/admin/api/StudentApi.java

@@ -72,7 +72,7 @@ public class StudentApi {
      */
     @RequestMapping(value = "get_one", method = RequestMethod.GET)
     public Student getOneByExamNumber(@RequestParam("workId") Long workId, @RequestParam("examNumber") String examNumber) {
-        return studentRepo.findByWorkIdAndExamNumberAndTest(workId, examNumber, String.valueOf(TrialEnum.DEFAULT.getId()));
+        return studentRepo.findByWorkIdAndExamNumber(workId, examNumber);
     }
 
     /**
@@ -126,10 +126,9 @@ public class StudentApi {
         try {
             //进入打分阶段,不能添加
             List<MarkSubject> markSubjects= markSubjectRepo.findAllByWorkIdAndStage(domain.getWorkId(), MarkStage.SCORE);
-            if(!markSubjects.isEmpty() && markSubjects.size() > 0){
+            if(!markSubjects.isEmpty()){
                 throw new RuntimeException("进入打分阶段,不能添加考生");
             }
-            domain.setTest("0");
             //关联考号默认为考号
             domain.setRelateExamNumber(domain.getExamNumber());
             Student student = studentRepo.findByWorkIdAndAreaCodeAndExamNumber(domain.getWorkId(), domain.getAreaCode(), domain.getExamNumber());

+ 1 - 1
stmms-ms-admin/src/main/java/cn/com/qmth/stmms/ms/admin/exporter/ScoreExporter.java

@@ -117,7 +117,7 @@ public class ScoreExporter {
     @RequestMapping(method = RequestMethod.GET)
     public void export2(@RequestParam Long workId, HttpServletResponse response) {
         List<ScoreDTO> scoreDTOs = new ArrayList<>();
-        List<Student> students = studentRepo.findByWorkIdAndTest(workId, String.valueOf(TrialEnum.DEFAULT.getId()));
+        List<Student> students = studentRepo.findByWorkId(workId);
         for (Student student : students) {
             ScoreDTO scoreDTO = new ScoreDTO();
             scoreDTO.setSourceName(student.getSourceName());

+ 10 - 14
stmms-ms-admin/src/main/java/cn/com/qmth/stmms/ms/admin/service/DataUploadService.java

@@ -198,8 +198,7 @@ public class DataUploadService {
                 sheetIn = new FileInputStream(savePath + File.separator + student.getExamNumber() + ".jpg");
                 slicein = new FileInputStream(thumbFileName);
             }
-            Paper exist = paperRepo.findByWorkIdAndSubjectAndExamNumberAndTest(student.getWorkId(), subject,
-                    student.getExamNumber(), TrialEnum.DEFAULT.getId());
+            Paper exist = paperRepo.findByWorkIdAndSubjectAndExamNumberAndTest(student.getWorkId(), subject, student.getExamNumber(), TrialEnum.DEFAULT.getId());
             String sheetMD5 = DigestUtils.md5Hex(sheetIn);
             String sliceMD5 = DigestUtils.md5Hex(slicein);
             sheetIn.close();
@@ -288,10 +287,10 @@ public class DataUploadService {
                             examQuestionRepo.save(question);
                         }
                     }
-                    Student student = studentRepo.findByWorkIdAndExamNumberAndTest(workId, dto.getExamNumber(), String.valueOf(TrialEnum.DEFAULT.getId()));
+                    Student student = studentRepo.findByWorkIdAndExamNumber(workId, dto.getExamNumber());
                     if (student == null && !isAbsent) {
                         student = new Student(dto.getName(), dto.getExamNumber(), dto.getAreaName(), dto.getAreaCode(),
-                                workId, dto.getExamRoom(), dto.getSourceName(), String.valueOf(TrialEnum.DEFAULT.getId()), dto.getSchool());
+                                workId, dto.getExamRoom(), dto.getSourceName(), dto.getSchool());
                         if (imageConfig.isCustomSubject()) {
                             student.setUploadStatus("CUSTOM:0");
                         }
@@ -408,8 +407,6 @@ public class DataUploadService {
         //更新科目
         markSubject.setTest(TrialEnum.INIT.getId());
         markSubjectRepo.save(markSubject);
-        // 更新学生试评状态
-        studentRepo.updateTestByWorkId(workId, String.valueOf(TrialEnum.INIT.getId()), String.valueOf(TrialEnum.DEFAULT.getId()));
         // 更新试卷试评状态
         paperRepo.updateTestByWorkId(workId, TrialEnum.INIT.getId(), TrialEnum.DEFAULT.getId());
 
@@ -421,7 +418,7 @@ public class DataUploadService {
 
         ExcelReader excelReader = new ExcelReader(StudentDTO.class);
 
-        List<Student> studentList = new ArrayList<>();
+//        List<Student> studentList = new ArrayList<>();
         List<Paper> paperList = new ArrayList<>();
 
         List<ExcelError> excelErrors = excelReader.reader(inputStream, obj -> {
@@ -431,8 +428,7 @@ public class DataUploadService {
                 if (!checkObjFieldIsNotNull(dto)) {
                     throw new RuntimeException("考生信息缺失");
                 }
-                //复制学生给试评用
-//                Student student = studentRepo.findByWorkIdAndExamNumberAndTest(workId, dto.getExamNumber(), String.valueOf(TrialEnum.DEFAULT.getId()));
+                //试评学生
                 Student student = studentMap.get(dto.getExamNumber());
                 if (student == null) {
                     return null;
@@ -450,7 +446,7 @@ public class DataUploadService {
                     return null;
                 }
 
-                studentList.add(student);
+//                studentList.add(student);
 
                 paperList.add(paper);
             } catch (Exception e) {
@@ -460,7 +456,7 @@ public class DataUploadService {
             }
             return null;
         });
-        if (!CollectionUtils.isEmpty(studentList)) {
+        /*if (!CollectionUtils.isEmpty(studentList)) {
             List<Student> data = new ArrayList<>();
             //500条提交一次
             for (Student student : studentList) {
@@ -475,7 +471,7 @@ public class DataUploadService {
             if (!data.isEmpty()) {
                 studentRepo.save(data);
             }
-        }
+        }*/
         if (!CollectionUtils.isEmpty(paperList)) {
             List<Paper> data = new ArrayList<>();
             //500条提交一次
@@ -509,7 +505,7 @@ public class DataUploadService {
      */
     @Transactional
     public void clearStudents(Long workId) {
-        Long isExist = paperRepo.countByWorkIdAndTest(workId, TrialEnum.DEFAULT.getId());
+        Long isExist = paperRepo.countByWorkId(workId);
         if (isExist > 0) {
             throw new RuntimeException("有考生已上传,无法清空");
         }
@@ -608,7 +604,7 @@ public class DataUploadService {
                     dto.setAreaCode(areaCode);
                 }
 
-                Student student = studentRepo.findByWorkIdAndExamNumberAndTest(workId, dto.getExamNumber(), String.valueOf(TrialEnum.DEFAULT.getId()));
+                Student student = studentRepo.findByWorkIdAndExamNumber(workId, dto.getExamNumber());
                 if (student == null) {
                     throw new RuntimeException("考生不存在");
                 }

+ 5 - 7
stmms-ms-admin/src/main/java/cn/com/qmth/stmms/ms/admin/service/TrialService.java

@@ -120,7 +120,6 @@ public class TrialService {
         markSubject.setTest(TrialEnum.START_TRIAL.getId());
         markSubjectRepo.save(markSubject);
 
-        studentRepo.updateTestByWorkId(workId, String.valueOf(TrialEnum.INIT.getId()), String.valueOf(TrialEnum.START_TRIAL.getId()));
         //修改试卷test
         paperRepo.updateByWorkIdAndSubjectAndTest(workId, subject, TrialEnum.INIT.getId(), TrialEnum.START_TRIAL.getId());
     }
@@ -148,10 +147,8 @@ public class TrialService {
                 });
         //2.删除该科目下所有任务数据
         markTaskRepo.deleteByWorkIdAndSubject(workId, subject);
-        //3.删除试评学生数据
-        studentRepo.updateTestByWorkId(workId, String.valueOf(TrialEnum.START_TRIAL.getId()), String.valueOf(TrialEnum.DEFAULT.getId()));
 
-        //5.更新该科目下的试卷信息(正式卷子,并删除试评卷子)
+        //3.更新该科目下的试卷信息(正式卷子,并删除试评卷子)
         List<Paper> paperList = paperRepo.findByWorkIdAndSubjectAndTest(workId, subject, TrialEnum.START_TRIAL.getId());
 
         for (Paper paper : paperList) {
@@ -162,6 +159,7 @@ public class TrialService {
             paper.setTest(TrialEnum.DEFAULT.getId());
         }
 
+        //5.更新试评状态
         if (!CollectionUtils.isEmpty(paperList)) {
             List<Paper> data = new ArrayList<>();
             //1000条提交一次
@@ -178,12 +176,12 @@ public class TrialService {
             }
         }
 
-        //7.删除分组
+        //5.删除分组
         markerGroupRepo.deleteBySubjectAndWorkId(subject, workId);
-        // 删除分组内成员
+        // 6删除分组内成员
         markerGroupLeaderRepo.deleteByWorkIdAndSubjectAndStage(workId, subject, MarkStage.LEVEL);
 
-        // 所有用户强制退出
+        // 7所有用户强制退出
         List<MarkUser> userList = markUserRepo.findByWorkIdAndSubject(workId, subject);
         userList = userList.stream().filter(m -> Role.MARKER.equals(m.getRole()) || Role.MARK_LEADER.equals(m.getRole())).collect(Collectors.toList());
         if (!CollectionUtils.isEmpty(userList)) {

+ 1 - 1
stmms-ms-admin/src/main/java/cn/com/qmth/stmms/ms/admin/service/WorkService.java

@@ -52,7 +52,7 @@ public class WorkService {
      */
     @Transactional
     public void delete(Long workId) {
-        Long paperCount = paperRepo.countByWorkIdAndTest(workId, TrialEnum.DEFAULT.getId());
+        long paperCount = paperRepo.countByWorkId(workId);
         if (paperCount > 0) {
             throw new RuntimeException("该评卷工作已有数据,不能删除");
         }

+ 8 - 8
stmms-ms-collect/src/main/java/cn/com/qmth/stmms/ms/collect/api/CollectApi.java

@@ -194,14 +194,14 @@ public class CollectApi {
             list.add(collectStuDTO);
         };
         Student student = studentRepo.findByWorkIdAndRelateExamNumber(activeWork.getId(), examNumber);
-        studentRepo.findByWorkIdAndTestAndExamRoom(activeWork.getId(), String.valueOf(TrialEnum.DEFAULT.getId()), student.getExamRoom()).forEach(consumer);
+        studentRepo.findByWorkIdAndExamRoom(activeWork.getId(), student.getExamRoom()).forEach(consumer);
         return list;
     }
 
     @RequestMapping(value = "exam/getStudent/{examNumber}", method = RequestMethod.GET)
     public CollectStuDTO getStudent(@PathVariable String examNumber) {
         Work activeWork = workRepo.findByActiveTrue();
-        Student student = studentRepo.findByWorkIdAndRelateExamNumberAndTest(activeWork.getId(), examNumber, String.valueOf(TrialEnum.DEFAULT.ordinal()));
+        Student student = studentRepo.findByWorkIdAndRelateExamNumber(activeWork.getId(), examNumber);
         if (student == null) {
             throw new RuntimeException("无该考生,请处理");
         }
@@ -241,7 +241,7 @@ public class CollectApi {
             collectStuDTO.setRoomCode(s.getExamRoom());
             list.add(collectStuDTO);
         };
-        studentRepo.findByWorkIdAndTest(activeWork.getId(), String.valueOf(TrialEnum.DEFAULT.getId())).forEach(consumer);
+        studentRepo.findByWorkId(activeWork.getId()).forEach(consumer);
         return list;
     }
 
@@ -252,7 +252,7 @@ public class CollectApi {
         Subject subject = Subject.values()[subjectId - 1];
         Work activeWork = workRepo.findByActiveTrue();
         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH-mm-ss");
-        Student student = studentRepo.findByWorkIdAndRelateExamNumberAndTest(activeWork.getId(), dto.getExamNumber(), String.valueOf(TrialEnum.DEFAULT.getId()));
+        Student student = studentRepo.findByWorkIdAndRelateExamNumber(activeWork.getId(), dto.getExamNumber());
         Paper paper = null;
         if (!dto.isAbsent()) {
             paper = dataUploadService.savePaper(student, subject, dto.isManual(), dto.getLevel(), dto.getScanUserId());
@@ -295,7 +295,7 @@ public class CollectApi {
         try {
             inputStream = file.getInputStream();
 //            inputStream = new FileInputStream(srcFile);
-            Student student = studentRepo.findByWorkIdAndRelateExamNumberAndTest(workId, fileName, String.valueOf(TrialEnum.DEFAULT.getId()));
+            Student student = studentRepo.findByWorkIdAndRelateExamNumber(workId, fileName);
             Subject subject = Subject.values()[subjectId - 1];
 
             //保存原图
@@ -368,7 +368,7 @@ public class CollectApi {
         try {
             InputStream inputStream = file.getInputStream();
 //            inputStream = new FileInputStream(srcFile);
-            Student student = studentRepo.findByWorkIdAndRelateExamNumberAndTest(workId, fileName, String.valueOf(TrialEnum.DEFAULT.getId()));
+            Student student = studentRepo.findByWorkIdAndRelateExamNumber(workId, fileName);
             Subject subject = Subject.values()[subjectId - 1];
             //保存裁切原图+文件名加密
             String imageDir = systemConfig.getImageDir() + File.separator + workId + File.separator + subject
@@ -579,7 +579,7 @@ public class CollectApi {
             throw new Exception("file文件格式只能为jpg,jpeg,png");
         }
         InputStream inputStream = file.getInputStream();
-        Student student = studentRepo.findByWorkIdAndRelateExamNumberAndTest(workId, examNumber, String.valueOf(TrialEnum.DEFAULT.getId()));
+        Student student = studentRepo.findByWorkIdAndRelateExamNumber(workId, examNumber);
         if (Objects.isNull(student)) {
             throw new Exception("准考证号与学生不匹配");
         }
@@ -701,7 +701,7 @@ public class CollectApi {
         if (Objects.nonNull(format) && !(format.equalsIgnoreCase(".jpg") || format.equalsIgnoreCase(".jpeg") || format.equalsIgnoreCase(".png"))) {
             throw new Exception("file文件格式只能为jpg,jpeg,png");
         }
-        Student student = studentRepo.findByWorkIdAndRelateExamNumberAndTest(workId, examNumber, String.valueOf(TrialEnum.DEFAULT.getId()));
+        Student student = studentRepo.findByWorkIdAndRelateExamNumber(workId, examNumber);
         if (Objects.isNull(student)) {
             throw new Exception("准考证号与学生不匹配");
         }

+ 3 - 3
stmms-ms-collect/src/main/java/cn/com/qmth/stmms/ms/collect/util/RotateTask.java

@@ -61,7 +61,7 @@ public class RotateTask implements Runnable {
             LOGGER.info("准备生成缩略和裁切旋转图:{}, paperId:{}", start, paper.getId());
             if (ParamCache.paramMap.get(paper.getWorkId()).getImageEncrypt() == 1) {
                 try {
-                    Student student = studentRepo.findByWorkIdAndExamNumberAndTest(paper.getWorkId(), paper.getExamNumber(), String.valueOf(TrialEnum.DEFAULT.ordinal()));
+                    Student student = studentRepo.findByWorkIdAndExamNumber(paper.getWorkId(), paper.getExamNumber());
                     String imageMd5 = MD5Util.getImageRuleMd5(paper.getWorkId(), paper.getSubject().ordinal(), paper.getAreaCode(), paper.getExamNumber(), student.getId());
                     thumbPath = systemConfig.getThumbDir() + File.separator + paper.getWorkId() + File.separator + paper.getSubject().toString()
                             + File.separator + paper.getAreaCode() + File.separator + imageMd5;
@@ -184,7 +184,7 @@ public class RotateTask implements Runnable {
                     imageFile.delete();
                 } else if (!imageConfig.isCustomSubject() && imageServerConfig.isAliyunOss()) {
                     String fileName = paper.getExamNumber();
-                    Student student = studentRepo.findByWorkIdAndExamNumberAndTest(paper.getWorkId(), paper.getExamNumber(), "0");
+                    Student student = studentRepo.findByWorkIdAndExamNumber(paper.getWorkId(), paper.getExamNumber());
                     if (ParamCache.paramMap.get(paper.getWorkId()).getNameRule() == 1) {
                         fileName = MD5Util.getImageRuleMd5(paper.getWorkId(), paper.getSubject().ordinal(), student.getAreaCode(), paper.getExamNumber(), student.getId());
                     }
@@ -228,7 +228,7 @@ public class RotateTask implements Runnable {
                 } else {
                     String fileName = paper.getExamNumber();
                     if (ParamCache.paramMap.get(paper.getWorkId()).getNameRule() == 1) {
-                        Student student = studentRepo.findByWorkIdAndExamNumberAndTest(paper.getWorkId(), paper.getExamNumber(), "0");
+                        Student student = studentRepo.findByWorkIdAndExamNumber(paper.getWorkId(), paper.getExamNumber());
                         fileName = MD5Util.getImageRuleMd5(paper.getWorkId(), paper.getSubject().ordinal(), student.getAreaCode(), paper.getExamNumber(), student.getId());
                     }
                     thumbPath = systemConfig.getThumbDir() + File.separator + paper.getWorkId() + File.separator + paper.getSubject().toString()

+ 1 - 14
stmms-ms-core/src/main/java/cn/com/qmth/stmms/ms/core/domain/Student.java

@@ -44,10 +44,6 @@ public class Student implements Serializable {
      */
     private String uploadStatus = "SX:0,SC:0,SM:0";
 
-    @Basic
-    @Column(name = "is_test")
-    private String test; //是否试评,1:数据已导入,2:试评中
-
     /**
      * 关联考生账号
      */
@@ -59,15 +55,7 @@ public class Student implements Serializable {
         return serialVersionUID;
     }
 
-    public String getTest() {
-        return test;
-    }
-
-    public void setTest(String test) {
-        this.test = test;
-    }
-
-    public Student(String name, String examNumber, String areaName, String areaCode, Long workId, String examRoom, String sourceName, String test, String school) {
+    public Student(String name, String examNumber, String areaName, String areaCode, Long workId, String examRoom, String sourceName, String school) {
         this.name = name;
         this.examNumber = examNumber;
         this.areaName = areaName;
@@ -75,7 +63,6 @@ public class Student implements Serializable {
         this.workId = workId;
         this.examRoom = examRoom;
         this.sourceName = sourceName;
-        this.test = test;
         this.relateExamNumber = examNumber;
         this.school = school;
     }

+ 27 - 100
stmms-ms-core/src/main/java/cn/com/qmth/stmms/ms/core/repository/MarkTaskRepo.java

@@ -21,14 +21,11 @@ public interface MarkTaskRepo extends JpaRepository<MarkTask, Long>, JpaSpecific
 
     List<MarkTask> findByWorkIdAndStageAndPaperId(Long workId, MarkStage stage, Long paperId);
 
-    List<MarkTask> findByRandomSeqNew(Long randomSeq);
-
     /**
      * 查询指定阶段试卷的评卷任务
      *
      * @param paperId 试卷id
      * @param stage   评卷阶段
-     * @return
      */
     List<MarkTask> findByPaperIdAndStage(Long paperId, MarkStage stage);
 
@@ -38,23 +35,13 @@ public interface MarkTaskRepo extends JpaRepository<MarkTask, Long>, JpaSpecific
     /**
      * 评卷员任务数量
      *
-     * @param markerId
-     * @return
+     * @param markerId 评卷员ID
      */
     long countByMarkerId(Long markerId);
 
-    @Query(value = "select count(1) from (select * from mark_task where question_id = ?1 and marker_id = ?3) m inner join paper p on m.paper_id = p.id and p.batch_no = ?2", nativeQuery = true)
-    long countByQuestionId(Long questionId, Long batchNo, Long markerId);
-
     @Query(value = "select count(1) from mark_task m where m.question_id = ?1 and m.marker_id = ?3 and m.batch_no = ?2", nativeQuery = true)
     long countByQuestionIdAndBatchNo(Long questionId, Long batchNo, Long markerId);
 
-    @Query(value = "select count(1) from mark_task m inner join paper p on m.paper_id = p.id and p.score_batch_no = ?2 where m.question_id = ?1 and m.marker_id = ?3", nativeQuery = true)
-    long countScoreByQuestionId(Long questionId, Long batchNo, Long markerId);
-
-    @Query(value = "select count(1) from mark_task m inner join paper p on m.paper_id = p.id and p.score_batch_no is not null where m.question_id = ?1 and m.marker_id = ?2", nativeQuery = true)
-    long countScoreByQuestionIdAll(Long questionId, Long markerId);
-
     @Query(value = "select count(1) from mark_task m inner join paper p on m.paper_id = p.id and p.batch_no = ?5 where m.question_id = ?1 and m.marker_id = ?2 and m.stage = ?3 and m.result = ?4 and m.is_rejected = false", nativeQuery = true)
     int countByQuestionIdAndMarkerIdAndStageAndResult(Long questionId, Long markerId, int stage, String result, Long batchNo);
 
@@ -70,9 +57,8 @@ public interface MarkTaskRepo extends JpaRepository<MarkTask, Long>, JpaSpecific
     /**
      * 查询评卷员的评卷任务
      *
-     * @param markerId
-     * @param stage
-     * @return
+     * @param markerId 评卷员ID
+     * @param stage    阶段
      */
     @Query(value = "select mt from MarkTask mt left outer join fetch mt.paper where mt.markerId = ? and mt.stage = ?")
     List<MarkTask> findByMarkerIdAndStage(Long markerId, MarkStage stage);
@@ -80,26 +66,17 @@ public interface MarkTaskRepo extends JpaRepository<MarkTask, Long>, JpaSpecific
     /**
      * 删除评卷员所有任务
      *
-     * @param subject
-     * @param stage
-     * @return
+     * @param subject 科目
+     * @param stage   阶段
      */
     Long deleteByWorkIdAndSubjectAndStage(Long workId, Subject subject, MarkStage stage);
 
-    /**
-     * 删除科目下所有任务
-     *
-     * @param workId
-     * @param subject
-     * @return
-     */
-    Long deleteByWorkIdAndSubjectAndTest(Long workId, Subject subject, int test);
-
     /**
      * 统计评卷员各试题已评数及总数(分档阶段)
      *
-     * @param markerId
-     * @return
+     * @param markerId 评卷员ID
+     * @param stageId  阶段
+     * @param test     试评状态
      */
     @Query(value = "SELECT q.`id`,q.`name`,SUM(IF(t.`result` IS NULL,1,0)),COUNT(t.question_id), q.area_code \n" +
             "FROM mark_task t LEFT OUTER JOIN exam_question q ON t.`question_id` = q.`id` LEFT  JOIN paper p ON t.paper_id = p.id WHERE " +
@@ -109,24 +86,12 @@ public interface MarkTaskRepo extends JpaRepository<MarkTask, Long>, JpaSpecific
     /**
      * 统计各评卷员各试题已评数及总数(分档阶段)
      *
-     * @param name
-     * @param stageId
-     * @param batchNo
-     * @return
-     */
-    @Query(value = "SELECT q.`id`,t.`marker_id` markerId,mu.login_name loginName,t.`marker_name` markerName,q.`name`,SUM(IF(t.`result` IS NULL,1,0)) leftCount,COUNT(t.question_id) totalCount, SUM(t.is_rejected) rejectedCount, q.area_code areaCode " +
-            "FROM mark_task t LEFT JOIN mark_user mu on t.marker_id = mu.id LEFT OUTER JOIN exam_question q ON t.`question_id` = q.`id` LEFT  JOIN paper p ON t.paper_id = p.id WHERE " +
-            "t.work_id = ? and t.subject = ? and t.stage = ? and p.is_missing = false and p.is_test = ? and p.batch_no = ? GROUP BY t.marker_id,mu.login_name, t.`marker_name` ORDER BY q.`id`,t.marker_id", nativeQuery = true)
-    List<Object[]> listGroupByQuestionAndMarkerAndBatchNo(Long workId, String name, Integer stageId, int test, Long batchNo);
-
-    /**
-     * 统计各评卷员各试题已评数及总数(分档阶段)
-     *
-     * @param subject
-     * @param stageId
-     * @param batchNo
-     * @param markers
-     * @return
+     * @param workId  工作ID
+     * @param subject 科目
+     * @param stageId 阶段
+     * @param test    试评状态
+     * @param batchNo 批次号
+     * @param markers 评卷员ID集合
      */
     @Query(value = "SELECT q.`id`,t.`marker_id` markerId,mu.login_name loginName,t.`marker_name` markerName,q.`name`,SUM(IF(t.`result` IS NULL,1,0)) leftCount,COUNT(t.question_id) totalCount, SUM(t.is_rejected) rejectedCount, q.area_code areaCode " +
             "FROM mark_task t LEFT JOIN mark_user mu on t.marker_id = mu.id LEFT OUTER JOIN exam_question q ON t.`question_id` = q.`id` LEFT  JOIN paper p ON t.paper_id = p.id WHERE " +
@@ -136,8 +101,8 @@ public interface MarkTaskRepo extends JpaRepository<MarkTask, Long>, JpaSpecific
     /**
      * 考区已评数及总数(分档阶段)
      *
-     * @param name
-     * @return
+     * @param workId 工作ID
+     * @param name   科目
      */
     @Query(value = "SELECT q.area_code areaCode, q.area_name areaName, q.`name`,SUM(IF(p.`score` IS NULL,1,0)) leftCount,COUNT(p.question_id) totalCount " +
             "FROM exam_question q LEFT  JOIN paper p ON q.id = p.question_id AND q.subject = p.subject WHERE " +
@@ -147,8 +112,9 @@ public interface MarkTaskRepo extends JpaRepository<MarkTask, Long>, JpaSpecific
     /**
      * 考区已评数及总数(分档阶段)
      *
-     * @param name
-     * @return
+     * @param workId 工作ID
+     * @param name   科目
+     * @param test   试评状态
      */
     @Query(value = "SELECT q.area_code areaCode, q.area_name areaName, q.`name`,SUM(IF(p.`level` IS NULL or (p.level is not null and p.is_active = 0),1,0)) leftCount,COUNT(p.question_id) totalCount " +
             "FROM exam_question q LEFT  JOIN paper p ON q.id = p.question_id AND q.subject = p.subject WHERE " +
@@ -158,8 +124,8 @@ public interface MarkTaskRepo extends JpaRepository<MarkTask, Long>, JpaSpecific
     /**
      * 统计评卷员各试题已评数及总数(分档阶段)
      *
-     * @param markerId
-     * @return
+     * @param markerId 评卷员ID
+     * @param stageId  阶段
      */
     @Query(value = "SELECT q.`id`,q.`name`,SUM(IF(t.`result` IS NULL,1,0)),COUNT(t.question_id), q.area_code \n" +
             "FROM mark_task t LEFT OUTER JOIN exam_question q ON t.`question_id` = q.`id` LEFT  JOIN paper p ON t.paper_id = p.id WHERE " +
@@ -169,17 +135,11 @@ public interface MarkTaskRepo extends JpaRepository<MarkTask, Long>, JpaSpecific
     /**
      * 统计各评卷员各试题已评数及总数(分档阶段)
      *
-     * @return
-     */
-    @Query(value = "SELECT q.`id`,t.`marker_id` markerId,mu.login_name loginName,t.`marker_name` markerName,q.`name`,SUM(IF(t.`result` IS NULL,1,0)) leftCount,COUNT(t.question_id) totalCount,SUM(t.is_rejected) rejectedCount, q.area_code areaCode " +
-            "FROM mark_task t LEFT JOIN mark_user mu on t.marker_id = mu.id LEFT OUTER JOIN exam_question q ON t.`question_id` = q.`id` LEFT  JOIN paper p ON t.paper_id = p.id WHERE " +
-            "t.work_id = ? and t.subject = ? and t.stage = ? and p.score_batch_no = ? and p.is_missing = false GROUP BY t.marker_id,mu.login_name, t.`marker_name` ORDER BY q.`id`, t.`marker_id`", nativeQuery = true)
-    List<Object[]> listGroupByQuestionAndMarkerAndScoreBatchNo(Long workId, String name, Integer stageId, Long batchNo);
-
-    /**
-     * 统计各评卷员各试题已评数及总数(分档阶段)
-     *
-     * @return
+     * @param workId  工作ID
+     * @param subject 科目
+     * @param stageId 阶段
+     * @param batchNo 批次号
+     * @param markers 评卷员ID集合
      */
     @Query(value = "SELECT q.`id`,t.`marker_id` markerId,mu.login_name loginName,t.`marker_name` markerName,q.`name`,SUM(IF(t.`result` IS NULL,1,0)) leftCount,COUNT(t.question_id) totalCount,SUM(t.is_rejected) rejectedCount, q.area_code areaCode " +
             "FROM mark_task t LEFT JOIN mark_user mu on t.marker_id = mu.id LEFT OUTER JOIN exam_question q ON t.`question_id` = q.`id` LEFT  JOIN paper p ON t.paper_id = p.id WHERE " +
@@ -189,8 +149,7 @@ public interface MarkTaskRepo extends JpaRepository<MarkTask, Long>, JpaSpecific
     /**
      * 统计指定试卷的所有任务数量
      *
-     * @param id
-     * @return
+     * @param id 试卷ID
      */
     Long countByPaperId(Long id);
 
@@ -200,30 +159,12 @@ public interface MarkTaskRepo extends JpaRepository<MarkTask, Long>, JpaSpecific
             "WHERE t.workId = ?1 and t.subject = ?2 and t.markerId = ?3 and t.stage = ?4 and t.questionId = ?5 ")
     Integer findRandomSeqByWorkIdAndSubjectAndMarkerIdAndStageAndQuestionId(Long workId, Subject subject, Long markerId, MarkStage stage, Long questionId);
 
-    @Query(value = "SELECT count(1) from mark_task m inner join (select * from paper where batch_no = ?5 and is_missing = ?4 and is_rejected = false) p on m.paper_id = p.id where m.question_id = ?1 and m.marker_id = ?2 and m.stage = ?3 and m.result is null", nativeQuery = true)
-    int countByQuestionIdAndMarkerIdAndStageAndResultIsNullAndIsMissing(Long questionId, Long markerId, int stage, boolean isMissing, Long batchNo);
-
     @Query(value = "SELECT count(1) from mark_task m where m.question_id = ?1 and m.marker_id = ?2 and m.stage = ?3 and m.result is null and m.batch_no = ?4 and m.is_rejected = false", nativeQuery = true)
     int countByQuestionIdAndMarkerIdAndStageAndResultNull(Long questionId, Long markerId, int stage, Long batchNo);
 
-    @Query(value = "SELECT count(1) from mark_task m inner join paper p on m.paper_id = p.id and p.is_missing = ?4 and p.score_batch_no = ?5 and p.is_shift = 0 and p.is_shift_score = 0 where m.question_id = ?1 and m.marker_id = ?2 and m.stage = ?3 and m.result is null", nativeQuery = true)
-    int countScoreByQuestionIdAndMarkerIdAndStageAndResultIsNullAndIsMissing(Long questionId, Long markerId, int stage, boolean isMissing, Long batchNo);
-
     @Query(value = "SELECT count(1) from mark_task m inner join paper p on m.paper_id = p.id and p.is_shift = 0 and p.is_shift_score = 0 and p.score_batch_no = ?4 where m.question_id = ?1 and m.marker_id = ?2 and m.stage = ?3 and m.result is null", nativeQuery = true)
     int countScoreByQuestionIdAndMarkerIdAndStageAndResultIsNull(Long questionId, Long markerId, int stage, Long batchNo);
 
-    @Query(value = "SELECT count(1) from mark_task m inner join paper p on m.paper_id = p.id and p.is_missing = ?4 and p.score_batch_no is not null where m.question_id = ?1 and m.marker_id = ?2 and m.stage = ?3 and m.result is null and p.is_shift = 0 and p.is_shift_score = 0", nativeQuery = true)
-    int countScoreByQuestionIdAndMarkerIdAndStageAndResultIsNullAndIsMissingAll(Long questionId, Long markerId, int stage, boolean isMissing);
-
-    @Query(value = "SELECT count(1) from mark_task m inner join paper p on m.paper_id = p.id and p.is_missing = ?4 and p.batch_no = ?5 where m.question_id = ?1 and m.marker_id = ?6 and m.stage = ?2 and m.result =?3 and p.is_rejected = false", nativeQuery = true)
-    int countByQuestionIdAndStageAndResultAndIsMissing(Long questionId, int stage, String result, boolean isMissing, Long batchNo, Long markerId);
-
-    @Query(value = "SELECT count(1) from mark_task m inner join paper p on m.paper_id = p.id and p.is_missing = ?4 and p.score_batch_no = ?5 where m.question_id = ?1 and m.marker_id = ?6 and m.stage = ?2 and p.level =?3 and m.result is not null", nativeQuery = true)
-    int countScoreByQuestionIdAndStageAndResultAndIsMissing(Long questionId, int stage, String result, boolean isMissing, Long batchNo, Long markerId);
-
-    @Query(value = "SELECT count(1) from mark_task m inner join paper p on m.paper_id = p.id and p.is_missing = ?4 and p.score_batch_no is not null where m.question_id = ?1 and m.marker_id = ?5 and m.stage = ?2 and p.level =?3 and m.result is not null", nativeQuery = true)
-    int countScoreByQuestionIdAndStageAndResultAndIsMissingAll(Long questionId, int stage, String result, boolean isMissing, Long markerId);
-
     MarkTask findByPaperIdAndMarkerId(Long paperId, Long markId);
 
     List<MarkTask> findByWorkId(Long workId);
@@ -231,27 +172,15 @@ public interface MarkTaskRepo extends JpaRepository<MarkTask, Long>, JpaSpecific
     @Query(value = "SELECT count(1) from mark_task m inner join paper p on m.paper_id = p.id and p.is_missing = ?4 and p.is_shift = 1 where m.question_id = ?1 and m.marker_id = ?2 and m.stage = ?3 and m.result is null", nativeQuery = true)
     int countShiftByQuestionIdAndMarkerIdAndStageAndResultIsNullAndIsMissing(Long questionId, Long id, int ordinal, boolean b);
 
-    @Query(value = "SELECT count(1) from mark_task m inner join paper p on m.paper_id = p.id and p.is_missing = ?4 and p.is_shift = 0 and p.is_shift_score = 1 where m.question_id = ?1 and m.marker_id = ?2 and m.stage = ?3 and m.result is null", nativeQuery = true)
-    int countShiftScoreByQuestionIdAndMarkerIdAndStageAndResultIsNullAndIsMissing(Long questionId, Long id, int ordinal, boolean b);
-
     @Query(value = "SELECT count(1) from mark_task m inner join paper p on m.paper_id = p.id and p.is_shift = 0 and p.is_shift_score = 1 where m.question_id = ?1 and m.marker_id = ?2 and m.stage = ?3 and m.result is null", nativeQuery = true)
     int countShiftScoreByQuestionIdAndMarkerIdAndStageAndResultIsNull(Long questionId, Long id, int ordinal);
 
     @Query(value = "select count(1) from mark_task m inner join paper p on m.paper_id = p.id and p.batch_no is not null where m.question_id = ?1 and m.marker_id = ?2", nativeQuery = true)
     long countByQuestionIdAll(Long questionId, Long markId);
 
-    @Query(value = "SELECT count(1) from mark_task m inner join paper p on m.paper_id = p.id and p.is_missing = ?4 and p.batch_no is not null where m.question_id = ?1 and m.marker_id = ?2 and m.stage = ?3 and m.result is null and p.is_rejected = false", nativeQuery = true)
-    int countByQuestionIdAndMarkerIdAndStageAndResultIsNullAndIsMissingAll(Long questionId, Long markerId, int stage, boolean isMissing);
-
     @Query(value = "SELECT count(1) from mark_task m where m.question_id = ?1 and m.marker_id = ?2 and m.stage = ?3 and m.result is null and m.batch_no is not null and m.is_rejected = false", nativeQuery = true)
     int countByQuestionIdAndMarkerIdAndStageAndResultIsNullAll(Long questionId, Long markerId, int stage);
 
-    @Query(value = "SELECT count(1) from mark_task m inner join paper p on m.paper_id = p.id and p.is_missing = ?4 and p.batch_no is not null where m.question_id = ?1 and m.marker_id = ?5 and m.stage = ?2 and m.result =?3 and p.is_rejected = false", nativeQuery = true)
-    int countByQuestionIdAndStageAndResultAndIsMissingAll(Long questionId, int stage, String result, boolean isMissing, Long markerId);
-
-    @Query(value = "SELECT count(1) from mark_task m inner join paper p on m.paper_id = p.id and p.is_missing = ?4 and p.batch_no is not null where m.question_id = ?1 and m.marker_id = ?2 and m.stage = ?3 and p.is_rejected = true", nativeQuery = true)
-    int countByQuestionIdAndMarkerIdAndStageAndIsRejectedTrueAndIsMissing(Long questionId, Long markerId, int ordinal, boolean isMissing);
-
     @Query(value = "SELECT count(1) from mark_task m where m.question_id = ?1 and m.marker_id = ?2 and m.stage = ?3 and  m.batch_no is not null and m.is_rejected = true", nativeQuery = true)
     int countByQuestionIdAndMarkerIdAndStageAndIsRejectedTrue(Long questionId, Long markerId, int ordinal);
 
@@ -293,7 +222,5 @@ public interface MarkTaskRepo extends JpaRepository<MarkTask, Long>, JpaSpecific
     @Query("update MarkTask m set m.isMark = ?2 where m.id = ?1")
     void updateMarkTaskMarkById(Long markTaskId, Boolean isMark);
 
-    List<MarkTask> findByWorkIdAndSubjectAndStageAndMarkerIdAndIsMarkTrue(Long workId, Subject subject, MarkStage stage, Long markerId);
-
     void deleteByWorkIdAndSubject(Long workId, Subject subject);
 }

+ 28 - 186
stmms-ms-core/src/main/java/cn/com/qmth/stmms/ms/core/repository/PaperRepo.java

@@ -2,8 +2,6 @@ package cn.com.qmth.stmms.ms.core.repository;
 
 import cn.com.qmth.stmms.ms.core.domain.Paper;
 import cn.com.qmth.stmms.ms.core.vo.Subject;
-import org.springframework.data.domain.Page;
-import org.springframework.data.domain.Pageable;
 import org.springframework.data.domain.Sort;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
@@ -12,7 +10,6 @@ import org.springframework.data.jpa.repository.Query;
 import org.springframework.data.repository.query.Param;
 
 import java.util.List;
-import java.util.Map;
 
 /**
  * Created by zhengmin on 2016/9/23.
@@ -25,15 +22,8 @@ public interface PaperRepo extends JpaRepository<Paper, Long>, JpaSpecificationE
 
     List<Paper> findByWorkIdAndSubject(Long workId, Subject subject);
 
-    List<Paper> findByWorkIdAndSubjectAndIsMissing(Long workId, Subject subject, boolean isMissing);
-
     List<Paper> findByWorkIdAndSubjectAndIsMissingAndTest(Long workId, Subject subject, boolean isMissing, int test);
 
-    List<Paper> findByWorkIdAndSubjectAndIsMissingAndTestAndIdIn(Long workId, Subject subject, boolean isMissing, int test, List<Long> paperIds);
-
-    @Query(value = "select * from paper p where p.work_id = ?1 and p.subject = ?2 and p.is_missing = false and p.is_active = false limit ?3", nativeQuery = true)
-    List<Paper> findByWorkIdAndSubjectAndIsMissingAndIsActive(Long workId, Subject subject, int taskCount);
-
     List<Paper> findByWorkIdAndSubjectAndIsMissingFalseAndActiveFalseAndTestOrderByQuestionId(Long workId, Subject subject, int test);
 
     List<Paper> findByWorkIdAndQuestionIdAndSubjectAndIsMissingFalseAndActiveFalseAndTestOrderByQuestionId(Long workId, Long questionId, Subject subject, int test);
@@ -44,18 +34,13 @@ public interface PaperRepo extends JpaRepository<Paper, Long>, JpaSpecificationE
 
     List<Paper> findByWorkIdAndSubject(Long workId, Subject subject, Sort sort);
 
-    List<Paper> findByQuestionId(Long questionId, Sort sort);
-
-    Page<Paper> findByQuestionId(Long questionId, Pageable pageable);
-
     @Query(value = "select * from paper p where p.`level` = ?1 and p.is_sample = ?2 and p.is_missing = ?3 and p.subject = ?4 and p.is_test = ?5 and p.area_code = ?7 and p.work_id = ?8 order by p.updated_on desc", nativeQuery = true)
     List<Paper> findSample(String level, boolean isSample, boolean isMissing, String subject, int test, String areaCode, Long workId);
 
     /**
      * 统计各省各科试卷数量[areaCode,areaName,questionName,count]
      *
-     * @param workId
-     * @return
+     * @param workId 工作ID
      */
     @Query(value = "SELECT q.`area_code`,q.`area_name`,p.`question_name`,COUNT(*) FROM paper p LEFT OUTER JOIN exam_question q ON p.`question_id` = q.`id` WHERE p.`work_id` = ? GROUP BY p.`question_id`,p.`question_name` ORDER BY p.`question_id` ", nativeQuery = true)
     List<Object[]> countGroupByQuestion(Long workId);
@@ -63,9 +48,8 @@ public interface PaperRepo extends JpaRepository<Paper, Long>, JpaSpecificationE
     /**
      * 统计科目各试题已评数及总数(分档阶段)
      *
-     * @param workId
-     * @param subject
-     * @return
+     * @param workId  工作ID
+     * @param subject 科目
      */
     @Query(value = "SELECT p.`question_id`,p.question_name,SUM(IF(p.level IS NULL,1,0)),COUNT(p.`question_id`), MAX(p.area_code) \n" +
             "FROM paper p WHERE p.`work_id` = ? AND p.`subject` = ? AND p.`is_missing` = false AND p.`is_test` = ? " +
@@ -75,18 +59,8 @@ public interface PaperRepo extends JpaRepository<Paper, Long>, JpaSpecificationE
     /**
      * 统计科目指定试题的各档位数量
      *
-     * @param questionId
-     * @return
+     * @param questionId 考区ID
      */
-    @Query(value = "SELECT p.`level`,COUNT(*)," +
-            "SUM(IF(p.`is_rejected` = 1, 1, 0))," +
-            "SUM(IF(p.`is_arbitrated` = 1, 1, 0))" +
-            "FROM paper p " +
-            "WHERE p.`question_id` = ? and p.is_missing = false " +
-            "AND p.batch_no = ? " +
-            "GROUP BY p.`level` ORDER BY p.`level`", nativeQuery = true)
-    List<Object[]> countGroupByLevel(Long questionId, Long batchNo);
-
     @Query(value = "SELECT p.`level`,COUNT(*)," +
             "SUM(p.`is_rejected`)," +
             "SUM(p.`is_arbitrated`)" +
@@ -95,27 +69,11 @@ public interface PaperRepo extends JpaRepository<Paper, Long>, JpaSpecificationE
             "GROUP BY p.`level`", nativeQuery = true)
     List<Object[]> countGroupByLevel(Long questionId);
 
-    /**
-     * 统计科目指定试题的各档位打分数量
-     *
-     * @param questionId
-     * @return
-     */
-    @Query(value = "SELECT SUM(IF(p.`score` is null, 1, 0))," +
-            "SUM(IF(p.`is_rejected` = 1, 1, 0))," +
-            "SUM(IF(p.`is_arbitrated` = 1, 1, 0))," +
-            "SUM(IF(p.`is_shift` = 1, 1, 0))," +
-            "SUM(IF(p.`is_shift` = 0 and p.`is_shift_score` = 1, 1, 0)) " +
-            "FROM paper p " +
-            "WHERE p.`question_id` = ? and p.is_missing = false " +
-            "AND p.score_batch_no = ?", nativeQuery = true)
-    List<Object[]> countScoreGroupByLevel(Long questionId, Long batchNo);
-
     /**
      * 管理员-统计科目指定试题的各档位数量
      *
-     * @param questionId
-     * @return
+     * @param questionId 考区ID
+     * @param test       试评状态
      */
     @Query(value = "SELECT p.`level`,COUNT(*)," +
             "SUM(IF(p.`is_rejected` = 1, 1, 0))," +
@@ -130,8 +88,9 @@ public interface PaperRepo extends JpaRepository<Paper, Long>, JpaSpecificationE
     /**
      * 科组长-统计科目指定试题的各档位数量
      *
-     * @param questionId
-     * @return
+     * @param questionId 考区ID
+     * @param test       试评状态
+     * @param paperIds   试卷ID集合
      */
     @Query(value = "SELECT p.`level`,COUNT(*)," +
             "SUM(IF(p.`is_rejected` = 1, 1, 0))," +
@@ -143,70 +102,18 @@ public interface PaperRepo extends JpaRepository<Paper, Long>, JpaSpecificationE
             "GROUP BY p.`level` ORDER BY p.`level`", nativeQuery = true)
     List<Object[]> countGroupByLevelAllAndIdIn(@Param("questionId") Long questionId, @Param("test") int test, @Param("paperIds") List<Long> paperIds);
 
-    /**
-     * 统计科目指定试题的各档位数量
-     *
-     * @param questionId
-     * @return
-     */
-    @Query(value = "select * from (SELECT p.`level`,COUNT(*)," +
-            "SUM(IF(p.`is_rejected` = 1, 1, 0))," +
-            "SUM(IF(p.`is_arbitrated` = 1, 1, 0))" +
-            "FROM paper p " +
-            "WHERE p.`question_id` = ? and p.is_missing = false " +
-            "AND p.batch_no = (select max(batch_no) from paper where question_id = ?) " +
-            " AND p.level is null  " +
-            " GROUP BY p.`level`  union  " +
-            "SELECT p.`level`,COUNT(*)," +
-            "SUM(IF(p.`is_rejected` = 1, 1, 0))," +
-            "SUM(IF(p.`is_arbitrated` = 1, 1, 0))" +
-            "FROM paper p " +
-            "WHERE p.`question_id` = ? and p.is_missing = false " +
-            " AND p.level  is not null  " +
-            " GROUP BY p.`level`) t ORDER BY t.`level`"
-            , nativeQuery = true)
-    List<Object[]> countGroupByLevelAllOther(Long questionId, Long questionId1, Long questionId2);
-
-    /**
-     * 统计workId各档位数量
-     *
-     * @param workId
-     * @return
-     */
-    @Query(value = "SELECT p.`level`,COUNT(*)," +
-            "SUM(IF(p.`is_rejected` = 1, 1, 0))," +
-            "SUM(IF(p.`is_arbitrated` = 1, 1, 0))" +
-            "FROM paper p " +
-            "WHERE p.`work_id` = ? " +
-            "GROUP BY p.`level` ORDER BY p.`level`", nativeQuery = true)
-    List<Object[]> countGroupByLevelAndWorkId(Long workId);
-
     /**
      * 统计科目各试题已评数及总数(打分阶段)
      *
-     * @param workId
-     * @return
+     * @param workId 工作Id
      */
     @Query(value = "SELECT p.`question_id`,p.question_name,SUM(IF(p.score IS NULL,1,0)),COUNT(p.`question_id`) ,MAX(p.area_code) \n" +
             "FROM paper p WHERE p.`work_id` = ? AND p.`subject` = ? AND p.is_missing = false " +
             "GROUP BY p.`question_id` ,p.question_name ORDER BY p.`question_id`", nativeQuery = true)
     List<Object[]> countGroupByQuestionForScore(Long workId, String string);
 
-    /**
-     * 统计科目未分档的试卷数
-     *
-     * @param workId
-     * @param subject
-     * @return
-     */
-    Long countByWorkIdAndSubjectAndLevelIsNull(Long workId, Subject subject);
-
-    Long countByWorkIdAndSubjectAndTestAndLevelIsNull(Long workId, Subject subject, int test);
-
     long countByWorkIdAndScoreIsNull(Long workId);
 
-    Long countByWorkIdAndTest(Long workId, int test);
-
     long countByWorkIdAndQuestionId(Long workId, Long questionId);
 
     long countByWorkIdAndQuestionIdAndIdIn(Long workId, Long questionId, List<Long> paperIds);
@@ -216,59 +123,47 @@ public interface PaperRepo extends JpaRepository<Paper, Long>, JpaSpecificationE
     /**
      * 统计同一个考生的paper数量
      *
-     * @param workId
-     * @param examNumber
-     * @return
+     * @param workId     工作ID
+     * @param examNumber 准考证号
      */
     Long countByWorkIdAndExamNumber(Long workId, String examNumber);
 
     /**
      * 查询指定试卷
      *
-     * @param workId
-     * @param subject
-     * @param examNumber
-     * @return
+     * @param workId     工作ID
+     * @param subject    科目
+     * @param examNumber 准考证号
      */
     Paper findByWorkIdAndSubjectAndExamNumber(Long workId, Subject subject, String examNumber);
 
-    Paper findByWorkIdAndSubjectAndExamNumberAndAreaCodeAndTest(Long workId, Subject subject, String examNumber, String areaCode, int test);
-
     /**
      * 根据条件查询指定试卷
      *
-     * @param workId
-     * @param subject
-     * @param examNumber
-     * @param test
-     * @return
+     * @param workId     工作ID
+     * @param subject    科目
+     * @param examNumber 准考证号
+     * @param test       试评状态
      */
     Paper findByWorkIdAndSubjectAndExamNumberAndTest(Long workId, Subject subject, String examNumber, int test);
 
     /**
      * 查询同一个考生的paper
      *
-     * @param workId
-     * @param examNumber
-     * @return
+     * @param workId     工作ID
+     * @param examNumber 准考证号
      */
     List<Paper> findByWorkIdAndExamNumber(Long workId, String examNumber);
 
-    List<Paper> findByWorkIdAndExamNumberAndTest(Long workId, String examNumber, String test);
-
     /**
-     * @param workId
-     * @param secretNumber
-     * @return
+     * @param workId       工作ID
+     * @param secretNumber 密号
      */
     List<Paper> findByWorkIdAndSecretNumber(Long workId, String secretNumber);
 
-    List<Paper> findByWorkIdAndExamNumberIn(Long workId, List<String> examNumbers);
-
     @Query(value = "select p from Paper p where p.score >= ?1 or p.score <= ?2")
     List<Paper> findByScoreRange(Double highScore, Double lowScore);
 
-    //@Query(value = "SELECT p.`exam_number`,p.`student_name`,p.question_id,GROUP_CONCAT(score  ORDER BY p.`subject`) FROM paper p WHERE p.`work_id` = ? GROUP BY p.exam_number,p.`student_name`", nativeQuery = true)
     @Query(value = "SELECT p.`exam_number`,p.`student_name`,p.question_id, p.source_name, GROUP_CONCAT(if(isnull(p.inspect_score),p.score,p.inspect_score)  ORDER BY p.`subject`) FROM paper p WHERE p.`work_id` = ? GROUP BY p.exam_number,p.`student_name` , p.source_name", nativeQuery = true)
     List<Object[]> findScores(Long workId);
 
@@ -277,29 +172,16 @@ public interface PaperRepo extends JpaRepository<Paper, Long>, JpaSpecificationE
     /**
      * 根据条件查找paper
      *
-     * @param workId
-     * @param subject
-     * @param test
-     * @return
+     * @param workId  工作ID
+     * @param subject 科目
+     * @param test    试评状态
      */
     List<Paper> findByWorkIdAndSubjectAndTest(Long workId, Subject subject, int test);
 
-    @Modifying
-    @Query(nativeQuery = true, value = "update paper set inspect_range = null where inspect_range = :inspectRange")
-    void resetInspectRange(@Param("inspectRange") Long inspectRange);
-
-
-    @Modifying
-    @Query(value = "update Paper p set p.inspectRange = ?1 where p.examNumber in ?2")
-    void markInspectRange(Long inspectRange, List<String> examNumbers);
-
     @Modifying
     @Query(value = "update Paper p set p.test = ?4 where p.workId = ?1 and p.subject = ?2 and p.test = ?3")
     void updateByWorkIdAndSubjectAndTest(Long workId, Subject subject, int oldTest, int newTest);
 
-
-    long countByWorkIdAndSubjectAndIsSampleIsTrue(Long workId, Subject subject);
-
     long countByWorkIdAndSubjectAndLevel(Long workId, Subject subject, String code);
 
     long countByWorkIdAndSubjectAndLevelAndIdIn(Long workId, Subject subject, String code, List<Long> finalPaperIds);
@@ -312,14 +194,10 @@ public interface PaperRepo extends JpaRepository<Paper, Long>, JpaSpecificationE
 
     long countByWorkIdAndSubjectAndQuestionId(Long workId, Subject subject, Long id);
 
-    void deleteByWorkIdAndSubjectAndTest(Long workId, Subject subject, int test);
-
     int countByWorkIdAndSubjectAndIsMissingFalseAndTest(Long workId, Subject subject, int test);
 
     int countByWorkIdAndSubjectAndLevelIsNullAndIsMissingFalseAndActiveTrueAndBatchNoNotNullAndTest(Long workId, Subject subject, int test);
 
-    int countByWorkIdAndQuestionIdAndSubjectAndLevelIsNullAndIsMissingFalseAndTest(Long workId, Long questionId, Subject subject, int test);
-
     int countByWorkIdAndSubjectAndIsMissingFalseAndActiveFalseAndBatchNoIsNullAndTest(Long workId, Subject subject, int test);
 
     int countByWorkIdAndQuestionIdAndSubjectAndIsMissingFalseAndActiveFalseAndBatchNoIsNullAndTest(Long workId, Long questionId, Subject subject, int test);
@@ -329,15 +207,11 @@ public interface PaperRepo extends JpaRepository<Paper, Long>, JpaSpecificationE
     @Query("select max(p.batchNo) from Paper p where p.questionId = ?1")
     Long findByQuestionId(Long questionId);
 
-    List<Paper> findByworkIdAndSubjectAndAreaCode(Long workId, Subject subject, String areaCode);
-
     int countByWorkIdAndSubjectAndLevelNotNullAndIsMissingFalseAndActiveTrueAndTestAndQuestionId(Long workId, Subject subject, int test, Long questionId);
 
     int countByWorkIdAndSubjectAndIsMissingFalseAndTestAndQuestionId(Long workId, Subject subject, int test, Long questionId);
 
-    List<Paper> findByworkIdAndSubjectAndQuestionIdAndIsMissingAndTest(Long workId, Subject subject, Long questionId, boolean missing, int test);
-
-    List<Paper> findByworkIdAndSubjectAndQuestionIdAndIsMissingAndTestAndIdIn(Long workId, Subject subject, Long questionId, boolean missing, int test, List<Long> paperIds);
+    List<Paper> findByWorkIdAndSubjectAndQuestionIdAndIsMissingAndTest(Long workId, Subject subject, Long questionId, boolean missing, int test);
 
     List<Paper> findByWorkIdAndSubjectAndIsMissingFalseAndActiveTrueAndScoreBatchNoIsNull(Long workId, Subject subject, Sort sort);
 
@@ -354,18 +228,6 @@ public interface PaperRepo extends JpaRepository<Paper, Long>, JpaSpecificationE
 
     List<Paper> findByWorkIdAndSubjectAndIsOneClickTrue(Long workId, Subject subject);
 
-    @Query("select count(p) from Paper p where p.workId = ?1 and p.subject = ?2 and p.isMissing = false and (p.test = ?3 or p.test = ?4) and p.questionId = ?5")
-    int countByWorkIdAndSubjectAndIsMissingFalseAndTestOrTestAndQuestionId(Long workId, Subject subject, int i, int i1, Long id);
-
-    @Query("select count(p) from Paper p where p.workId = ?1 and p.subject = ?2 and p.isMissing = false and (p.test = ?3 or p.test = ?4)")
-    int countByWorkIdAndSubjectAndIsMissingFalseAndTestOrTest(Long workId, Subject subject, int i, int i1);
-
-    @Query("select p from Paper p where p.workId = ?1 and p.subject = ?2 and p.isMissing = false and p.active = false and (p.test = ?3 or p.test = ?4) order by p.questionId")
-    List<Paper> findByWorkIdAndSubjectAndIsMissingFalseAndActiveFalseAndTestOrTestOrderByQuestionId(Long workId, Subject subject, int id, int id1);
-
-    @Query("select p from Paper p where p.workId = ?1 and p.subject = ?2 and p.questionId = ?3 and p.isMissing = ?4 and (p.test = ?5 or p.test = ?6)")
-    List<Paper> findByworkIdAndSubjectAndQuestionIdAndIsMissingAndTestOrTest(Long workId, Subject subject, Long questionId, boolean b, int id, int id1);
-
     @Query(value = "SELECT p.`score`,SUM(IF(p.`is_shift` = 0, 1, 0))," +
             "SUM(IF(p.`is_rejected` = 1, 1, 0))," +
             "SUM(IF(p.`is_arbitrated` = 1, 1, 0))," +
@@ -384,22 +246,11 @@ public interface PaperRepo extends JpaRepository<Paper, Long>, JpaSpecificationE
 
     int countByWorkIdAndSubjectAndQuestionIdAndLevelAndScoreNotNullAndIdIn(Long workId, Subject subject, Long questionId, String valueOf, List<Long> paperIds);
 
-    List<Paper> findByWorkIdAndQuestionIdAndSubjectAndIsMissingFalseAndActiveTrueAndScoreBatchNoIsNull(Long workId, Long questionId0, Subject subject, Sort sort);
-
-    @Query("select max(p.batchNo) from Paper p where p.workId = ?1")
-    Long findMaxBatchNoByWorkId(Long workId);
-
-    @Query("select max(p.scoreBatchNo) from Paper p where p.workId = ?1")
-    Long findMaxScoreBatchNoByWorkId(Long workId);
-
     List<Paper> findByWorkIdAndQuestionIdAndSubjectAndLevelAndIsMissingFalseAndActiveTrueAndScoreBatchNoIsNull(Long workId, Long questionId0, Subject subject, String code, Sort sort);
 
     @Query("select max(p.batchNo) from Paper p where p.workId = ?1 and p.subject = ?2")
     Long findMaxBatchNoByWorkIdAndSubject(Long workId, Subject subject);
 
-    @Query("select max(p.batchNo) from Paper p where p.workId = ?1 and p.subject = ?2 and p.id in ?3")
-    Long findMaxBatchNoByWorkIdAndSubjectAndIdIn(Long workId, Subject subject, List<Long> paperIds);
-
     @Query(value = "select cast(p.batch_no as char) from paper p where p.work_id = ?1 and p.subject = ?2 order by p.batch_no desc limit 1", nativeQuery = true)
     List<Object> findBatchNoByWorkIdAndSubject(Long workId, String subject);
 
@@ -409,7 +260,7 @@ public interface PaperRepo extends JpaRepository<Paper, Long>, JpaSpecificationE
     @Query(value = "select cast(p.score_batch_no as char) from paper p where p.work_id = ?1 and p.subject = ?2 order by score_batch_no desc limit 1", nativeQuery = true)
     List<Object> findScoreBatchNoByWorkIdAndSubject(Long workId, String subject);
 
-    List<Paper> findByworkIdAndSubjectAndQuestionIdAndIsMissingAndTestAndLevelIsNull(Long workId, Subject valueOf, Long questionId, boolean b, int ordinal);
+    List<Paper> findByWorkIdAndSubjectAndQuestionIdAndIsMissingAndTestAndLevelIsNull(Long workId, Subject valueOf, Long questionId, boolean b, int ordinal);
 
     long countByWorkIdAndQuestionIdAndIsMissingIsFalse(Long workId, Long questionId);
 
@@ -421,11 +272,6 @@ public interface PaperRepo extends JpaRepository<Paper, Long>, JpaSpecificationE
     @Query(value = "update paper p set p.level = case p.is_sample when true then p.level else null end, p.redo_level = null,p.sort_num = case p.is_sample when true then p.sort_num else null end, p.batch_no = null, p.is_active = false, p.is_arbitrated = false, p.is_rejected = false, p.is_tagged = false, p.mark_by_leader = false, p.is_one_click = false where p.work_id = ?1 and p.subject = ?2", nativeQuery = true)
     void updateLevelByWorkIdAndSubject(Long workId, String name);
 
-    int countByWorkIdAndSubjectAndIsArbitratedTrueAndIdIn(Long workId, Subject subject, List<Long> paperIds);
-
-    @Query("select max(p.scoreBatchNo) from Paper p where p.workId = ?1 and p.subject = ?2 and p.id in ?3")
-    Long findMaxScoreBatchNoByWorkIdAndSubjectAndIdIn(Long workId, Subject subject, List<Long> paperIds);
-
     @Query(value = "SELECT p.`score`,SUM(IF(p.`is_shift` = 0, 1, 0))," +
             "SUM(IF(p.`is_rejected` = 1, 1, 0))," +
             "SUM(IF(p.`is_arbitrated` = 1, 1, 0))," +
@@ -450,8 +296,6 @@ public interface PaperRepo extends JpaRepository<Paper, Long>, JpaSpecificationE
 
     long countByWorkIdAndQuestionIdAndIsMissingIsFalseAndTest(Long workId, Long questionId, int test);
 
-    long countByWorkIdAndSubjectAndLevelAndBatchNoNotNull(Long workId, Subject subject, String valueOf);
-
     long countByWorkIdAndSubjectAndLevelAndTestAndBatchNoNotNull(Long workId, Subject subject, String valueOf, int test);
 
     List<Paper> findByWorkIdAndSubjectAndSecretNumberAndTest(Long workId, Subject subject, String secretNumber, int id);
@@ -475,6 +319,4 @@ public interface PaperRepo extends JpaRepository<Paper, Long>, JpaSpecificationE
 
     long countByWorkId(Long workId);
 
-//    List<Paper> findByWorkIdAndSubjectOrderByLevelSortNumDesc(Long workId, Subject subject);
-
 }

+ 3 - 22
stmms-ms-core/src/main/java/cn/com/qmth/stmms/ms/core/repository/StudentRepo.java

@@ -1,14 +1,11 @@
 package cn.com.qmth.stmms.ms.core.repository;
 
 import cn.com.qmth.stmms.ms.core.domain.Student;
-import cn.com.qmth.stmms.ms.core.domain.enums.TrialEnum;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
-import org.springframework.data.jpa.repository.Modifying;
 import org.springframework.data.jpa.repository.Query;
 
 import java.util.List;
-import java.util.Map;
 
 /**
  * @author ting.yin
@@ -18,33 +15,17 @@ public interface StudentRepo extends JpaRepository<Student, Long>, JpaSpecificat
 
     Student findByWorkIdAndExamNumber(Long workId, String examNumber);
 
-    Student findByWorkIdAndExamNumberAndTest(Long workId, String examNumber, String test);
-
-    Student findByWorkIdAndRelateExamNumberAndTest(Long workId, String examNumber, String test);
+    Student findByWorkIdAndRelateExamNumber(Long workId, String examNumber);
 
     void deleteByWorkId(Long workId);
 
-    List<Student> findByWorkIdAndTest(Long workId, String test);
+    List<Student> findByWorkId(Long workId);
 
     @Query(value = "select s.exam_number, s.name, s.area_name , s.area_code, s.exam_room, s.source_name, s.school from paper p join student s on p.work_id = s.work_id and p.exam_number = s.exam_number and p.area_code = s.area_code where p.work_id = ? and p.subject = ? and p.is_missing = true", nativeQuery = true)
     List<Object[]> listMissingBySubject(Long workId, String subject);
 
-    void deleteByWorkIdAndTest(Long workId, String test);
-
-    List<Student> findByWorkIdAndTestAndExamRoom(Long workId, String test, String examRoom);
-
-    Student findByWorkIdAndRelateExamNumber(Long workId, String examNumber);
-
-//    @Query("select distinct s.areaName, s.school, s.examRoom from Student s where s.workId = ?1")
-    List<Student> findByWorkId(Long workId);
+    List<Student> findByWorkIdAndExamRoom(Long workId, String examRoom);
 
     Student findByWorkIdAndAreaCodeAndExamNumber(Long workId, String areaCode, String examNumber);
 
-    @Modifying
-    @Query("update Student s set s.test = ?3 where s.workId = ?1 and s.test = ?2")
-    void updateTestByWorkId(Long workId, String source, String dest);
-
-    @Modifying
-    @Query("update Student s set s.test = ?2 where s.id = ?1")
-    void updateTestByStudentId(Long workId, String test);
 }

+ 1 - 2
stmms-ms-core/src/main/java/cn/com/qmth/stmms/ms/core/specification/StudentSpecification.java

@@ -138,14 +138,13 @@ public class StudentSpecification extends PagingAndSortingSpecification {
         return (root, query, cb) -> {
             List<Predicate> predicates = new ArrayList<Predicate>();
             List<Predicate> listPermission1 = new ArrayList<>();
-            predicates.add(cb.equal(root.get("test"), String.valueOf(TrialEnum.DEFAULT.getId())));
             if (!StringUtils.isEmpty(getStudentName())) {
                 predicates.add(cb.like(root.get("name"), "%" + getStudentName() + "%"));
             }
             if (getWorkId() != null) {
                 predicates.add(cb.equal(root.get("workId"), getWorkId()));
             }
-            if (getAreaCode() != null && getAreaCode() != "") {
+            if (getAreaCode() != null && !Objects.equals(getAreaCode(), "")) {
                 predicates.add(cb.equal(root.get("areaCode"), getAreaCode()));
             }
             // 查漏(缺一科或者两科)

+ 0 - 1
stmms-ms-main/src/test/java/BatchCreateDataTest.java

@@ -283,7 +283,6 @@ public class BatchCreateDataTest {
             student.setUploadStatus(stringJoiner.toString());
             student.setWorkId(WORK_ID);
             student.setSourceName("湖北");
-            student.setTest("0");
             student.setRelateExamNumber(student.getExamNumber());
             students.add(student);
         }

+ 11 - 9
stmms-ms-marking/src/main/java/cn/com/qmth/stmms/ms/marking/api/ChangeLevelApi.java

@@ -1,9 +1,7 @@
 package cn.com.qmth.stmms.ms.marking.api;
 
-import cn.com.qmth.stmms.ms.commons.utils.SqlUtil;
 import cn.com.qmth.stmms.ms.commons.web.PageableDTO;
 import cn.com.qmth.stmms.ms.core.domain.*;
-import cn.com.qmth.stmms.ms.core.domain.enums.TrialEnum;
 import cn.com.qmth.stmms.ms.core.domain.task.MarkTask;
 import cn.com.qmth.stmms.ms.core.domain.user.MarkUser;
 import cn.com.qmth.stmms.ms.core.repository.*;
@@ -21,6 +19,7 @@ import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.StringUtils;
 import org.springframework.web.bind.annotation.*;
 
+import javax.annotation.Resource;
 import javax.persistence.criteria.CriteriaBuilder;
 import javax.persistence.criteria.Predicate;
 import java.util.ArrayList;
@@ -57,14 +56,16 @@ public class ChangeLevelApi {
     @Autowired
     MarkUserRepo markUserRepo;
 
+    @Resource
+    MarkSubjectRepo markSubjectRepo;
+
     /**
      * 查询改档列表
      *
-     * @param workId
-     * @param questionId
-     * @param subject
-     * @param status
-     * @return
+     * @param workId     工作ID
+     * @param questionId 考区ID
+     * @param subject    科目
+     * @param status     状态
      */
     @RequestMapping(value = "/list", method = RequestMethod.GET)
     public PageableDTO changeLevel(@RequestParam(required = false) Long workId,
@@ -73,6 +74,7 @@ public class ChangeLevelApi {
                                    @RequestParam(required = false) String status,
                                    @RequestParam(defaultValue = "0") String type,
                                    Pageable pageable) {
+        MarkSubject markSubject = markSubjectRepo.findOne(workId + "-" + subject);
         List<ChangeLevelDTO> levelDTOs = new ArrayList<>();
         Specification<Paper> specification = (root, query, builder) -> {
             List<Predicate> predicates = new ArrayList<>();
@@ -82,7 +84,7 @@ public class ChangeLevelApi {
             if (!StringUtils.isEmpty(questionId)) {
                 List<Paper> papers;
                 if ("1".equals(type)) {
-                    papers = paperRepo.findByworkIdAndSubjectAndQuestionIdAndIsMissingAndTest(workId, Subject.valueOf(subject), questionId, false, TrialEnum.DEFAULT.ordinal());
+                    papers = paperRepo.findByWorkIdAndSubjectAndQuestionIdAndIsMissingAndTest(workId, Subject.valueOf(subject), questionId, false, markSubject.getTest());
                     if (papers != null && papers.size() > 0) {
                         CriteriaBuilder.In<Object> in = builder.in(root.get("paperId"));
                         for (Paper paper : papers) {
@@ -91,7 +93,7 @@ public class ChangeLevelApi {
                         predicates.add(builder.and(builder.and(in)));
                     }
                 } else {
-                    papers = paperRepo.findByworkIdAndSubjectAndQuestionIdAndIsMissingAndTestAndLevelIsNull(workId, Subject.valueOf(subject), questionId, false, TrialEnum.DEFAULT.ordinal());
+                    papers = paperRepo.findByWorkIdAndSubjectAndQuestionIdAndIsMissingAndTestAndLevelIsNull(workId, Subject.valueOf(subject), questionId, false, markSubject.getTest());
                     if (papers != null && papers.size() > 0) {
                         CriteriaBuilder.In<Object> in = builder.in(root.get("paperId"));
                         for (Paper paper : papers) {

+ 1 - 1
stmms-ms-marking/src/main/java/cn/com/qmth/stmms/ms/marking/api/MakrerApi.java

@@ -602,7 +602,7 @@ public class MakrerApi {
 
         //总体进度
         if (markSubject.getStage().name().equals(MarkStage.INIT.name())) {
-            List<Student> students = studentRepo.findByWorkIdAndTest(workId, String.valueOf(TrialEnum.DEFAULT.getId()));
+            List<Student> students = studentRepo.findByWorkId(workId);
             long stuTotalCount = students.size();
             long c = 0L;
             for (Student student : students) {

+ 1 - 1
stmms-ms-marking/src/main/java/cn/com/qmth/stmms/ms/marking/api/MarkSubjectApi.java

@@ -516,7 +516,7 @@ public class MarkSubjectApi {
      */
     @RequestMapping(value = "{markSubject}/canLevel", method = RequestMethod.GET)
     public Boolean canLevel(@PathVariable MarkSubject markSubject) {
-        int count = paperRepo.countByWorkIdAndSubjectAndLevelIsNullAndIsMissingFalseAndActiveTrueAndBatchNoNotNullAndTest(markSubject.getWorkId(), markSubject.getSubject(), 0);
+        int count = paperRepo.countByWorkIdAndSubjectAndLevelIsNullAndIsMissingFalseAndActiveTrueAndBatchNoNotNullAndTest(markSubject.getWorkId(), markSubject.getSubject(), markSubject.getTest());
         return count <= 0;
     }
 

+ 3 - 2
stmms-ms-marking/src/main/java/cn/com/qmth/stmms/ms/marking/api/MarkTaskApi.java

@@ -534,7 +534,7 @@ public class MarkTaskApi {
         if (questionId == null) {
             papers = paperRepo.findByWorkIdAndSubjectAndIsMissingAndTest(workId, subject, false, markSubject.getTest());
         } else {
-            papers = paperRepo.findByworkIdAndSubjectAndQuestionIdAndIsMissingAndTest(workId, subject, questionId, false, markSubject.getTest());
+            papers = paperRepo.findByWorkIdAndSubjectAndQuestionIdAndIsMissingAndTest(workId, subject, questionId, false, markSubject.getTest());
         }
 
 
@@ -597,7 +597,8 @@ public class MarkTaskApi {
     public List<MarkTask> getBySecretNumber(@RequestParam Long workId,
                                             @RequestParam Subject subject,
                                             @RequestParam String secretNumber) {
-        return markTaskRepo.findByWorkIdAndSubjectAndSecretNumberAndTest(workId, subject, secretNumber, TrialEnum.DEFAULT.getId());
+        MarkSubject markSubject = markSubjectRepo.findOne(workId + "-" + subject);
+        return markTaskRepo.findByWorkIdAndSubjectAndSecretNumberAndTest(workId, subject, secretNumber, markSubject.getTest());
     }
 
     /**

+ 2 - 1
stmms-ms-marking/src/main/java/cn/com/qmth/stmms/ms/marking/api/PaperApi.java

@@ -727,7 +727,8 @@ public class PaperApi {
     public List<Paper> getBySecretNumber(@RequestParam Long workId,
                                          @RequestParam Subject subject,
                                          @RequestParam String secretNumber) {
-        return paperRepo.findByWorkIdAndSubjectAndSecretNumberAndTest(workId, subject, secretNumber, TrialEnum.DEFAULT.getId());
+        MarkSubject markSubject = markSubjectRepo.findOne(workId + "-" + subject.name());
+        return paperRepo.findByWorkIdAndSubjectAndSecretNumberAndTest(workId, subject, secretNumber, markSubject.getTest());
     }
 
     /**

+ 1 - 1
stmms-ms-marking/src/main/java/cn/com/qmth/stmms/ms/marking/assembler/ChangeLevelAssembler.java

@@ -55,7 +55,7 @@ public class ChangeLevelAssembler {
             String areaCode = paper.getAreaCode();
             Subject subject = paper.getSubject();
             String fileName = paper.getExamNumber();
-            Student student = studentRepo.findByWorkIdAndExamNumberAndTest(workId, examNumber, String.valueOf(TrialEnum.DEFAULT.getId()));
+            Student student = studentRepo.findByWorkIdAndExamNumber(workId, examNumber);
             //0:随机码 1:考号
             if(ParamCache.paramMap.get(paper.getWorkId()).getNameRule() == 1){
 //                fileName = DigestUtils.md5Hex(paper.getSubject().name() + fileName);

+ 3 - 3
stmms-ms-marking/src/main/java/cn/com/qmth/stmms/ms/marking/assembler/MarkTaskAssembler.java

@@ -69,7 +69,7 @@ public class MarkTaskAssembler {
             String imgSrc = null;
             String thumbSrc = null;
             String fileName = paper.getExamNumber();
-            Student student = studentRepo.findByWorkIdAndExamNumberAndTest(paper.getWorkId(), paper.getExamNumber(), String.valueOf(TrialEnum.DEFAULT.getId()));
+            Student student = studentRepo.findByWorkIdAndExamNumber(paper.getWorkId(), paper.getExamNumber());
             //0:随机码 1:考号
             if(ParamCache.paramMap.get(paper.getWorkId()).getNameRule() == 1){
 //                fileName = DigestUtils.md5Hex(paper.getSubject().name() + fileName);
@@ -130,7 +130,7 @@ public class MarkTaskAssembler {
             String imgSrc = null;
             String thumbSrc = null;
             String fileName = paper.getExamNumber();
-            Student student = studentRepo.findByWorkIdAndExamNumberAndTest(paper.getWorkId(), paper.getExamNumber(), String.valueOf(TrialEnum.DEFAULT.getId()));
+            Student student = studentRepo.findByWorkIdAndExamNumber(paper.getWorkId(), paper.getExamNumber());
             //0:随机码 1:考号
             if(ParamCache.paramMap.get(paper.getWorkId()).getNameRule() == 1){
 //                fileName = DigestUtils.md5Hex(paper.getSubject().name() + fileName);
@@ -190,7 +190,7 @@ public class MarkTaskAssembler {
             String imgSrc = null;
             String thumbSrc = null;
             String fileName = paper.getExamNumber();
-            Student student = studentRepo.findByWorkIdAndExamNumberAndTest(paper.getWorkId(), paper.getExamNumber(), String.valueOf(TrialEnum.DEFAULT.getId()));
+            Student student = studentRepo.findByWorkIdAndExamNumber(paper.getWorkId(), paper.getExamNumber());
             //0:随机码 1:考号
             if(ParamCache.paramMap.get(paper.getWorkId()).getNameRule() == 1){
 //                fileName = DigestUtils.md5Hex(paper.getSubject().name() + fileName);

+ 4 - 4
stmms-ms-marking/src/main/java/cn/com/qmth/stmms/ms/marking/assembler/PaperAssembler.java

@@ -56,7 +56,7 @@ public class PaperAssembler {
         PaperDTO paperDTO = null;
         if (paper != null) {
             String fileName = paper.getExamNumber();
-            Student student = studentRepo.findByWorkIdAndExamNumberAndTest(paper.getWorkId(), paper.getExamNumber(), String.valueOf(TrialEnum.DEFAULT.getId()));
+            Student student = studentRepo.findByWorkIdAndExamNumber(paper.getWorkId(), paper.getExamNumber());
             //0:随机码 1:考号
             if (ParamCache.paramMap.get(paper.getWorkId()).getNameRule() == 1) {
                 fileName = MD5Util.getImageRuleMd5(paper.getWorkId(), paper.getSubject().ordinal(), student.getAreaCode(), student.getExamNumber(), student.getId());
@@ -140,7 +140,7 @@ public class PaperAssembler {
         PaperDTO paperDTO = null;
         if (paper != null) {
             String fileName = paper.getExamNumber();
-            Student student = studentRepo.findByWorkIdAndExamNumberAndTest(paper.getWorkId(), paper.getExamNumber(), String.valueOf(TrialEnum.DEFAULT.getId()));
+            Student student = studentRepo.findByWorkIdAndExamNumber(paper.getWorkId(), paper.getExamNumber());
             //0:随机码 1:考号
             if (ParamCache.paramMap.get(paper.getWorkId()).getNameRule() == 1) {
                 fileName = MD5Util.getImageRuleMd5(paper.getWorkId(), paper.getSubject().ordinal(), student.getAreaCode(), student.getExamNumber(), student.getId());
@@ -207,7 +207,7 @@ public class PaperAssembler {
         PaperDTO paperDTO = null;
         if (paper != null) {
             String fileName = paper.getExamNumber();
-            Student student = studentRepo.findByWorkIdAndExamNumberAndTest(paper.getWorkId(), paper.getExamNumber(), String.valueOf(TrialEnum.DEFAULT.getId()));
+            Student student = studentRepo.findByWorkIdAndExamNumber(paper.getWorkId(), paper.getExamNumber());
             //0:随机码 1:考号
             if (ParamCache.paramMap.get(paper.getWorkId()).getNameRule() == 1) {
                 fileName = MD5Util.getImageRuleMd5(paper.getWorkId(), paper.getSubject().ordinal(), student.getAreaCode(), student.getExamNumber(), student.getId());
@@ -277,7 +277,7 @@ public class PaperAssembler {
         PaperDTO paperDTO = null;
         if (paper != null) {
             String fileName = paper.getExamNumber();
-            Student student = studentRepo.findByWorkIdAndExamNumberAndTest(paper.getWorkId(), paper.getExamNumber(), String.valueOf(TrialEnum.DEFAULT.getId()));
+            Student student = studentRepo.findByWorkIdAndExamNumber(paper.getWorkId(), paper.getExamNumber());
             //0:随机码 1:考号
             if (ParamCache.paramMap.get(paper.getWorkId()).getNameRule() == 1) {
 //            fileName = DigestUtils.md5Hex(paper.getSubject().name() + fileName);

+ 1 - 1
stmms-ms-marking/src/main/java/cn/com/qmth/stmms/ms/marking/service/AssignTaskService.java

@@ -278,7 +278,7 @@ public class AssignTaskService {
             markSubjectRepo.saveAndFlush(markSubject);
         }*/
         //只有全部任务投放完成,才能删除分组
-        int count = paperRepo.countByWorkIdAndSubjectAndIsMissingFalseAndActiveFalseAndBatchNoIsNullAndTest(markSubject.getWorkId(), markSubject.getSubject(), 0);
+        int count = paperRepo.countByWorkIdAndSubjectAndIsMissingFalseAndActiveFalseAndBatchNoIsNullAndTest(markSubject.getWorkId(), markSubject.getSubject(), markSubject.getTest());
         if (MarkStage.SCORE.equals(markSubject.getStage()) && count == 0) {
             for (MarkerGroup markerGroup : markerGroups) {
                 markerGroup.setMarkers(null);

+ 2 - 2
stmms-ms-marking/src/main/java/cn/com/qmth/stmms/ms/marking/service/GroupingService.java

@@ -85,10 +85,10 @@ public class GroupingService {
     public void getTotalProgress(Long workId, MarkSubject markSubject, Map<String, Object> objectMap) {
         int successCount = 0;
         if (markSubject.getStage().name().equals(MarkStage.LEVEL.name())) {
-            successCount = paperRepo.countByWorkIdAndSubjectAndLevelNotNullAndIsMissingFalseAndActiveTrueAndTest(workId, markSubject.getSubject(), 0);
+            successCount = paperRepo.countByWorkIdAndSubjectAndLevelNotNullAndIsMissingFalseAndActiveTrueAndTest(workId, markSubject.getSubject(), markSubject.getTest());
         }
         if (markSubject.getStage().name().equals(MarkStage.SCORE.name())) {
-            successCount = paperRepo.countByWorkIdAndSubjectAndScoreNotNullAndIsMissingFalseAndActiveTrueAndTest(workId, markSubject.getSubject(), 0);
+            successCount = paperRepo.countByWorkIdAndSubjectAndScoreNotNullAndIsMissingFalseAndActiveTrueAndTest(workId, markSubject.getSubject(), markSubject.getTest());
         }
         //所有任务数(查询所有有效试卷)
         int totalCount = paperRepo.countByWorkIdAndSubjectAndIsMissingFalseAndTest(workId, markSubject.getSubject(), markSubject.getTest());

+ 12 - 12
stmms-ms-marking/src/main/java/cn/com/qmth/stmms/ms/marking/service/StageControlService.java

@@ -75,7 +75,7 @@ public class StageControlService {
         statusMap.put(markSubject.getId(), true);
         MarkStage markStage = markSubject.getStage();
         //是否还有未投放的试卷
-        int waitCount = paperRepo.countByWorkIdAndSubjectAndIsMissingFalseAndActiveFalseAndBatchNoIsNullAndTest(markSubject.getWorkId(), markSubject.getSubject(), TrialEnum.DEFAULT.getId());
+        int waitCount = paperRepo.countByWorkIdAndSubjectAndIsMissingFalseAndActiveFalseAndBatchNoIsNullAndTest(markSubject.getWorkId(), markSubject.getSubject(), markSubject.getTest());
         if (waitCount > 0 && markStage.equals(MarkStage.LEVEL)) {
             markStage = MarkStage.INIT;
         }
@@ -153,7 +153,7 @@ public class StageControlService {
 
         if (markSubject.getTest() != 1) {
             //是否有未结束的分档任务
-            int count = paperRepo.countByWorkIdAndSubjectAndLevelIsNullAndIsMissingFalseAndActiveTrueAndBatchNoNotNullAndTest(workId, subject, 0);
+            int count = paperRepo.countByWorkIdAndSubjectAndLevelIsNullAndIsMissingFalseAndActiveTrueAndBatchNoNotNullAndTest(workId, subject, markSubject.getTest());
             if (count > 0) {
                 statusMap.put(markSubject.getId(), false);
                 throw new RuntimeException("没有分档完成");
@@ -166,10 +166,10 @@ public class StageControlService {
             }
             int waitCount;
             if (Objects.isNull(questionId)) {
-                waitCount = paperRepo.countByWorkIdAndSubjectAndIsMissingFalseAndActiveFalseAndBatchNoIsNullAndTest(workId, subject, 0);
+                waitCount = paperRepo.countByWorkIdAndSubjectAndIsMissingFalseAndActiveFalseAndBatchNoIsNullAndTest(workId, subject, markSubject.getTest());
             } else {
                 Long questionId1 = Long.valueOf(questionId.toString());
-                waitCount = paperRepo.countByWorkIdAndQuestionIdAndSubjectAndIsMissingFalseAndActiveFalseAndBatchNoIsNullAndTest(workId, questionId1, subject, 0);
+                waitCount = paperRepo.countByWorkIdAndQuestionIdAndSubjectAndIsMissingFalseAndActiveFalseAndBatchNoIsNullAndTest(workId, questionId1, subject, markSubject.getTest());
             }
 
             if (waitCount == 0) {
@@ -236,7 +236,7 @@ public class StageControlService {
             statusMap.put(markSubject.getId(), false);
             throw new RuntimeException("没有设定评卷员");
         }
-        int count = paperRepo.countByWorkIdAndSubjectAndLevelIsNullAndIsMissingFalseAndActiveTrueAndBatchNoNotNullAndTest(workId, subject, 0);
+        int count = paperRepo.countByWorkIdAndSubjectAndLevelIsNullAndIsMissingFalseAndActiveTrueAndBatchNoNotNullAndTest(workId, subject, markSubject.getTest());
         if (count > 0) {
             statusMap.put(markSubject.getId(), false);
             throw new RuntimeException("没有分档完成");
@@ -350,7 +350,7 @@ public class StageControlService {
             statusMap.put(markSubject.getId(), false);
             throw new RuntimeException("没有设定评卷员");
         }
-        int count = paperRepo.countByWorkIdAndSubjectAndLevelIsNullAndIsMissingFalseAndActiveTrueAndBatchNoNotNullAndTest(workId, subject, 0);
+        int count = paperRepo.countByWorkIdAndSubjectAndLevelIsNullAndIsMissingFalseAndActiveTrueAndBatchNoNotNullAndTest(workId, subject, markSubject.getTest());
         if (count > 0) {
             statusMap.put(markSubject.getId(), false);
             throw new RuntimeException("没有分档完成");
@@ -375,7 +375,7 @@ public class StageControlService {
             statusMap.put(markSubject.getId(), false);
             throw new RuntimeException("没有设定评卷员");
         }
-        int count = paperRepo.countByWorkIdAndSubjectAndLevelIsNullAndIsMissingFalseAndActiveTrueAndBatchNoNotNullAndTest(workId, subject, 0);
+        int count = paperRepo.countByWorkIdAndSubjectAndLevelIsNullAndIsMissingFalseAndActiveTrueAndBatchNoNotNullAndTest(workId, subject, markSubject.getTest());
         if (count > 0) {
             statusMap.put(markSubject.getId(), false);
             throw new RuntimeException("没有分档完成");
@@ -574,9 +574,9 @@ public class StageControlService {
         Long workId = markSubject.getWorkId();
         Subject subject = markSubject.getSubject();
         //已评任务数
-        int successCount = paperRepo.countByWorkIdAndSubjectAndLevelNotNullAndIsMissingFalseAndActiveTrueAndTest(workId, subject, 0);
+        int successCount = paperRepo.countByWorkIdAndSubjectAndLevelNotNullAndIsMissingFalseAndActiveTrueAndTest(workId, subject, markSubject.getTest());
         //所有任务数(查询所有有效试卷)
-        int totalCount = paperRepo.countByWorkIdAndSubjectAndIsMissingFalseAndTest(workId, subject, 0);
+        int totalCount = paperRepo.countByWorkIdAndSubjectAndIsMissingFalseAndTest(workId, subject, markSubject.getTest());
 
         BigDecimal waitTotal = BigDecimal.valueOf(totalCount).subtract(BigDecimal.valueOf(successCount));
         //进度
@@ -663,11 +663,11 @@ public class StageControlService {
             list.add(areaProgressDTO);
         }
 
-        if (examQuestions != null && examQuestions.size() > 1) {
+        if (examQuestions.size() > 1) {
             //已评任务数
-            int successCount = paperRepo.countByWorkIdAndSubjectAndLevelNotNullAndIsMissingFalseAndActiveTrueAndTest(workId, subject, 0);
+            int successCount = paperRepo.countByWorkIdAndSubjectAndLevelNotNullAndIsMissingFalseAndActiveTrueAndTest(workId, subject, markSubject.getTest());
             //所有任务数(查询所有有效试卷)
-            int totalCount = paperRepo.countByWorkIdAndSubjectAndIsMissingFalseAndTest(workId, subject, 0);
+            int totalCount = paperRepo.countByWorkIdAndSubjectAndIsMissingFalseAndTest(workId, subject, markSubject.getTest());
 
             BigDecimal waitTotal = BigDecimal.valueOf(totalCount).subtract(BigDecimal.valueOf(successCount));
             //进度