소스 검색

联考版-v3.1.0-优化代码

xiaof 2 년 전
부모
커밋
fc371779ae

+ 1 - 0
sql/msyj-local-v3.1.0.sql

@@ -704,6 +704,7 @@ CREATE TABLE `student`  (
   `relate_exam_number` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '关联考号',
   `relate_exam_number` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '关联考号',
   PRIMARY KEY (`id`) USING BTREE,
   PRIMARY KEY (`id`) USING BTREE,
   UNIQUE INDEX `exam_number`(`exam_number`, `work_id`) USING BTREE,
   UNIQUE INDEX `exam_number`(`exam_number`, `work_id`) USING BTREE,
+  INDEX `idx_work_id`(`work_id`) USING BTREE,
   INDEX `idx_student_name`(`name`) USING BTREE
   INDEX `idx_student_name`(`name`) USING BTREE
 ) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic;
 ) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic;
 
 

+ 3 - 3
stmms-ms-core/src/main/java/cn/com/qmth/stmms/ms/core/domain/task/MarkTaskScore.java

@@ -157,7 +157,7 @@ public class MarkTaskScore implements Serializable {
         this.stage = stage;
         this.stage = stage;
         this.createdOn = new Date();
         this.createdOn = new Date();
         //随机号生成修改规则
         //随机号生成修改规则
-        this.secretNumber = marker.getId() + subject.ordinal() + paper.getAreaCode() + randomSeqNew;
+        this.secretNumber = stage.ordinal() + String.valueOf(randomSeqNew);
         this.randomSeqNew = randomSeqNew;
         this.randomSeqNew = randomSeqNew;
         this.isMark = false;
         this.isMark = false;
     }
     }
