Browse Source

联考版-v3.1.0-分档模块开发阶段bug修改

xiaof 2 years ago
parent
commit
cf98774015
19 changed files with 128 additions and 522 deletions
  1. 58 0
      sql/清空所有数据脚本.sql
  2. 2 4
      stmms-ms-admin/src/main/java/cn/com/qmth/stmms/ms/admin/service/DataUploadService.java
  3. 7 24
      stmms-ms-admin/src/main/java/cn/com/qmth/stmms/ms/admin/service/TrialService.java
  4. 1 24
      stmms-ms-core/src/main/java/cn/com/qmth/stmms/ms/core/domain/Paper.java
  5. 2 52
      stmms-ms-core/src/main/java/cn/com/qmth/stmms/ms/core/repository/MarkTaskLevelRepo.java
  6. 4 105
      stmms-ms-core/src/main/java/cn/com/qmth/stmms/ms/core/repository/MarkTaskRoughLevelRepo.java
  7. 0 90
      stmms-ms-core/src/main/java/cn/com/qmth/stmms/ms/core/repository/MarkTaskScoreRepo.java
  8. 9 38
      stmms-ms-core/src/main/java/cn/com/qmth/stmms/ms/core/repository/PaperRepo.java
  9. 0 11
      stmms-ms-core/src/main/java/cn/com/qmth/stmms/ms/core/repository/TaskPublishSettingRepo.java
  10. 1 1
      stmms-ms-log/src/main/java/cn/com/qmth/stmms/ms/log/controller/MarkLogController.java
  11. 1 1
      stmms-ms-main/src/test/java/BatchCreateDataTest.java
  12. 4 4
      stmms-ms-marking/src/main/java/cn/com/qmth/stmms/ms/marking/api/MakrerApi.java
  13. 18 5
      stmms-ms-marking/src/main/java/cn/com/qmth/stmms/ms/marking/api/MarkSubjectApi.java
  14. 1 4
      stmms-ms-marking/src/main/java/cn/com/qmth/stmms/ms/marking/service/AssignTaskService.java
  15. 2 2
      stmms-ms-marking/src/main/java/cn/com/qmth/stmms/ms/marking/service/GroupingService.java
  16. 2 10
      stmms-ms-marking/src/main/java/cn/com/qmth/stmms/ms/marking/service/MarkingLevelService.java
  17. 0 2
      stmms-ms-marking/src/main/java/cn/com/qmth/stmms/ms/marking/service/MarkingRoughLevelService.java
  18. 9 1
      stmms-ms-marking/src/main/java/cn/com/qmth/stmms/ms/marking/service/MarkingService.java
  19. 7 144
      stmms-ms-marking/src/main/java/cn/com/qmth/stmms/ms/marking/service/StageControlService.java

+ 58 - 0
sql/清空所有数据脚本.sql

@@ -0,0 +1,58 @@
+delete from attachment;
+delete from change_level;
+delete from check_data;
+delete from exam_question;
+delete from exam_score_prop;
+delete from inspect_range;
+delete from inspect_student;
+delete from inspect_task;
+delete from `level`;
+delete from mark_log;
+delete from mark_subject;
+delete from mark_task;
+delete from mark_task_job;
+delete from mark_task_level;
+delete from mark_task_rough_level;
+delete from mark_task_score;
+delete from mark_user;
+delete from marker_group;
+delete from marker_group_leader;
+delete from marker_group_student;
+delete from message_receive;
+delete from message;
+delete from paper;
+delete from param_setting;
+delete from student;
+delete from task_publish_setting;
+delete from `work`;
+
+
+
+
+alter table attachment AUTO_INCREMENT 1;
+alter table change_level AUTO_INCREMENT 1;
+alter table check_data AUTO_INCREMENT 1;
+alter table exam_question AUTO_INCREMENT 1;
+alter table exam_score_prop AUTO_INCREMENT 1;
+alter table inspect_range AUTO_INCREMENT 1;
+alter table inspect_student AUTO_INCREMENT 1;
+alter table inspect_task AUTO_INCREMENT 1;
+alter table `level` AUTO_INCREMENT 1;
+alter table mark_log AUTO_INCREMENT 1;
+-- alter table mark_subject AUTO_INCREMENT 1;
+alter table mark_task AUTO_INCREMENT 1;
+alter table mark_task_job AUTO_INCREMENT 1;
+alter table mark_task_level AUTO_INCREMENT 1;
+alter table mark_task_rough_level AUTO_INCREMENT 1;
+alter table mark_task_score AUTO_INCREMENT 1;
+alter table mark_user AUTO_INCREMENT 1;
+alter table marker_group AUTO_INCREMENT 1;
+alter table marker_group_leader AUTO_INCREMENT 1;
+alter table marker_group_student AUTO_INCREMENT 1;
+alter table message AUTO_INCREMENT 1;
+alter table message_receive AUTO_INCREMENT 1;
+alter table paper AUTO_INCREMENT 1;
+alter table param_setting AUTO_INCREMENT 1;
+alter table student AUTO_INCREMENT 1;
+alter table task_publish_setting AUTO_INCREMENT 1;
+alter table `work` AUTO_INCREMENT 1;

+ 2 - 4
stmms-ms-admin/src/main/java/cn/com/qmth/stmms/ms/admin/service/DataUploadService.java