@@ -172,7 +172,7 @@ public class MarkTaskScore implements Serializable {
         this.stage = stage;
         this.stage = stage;
         this.createdOn = new Date();
         this.createdOn = new Date();
         //随机号生成修改规则
         //随机号生成修改规则
-        this.secretNumber = marker.getId() + subject.ordinal() + paper.getAreaCode() + randomSeqNew;
+        this.secretNumber = stage.ordinal() + String.valueOf(randomSeqNew);
         this.randomSeqNew = randomSeqNew;
         this.randomSeqNew = randomSeqNew;
         this.test = test != TrialEnum.DEFAULT.getId() ? TrialEnum.START_TRIAL.getId() : test;
         this.test = test != TrialEnum.DEFAULT.getId() ? TrialEnum.START_TRIAL.getId() : test;
         this.isSample = paper.isSample();
         this.isSample = paper.isSample();
@@ -189,7 +189,7 @@ public class MarkTaskScore implements Serializable {
         this.stage = stage;
         this.stage = stage;
         this.createdOn = new Date();
         this.createdOn = new Date();
         //随机号生成修改规则
         //随机号生成修改规则
-        this.secretNumber = marker.getId() + subject.ordinal() + paper.getAreaCode() + randomSeqNew;
+        this.secretNumber = stage.ordinal() + String.valueOf(randomSeqNew);
         this.randomSeqNew = randomSeqNew;
         this.randomSeqNew = randomSeqNew;
         this.test = test != TrialEnum.DEFAULT.getId() ? TrialEnum.START_TRIAL.getId() : test;
         this.test = test != TrialEnum.DEFAULT.getId() ? TrialEnum.START_TRIAL.getId() : test;
 
 

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

@@ -87,9 +87,9 @@ public interface MarkTaskLevelRepo extends JpaRepository<MarkTaskLevel, Long>, J
      * @param test    试评状态
      * @param test    试评状态
      * @param markers 评卷员ID集合
      * @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.is_missing = false and p.is_test = :test and p.batch_no is not null 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)
+    @Query(value = "SELECT t.`marker_id` markerId,a.login_name loginName,t.`marker_name` markerName,SUM(IF(t.`result` IS NULL,1,0)) leftCount,COUNT(t.question_id) totalCount FROM mark_task_level t  " +
+            "  join (select id, login_name from mark_user where id in (:markers)) a on t.marker_id = a.id " +
+            " WHERE t.work_id = :workId and t.subject = :subject and t.stage = :stageId and t.is_test = :test and t.marker_id in (:markers) GROUP BY t.marker_id ORDER BY t.marker_id", nativeQuery = true)
     List<Object[]> listGroupByQuestionAndMarkerId(@Param("workId") Long workId, @Param("subject") String subject, @Param("stageId") Integer stageId, @Param("test") int test, @Param("markers") List<Long> markers);
     List<Object[]> listGroupByQuestionAndMarkerId(@Param("workId") Long workId, @Param("subject") String subject, @Param("stageId") Integer stageId, @Param("test") int test, @Param("markers") List<Long> markers);
 
 
     /**
     /**
@@ -102,9 +102,9 @@ public interface MarkTaskLevelRepo extends JpaRepository<MarkTaskLevel, Long>, J
      * @param batchNo 批次号
      * @param batchNo 批次号
      * @param markers 评卷员ID集合
      * @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.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)
+    @Query(value = "SELECT t.`marker_id` markerId,a.login_name loginName,t.`marker_name` markerName,SUM(IF(t.`result` IS NULL,1,0)) leftCount,COUNT(t.question_id) totalCount FROM mark_task_level t " +
+            "  join (select id, login_name from mark_user where id in (:markers)) a on t.marker_id = a.id " +
+            " WHERE t.work_id = :workId and t.subject = :subject and t.stage = :stageId and t.is_test = :test and t.batch_no = :batchNo and t.marker_id in (:markers) GROUP BY t.marker_id ORDER BY t.marker_id", nativeQuery = true)
     List<Object[]> listGroupByQuestionAndBatchNoAndMarkerId(@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);
     List<Object[]> listGroupByQuestionAndBatchNoAndMarkerId(@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);
 
 
     /**
     /**

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

@@ -67,9 +67,9 @@ public interface MarkTaskRoughLevelRepo extends JpaRepository<MarkTaskRoughLevel
      * @param test    试评状态
      * @param test    试评状态
      * @param markers 评卷员ID集合
      * @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.is_missing = false and p.is_test = :test and p.rough_batch_no is not null 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)
+    @Query(value = "SELECT t.`marker_id` markerId, a.login_name loginName,t.`marker_name` markerName,SUM(IF(t.`result` IS NULL,1,0)) leftCount,COUNT(1) totalCount FROM mark_task_rough_level t   " +
+            "  join (select id, login_name from mark_user where id in (:markers)) a on t.marker_id = a.id " +
+            " WHERE t.work_id = :workId and t.subject = :subject and t.stage = :stageId and t.is_test = :test GROUP BY t.marker_id, t.`marker_name` ORDER BY t.marker_id", nativeQuery = true)
     List<Object[]> listGroupByQuestionAndMarkerId(@Param("workId") Long workId, @Param("subject") String subject, @Param("stageId") Integer stageId, @Param("test") int test, @Param("markers") List<Long> markers);
     List<Object[]> listGroupByQuestionAndMarkerId(@Param("workId") Long workId, @Param("subject") String subject, @Param("stageId") Integer stageId, @Param("test") int test, @Param("markers") List<Long> markers);
 
 
     /**
     /**
@@ -82,9 +82,9 @@ public interface MarkTaskRoughLevelRepo extends JpaRepository<MarkTaskRoughLevel
      * @param batchNo 批次号
      * @param batchNo 批次号
      * @param markers 评卷员ID集合
      * @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.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)
+    @Query(value = "SELECT t.`marker_id` markerId, a.login_name loginName,t.`marker_name` markerName,SUM(IF(t.`result` IS NULL,1,0)) leftCount,COUNT(t.question_id) totalCount FROM mark_task_rough_level t  " +
+            "  join (select id, login_name from mark_user where id in (:markers)) a on t.marker_id = a.id " +
+            " WHERE t.work_id = :workId and t.subject = :subject and t.stage = :stageId and t.is_test = :test and t.batch_no = :batchNo GROUP BY t.marker_id ORDER BY t.marker_id", nativeQuery = true)
     List<Object[]> listGroupByQuestionAndBatchNoAndMarkerId(@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);
     List<Object[]> listGroupByQuestionAndBatchNoAndMarkerId(@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);
 
 
     /**
     /**

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

@@ -84,9 +84,9 @@ public interface MarkTaskScoreRepo extends JpaRepository<MarkTaskScore, Long>, J
      * @param stageId 阶段
      * @param stageId 阶段
      * @param markers 评卷员ID集合
      * @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.score_batch_no is not null 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)
+    @Query(value = "SELECT t.`marker_id` markerId,a.login_name loginName,t.`marker_name` markerName,SUM(IF(t.`result` IS NULL,1,0)) leftCount,COUNT(t.question_id) totalCount FROM mark_task_score t " +
+            "  join (select id, login_name from mark_user where id in (:markers)) a on t.marker_id = a.id " +
+            " WHERE t.work_id = :workId and t.subject = :subject and t.stage = :stageId and t.`marker_id` in (:markers) GROUP BY t.marker_id ORDER BY t.`marker_id`", nativeQuery = true)
     List<Object[]> listGroupByQuestionAndMakerId(@Param("workId") Long workId, @Param("subject") String subject, @Param("stageId") Integer stageId, @Param("markers") List<Long> markers);
     List<Object[]> listGroupByQuestionAndMakerId(@Param("workId") Long workId, @Param("subject") String subject, @Param("stageId") Integer stageId, @Param("markers") List<Long> markers);
 
 
     /**
     /**
@@ -98,9 +98,9 @@ public interface MarkTaskScoreRepo extends JpaRepository<MarkTaskScore, Long>, J
      * @param batchNo 批次号
      * @param batchNo 批次号
      * @param markers 评卷员ID集合
      * @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.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)
+    @Query(value = "SELECT t.`marker_id` markerId,a.login_name loginName,t.`marker_name` markerName,SUM(IF(t.`result` IS NULL,1,0)) leftCount,COUNT(t.question_id) totalCount FROM mark_task_score t " +
+            "  join (select id, login_name from mark_user where id in (:markers)) a on t.marker_id = a.id " +
+            " WHERE t.work_id = :workId and t.subject = :subject and t.stage = :stageId and t.batch_no = :batchNo and t.`marker_id` in (:markers) GROUP BY t.marker_id ORDER BY t.`marker_id`", nativeQuery = true)
     List<Object[]> listGroupByQuestionAndScoreBatchNoAndMakerId(@Param("workId") Long workId, @Param("subject") String subject, @Param("stageId") Integer stageId, @Param("batchNo") Long batchNo, @Param("markers") List<Long> markers);
     List<Object[]> listGroupByQuestionAndScoreBatchNoAndMakerId(@Param("workId") Long workId, @Param("subject") String subject, @Param("stageId") Integer stageId, @Param("batchNo") Long batchNo, @Param("markers") List<Long> markers);
 
 
     /**
     /**

+ 2 - 1
stmms-ms-main/src/test/java/BatchLevelTest.java

@@ -9,6 +9,7 @@ import cn.com.qmth.stmms.ms.core.repository.MarkSubjectRepo;
 import cn.com.qmth.stmms.ms.core.repository.MarkTaskLevelRepo;
 import cn.com.qmth.stmms.ms.core.repository.MarkTaskLevelRepo;
 import cn.com.qmth.stmms.ms.core.repository.PaperRepo;
 import cn.com.qmth.stmms.ms.core.repository.PaperRepo;
 import cn.com.qmth.stmms.ms.core.vo.Subject;
 import cn.com.qmth.stmms.ms.core.vo.Subject;
+import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.junit.runner.RunWith;
 import org.slf4j.Logger;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.slf4j.LoggerFactory;
@@ -49,7 +50,7 @@ public class BatchLevelTest {
     // 工作id
     // 工作id
     private static Long WORK_ID = 1L;
     private static Long WORK_ID = 1L;
     // 生成科目
     // 生成科目
-    private List<Subject> subjects = Arrays.asList(Subject.SC);
+    private List<Subject> subjects = Arrays.asList(Subject.SX);
 
 
     /**
     /**
      * 批量分档
      * 批量分档

+ 3 - 2
stmms-ms-main/src/test/java/BatchRoughLevelTest.java

@@ -11,6 +11,7 @@ import cn.com.qmth.stmms.ms.core.repository.MarkTaskRoughLevelRepo;
 import cn.com.qmth.stmms.ms.core.repository.PaperRepo;
 import cn.com.qmth.stmms.ms.core.repository.PaperRepo;
 import cn.com.qmth.stmms.ms.core.vo.Subject;
 import cn.com.qmth.stmms.ms.core.vo.Subject;
 import cn.com.qmth.stmms.ms.marking.service.DetermineRoughLevelService;
 import cn.com.qmth.stmms.ms.marking.service.DetermineRoughLevelService;
+import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.junit.runner.RunWith;
 import org.slf4j.Logger;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.slf4j.LoggerFactory;
@@ -51,7 +52,7 @@ public class BatchRoughLevelTest {
     // 工作id
     // 工作id
     private static Long WORK_ID = 1L;
     private static Long WORK_ID = 1L;
     // 生成科目
     // 生成科目
-    private List<Subject> subjects = Arrays.asList(Subject.SC);
+    private List<Subject> subjects = Arrays.asList(Subject.SM);
 
 
     /**
     /**
      * 批量分档
      * 批量分档
@@ -77,7 +78,7 @@ public class BatchRoughLevelTest {
             MarkSubject markSubject = markSubjectRepo.findOne(WORK_ID + "-" + subject.name());
             MarkSubject markSubject = markSubjectRepo.findOne(WORK_ID + "-" + subject.name());
 
 
             List<Paper> papers = paperRepo.findByWorkIdAndSubject(WORK_ID, subject);
             List<Paper> papers = paperRepo.findByWorkIdAndSubject(WORK_ID, subject);
-            papers = papers.stream().filter(m -> Objects.nonNull(m.getBatchNo()) && StringUtils.isEmpty(m.getRoughLevel())).collect(Collectors.toList());
+            papers = papers.stream().filter(m -> Objects.nonNull(m.getRoughBatchNo()) && StringUtils.isEmpty(m.getRoughLevel())).collect(Collectors.toList());
             for (Paper paper : papers) {
             for (Paper paper : papers) {
                 String level = roughLevels.get(getRandom(roughLevels.size())).getRoughCode();
                 String level = roughLevels.get(getRandom(roughLevels.size())).getRoughCode();
                 paper.setRoughLevel(level);
                 paper.setRoughLevel(level);

+ 12 - 10
stmms-ms-main/src/test/java/BatchScoreTest.java

@@ -6,6 +6,7 @@ import cn.com.qmth.stmms.ms.core.domain.Paper;
 import cn.com.qmth.stmms.ms.core.domain.task.MarkTaskScore;
 import cn.com.qmth.stmms.ms.core.domain.task.MarkTaskScore;
 import cn.com.qmth.stmms.ms.core.repository.*;
 import cn.com.qmth.stmms.ms.core.repository.*;
 import cn.com.qmth.stmms.ms.core.vo.Subject;
 import cn.com.qmth.stmms.ms.core.vo.Subject;
+import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.junit.runner.RunWith;
 import org.slf4j.Logger;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.slf4j.LoggerFactory;
@@ -15,6 +16,7 @@ import org.springframework.test.context.junit4.SpringRunner;
 import org.springframework.util.CollectionUtils;
 import org.springframework.util.CollectionUtils;
 import org.springframework.util.StringUtils;
 import org.springframework.util.StringUtils;
 
 
+import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Arrays;
 import java.util.List;
 import java.util.List;
@@ -46,15 +48,14 @@ public class BatchScoreTest {
     // 工作id
     // 工作id
     private static Long WORK_ID = 1L;
     private static Long WORK_ID = 1L;
     // 生成科目
     // 生成科目
-    private List<Subject> subjects = Arrays.asList(Subject.SC);
+    private List<Subject> subjects = Arrays.asList(Subject.SX);
 
 
     /**
     /**
      * 批量打分
      * 批量打分
      *
      *
-     * @throws Exception
      */
      */
 //    @Test
 //    @Test
-    public void level() {
+    public void score() {
         List<Level> levels = levelRepo.findByWorkIdOrderByCode(WORK_ID);
         List<Level> levels = levelRepo.findByWorkIdOrderByCode(WORK_ID);
         doScore(levels);
         doScore(levels);
     }
     }
@@ -78,7 +79,8 @@ public class BatchScoreTest {
 
 
                 List<MarkTaskScore> markTasks = markTaskScoreRepo.findByPaperIdAndStage(paper.getId(), markSubject.getStage());
                 List<MarkTaskScore> markTasks = markTaskScoreRepo.findByPaperIdAndStage(paper.getId(), markSubject.getStage());
                 for (MarkTaskScore markTask : markTasks) {
                 for (MarkTaskScore markTask : markTasks) {
-                    markTask.setResult(score.toString());
+                    int scoreInt = new BigDecimal(score).intValue();
+                    markTask.setResult(String.valueOf(scoreInt));
                     listTask.add(markTask);
                     listTask.add(markTask);
                 }
                 }
             }
             }
@@ -113,14 +115,14 @@ public class BatchScoreTest {
 
 
     private Double calcScore(List<Level> levels, Paper paper) {
     private Double calcScore(List<Level> levels, Paper paper) {
         Level level = levels.stream().filter(m -> m.getCode().equals(paper.getLevel())).findFirst().orElseGet(null);
         Level level = levels.stream().filter(m -> m.getCode().equals(paper.getLevel())).findFirst().orElseGet(null);
-        Double score = 0D;
+        double score = 0D;
         if (level != null) {
         if (level != null) {
-            int random = getRandom(level.getMaxScore().intValue() - level.getMinScore().intValue());
-            int scoreTemp = level.getMinScore().intValue() + random;
-            if (scoreTemp - level.getMaxScore().intValue() > 0) {
-                scoreTemp = level.getMaxScore().intValue();
+            int random = getRandom(level.getMaxScore() - level.getMinScore());
+            int scoreTemp = level.getMinScore() + random;
+            if (scoreTemp - level.getMaxScore() > 0) {
+                scoreTemp = level.getMaxScore();
             }
             }
-            score = Double.valueOf(scoreTemp);
+            score = scoreTemp;
         }
         }
         return score;
         return score;
     }
     }

+ 15 - 21
stmms-ms-marking/src/main/java/cn/com/qmth/stmms/ms/marking/assembler/QuestionStatAssembler.java

@@ -68,36 +68,30 @@ public class QuestionStatAssembler {
 
 
         int shift = 0;
         int shift = 0;
         int shiftScore = 0;
         int shiftScore = 0;
-        int rejectCount = Integer.parseInt(qStats[7].toString());
+        int rejectCount =0;
         if (MarkStage.ROUGH_LEVEL.equals(stage)) {
         if (MarkStage.ROUGH_LEVEL.equals(stage)) {
             //所有打回
             //所有打回
-            rejectCount = markTaskRoughLevelRepo.findByWorkIdAndSubjectAndMarkerIdAndStageReject(workId, subject.name(), Long.valueOf(qStats[1].toString()), MarkStage.ROUGH_LEVEL.ordinal());
+            rejectCount = markTaskRoughLevelRepo.findByWorkIdAndSubjectAndMarkerIdAndStageReject(workId, subject.name(), Long.valueOf(qStats[0].toString()), MarkStage.ROUGH_LEVEL.ordinal());
         } else if (MarkStage.LEVEL.equals(stage)) {
         } else if (MarkStage.LEVEL.equals(stage)) {
             // 改粗档,打细档
             // 改粗档,打细档
-            shift = markTaskRoughLevelRepo.countByWorkIdAndSubjectAndMarkerIdAndStageAndShiftAndResult(workId, subject.name(), Long.valueOf(qStats[1].toString()), MarkStage.ROUGH_LEVEL.ordinal());
-            shiftScore = markTaskLevelRepo.countByWorkIdAndSubjectAndMarkerIdAndStageAndShiftScoreAndResult(workId, subject.name(), Long.valueOf(qStats[1].toString()), MarkStage.LEVEL.ordinal());
+            shift = markTaskRoughLevelRepo.countByWorkIdAndSubjectAndMarkerIdAndStageAndShiftAndResult(workId, subject.name(), Long.valueOf(qStats[0].toString()), MarkStage.ROUGH_LEVEL.ordinal());
+            shiftScore = markTaskLevelRepo.countByWorkIdAndSubjectAndMarkerIdAndStageAndShiftScoreAndResult(workId, subject.name(), Long.valueOf(qStats[0].toString()), MarkStage.LEVEL.ordinal());
             //所有打回
             //所有打回
-            rejectCount = markTaskLevelRepo.findByWorkIdAndSubjectAndMarkerIdAndStageReject(workId, subject.name(), Long.valueOf(qStats[1].toString()), MarkStage.LEVEL.ordinal());
+            rejectCount = markTaskLevelRepo.findByWorkIdAndSubjectAndMarkerIdAndStageReject(workId, subject.name(), Long.valueOf(qStats[0].toString()), MarkStage.LEVEL.ordinal());
         } else if (MarkStage.SCORE.equals(stage)) {
         } else if (MarkStage.SCORE.equals(stage)) {
             // 打细档,打分
             // 打细档,打分
-            shift = markTaskLevelRepo.countByWorkIdAndSubjectAndMarkerIdAndStageAndShiftAndResult(workId, subject.name(), Long.valueOf(qStats[1].toString()), MarkStage.LEVEL.ordinal());
-            shiftScore = markTaskScoreRepo.countByWorkIdAndSubjectAndMarkerIdAndStageAndShiftScoreAndResult(workId, subject.name(), Long.valueOf(qStats[1].toString()), MarkStage.SCORE.ordinal());
+            shift = markTaskLevelRepo.countByWorkIdAndSubjectAndMarkerIdAndStageAndShiftAndResult(workId, subject.name(), Long.valueOf(qStats[0].toString()), MarkStage.LEVEL.ordinal());
+            shiftScore = markTaskScoreRepo.countByWorkIdAndSubjectAndMarkerIdAndStageAndShiftScoreAndResult(workId, subject.name(), Long.valueOf(qStats[0].toString()), MarkStage.SCORE.ordinal());
         }
         }
 
 
-        MarkQuestionStatDTO qpDTO = null;
-        if (qStats != null) {
-            qpDTO = new MarkQuestionStatDTO();
-            qpDTO.setId(qStats[0]);
-            qpDTO.setLoginName(qStats[2]);
-            qpDTO.setMarkerName(qStats[3]);
-            qpDTO.setName(qStats[4]);
-            qpDTO.setLeftCount(qStats[5]);
-            qpDTO.setTotalCount(qStats[6]);
-            qpDTO.setRejectedCount(rejectCount);
-            qpDTO.setShiftCount(shift);
-            qpDTO.setShiftScoreCount(shiftScore);
-            qpDTO.setAreaCode(qStats[8]);
-        }
+        MarkQuestionStatDTO qpDTO = new MarkQuestionStatDTO();
+        qpDTO.setLoginName(qStats[1]);
+        qpDTO.setMarkerName(qStats[2]);
+        qpDTO.setLeftCount(qStats[3]);
+        qpDTO.setTotalCount(qStats[4]);
+        qpDTO.setRejectedCount(rejectCount);
+        qpDTO.setShiftCount(shift);
+        qpDTO.setShiftScoreCount(shiftScore);
         return qpDTO;
         return qpDTO;
     }
     }
 }
 }

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