@@ -224,7 +224,7 @@ public class DataUploadService {
             } else {
                 ExamQuestion examQuestion = examQuestionRepo.findByWorkIdAndSubjectAndAreaCode(student.getWorkId(), subject, student.getAreaCode());
                 Long random = randomUtil.getRandom(student.getWorkId(), randomMap);
-                Paper paper = new Paper(student.getWorkId(), null, subject, examQuestion, student, false, random);
+                Paper paper = new Paper(student.getWorkId(), subject, examQuestion, student, false, random);
                 paper.setSheetMD5(sheetMD5);
                 paper.setSliceMD5(sliceMD5);
                 paper.setExamRoom(student.getExamRoom());
@@ -525,7 +525,7 @@ public class DataUploadService {
         Paper paper = filterList.isEmpty() ? null : filterList.get(0);
         if (paper == null) {
             Long random = randomUtil.getRandom(student.getWorkId(), randomMap);
-            paper = new Paper(student.getWorkId(), null, subject, examQuestion, student, isManual, random);
+            paper = new Paper(student.getWorkId(), subject, examQuestion, student, isManual, random);
         }
         paper.setUploadedOn(new Date());
         paper.setManual(isManual);
@@ -535,8 +535,6 @@ public class DataUploadService {
 
         if (Objects.nonNull(level) && !"".equals(level)) {
             paper.setLevel(level);
-            //设置为已发布任务的状态
-            paper.setActive(true);
             //默认给1,与实际分档批次区分
             paper.setBatchNo(1L);
         }

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

@@ -2,7 +2,6 @@ package cn.com.qmth.stmms.ms.admin.service;
 
 import cn.com.qmth.stmms.ms.commons.utils.DbBackupUtils;
 import cn.com.qmth.stmms.ms.core.cache.CacheService;
-import cn.com.qmth.stmms.ms.core.cache.ParamCache;
 import cn.com.qmth.stmms.ms.core.domain.MarkStage;
 import cn.com.qmth.stmms.ms.core.domain.MarkSubject;
 import cn.com.qmth.stmms.ms.core.domain.Paper;
@@ -144,33 +143,25 @@ public class TrialService {
         //更新科目为初始状态并设置test为false
         MarkSubject markSubject = markSubjectRepo.findOne(workId + "-" + subject.name());
         markSubject.setTest(TrialEnum.DEFAULT.getId());
-        // 开启粗分档且当前在粗分档试评,则重置为INIT
-        // 开启粗分档且当前在细分档试评,则重置为ROUGH_LEVEL
-        // 未开启粗分档(当前只能在细分档试评),则重置为INIT
-        boolean roughLevel = ParamCache.levelConfigMap.get(String.valueOf(workId)).getRoughLevelEnable() == 1;
-        MarkStage stage = roughLevel && MarkStage.LEVEL.equals(markSubject.getStage()) ? MarkStage.ROUGH_LEVEL : MarkStage.INIT;
-        markSubject.setStage(stage);
         markSubject.setSampleCount(0);
         markSubjectRepo.save(markSubject);
         //删除该科目下所有任务数据
-        if (roughLevel && MarkStage.INIT.equals(markSubject.getStage())) {
+        if (MarkStage.ROUGH_LEVEL.equals(markSubject.getStage())) {
             markTaskRoughLevelRepo.deleteByWorkIdAndSubject(workId, subject);
-        } else {
+        } else if (MarkStage.LEVEL.equals(markSubject.getStage())) {
             markTaskLevelRepo.deleteByWorkIdAndSubject(workId, subject);
         }
 
-
         //更新该科目下的试卷信息(正式卷子,并删除试评卷子)
         List<Paper> paperList = paperRepo.findByWorkIdAndSubjectAndTest(workId, subject, TrialEnum.START_TRIAL.getId());
 
         for (Paper paper : paperList) {
             // 标准卷不清除档位
-            paper.setActive(false);
             paper.setBatchNo(null);
             // 区分粗分档和细分档
-            if (roughLevel && MarkStage.INIT.equals(markSubject.getStage())) {
+            if (MarkStage.ROUGH_LEVEL.equals(markSubject.getStage())) {
                 paper.setRoughLevel(paper.isRoughSample() ? paper.getRoughLevel() : null);
-            } else {
+            } else if (MarkStage.LEVEL.equals(markSubject.getStage())) {
                 paper.setLevel(paper.isSample() ? paper.getLevel() : null);
             }
             paper.setTest(TrialEnum.DEFAULT.getId());
@@ -194,16 +185,8 @@ public class TrialService {
         }
 
         // 删除分组,删除分组内成员
-        String backupPrefix = "";
-        if (roughLevel && MarkStage.INIT.equals(markSubject.getStage())) {
-            backupPrefix = "粗分档";
-            markerGroupRepo.deleteByWorkIdAndSubjectAndStage(workId, subject, MarkStage.ROUGH_LEVEL);
-            markerGroupLeaderRepo.deleteByWorkIdAndSubjectAndStage(workId, subject, MarkStage.ROUGH_LEVEL);
-        } else {
-            backupPrefix = "细分档";
-            markerGroupRepo.deleteByWorkIdAndSubjectAndStage(workId, subject, MarkStage.LEVEL);
-            markerGroupLeaderRepo.deleteByWorkIdAndSubjectAndStage(workId, subject, MarkStage.LEVEL);
-        }
+        markerGroupRepo.deleteByWorkIdAndSubjectAndStage(workId, subject, markSubject.getStage());
+        markerGroupLeaderRepo.deleteByWorkIdAndSubjectAndStage(workId, subject, markSubject.getStage());
 
         // 所有用户强制退出
         List<MarkUser> userList = markUserRepo.findByWorkIdAndSubject(workId, subject);
@@ -213,6 +196,6 @@ public class TrialService {
                 cacheService.deleteTokenCache(user.getId().toString());
             }
         }
-        dbBackupUtils.startBackup(workId, backupPrefix + "试评");
+        dbBackupUtils.startBackup(workId, (MarkStage.ROUGH_LEVEL.equals(markSubject.getStage()) ? "粗分档" : "细分档") + "试评");
     }
 }

+ 1 - 24
stmms-ms-core/src/main/java/cn/com/qmth/stmms/ms/core/domain/Paper.java

@@ -26,8 +26,6 @@ public class Paper implements Serializable {
 
     private String secretNumber;
 
-    private Long idx;
-
     @NotNull
     private String studentName;
 
@@ -132,10 +130,6 @@ public class Paper implements Serializable {
     @Column(name = "is_test")
     private int test; //是否试评,1:数据已导入,2:试评中
 
-    @Basic
-    @Column(name = "is_active")
-    private boolean active; //是否激活(false:不是,true:是)
-
     private Long roughBatchNo;
 
     private Long batchNo;
@@ -177,14 +171,6 @@ public class Paper implements Serializable {
         this.test = test;
     }
 
-    public boolean isActive() {
-        return active;
-    }
-
-    public void setActive(boolean active) {
-        this.active = active;
-    }
-
     public static long getSerialVersionUID() {
         return serialVersionUID;
     }
@@ -205,9 +191,8 @@ public class Paper implements Serializable {
         this.randomSeq = randomSeq;
     }
 
-    public Paper(Long workId, Long idx, Subject subject, ExamQuestion examQuestion, Student student, boolean isManual, Long randomSeq) {
+    public Paper(Long workId, Subject subject, ExamQuestion examQuestion, Student student, boolean isManual, Long randomSeq) {
         this.workId = workId;
-        this.idx = idx;
         this.studentName = student.getName();
         this.examNumber = student.getExamNumber();
         this.sourceName = student.getSourceName();
@@ -318,14 +303,6 @@ public class Paper implements Serializable {
         this.uploadedOn = uploadedOn;
     }
 
-    public Long getIdx() {
-        return idx;
-    }
-
-    public void setIdx(Long idx) {
-        this.idx = idx;
-    }
-
     public boolean isArbitrated() {
         return isArbitrated;
     }

+ 2 - 52
stmms-ms-core/src/main/java/cn/com/qmth/stmms/ms/core/repository/MarkTaskLevelRepo.java

@@ -19,8 +19,6 @@ public interface MarkTaskLevelRepo extends JpaRepository<MarkTaskLevel, Long>, J
 
     int countByMarkerIdAndPaperIdAndWorkIdAndRandomSeqNew(Long markerId, Long paperId, Long randomSeqNew, Long workId);
 
-    List<MarkTaskLevel> findByWorkIdAndStageAndPaperId(Long workId, MarkStage stage, Long paperId);
-
     /**
      * 查询指定阶段试卷的评卷任务
      *
@@ -48,19 +46,13 @@ public interface MarkTaskLevelRepo extends JpaRepository<MarkTaskLevel, Long>, J
     @Query(value = "select count(1) from mark_task_level 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 and m.stage = ?3 and m.result = ?4 and m.is_rejected = false", nativeQuery = true)
     int countByQuestionIdAndMarkerIdAndStageAndResultAll(Long questionId, Long markerId, int stage, String result);
 
-    @Query(value = "select count(1) from mark_task_level m inner join paper p on m.paper_id = p.id and p.score_batch_no = ?5 and p.level = ?4 where m.question_id = ?1 and m.marker_id = ?2 and m.stage = ?3 and m.result is not null", nativeQuery = true)
-    int countScoreByQuestionIdAndMarkerIdAndStageAndResult(Long questionId, Long markerId, int stage, String result, Long batchNo);
-
-    @Query(value = "select count(1) from mark_task_level m inner join paper p on m.paper_id = p.id and p.level = ?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 not null", nativeQuery = true)
-    int countScoreByQuestionIdAndMarkerIdAndStageAndResultAll(Long questionId, Long markerId, int stage, String result);
-
     /**
      * 查询评卷员的评卷任务
      *
      * @param markerId 评卷员ID
      * @param stage    阶段
      */
-    @Query(value = "select mt from MarkTaskLevel mt left outer join fetch mt.paper where mt.markerId = ? and mt.stage = ?")
+    @Query(value = "select mt from MarkTaskLevel mt left outer join fetch mt.paper where mt.markerId = ?1 and mt.stage = ?2")
     List<MarkTaskLevel> findByMarkerIdAndStage(Long markerId, MarkStage stage);
 
     /**
@@ -98,17 +90,6 @@ public interface MarkTaskLevelRepo extends JpaRepository<MarkTaskLevel, Long>, J
             "t.work_id = :workId and t.subject = :subject and t.stage = :stageId and p.is_missing = false and p.is_test = :test and p.batch_no = :batchNo and t.marker_id in (:markers) GROUP BY t.marker_id,mu.login_name, t.`marker_name` ORDER BY q.`id`,t.marker_id", nativeQuery = true)
     List<Object[]> listGroupByQuestionAndMarkerAndBatchNoAndMarkerId(@Param("workId") Long workId, @Param("subject") String subject, @Param("stageId") Integer stageId, @Param("test") int test, @Param("batchNo") Long batchNo, @Param("markers") List<Long> markers);
 
-    /**
-     * 考区已评数及总数(分档阶段)
-     *
-     * @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 " +
-            "p.work_id = ? and p.subject = ? and p.is_missing = false  GROUP BY q.area_code, q.area_name ORDER BY q.area_code", nativeQuery = true)
-    List<Object[]> listGroupByAreaName(Long workId, String name);
-
     /**
      * 考区已评数及总数(分档阶段)
      *
@@ -121,31 +102,6 @@ public interface MarkTaskLevelRepo extends JpaRepository<MarkTaskLevel, Long>, J
             "p.work_id = ? and p.subject = ? and p.is_missing = false and p.is_test = ?  GROUP BY q.area_code, q.area_name ORDER BY q.area_code", nativeQuery = true)
     List<Object[]> listGroupByAreaName(Long workId, String name, int test);
 
-    /**
-     * 统计评卷员各试题已评数及总数(分档阶段)
-     *
-     * @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_level t LEFT OUTER JOIN exam_question q ON t.`question_id` = q.`id` LEFT  JOIN paper p ON t.paper_id = p.id WHERE " +
-            "t.`marker_id` = ? and t.stage = ? and p.is_missing = false GROUP BY t.`question_id` ORDER BY q.`id`", nativeQuery = true)
-    List<Object[]> countGroupByQuestion(Long markerId, Integer stageId);
-
-    /**
-     * 统计各评卷员各试题已评数及总数(分档阶段)
-     *
-     * @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_level 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 = :workId and t.subject = :subject and t.stage = :stageId and p.score_batch_no = :batchNo and t.`marker_id` in (:markers) 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[]> listGroupByQuestionAndMarkerAndScoreBatchNoAndMakerId(@Param("workId") Long workId, @Param("subject") String subject, @Param("stageId") Integer stageId, @Param("batchNo") Long batchNo, @Param("markers") List<Long> markers);
-
     /**
      * 统计指定试卷的所有任务数量
      *
@@ -155,18 +111,12 @@ public interface MarkTaskLevelRepo extends JpaRepository<MarkTaskLevel, Long>, J
 
     List<MarkTaskLevel> findByWorkIdAndSecretNumber(Long workId, String secretNumber);
 
-    @Query(value = "SELECT max(t.randomSeq) FROM MarkTaskLevel t " +
-            "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_level 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_level 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);
 
-    MarkTaskLevel findByPaperIdAndMarkerId(Long paperId, Long markId);
-
     List<MarkTaskLevel> findByWorkId(Long workId);
 
     @Query(value = "SELECT count(1) from mark_task_level 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)
@@ -189,7 +139,7 @@ public interface MarkTaskLevelRepo extends JpaRepository<MarkTaskLevel, Long>, J
 
     int countByWorkIdAndSubjectAndStage(Long workId, Subject subject, MarkStage stage);
 
-    int countByWorkIdAndStageAndResultNotNull(Long id, MarkStage level);
+    int countByWorkIdAndStageAndResultNotNull(Long id, MarkStage stage);
 
     @Query(value = "select count(1) from mark_task_level m inner join paper p on m.paper_id = p.id where m.work_id = ?1 and m.subject = ?2 and m.marker_id = ?3 and m.stage = ?4 and m.result is null and p.is_shift = true", nativeQuery = true)
     int countByWorkIdAndSubjectAndMarkerIdAndStageAndShiftAndResult(Long workId, String subject, Long valueOf, int stage);

+ 4 - 105
stmms-ms-core/src/main/java/cn/com/qmth/stmms/ms/core/repository/MarkTaskRoughLevelRepo.java

@@ -1,9 +1,8 @@
 package cn.com.qmth.stmms.ms.core.repository;
 
 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.MarkTaskRoughLevel;
 import cn.com.qmth.stmms.ms.core.domain.task.MarkTaskLevel;
+import cn.com.qmth.stmms.ms.core.domain.task.MarkTaskRoughLevel;
 import cn.com.qmth.stmms.ms.core.vo.Subject;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
@@ -20,18 +19,8 @@ public interface MarkTaskRoughLevelRepo extends JpaRepository<MarkTaskRoughLevel
 
     int countByMarkerIdAndPaperIdAndWorkIdAndRandomSeqNew(Long markerId, Long paperId, Long randomSeqNew, Long workId);
 
-    List<MarkTaskLevel> findByWorkIdAndStageAndPaperId(Long workId, MarkStage stage, Long paperId);
-
-    /**
-     * 查询指定阶段试卷的评卷任务
-     *
-     * @param paperId 试卷id
-     * @param stage   评卷阶段
-     */
-    List<MarkTaskRoughLevel> findByPaperIdAndStage(Long paperId, MarkStage stage);
-
     @Query(value = "select new MarkTaskRoughLevel(m.id, m.markerId , m.markerName, m.result, m.secretNumber, m.stage) from MarkTaskRoughLevel m where m.paper.id = ?1 and m.stage = ?2")
-    List<MarkTaskRoughLevel> findByPaperIdAndStageNative(Long id, MarkStage level);
+    List<MarkTaskRoughLevel> findByPaperIdAndStageNative(Long id, MarkStage stage);
 
     /**
      * 评卷员任务数量
@@ -43,47 +32,12 @@ public interface MarkTaskRoughLevelRepo extends JpaRepository<MarkTaskRoughLevel
     @Query(value = "select count(1) from mark_task_rough_level 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_rough_level m inner join paper p on m.paper_id = p.id and p.rough_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)
+    @Query(value = "select count(1) from mark_task_rough_level m where m.question_id = ?1 and m.marker_id = ?2 and m.stage = ?3 and m.result = ?4 and m.batch_no = ?5 and m.is_rejected = false", nativeQuery = true)
     int countByQuestionIdAndMarkerIdAndStageAndResult(Long questionId, Long markerId, int stage, String result, Long batchNo);
 
-    @Query(value = "select count(1) from mark_task_rough_level m inner join paper p on m.paper_id = p.id and p.rough_batch_no is not null 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)
+    @Query(value = "select count(1) from mark_task_rough_level m 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 countByQuestionIdAndMarkerIdAndStageAndResultAll(Long questionId, Long markerId, int stage, String result);
 
-    @Query(value = "select count(1) from mark_task_rough_level m inner join paper p on m.paper_id = p.id and p.score_batch_no = ?5 and p.level = ?4 where m.question_id = ?1 and m.marker_id = ?2 and m.stage = ?3 and m.result is not null", nativeQuery = true)
-    int countScoreByQuestionIdAndMarkerIdAndStageAndResult(Long questionId, Long markerId, int stage, String result, Long batchNo);
-
-    @Query(value = "select count(1) from mark_task_rough_level m inner join paper p on m.paper_id = p.id and p.level = ?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 not null", nativeQuery = true)
-    int countScoreByQuestionIdAndMarkerIdAndStageAndResultAll(Long questionId, Long markerId, int stage, String result);
-
-    /**
-     * 查询评卷员的评卷任务
-     *
-     * @param markerId 评卷员ID
-     * @param stage    阶段
-     */
-    @Query(value = "select mt from MarkTaskRoughLevel mt left outer join fetch mt.paper where mt.markerId = ? and mt.stage = ?")
-    List<MarkTaskLevel> findByMarkerIdAndStage(Long markerId, MarkStage stage);
-
-    /**
-     * 删除评卷员所有任务
-     *
-     * @param subject 科目
-     * @param stage   阶段
-     */
-    Long deleteByWorkIdAndSubjectAndStage(Long workId, Subject subject, MarkStage stage);
-
-    /**
-     * 统计评卷员各试题已评数及总数(分档阶段)
-     *
-     * @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_rough_level t LEFT OUTER JOIN exam_question q ON t.`question_id` = q.`id` LEFT  JOIN paper p ON t.paper_id = p.id WHERE " +
-            "t.`marker_id` = ? and t.stage = ? and p.is_missing = false and p.is_test = ?  GROUP BY t.`question_id` ORDER BY q.`id`", nativeQuery = true)
-    List<Object[]> countGroupByQuestion(Long markerId, Integer stageId, int test);
-
     /**
      * 统计各评卷员各试题已评数及总数(分档阶段)
      *
@@ -99,17 +53,6 @@ public interface MarkTaskRoughLevelRepo extends JpaRepository<MarkTaskRoughLevel
             "t.work_id = :workId and t.subject = :subject and t.stage = :stageId and p.is_missing = false and p.is_test = :test and p.rough_batch_no = :batchNo and t.marker_id in (:markers) GROUP BY t.marker_id,mu.login_name, t.`marker_name` ORDER BY q.`id`,t.marker_id", nativeQuery = true)
     List<Object[]> listGroupByQuestionAndMarkerAndBatchNoAndMarkerId(@Param("workId") Long workId, @Param("subject") String subject, @Param("stageId") Integer stageId, @Param("test") int test, @Param("batchNo") Long batchNo, @Param("markers") List<Long> markers);
 
-    /**
-     * 考区已评数及总数(分档阶段)
-     *
-     * @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 " +
-            "p.work_id = ? and p.subject = ? and p.is_missing = false  GROUP BY q.area_code, q.area_name ORDER BY q.area_code", nativeQuery = true)
-    List<Object[]> listGroupByAreaName(Long workId, String name);
-
     /**
      * 考区已评数及总数(分档阶段)
      *
@@ -122,31 +65,6 @@ public interface MarkTaskRoughLevelRepo extends JpaRepository<MarkTaskRoughLevel
             "p.work_id = ? and p.subject = ? and p.is_missing = false and p.is_test = ?  GROUP BY q.area_code, q.area_name ORDER BY q.area_code", nativeQuery = true)
     List<Object[]> listGroupByAreaName(Long workId, String name, int test);
 
-    /**
-     * 统计评卷员各试题已评数及总数(分档阶段)
-     *
-     * @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_rough_level t LEFT OUTER JOIN exam_question q ON t.`question_id` = q.`id` LEFT  JOIN paper p ON t.paper_id = p.id WHERE " +
-            "t.`marker_id` = ? and t.stage = ? and p.is_missing = false GROUP BY t.`question_id` ORDER BY q.`id`", nativeQuery = true)
-    List<Object[]> countGroupByQuestion(Long markerId, Integer stageId);
-
-    /**
-     * 统计各评卷员各试题已评数及总数(分档阶段)
-     *
-     * @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_rough_level 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 = :workId and t.subject = :subject and t.stage = :stageId and p.score_batch_no = :batchNo and t.`marker_id` in (:markers) 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[]> listGroupByQuestionAndMarkerAndScoreBatchNoAndMakerId(@Param("workId") Long workId, @Param("subject") String subject, @Param("stageId") Integer stageId, @Param("batchNo") Long batchNo, @Param("markers") List<Long> markers);
-
     /**
      * 统计指定试卷的所有任务数量
      *
@@ -156,26 +74,15 @@ public interface MarkTaskRoughLevelRepo extends JpaRepository<MarkTaskRoughLevel
 
     List<MarkTaskRoughLevel> findByWorkIdAndSecretNumber(Long workId, String secretNumber);
 
-    @Query(value = "SELECT max(t.randomSeq) FROM MarkTaskLevel t " +
-            "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_rough_level 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_rough_level 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);
-
-    MarkTaskLevel findByPaperIdAndMarkerId(Long paperId, Long markId);
-
     List<MarkTaskLevel> findByWorkId(Long workId);
 
     @Query(value = "SELECT count(1) from mark_task_rough_level 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_rough_level 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_rough_level 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);
 
@@ -190,14 +97,9 @@ public interface MarkTaskRoughLevelRepo extends JpaRepository<MarkTaskRoughLevel
 
     int countByWorkIdAndSubjectAndStage(Long workId, Subject subject, MarkStage stage);
 
-    int countByWorkIdAndStageAndResultNotNull(Long id, MarkStage level);
-
     @Query(value = "select count(1) from mark_task_rough_level m inner join paper p on m.paper_id = p.id where m.work_id = ?1 and m.subject = ?2 and m.marker_id = ?3 and m.stage = ?4 and m.result is null and p.is_shift = true", nativeQuery = true)
     int countByWorkIdAndSubjectAndMarkerIdAndStageAndShiftAndResult(Long workId, String subject, Long valueOf, int stage);
 
-    @Query(value = "select count(1) from mark_task_rough_level m inner join paper p on m.paper_id = p.id where m.work_id = ?1 and m.subject = ?2 and m.marker_id = ?3 and m.stage = ?4 and m.result is null and p.is_shift_score = 1", nativeQuery = true)
-    int countByWorkIdAndSubjectAndMarkerIdAndStageAndShiftScoreAndResult(Long workId, String subject, Long valueOf, int stage);
-
     @Query(value = "select count(1) from mark_task_rough_level m where m.work_id = ?1 and m.subject = ?2 and m.marker_id = ?3 and m.stage = ?4 and m.is_rejected = 1", nativeQuery = true)
     int findByWorkIdAndSubjectAndMarkerIdAndStageReject(Long workId, String subject, Long valueOf, int stage);
 
@@ -211,9 +113,6 @@ public interface MarkTaskRoughLevelRepo extends JpaRepository<MarkTaskRoughLevel
     @Query(value = "update mark_task_rough_level m set m.level = ?1 where m.paper_id = ?2", nativeQuery = true)
     void updateLevelByPaperId(String level, Long id);
 
-    @Query("select s.paper from MarkTaskRoughLevel s where s.workId = :workId and s.subject = :subject and s.stage = :stage and s.markerId in (:markers)")
-    List<Paper> findByWorkIdAndSubjectAndStageAndMarkerIdIn(@Param("workId") Long workId, @Param("subject") Subject subject, @Param("stage") MarkStage stage, @Param("markers") List<Long> markers);
-
     @Query(value = "select s.paper_id, s.marker_id from mark_task_rough_level s where s.work_id = :workId and s.subject = :subject and s.stage = :stage", nativeQuery = true)
     List<Object[]> findByWorkIdAndSubjectAndStage(@Param("workId") Long workId, @Param("subject") String subject, @Param("stage") int stage);
 

+ 0 - 90
stmms-ms-core/src/main/java/cn/com/qmth/stmms/ms/core/repository/MarkTaskScoreRepo.java

@@ -19,8 +19,6 @@ public interface MarkTaskScoreRepo extends JpaRepository<MarkTaskScore, Long>, J
 
     int countByMarkerIdAndPaperIdAndWorkIdAndRandomSeqNew(Long markerId, Long paperId, Long randomSeqNew, Long workId);
 
-    List<MarkTaskScore> findByWorkIdAndStageAndPaperId(Long workId, MarkStage stage, Long paperId);
-
     /**
      * 查询指定阶段试卷的评卷任务
      *
@@ -32,22 +30,6 @@ public interface MarkTaskScoreRepo extends JpaRepository<MarkTaskScore, Long>, J
     @Query(value = "select new MarkTaskScore(m.id, m.markerId , m.markerName, m.result, m.secretNumber, m.stage) from MarkTaskScore m where m.paper.id = ?1 and m.stage = ?2")
     List<MarkTaskScore> findByPaperIdAndStageNative(Long id, MarkStage level);
 
-    /**
-     * 评卷员任务数量
-     *
-     * @param markerId 评卷员ID
-     */
-    long countByMarkerId(Long markerId);
-
-    @Query(value = "select count(1) from mark_task_score 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_score 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);
-
-    @Query(value = "select count(1) from mark_task_score 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 and m.stage = ?3 and m.result = ?4 and m.is_rejected = false", nativeQuery = true)
-    int countByQuestionIdAndMarkerIdAndStageAndResultAll(Long questionId, Long markerId, int stage, String result);
-
     @Query(value = "select count(1) from mark_task_score m inner join paper p on m.paper_id = p.id and p.score_batch_no = ?5 and p.level = ?4 where m.question_id = ?1 and m.marker_id = ?2 and m.stage = ?3 and m.result is not null", nativeQuery = true)
     int countScoreByQuestionIdAndMarkerIdAndStageAndResult(Long questionId, Long markerId, int stage, String result, Long batchNo);
 
@@ -71,33 +53,6 @@ public interface MarkTaskScoreRepo extends JpaRepository<MarkTaskScore, Long>, J
      */
     Long deleteByWorkIdAndSubjectAndStage(Long workId, Subject subject, MarkStage stage);
 
-    /**
-     * 统计评卷员各试题已评数及总数(分档阶段)
-     *
-     * @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_score t LEFT OUTER JOIN exam_question q ON t.`question_id` = q.`id` LEFT  JOIN paper p ON t.paper_id = p.id WHERE " +
-            "t.`marker_id` = ? and t.stage = ? and p.is_missing = false and p.is_test = ?  GROUP BY t.`question_id` ORDER BY q.`id`", nativeQuery = true)
-    List<Object[]> countGroupByQuestion(Long markerId, Integer stageId, int test);
-
-    /**
-     * 统计各评卷员各试题已评数及总数(分档阶段)
-     *
-     * @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_score 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 = :workId and t.subject = :subject and t.stage = :stageId and p.is_missing = false and p.is_test = :test and p.batch_no = :batchNo and t.marker_id in (:markers) GROUP BY t.marker_id,mu.login_name, t.`marker_name` ORDER BY q.`id`,t.marker_id", nativeQuery = true)
-    List<Object[]> listGroupByQuestionAndMarkerAndBatchNoAndMarkerId(@Param("workId") Long workId, @Param("subject") String subject, @Param("stageId") Integer stageId, @Param("test") int test, @Param("batchNo") Long batchNo, @Param("markers") List<Long> markers);
-
     /**
      * 考区已评数及总数(分档阶段)
      *
@@ -109,18 +64,6 @@ public interface MarkTaskScoreRepo extends JpaRepository<MarkTaskScore, Long>, J
             "p.work_id = ? and p.subject = ? and p.is_missing = false  GROUP BY q.area_code, q.area_name ORDER BY q.area_code", nativeQuery = true)
     List<Object[]> listGroupByAreaName(Long workId, String name);
 
-    /**
-     * 考区已评数及总数(分档阶段)
-     *
-     * @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 " +
-            "p.work_id = ? and p.subject = ? and p.is_missing = false and p.is_test = ?  GROUP BY q.area_code, q.area_name ORDER BY q.area_code", nativeQuery = true)
-    List<Object[]> listGroupByAreaName(Long workId, String name, int test);
-
     /**
      * 统计评卷员各试题已评数及总数(分档阶段)
      *
@@ -155,61 +98,28 @@ public interface MarkTaskScoreRepo extends JpaRepository<MarkTaskScore, Long>, J
 
     List<MarkTaskScore> findByWorkIdAndSecretNumber(Long workId, String secretNumber);
 
-    @Query(value = "SELECT max(t.randomSeq) FROM MarkTaskScore t " +
-            "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_score 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_score 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);
 
-    MarkTaskScore findByPaperIdAndMarkerId(Long paperId, Long markId);
-
     List<MarkTaskScore> findByWorkId(Long workId);
 
-    @Query(value = "SELECT count(1) from mark_task_score 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_score 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_score 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_score 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_score 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);
-
     @Query(value = "select * from mark_task_score where work_id = ?1 and subject = ?2 and marker_id = ?3 and stage = ?4 limit 1", nativeQuery = true)
     List<MarkTaskScore> findByWorkIdAndSubjectAndMarkerIdAndStageLimit(Long workId, String subject, Long valueOf, int stage);
 
     int countByWorkIdAndSubjectAndStage(Long workId, Subject subject, MarkStage stage);
 
-    int countByWorkIdAndStageAndResultNotNull(Long id, MarkStage level);
-
-    @Query(value = "select count(1) from mark_task_score m inner join paper p on m.paper_id = p.id where m.work_id = ?1 and m.subject = ?2 and m.marker_id = ?3 and m.stage = ?4 and m.result is null and p.is_shift = true", nativeQuery = true)
-    int countByWorkIdAndSubjectAndMarkerIdAndStageAndShiftAndResult(Long workId, String subject, Long valueOf, int stage);
-
     @Query(value = "select count(1) from mark_task_score m inner join paper p on m.paper_id = p.id where m.work_id = ?1 and m.subject = ?2 and m.marker_id = ?3 and m.stage = ?4 and m.result is null and p.is_shift_score = 1", nativeQuery = true)
     int countByWorkIdAndSubjectAndMarkerIdAndStageAndShiftScoreAndResult(Long workId, String subject, Long valueOf, int stage);
 
-    @Query(value = "select count(1) from mark_task_score m where m.work_id = ?1 and m.subject = ?2 and m.marker_id = ?3 and m.stage = ?4 and m.is_rejected = 1", nativeQuery = true)
-    int findByWorkIdAndSubjectAndMarkerIdAndStageReject(Long workId, String subject, Long valueOf, int stage);
-
     @Query(value = "select count(1) from mark_task_score m where m.work_id = ?1", nativeQuery = true)
     int countByWorkId(Long workId);
 
     @Query(value = "select id, random_seq_new randomSeqNew from mark_task_score m where m.work_id = ?1", nativeQuery = true)
     List<Object[]> findAllByWorkId(Long workId);
 
-    @Modifying
-    @Query(value = "update mark_task_score m set m.level = ?1 where m.paper_id = ?2", nativeQuery = true)
-    void updateLevelByPaperId(String level, Long id);
-
     @Query("select s.paper from MarkTaskScore s where s.workId = :workId and s.subject = :subject and s.stage = :stage and s.markerId in (:markers)")
     List<Paper> findByWorkIdAndSubjectAndStageAndMarkerIdIn(@Param("workId") Long workId, @Param("subject") Subject subject, @Param("stage") MarkStage stage, @Param("markers") List<Long> markers);
 

+ 9 - 38
stmms-ms-core/src/main/java/cn/com/qmth/stmms/ms/core/repository/PaperRepo.java

@@ -24,14 +24,6 @@ public interface PaperRepo extends JpaRepository<Paper, Long>, JpaSpecificationE
 
     List<Paper> findByWorkIdAndSubjectAndIsMissingAndTest(Long workId, Subject subject, boolean isMissing, int test);
 
-    List<Paper> findByWorkIdAndSubjectAndIsMissingFalseAndActiveFalseAndTestOrderByQuestionId(Long workId, Subject subject, int test);
-
-    List<Paper> findByWorkIdAndQuestionIdAndSubjectAndIsMissingFalseAndActiveFalseAndTestOrderByQuestionId(Long workId, Long questionId, Subject subject, int test);
-
-    List<Paper> findByWorkIdAndSubjectAndIsMissingFalseAndActiveTrue(Long workId, Subject subject, Sort sort);
-
-    List<Paper> findByWorkIdAndSubjectAndIsMissingFalseAndActiveTrueAndLevelIn(Long workId, Subject subject, List<String> levelList);
-
     List<Paper> findByWorkIdAndSubject(Long workId, Subject subject, Sort sort);
 
     @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)
@@ -179,16 +171,6 @@ public interface PaperRepo extends JpaRepository<Paper, Long>, JpaSpecificationE
      */
     Paper findByWorkIdAndSubjectAndExamNumber(Long workId, Subject subject, String examNumber);
 
-    /**
-     * 根据条件查询指定试卷
-     *
-     * @param workId     工作ID
-     * @param subject    科目
-     * @param examNumber 准考证号
-     * @param test       试评状态
-     */
-    Paper findByWorkIdAndSubjectAndExamNumberAndTest(Long workId, Subject subject, String examNumber, int test);
-
     /**
      * 查询同一个考生的paper
      *
@@ -242,25 +224,12 @@ public interface PaperRepo extends JpaRepository<Paper, Long>, JpaSpecificationE
 
     int countByWorkIdAndSubjectAndLevelIsNullAndIsMissingFalseAndBatchNoNotNullAndTest(Long workId, Subject subject, int test);
 
-    int countByWorkIdAndSubjectAndIsMissingFalseAndActiveFalseAndBatchNoIsNullAndTest(Long workId, Subject subject, int test);
-
-    int countByWorkIdAndQuestionIdAndSubjectAndIsMissingFalseAndActiveFalseAndBatchNoIsNullAndTest(Long workId, Long questionId, Subject subject, int test);
-
-    int countByWorkIdAndSubjectAndRoughLevelNotNullAndIsMissingFalseAndActiveTrueAndTest(Long workId, Subject subject, int test);
-
-    int countByWorkIdAndSubjectAndLevelNotNullAndIsMissingFalseAndActiveTrueAndTest(Long workId, Subject subject, int test);
 
     @Query("select max(p.batchNo) from Paper p where p.questionId = ?1")
     Long findByQuestionId(Long questionId);
 
-    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> findByWorkIdAndSubjectAndIsMissingFalseAndActiveTrueAndScoreBatchNoIsNull(Long workId, Subject subject, Sort sort);
-
     int countByWorkIdAndSubjectAndIsArbitratedTrue(Long workId, Subject subject);
 
     int countByWorkIdAndSubjectAndScoreBatchNoIsNotNullAndScoreIsNull(Long workId, Subject subject);
@@ -270,8 +239,6 @@ public interface PaperRepo extends JpaRepository<Paper, Long>, JpaSpecificationE
     @Query("select max(p.scoreBatchNo) from Paper p where p.questionId = ?1")
     Long findScoreBatchNoByQuestionId(Long questionId);
 
-    int countByWorkIdAndSubjectAndScoreNotNullAndIsMissingFalseAndActiveTrueAndTest(Long workId, Subject subject, int i);
-
     List<Paper> findByWorkIdAndSubjectAndIsOneClickTrue(Long workId, Subject subject);
 
     @Query(value = "SELECT p.`score`,SUM(IF(p.`is_shift` = 0, 1, 0))," +
@@ -292,8 +259,6 @@ public interface PaperRepo extends JpaRepository<Paper, Long>, JpaSpecificationE
 
     int countByWorkIdAndSubjectAndQuestionIdAndLevelAndScoreNotNullAndIdIn(Long workId, Subject subject, Long questionId, String valueOf, List<Long> paperIds);
 
-    List<Paper> findByWorkIdAndQuestionIdAndSubjectAndLevelAndIsMissingFalseAndActiveTrueAndScoreBatchNoIsNull(Long workId, Long questionId0, Subject subject, String code, Sort sort);
-
     @Query("select max(p.roughBatchNo) from Paper p where p.workId = ?1 and p.subject = ?2")
     Long findMaxRoughBatchNoByWorkIdAndSubject(Long workId, Subject subject);
 
@@ -323,7 +288,11 @@ public interface PaperRepo extends JpaRepository<Paper, Long>, JpaSpecificationE
     void updateScoreByWorkIdAndSubject(Long workId, String name);
 
     @Modifying
-    @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)
+    @Query(value = "update paper p set p.rough_level = case p.is_rough_sample when true then p.rough_level else null end, p.redo_level = null,p.sort_num = case p.is_rough_sample when true then p.sort_num else null end, p.rough_batch_no = null, 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 updateRoughLevelByWorkIdAndSubject(Long workId, String name);
+
+    @Modifying
+    @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_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);
 
     @Query(value = "SELECT p.`score`,SUM(IF(p.`is_shift` = 0, 1, 0))," +
@@ -366,7 +335,7 @@ public interface PaperRepo extends JpaRepository<Paper, Long>, JpaSpecificationE
     List<Paper> findByWorkIdAndIsAdminMarkTrue(Long workId);
 
     @Modifying
-    @Query("update Paper p set p.test = ?3, p.active = false, p.batchNo = null where p.workId = ?1 and p.test = ?2")
+    @Query("update Paper p set p.test = ?3, p.batchNo = null where p.workId = ?1 and p.test = ?2")
     void updateTestByWorkId(Long workId, int source, int dest);
 
     List<Paper> findByWorkIdAndSubjectOrderByLevelAscSortNumDesc(Long workId, Subject subject);
@@ -377,7 +346,9 @@ public interface PaperRepo extends JpaRepository<Paper, Long>, JpaSpecificationE
 
     int countByWorkIdAndSubjectAndRoughLevelNotNullAndTest(Long workId, Subject subject, int test);
 
-    int countByWorkIdAndSubjectAndLevelNotNullAndTest(Long workId, Subject subject, int test);
+    int countByWorkIdAndSubjectAndRoughLevelNotNullAndRoughBatchNoNotNullAndTest(Long workId, Subject subject, int test);
+
+    int countByWorkIdAndSubjectAndLevelNotNullAndBatchNoNotNullAndTest(Long workId, Subject subject, int test);
 
     int countByWorkIdAndSubjectAndScoreNotNullAndTest(Long workId, Subject subject, int test);
 

+ 0 - 11
stmms-ms-core/src/main/java/cn/com/qmth/stmms/ms/core/repository/TaskPublishSettingRepo.java

@@ -1,24 +1,16 @@
 package cn.com.qmth.stmms.ms.core.repository;
 
 import cn.com.qmth.stmms.ms.core.domain.TaskPublishSetting;
-import cn.com.qmth.stmms.ms.core.vo.Subject;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.data.jpa.repository.Query;
 import org.springframework.stereotype.Repository;
 
 import java.util.List;
-import java.util.Map;
 
 @Repository
 public interface TaskPublishSettingRepo extends JpaRepository<TaskPublishSetting, Long> {
     List<TaskPublishSetting> findByWorkIdAndSubject(Long workId, String subject);
 
-    @Query(value = "select b.workId, b.subject, a.code,ifnull(b.totalCount,0) totalCount, ifnull(b.successCount,0) successCount, ifnull(b.waitCount,0) waitCount from level a " +
-            "left join (select p.work_id workId, p.subject, p.level, count(1) as totalCount,SUM(IF(p.score is not null, 1, 0)) successCount,SUM(if(p.score is null, 1, 0)) waitCount from paper p " +
-            "where p.work_id = ?1 and p.subject = ?2 and p.is_test = ?3 and p.level is not null and p.is_missing = false and p.is_active = true group by p.work_id, p.subject, p.level) b on a.work_id = b.workId and a.code = b.level  " +
-            "where a.work_id = 32 order by a.code", nativeQuery = true)
-    List<Map> findByWorkIdAndSubjectAndTest(Long workId, String subject, int ordinal);
-
     @Query("select max(t.publishCount) from TaskPublishSetting t where t.workId = ?1 and t.subject = ?2")
     Integer maxPublishCount(Long workId, String subject);
 
@@ -27,9 +19,6 @@ public interface TaskPublishSettingRepo extends JpaRepository<TaskPublishSetting
 
     List<TaskPublishSetting> findByWorkIdAndQuestionIdAndSubjectAndPublishCount(Long workId, Long questionId, String name, int maxCount);
 
-    @Query("select max(t.publishCount) from TaskPublishSetting t where t.workId = ?1 and t.questionId = ?2 and t.subject = ?3")
-    Integer maxPublishCountByQuestionId(Long workId, Long questionId, String name);
-
     List<TaskPublishSetting> findByWorkIdAndSubjectAndPublishCount(Long workId, String name, int max);
 
     void deleteByWorkIdAndSubject(Long workId, String name);

+ 1 - 1
stmms-ms-log/src/main/java/cn/com/qmth/stmms/ms/log/controller/MarkLogController.java

@@ -261,7 +261,7 @@ public class MarkLogController {
             JSONObject object = new JSONObject();
             object.put("createUserName", markUser.getName());
             Paper paper = paperRepo.findByScanUserIdOrderByUploadedOnDescLimit(markUser.getId());
-            PaperDTO paperDTO = paperAssembler.toDTOForEquipmentMonitor(paper, true);
+            PaperDTO paperDTO = paperAssembler.toDTOForEquipmentMonitor(paper, false);
             object.put("imgSrc", paper == null ? null : paperDTO.getImgSrc());
             object.put("thumbSrc", paper == null ? null : paperDTO.getThumbSrc());
             object.put("sheetSrc", paper == null ? null : paperDTO.getSheetSrc());

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

@@ -295,7 +295,7 @@ public class BatchCreateDataTest {
             ExamQuestion examQuestion = examQuestionRepo.findByWorkIdAndSubjectAndAreaCode(WORK_ID, subject, "1");
             for (Student student : students) {
                 Long random = getRandom(student.getWorkId(), student.getExamNumber());
-                Paper paper = new Paper(student.getWorkId(), null, subject, examQuestion, student, false, random);
+                Paper paper = new Paper(student.getWorkId(), subject, examQuestion, student, false, random);
                 papers.add(paper);
             }
         }

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

@@ -495,8 +495,8 @@ public class MakrerApi {
         if(nullLevelStatDto ==null) {
             LevelStatDTO levelStatDTO = new LevelStatDTO();
             //求任务数为null的条数
-            int totalCount = markTaskLevelRepo.countScoreByQuestionIdAndMarkerIdAndStageAndResultIsNull(questionId, marker.getId(), MarkStage.LEVEL.ordinal(), batchNo);
-            levelStatDTO.setCount(totalCount);
+//            int totalCount = markTaskLevelRepo.countScoreByQuestionIdAndMarkerIdAndStageAndResultIsNull(questionId, marker.getId(), MarkStage.LEVEL.ordinal(), batchNo);
+//            levelStatDTO.setCount(totalCount);
             //查询改档
             int shiftCount = markTaskRoughLevelRepo.countShiftByQuestionIdAndMarkerIdAndStageAndResultIsNullAndIsMissing(questionId, marker.getId(), MarkStage.ROUGH_LEVEL.ordinal(), false);
             levelStatDTO.setShift(shiftCount);
@@ -505,8 +505,8 @@ public class MakrerApi {
             levelStatDTO.setShiftScore(shiftScoreCount);
             levelStatDTOs.add(levelStatDTO);
         } else {
-            int totalCount = markTaskLevelRepo.countScoreByQuestionIdAndMarkerIdAndStageAndResultIsNull(questionId, marker.getId(), MarkStage.LEVEL.ordinal(), batchNo);
-            nullLevelStatDto.setCount(totalCount);
+//            int totalCount = markTaskLevelRepo.countScoreByQuestionIdAndMarkerIdAndStageAndResultIsNull(questionId, marker.getId(), MarkStage.LEVEL.ordinal(), batchNo);
+//            nullLevelStatDto.setCount(totalCount);
             //查询改档
             int shiftCount = markTaskRoughLevelRepo.countShiftByQuestionIdAndMarkerIdAndStageAndResultIsNullAndIsMissing(questionId, marker.getId(), MarkStage.ROUGH_LEVEL.ordinal(), false);
             nullLevelStatDto.setShift(shiftCount);

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

@@ -54,6 +54,9 @@ public class MarkSubjectApi {
     @Autowired
     private MarkerGroupRepo markerGroupRepo;
 
+    @Autowired
+    MarkerGroupLeaderRepo markerGroupLeaderRepo;
+
     @Autowired
     private MarkUserRepo markUserRepo;
 
@@ -99,6 +102,7 @@ public class MarkSubjectApi {
     public void goNextStage(@RequestParam Long workId,
                             @RequestParam Subject subject) {
         MarkSubject markSubject = markSubjectRepo.findOne(workId + "-" + subject.name());
+        MarkStage initStage = markSubject.getStage();
         if (MarkStage.INIT.equals(markSubject.getStage())) {
             if (ParamCache.levelConfigMap.get(String.valueOf(workId)).getRoughLevelEnable() == 1) {
                 markSubject.setStage(MarkStage.ROUGH_LEVEL);
@@ -123,9 +127,13 @@ public class MarkSubjectApi {
         markSubjectRepo.save(markSubject);
 
         // 清除用户表中分组ID
-        markUserRepo.updateGroupIdByWorkIdAndSubject(workId, subject);
+        if (!MarkStage.INIT.equals(initStage)) {
+            markUserRepo.updateGroupIdByWorkIdAndSubject(workId, subject);
+            markerGroupRepo.deleteByWorkIdAndSubjectAndStage(workId, subject, markSubject.getStage());
+            markerGroupLeaderRepo.deleteByWorkIdAndSubjectAndStage(workId, subject, markSubject.getStage());
 
-        stageControlService.logoutAndBackupDb(markSubject);
+            stageControlService.logoutAndBackupDb(markSubject);
+        }
     }
 
     /**
@@ -382,7 +390,7 @@ public class MarkSubjectApi {
         List<MarkerGroupLeader> markerGroupLeaders = markerGroupLeaderService.listByWorkIdAndSubjectAndStageAndMarkLeaderId(markSubject.getWorkId(), markSubject, markerId);
         List<Long> paperIds = null;
         if (!CollectionUtils.isEmpty(markerGroupLeaders)) {
-            List<Long> markers = markerGroupLeaders.stream().map(m -> m.getMarkerId()).distinct().collect(Collectors.toList());
+            List<Long> markers = markerGroupLeaders.stream().map(MarkerGroupLeader::getMarkerId).distinct().collect(Collectors.toList());
             paperIds = markerGroupLeaderService.listPaperIdsByWorkIdAndSubjectAndStage(markSubject.getWorkId(), markSubject.getSubject(), markSubject.getStage(), markers);
         }
         List<LevelStatDTO> levelStatDTOs = new ArrayList<>();
@@ -422,6 +430,9 @@ public class MarkSubjectApi {
                     BigDecimal gbd = new BigDecimal(gp).setScale(3, RoundingMode.HALF_EVEN);
                     o.setGpercent(gbd.doubleValue());
                     o.setPt(level.getPt());
+                } else {
+                    int count = o.getCount() - o.getArbitrated() - o.getRejected();
+                    o.setCount(count);
                 }
             });
         } else {
@@ -460,6 +471,9 @@ public class MarkSubjectApi {
                     BigDecimal gbd = new BigDecimal(gp).setScale(3, RoundingMode.HALF_EVEN);
                     o.setGpercent(gbd.doubleValue());
                     o.setPt(level.getPt());
+                } else {
+                    int count = o.getCount() - o.getArbitrated() - o.getRejected();
+                    o.setCount(count);
                 }
             });
         }
@@ -517,7 +531,6 @@ public class MarkSubjectApi {
      *
      * @param markSubject 评卷科目id
      * @param questionId  试题id
-     * @return
      */
     @RequestMapping(value = "{markSubject}/mark_leader/stat/scores", method = RequestMethod.GET)
     public List<LevelStatDTO> markLeaderScoreStat(@PathVariable MarkSubject markSubject,
@@ -526,7 +539,7 @@ public class MarkSubjectApi {
         List<MarkerGroupLeader> markerGroupLeaders = markerGroupLeaderService.listByWorkIdAndSubjectAndStageAndMarkLeaderId(markSubject.getWorkId(), markSubject, markerId);
         List<Long> paperIds = null;
         if (!CollectionUtils.isEmpty(markerGroupLeaders)) {
-            List<Long> markers = markerGroupLeaders.stream().map(m -> m.getMarkerId()).distinct().collect(Collectors.toList());
+            List<Long> markers = markerGroupLeaders.stream().map(MarkerGroupLeader::getMarkerId).distinct().collect(Collectors.toList());
             paperIds = markerGroupLeaderService.listPaperIdsByWorkIdAndSubjectAndStage(markSubject.getWorkId(), markSubject.getSubject(), markSubject.getStage(), markers);
         }
 

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

@@ -156,7 +156,7 @@ public class AssignTaskService {
                     markerCount++;
                     Long random = randomUtil.getRandom(marker.getWorkId(), randomMap);
                     MarkTaskLevel markTask;
-                    if (paper.isRoughSample() && paper.getLevel() != null) {
+                    if (paper.isSample() && paper.getLevel() != null) {
                         Level level = levels.stream().filter(m -> m.getCode().equals(paper.getLevel())).findFirst().orElseGet(null);
                         markTask = new MarkTaskLevel(marker, paper, level, markSubject.getStage(), random, markSubject.getTest());
 
@@ -406,8 +406,6 @@ public class AssignTaskService {
             }
             if (markSubject.getTest() != 1) {
                 if (MarkStage.LEVEL.equals(markSubject.getStage())) {
-                    //将paper置为激活
-                    paper.setActive(true);
                     paper.setBatchNo(currentTime);
                     paperList.add(paper);
                 }
@@ -416,7 +414,6 @@ public class AssignTaskService {
                     paperList.add(paper);
                 }
             } else {
-                paper.setActive(true);
                 paper.setBatchNo(currentTime);
                 paperList.add(paper);
             }

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

@@ -92,9 +92,9 @@ public class GroupingService {
     public void getTotalProgress(Long workId, MarkSubject markSubject, Map<String, Object> objectMap) {
         int successCount = 0;
         if (markSubject.getStage().equals(MarkStage.ROUGH_LEVEL)) {
-            successCount = paperRepo.countByWorkIdAndSubjectAndRoughLevelNotNullAndTest(workId, markSubject.getSubject(), markSubject.getTest());
+            successCount = paperRepo.countByWorkIdAndSubjectAndRoughLevelNotNullAndRoughBatchNoNotNullAndTest(workId, markSubject.getSubject(), markSubject.getTest());
         } else if (markSubject.getStage().equals(MarkStage.LEVEL)) {
-            successCount = paperRepo.countByWorkIdAndSubjectAndLevelNotNullAndTest(workId, markSubject.getSubject(), markSubject.getTest());
+            successCount = paperRepo.countByWorkIdAndSubjectAndLevelNotNullAndBatchNoNotNullAndTest(workId, markSubject.getSubject(), markSubject.getTest());
         } else if (markSubject.getStage().equals(MarkStage.SCORE)) {
             successCount = paperRepo.countByWorkIdAndSubjectAndScoreNotNullAndTest(workId, markSubject.getSubject(), markSubject.getTest());
         }

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

@@ -3,14 +3,12 @@ package cn.com.qmth.stmms.ms.marking.service;
 import cn.com.qmth.stmms.ms.commons.config.LevelConfig;
 import cn.com.qmth.stmms.ms.commons.constant.ArbitrateCallback;
 import cn.com.qmth.stmms.ms.commons.constant.ArbitrateResult;
-import cn.com.qmth.stmms.ms.core.cache.CacheService;
 import cn.com.qmth.stmms.ms.core.cache.ParamCache;
 import cn.com.qmth.stmms.ms.core.domain.*;
 import cn.com.qmth.stmms.ms.core.domain.task.MarkTaskLevel;
 import cn.com.qmth.stmms.ms.core.domain.user.MarkUser;
 import cn.com.qmth.stmms.ms.core.domain.user.Role;
 import cn.com.qmth.stmms.ms.core.repository.*;
-import cn.com.qmth.stmms.ms.marking.config.MarkingConfig;
 import cn.com.qmth.stmms.ms.marking.service.arbitration.ArbitrationService;
 import com.alibaba.fastjson.JSONObject;
 import org.slf4j.Logger;
@@ -31,8 +29,6 @@ import java.util.stream.Collectors;
 public class MarkingLevelService {
 
     private static final Logger LOG = LoggerFactory.getLogger(MarkingLevelService.class);
-    @Autowired
-    private MarkingConfig markingConfig;
 
     @Autowired
     private DetermineLevelService determineLevelService;
@@ -79,9 +75,6 @@ public class MarkingLevelService {
     @Autowired
     ChangeLevelRepo changeLevelRepo;
 
-    @Autowired
-    private CacheService cacheService;
-
     @Autowired
     AssignTaskService assignTaskService;
 
@@ -114,8 +107,6 @@ public class MarkingLevelService {
         markTask.setDeviationDirection(null);
         markTask.setUpdatedOn(new Date());
         markTask.setMarkerName(maker.getName());
-        //激活试卷
-//        markTask.setActive(true);
 
         markTaskLevelRepo.save(markTask);
 
@@ -277,7 +268,8 @@ public class MarkingLevelService {
      * 更新试卷状态
      * 更新评卷任务状态为打回
      * 如果评卷任务的档位和建议档位一致,不打回该任务
-     *  @param paper
+     *
+     * @param paper
      * @param redoLevel 建议重评档位
      * @param ranges
      * @param stage

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

@@ -107,8 +107,6 @@ public class MarkingRoughLevelService {
         markTask.setDeviationDirection(null);
         markTask.setUpdatedOn(new Date());
         markTask.setMarkerName(maker.getName());
-        //激活试卷
-//        markTask.setActive(true);
 
         markTaskRoughLevelRepo.save(markTask);
 

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

@@ -82,6 +82,9 @@ public class MarkingService {
     @Autowired
     AssignTaskService assignTaskService;
 
+    @Resource
+    private MarkTaskRoughLevelRepo markTaskRoughLevelRepo;
+
     @Resource
     private MarkTaskLevelRepo markTaskLevelRepo;
 
@@ -179,7 +182,12 @@ public class MarkingService {
         // 删除各组成员
         markerGroupLeaderRepo.deleteByWorkIdAndSubjectAndStage(workId, subject, stage);
         // 分档阶段
-        if (MarkStage.LEVEL.equals(stage)) {
+        if (MarkStage.ROUGH_LEVEL.equals(stage)) {
+            // 删除mark_task阶段数据
+            markTaskRoughLevelRepo.deleteByWorkIdAndSubject(workId, subject);
+            // 清除paper中的档位,各种状态
+            paperRepo.updateRoughLevelByWorkIdAndSubject(workId, subject.name());
+        } else if (MarkStage.LEVEL.equals(stage)) {
             // 删除mark_task阶段数据
             markTaskLevelRepo.deleteByWorkIdAndSubject(workId, subject);
             // 清除paper中的档位,各种状态

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

@@ -4,7 +4,6 @@ import cn.com.qmth.stmms.ms.commons.config.ScoreConfig;
 import cn.com.qmth.stmms.ms.commons.utils.DbBackupUtils;
 import cn.com.qmth.stmms.ms.commons.utils.SqlUtil;
 import cn.com.qmth.stmms.ms.core.cache.CacheService;
-import cn.com.qmth.stmms.ms.core.cache.ParamCache;
 import cn.com.qmth.stmms.ms.core.domain.*;
 import cn.com.qmth.stmms.ms.core.domain.user.MarkRight;
 import cn.com.qmth.stmms.ms.core.domain.user.MarkUser;
@@ -277,20 +276,6 @@ public class StageControlService {
         }
 
         List<Paper> allPapers = paperRepo.findByWorkIdAndSubjectAndIsMissingAndTest(workId, subject, false, markSubject.getTest());
-        /*List<Paper> papers;
-        if (markSubject.getTest() == 1) {
-            papers = paperRepo.findByWorkIdAndSubjectAndIsMissingAndTest(workId, subject, false, markSubject.getTest());
-        } else {
-            List<Paper> papersList;
-            if (Objects.isNull(questionId)) {
-                papersList = paperRepo.findByWorkIdAndSubjectAndIsMissingFalseAndActiveFalseAndTestOrderByQuestionId(workId, subject, TrialEnum.DEFAULT.getId());
-            } else {
-                Long questionId1 = Long.valueOf(questionId.toString());
-                papersList = paperRepo.findByWorkIdAndQuestionIdAndSubjectAndIsMissingFalseAndActiveFalseAndTestOrderByQuestionId(workId, questionId1, subject, 0);
-            }
-            papers = randomList(papersList, taskCount);
-        }
-        assignTaskService.assignForGrouping(papers, markerGroups, markSubject, null);*/
         Map<Long, List<Paper>> groupPaperMap = assignTaskService.assignGroupTasks(allPapers, markSubject, markerGroups, questionIdsLong, taskCount);
         assignTaskService.assignForGroupingLevel(groupPaperMap, markerGroups, markSubject);
     }
@@ -316,127 +301,6 @@ public class StageControlService {
         }
     }
 
-    /**
-     * 进入打分阶段
-     * 1.检查是否有能够打分的评卷员
-     * 2.检查是否所有试卷都分档完成(有仲裁卷或打回重评卷)
-     *
-     * @param markSubject
-     */
-    private void enterScoreStage(MarkSubject markSubject) throws Exception {
-        Long workId = markSubject.getWorkId();
-        Subject subject = markSubject.getSubject();
-        List<MarkUser> markers = markUserRepo.findByWorkIdAndSubjectAndRole(workId, subject, Role.MARKER);
-        List<MarkUser> levelMarkers = markers.stream().filter(m -> m.getMarkRight() == MarkRight.ALLOW_ALL || m.getMarkRight() == MarkRight.ALLOW_SCORING).collect(Collectors.toList());
-        if (levelMarkers.size() == 0) {
-            statusMap.put(markSubject.getId(), false);
-            throw new RuntimeException("没有设定评卷员");
-        }
-        int count = paperRepo.countByWorkIdAndSubjectAndLevelIsNullAndIsMissingFalseAndBatchNoNotNullAndTest(workId, subject, markSubject.getTest());
-        if (count > 0) {
-            statusMap.put(markSubject.getId(), false);
-            throw new RuntimeException("没有分档完成");
-        }
-        this.isPtFull(workId, markSubject);
-        List<MarkerGroup> markerGroups = markerGroupRepo.findByWorkIdAndSubjectAndStage(workId, subject, markSubject.getStage());
-        if (markerGroups.size() == 0) {
-            statusMap.put(markSubject.getId(), false);
-            throw new RuntimeException("评卷员没有进行分组");
-        }
-        List<Paper> papers = null;
-        //是否启用打分配置
-        if (Objects.nonNull(scoreConfig) && scoreConfig.isEnable()) {
-            //2019.11.20日加入根据配置文件打分分档
-            if (Objects.nonNull(scoreConfig) && Objects.nonNull(scoreConfig.getExclude()) && scoreConfig.getExclude().size() > 0) {
-                List<String> configLevelList = scoreConfig.getExclude();
-                configLevelList = configLevelList.stream().map(string -> string.trim().toUpperCase()).collect(Collectors.toList());
-                long levelCount = levelRepo.countByWorkIdAndCodeIn(workId, configLevelList);
-                if (levelCount == 0) {
-                    statusMap.put(markSubject.getId(), false);
-                    throw new RuntimeException("配置的档位:" + configLevelList + "不存在");
-                }
-                List<Level> levels = levelRepo.findByWorkIdAndCodeNotIn(workId, configLevelList);
-                List<String> levelList = levels.stream().map(Level::getCode).collect(Collectors.toList());
-                Collections.sort(levelList);
-                Object o1 = levelList.stream().map(s -> "'" + s + "'").collect(Collectors.joining(","));
-                StringJoiner joiner = new StringJoiner("");
-                joiner.add("select count(1),p.`level` from mark_task mt left join paper p on p.id = mt.paper_id where mt.stage = 2 and p.`level` in (").add(o1.toString()).add(") and mt.work_id = ").add(String.valueOf(workId)).add(" and mt.subject = '").add(String.valueOf(subject)).add("'");
-                String sql = sqlUtil.sqlGroupBy(joiner.toString(), "p.`level`");
-                List list = sqlUtil.execSqlForMap(sql);
-                List<String> finalLevelList = new ArrayList();
-                if (Objects.isNull(list) || list.size() == 0) {
-                    finalLevelList.addAll(levelList);
-                } else {
-                    for (int i = 0; i < list.size(); i++) {
-                        Map map = (Map) list.get(i);
-                        String level = String.valueOf(map.get("level"));
-                        if (!levelList.contains(level)) {
-                            finalLevelList.add(level);
-                        }
-                    }
-                }
-                if (Objects.nonNull(list) && list.size() > 0 && finalLevelList.size() == 0) {
-                    statusMap.put(markSubject.getId(), false);
-                    throw new RuntimeException("档位:" + o1 + "已经分配过");
-                }
-                markSubject.setAllLevel(false);
-                papers = paperRepo.findByWorkIdAndSubjectAndIsMissingFalseAndActiveTrueAndLevelIn(workId, subject, finalLevelList);
-                if (Objects.isNull(papers) || papers.size() == 0) {
-                    statusMap.put(markSubject.getId(), false);
-                    throw new RuntimeException("试卷中没有找到" + finalLevelList + "档位");
-                }
-            } else if (Objects.nonNull(scoreConfig) && Objects.nonNull(scoreConfig.getTaskSort())) {
-                if (Objects.equals("paper", scoreConfig.getTaskSort().trim()) && Objects.nonNull(scoreConfig.getExclude()) && scoreConfig.getExclude().size() == 0) {
-                    List<Level> allLevel = levelRepo.findByWorkId(workId);
-                    List<String> levelList = allLevel.stream().map(Level::getCode).collect(Collectors.toList());
-                    Collections.sort(levelList);
-                    Object o1 = levelList.stream().map(s -> "'" + s + "'").collect(Collectors.joining(","));
-                    StringJoiner joiner = new StringJoiner("");
-                    joiner.add("select count(1),p.`level` from mark_task mt left join paper p on p.id = mt.paper_id where mt.stage = 2 and p.`level` in (").add(o1.toString()).add(") and mt.work_id = ").add(String.valueOf(workId)).add(" and mt.subject = '").add(String.valueOf(subject)).add("'");
-                    String sql = sqlUtil.sqlGroupBy(joiner.toString(), "p.`level`");
-                    List list = sqlUtil.execSqlForMap(sql);
-                    List<String> finalLevelList = new ArrayList();
-                    for (int i = 0; i < list.size(); i++) {
-                        Map map = (Map) list.get(i);
-                        String level = String.valueOf(map.get("level"));
-                        finalLevelList.add(level);
-                    }
-                    //求task任务完成度
-                    if (finalLevelList.size() > 0) {
-                        joiner = new StringJoiner("");
-                        Object o2 = finalLevelList.stream().map(s -> "'" + s + "'").collect(Collectors.joining(","));
-                        joiner.add("select count(1) as count from mark_task mt left join paper p on p.id = mt.paper_id where mt.stage = 2 and p.`level` in (").add(o2.toString()).add(")").add(" and mt.`result` is null").add(" and mt.work_id = ").add(String.valueOf(workId)).add(" and mt.subject = '").add(String.valueOf(subject)).add("'");
-                        list = sqlUtil.execSqlForMap(joiner.toString());
-                        if (Objects.nonNull(list) && list.size() > 0) {
-                            Map map = (Map) list.get(0);
-                            int taskCount = Integer.parseInt(String.valueOf(map.get("count")));
-                            if (taskCount > 0) {
-                                statusMap.put(markSubject.getId(), false);
-                                throw new RuntimeException("档位:" + o2 + "还有任务未完成");
-                            }
-                        }
-                    }
-                    //求差值
-                    List<String> distinctIdList = levelList.stream().filter(item -> !finalLevelList.contains(item)).collect(Collectors.toList());
-                    markSubject.setAllLevel(true);
-                    papers = paperRepo.findByWorkIdAndSubjectAndIsMissingFalseAndActiveTrueAndLevelIn(workId, subject, distinctIdList);
-                    if (Objects.isNull(papers) || papers.size() == 0) {
-                        statusMap.put(markSubject.getId(), false);
-                        throw new RuntimeException("试卷中没有找到" + distinctIdList + "档位");
-                    }
-                } else {
-                    statusMap.put(markSubject.getId(), false);
-                    throw new RuntimeException("请配置打分exclude");
-                }
-            }
-        } else {
-            markSubject.setAllLevel(true);
-            Sort sort = new Sort("questionId");
-            papers = paperRepo.findByWorkIdAndSubjectAndIsMissingFalseAndActiveTrue(workId, subject, sort);
-        }
-        assignTaskService.assignForGrouping(papers, markerGroups, markSubject, null);
-    }
-
     public void enterToScoreStage(MarkSubject markSubject) {
         Long workId = markSubject.getWorkId();
         Subject subject = markSubject.getSubject();
@@ -664,7 +528,13 @@ public class StageControlService {
         Long workId = markSubject.getWorkId();
         Subject subject = markSubject.getSubject();
         //已评任务数
-        int successCount = paperRepo.countByWorkIdAndSubjectAndLevelNotNullAndIsMissingFalseAndActiveTrueAndTest(workId, subject, markSubject.getTest());
+        int successCount = 0;
+        if (MarkStage.ROUGH_LEVEL.equals(markSubject.getStage())) {
+            successCount = paperRepo.countByWorkIdAndSubjectAndRoughLevelNotNullAndRoughBatchNoNotNullAndTest(workId, subject, markSubject.getTest());
+        } else if (MarkStage.LEVEL.equals(markSubject.getStage())) {
+            successCount = paperRepo.countByWorkIdAndSubjectAndLevelNotNullAndBatchNoNotNullAndTest(workId, subject, markSubject.getTest());
+        }
+
         //所有任务数(查询所有有效试卷)
         int totalCount = paperRepo.countByWorkIdAndSubjectAndIsMissingFalseAndTest(workId, subject, markSubject.getTest());
 
@@ -735,13 +605,6 @@ public class StageControlService {
         List<ExamQuestion> examQuestions = examQuestionRepo.findByWorkIdAndSubject(workId, markSubject.getSubject());
         List<Paper> allPapers = paperRepo.findByWorkIdAndSubjectAndIsMissingAndTest(workId, subject, false, markSubject.getTest());
         MarkStage stage = markSubject.getStage();
-        if (MarkStage.INIT.equals(markSubject.getStage())) {
-            if (ParamCache.levelConfigMap.get(String.valueOf(workId)).getRoughLevelEnable() == 1) {
-                stage = MarkStage.ROUGH_LEVEL;
-            } else {
-                stage = MarkStage.LEVEL;
-            }
-        }
 
         List<MarkerGroupStudent> markerGroupStudents = markerGroupStudentRepo.findByWorkIdAndSubjectAndStageAndUsed(workId, subject, stage, false);