@@ -145,9 +145,6 @@ public class AssignTaskService {
         long currentTime = System.currentTimeMillis();
         long currentTime = System.currentTimeMillis();
         List<MarkTaskLevel> markTaskLevelList = new ArrayList<>();
         List<MarkTaskLevel> markTaskLevelList = new ArrayList<>();
         List<Paper> paperList = new ArrayList<>();
         List<Paper> paperList = new ArrayList<>();
-        List<Object[]> markTasks = markTaskLevelRepo.findAllByWorkId(markSubject.getWorkId());
-        Map<Long, Object> randomMap = new HashMap<>();
-        markTasks.forEach(m -> randomMap.put(Long.valueOf(m[1].toString()), m[0]));
         List<Level> levels = levelRepo.findByWorkId(markSubject.getWorkId());
         List<Level> levels = levelRepo.findByWorkId(markSubject.getWorkId());
 
 
         Map<Long, MarkerGroup> groupMap = markerGroups.stream().collect(Collectors.toMap(MarkerGroup::getId, Function.identity()));
         Map<Long, MarkerGroup> groupMap = markerGroups.stream().collect(Collectors.toMap(MarkerGroup::getId, Function.identity()));
@@ -177,7 +174,6 @@ public class AssignTaskService {
                     markTask.setBatchNo(currentTime);
                     markTask.setBatchNo(currentTime);
 
 
                     markTaskLevelList.add(markTask);
                     markTaskLevelList.add(markTask);
-                    randomMap.put(random, markTask);
                 }
                 }
                 paper.setBatchNo(currentTime);
                 paper.setBatchNo(currentTime);
                 paperList.add(paper);
                 paperList.add(paper);
@@ -264,8 +260,8 @@ public class AssignTaskService {
                 MarkTaskScore markTask = new MarkTaskScore(marker, paper, markSubject.getStage(), random, markSubject.getTest());
                 MarkTaskScore markTask = new MarkTaskScore(marker, paper, markSubject.getStage(), random, markSubject.getTest());
                 String levelValue = String.valueOf(levelMap.get(paper.getLevel()).getLevelValue() + 1);
                 String levelValue = String.valueOf(levelMap.get(paper.getLevel()).getLevelValue() + 1);
                 if (Objects.nonNull(serialNumber)) {
                 if (Objects.nonNull(serialNumber)) {
-                    //和随机数位数保持一致(8位)
-                    String randomSeqNew = String.format("%08d", seqNewNumber);
+                    //和随机数位数保持一致(9位)
+                    String randomSeqNew = String.format("%09d", seqNewNumber);
                     markTask.setRandomSeqNew(Long.valueOf(levelValue + randomSeqNew));
                     markTask.setRandomSeqNew(Long.valueOf(levelValue + randomSeqNew));
                 } else {
                 } else {
                     markTask.setRandomSeqNew(Long.valueOf(levelValue + markTask.getRandomSeqNew()));
                     markTask.setRandomSeqNew(Long.valueOf(levelValue + markTask.getRandomSeqNew()));