xiaof 4 жил өмнө
parent
commit
d47227be9f
19 өөрчлөгдсөн 173 нэмэгдсэн , 81 устгасан
  1. 1 1
      stmms-ms-admin/src/main/java/cn/com/qmth/stmms/ms/admin/exporter/PaperExporter.java
  2. 1 1
      stmms-ms-admin/src/main/java/cn/com/qmth/stmms/ms/admin/exporter/ScoreExporter.java
  3. 1 1
      stmms-ms-admin/src/main/java/cn/com/qmth/stmms/ms/admin/exporter/UserExporter.java
  4. 1 1
      stmms-ms-admin/src/main/java/cn/com/qmth/stmms/ms/admin/exporter/WorkExporter.java
  5. 1 1
      stmms-ms-core/src/main/java/cn/com/qmth/stmms/ms/core/repository/ChangeLevelRepo.java
  6. 7 1
      stmms-ms-core/src/main/java/cn/com/qmth/stmms/ms/core/repository/MarkTaskRepo.java
  7. 3 4
      stmms-ms-core/src/main/java/cn/com/qmth/stmms/ms/core/repository/PaperRepo.java
  8. 17 50
      stmms-ms-marking/src/main/java/cn/com/qmth/stmms/ms/marking/api/ChangeLevelApi.java
  9. 33 14
      stmms-ms-marking/src/main/java/cn/com/qmth/stmms/ms/marking/api/MakrerApi.java
  10. 15 1
      stmms-ms-marking/src/main/java/cn/com/qmth/stmms/ms/marking/api/MarkTaskApi.java
  11. 3 1
      stmms-ms-marking/src/main/java/cn/com/qmth/stmms/ms/marking/assembler/ChangeLevelAssembler.java
  12. 26 0
      stmms-ms-marking/src/main/java/cn/com/qmth/stmms/ms/marking/assembler/LevelStatAssembler.java
  13. 12 2
      stmms-ms-marking/src/main/java/cn/com/qmth/stmms/ms/marking/assembler/MarkTaskAssembler.java
  14. 2 0
      stmms-ms-marking/src/main/java/cn/com/qmth/stmms/ms/marking/assembler/PaperAssembler.java
  15. 9 0
      stmms-ms-marking/src/main/java/cn/com/qmth/stmms/ms/marking/dto/ChangeLevelDTO.java
  16. 18 0
      stmms-ms-marking/src/main/java/cn/com/qmth/stmms/ms/marking/dto/MarkTaskDTO.java
  17. 18 0
      stmms-ms-marking/src/main/java/cn/com/qmth/stmms/ms/marking/dto/PaperDTO.java
  18. 4 0
      stmms-ms-marking/src/main/java/cn/com/qmth/stmms/ms/marking/service/MarkingService.java
  19. 1 3
      stmms-ms-marking/src/main/java/cn/com/qmth/stmms/ms/marking/service/StageControlService.java

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

@@ -25,7 +25,7 @@ import java.util.stream.Collectors;
  * Created by yuanpan on 2017/12/23.
  */
 @RestController
-@RequestMapping("export/paper")
+@RequestMapping("api/export/paper")
 public class PaperExporter {
 
     @Autowired

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

@@ -40,7 +40,7 @@ import java.util.concurrent.atomic.AtomicInteger;
  * Created by zhengmin on 2017/1/18.
  */
 @RestController
-@RequestMapping("export/score")
+@RequestMapping("api/export/score")
 public class ScoreExporter {
     private static final org.slf4j.Logger LOGGER = LoggerFactory.getLogger(ScoreExporter.class);
 

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

@@ -26,7 +26,7 @@ import java.util.stream.Stream;
  * Created by zhengmin on 2016/11/18.
  */
 @RestController
-@RequestMapping("export/users")
+@RequestMapping("api/export/users")
 public class UserExporter {
 
     @Autowired

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

@@ -20,7 +20,7 @@ import java.util.List;
  * Created by zhengmin on 2017/1/10.
  */
 @RestController
-@RequestMapping("export/works")
+@RequestMapping("api/export/works")
 public class WorkExporter {
 
     @Autowired

+ 1 - 1
stmms-ms-core/src/main/java/cn/com/qmth/stmms/ms/core/repository/ChangeLevelRepo.java

@@ -13,5 +13,5 @@ import java.util.List;
 
 @Repository
 public interface ChangeLevelRepo extends JpaRepository<ChangeLevel, Long>, JpaSpecificationExecutor {
-    ChangeLevel findByWorkIdAndSubjectAndPaperId(Long workId, Subject subject, Long paperId);
+    ChangeLevel findByWorkIdAndSubjectAndPaperId(Long workId, String subject, Long paperId);
 }

+ 7 - 1
stmms-ms-core/src/main/java/cn/com/qmth/stmms/ms/core/repository/MarkTaskRepo.java

@@ -164,7 +164,7 @@ public interface MarkTaskRepo extends JpaRepository<MarkTask, Long>, JpaSpecific
     @Query(value = "SELECT count(1) from mark_task m inner join paper p on m.paper_id = p.id and p.is_missing = ?4 and p.batch_no = ?5 where m.question_id = ?1 and m.marker_id = ?2 and m.stage = ?3 and m.result is null", nativeQuery = true)
     int countByQuestionIdAndMarkerIdAndStageAndResultIsNullAndIsMissing(Long questionId, Long markerId, int stage, boolean isMissing, Long batchNo);
 
-    @Query(value = "SELECT count(1) from mark_task m inner join paper p on m.paper_id = p.id and p.is_missing = ?4 and p.score_batch_no = ?5 where m.question_id = ?1 and m.marker_id = ?2 and m.stage = ?3 and m.result is null", nativeQuery = true)
+    @Query(value = "SELECT count(1) from mark_task m inner join paper p on m.paper_id = p.id and p.is_missing = ?4 and p.score_batch_no = ?5 where m.question_id = ?1 and m.marker_id = ?2 and m.stage = ?3 and m.result is null and p.is_shift = 0 and p.is_shift_score = 0", nativeQuery = true)
     int countScoreByQuestionIdAndMarkerIdAndStageAndResultIsNullAndIsMissing(Long questionId, Long markerId, int stage, boolean isMissing, Long batchNo);
 
     @Query(value = "SELECT count(1) from mark_task m inner join paper p on m.paper_id = p.id and p.is_missing = ?4 and p.batch_no = ?5 where m.question_id = ?1 and m.marker_id = ?6 and m.stage = ?2 and m.result =?3", nativeQuery = true)
@@ -176,4 +176,10 @@ public interface MarkTaskRepo extends JpaRepository<MarkTask, Long>, JpaSpecific
     MarkTask findByPaperIdAndMarkerId(Long paperId, Long markId);
 
     List<MarkTask> findByWorkId(Long workId);
+
+    @Query(value = "SELECT count(1) from mark_task m inner join paper p on m.paper_id = p.id and p.is_missing = ?4 where m.question_id = ?1 and m.marker_id = ?2 and m.stage = ?3 and m.result is null and p.is_shift = 1", nativeQuery = true)
+    int countShiftByQuestionIdAndMarkerIdAndStageAndResultIsNullAndIsMissing(Long questionId, Long id, int ordinal, boolean b);
+
+    @Query(value = "SELECT count(1) from mark_task m inner join paper p on m.paper_id = p.id and p.is_missing = ?4 where m.question_id = ?1 and m.marker_id = ?2 and m.stage = ?3 and m.result is null and p.is_shift = 0 and p.is_shift_score = 1", nativeQuery = true)
+    int countShiftScoreByQuestionIdAndMarkerIdAndStageAndResultIsNullAndIsMissing(Long questionId, Long id, int ordinal, boolean b);
 }

+ 3 - 4
stmms-ms-core/src/main/java/cn/com/qmth/stmms/ms/core/repository/PaperRepo.java

@@ -89,15 +89,14 @@ public interface PaperRepo extends JpaRepository<Paper, Long>, JpaSpecificationE
      * @param questionId
      * @return
      */
-    @Query(value = "SELECT p.`score`,count(*)," +
+    @Query(value = "SELECT SUM(IF(p.`score` is null, 1, 0))," +
             "SUM(IF(p.`is_rejected` = 1, 1, 0))," +
             "SUM(IF(p.`is_arbitrated` = 1, 1, 0))," +
             "SUM(IF(p.`is_shift` = 1, 1, 0))," +
-            "SUM(IF(p.`is_shift_score` = 1, 1, 0))" +
+            "SUM(IF(p.`is_shift` = 0 and p.`is_shift_score` = 1, 1, 0)) " +
             "FROM paper p " +
             "WHERE p.`question_id` = ? and p.is_missing = false " +
-            "AND p.score_batch_no = ? " +
-            "GROUP BY p.`score` ORDER BY p.`score`", nativeQuery = true)
+            "AND p.score_batch_no = ?", nativeQuery = true)
     List<Object[]> countScoreGroupByLevel(Long questionId, Long batchNo);
 
     /**

+ 17 - 50
stmms-ms-marking/src/main/java/cn/com/qmth/stmms/ms/marking/api/ChangeLevelApi.java

@@ -52,9 +52,6 @@ public class ChangeLevelApi {
     @Autowired
     private MarkingService markingService;
 
-    @Autowired
-    private SqlUtil sqlUtil;
-
     /**
      * 查询改档列表
      *
@@ -71,46 +68,6 @@ public class ChangeLevelApi {
                                    @RequestParam(required = false) String status,
                                    Pageable pageable) {
         List<ChangeLevelDTO> levelDTOs = new ArrayList<>();
-//        StringBuffer sql = new StringBuffer();
-//        sql.append("  SELECT                                         ");
-//        sql.append("      cl.id,                                     ");
-//        sql.append("      cl.work_id workId,                         ");
-//        sql.append("      cl.subject,                                ");
-//        sql.append("      p.exam_number examNumber,                  ");
-//        sql.append("      p.area_code areaCode,                      ");
-//        sql.append("      p.is_rejected isRejected,                  ");
-//        sql.append("      cl.create_date createDate,                 ");
-//        sql.append("      p.level,                                   ");
-//        sql.append("      p.secret_number secretNumber,              ");
-//        sql.append("      p.redo_level redoLevel,                    ");
-//        sql.append("      p.is_sample isSample,                      ");
-//        sql.append("      p.mark_by_leader markByLeader,             ");
-//        sql.append("      p.id paperId                               ");
-//        sql.append("  FROM                                           ");
-//        sql.append("      change_level cl                            ");
-//        sql.append("          LEFT JOIN                              ");
-//        sql.append("      paper p ON cl.work_id = p.work_id          ");
-//        sql.append("          AND cl.subject = p.subject             ");
-//        sql.append("          AND cl.paper_id = p.id                 ");
-//        sql.append("           where 1=1                             ");
-//        if (Objects.nonNull(workId)) {
-//            sql.append(" and cl.work_id = '" + workId + "'");
-//        }
-//        if (Objects.nonNull(areaCode)) {
-//            sql.append(" and p.area_code = '" + areaCode + "'");
-//        }
-//        if (Objects.nonNull(subject)) {
-//            sql.append(" and cl.subject = '" + subject + "'");
-//        }
-//        if (Objects.nonNull(status)) {
-//            if (status == 0) {
-//                sql.append(" and cl.audit_status = 0");
-//            } else {
-//                sql.append(" and cl.audit_status != 0");
-//            }
-//        }
-
-
         Specification<Paper> specification = (root, query, builder) -> {
             List<Predicate> predicates = new ArrayList<>();
             if (!StringUtils.isEmpty(workId)) {
@@ -119,12 +76,13 @@ public class ChangeLevelApi {
             if (!StringUtils.isEmpty(questionId)) {
                 List<Paper> papers = paperRepo.findByworkIdAndSubjectAndQuestionIdAndIsMissingAndTest(workId, Subject.valueOf(subject), questionId, false, TrialEnum.DEFAULT.ordinal());
 //                predicates.add(builder.equal(root.get("areaCode"), areaCode));
-                CriteriaBuilder.In<Object> in = builder.in(root.get("paperId"));
-                for (Paper paper : papers) {
-                    in.value(paper.getId());
+                if(papers != null && papers.size() > 0) {
+                    CriteriaBuilder.In<Object> in = builder.in(root.get("paperId"));
+                    for (Paper paper : papers) {
+                        in.value(paper.getId());
+                    }
+                    predicates.add(builder.and(builder.and(in)));
                 }
-                predicates.add(builder.and(builder.and(in)));
-
             }
             if (!StringUtils.isEmpty(subject)) {
                 predicates.add(builder.equal(root.get("subject"), subject));
@@ -168,7 +126,7 @@ public class ChangeLevelApi {
         Paper paper = paperRepo.findOne(paperId);
 
         //
-        ChangeLevel changeLevel = changeLevelRepo.findByWorkIdAndSubjectAndPaperId(markSubject.getWorkId(), markSubject.getSubject(), paperId);
+        ChangeLevel changeLevel = changeLevelRepo.findByWorkIdAndSubjectAndPaperId(markSubject.getWorkId(), markSubject.getSubject().name(), paperId);
         if (changeLevel == null) {
             changeLevel = new ChangeLevel();
             changeLevel.setWorkId(markSubject.getWorkId());
@@ -208,12 +166,21 @@ public class ChangeLevelApi {
         //同意
         if(auditStatus == 1) {
             Paper paper = paperRepo.findOne(changeLevel.getPaperId());
+            //重置分数
+            paper.setScore(null);
             //状态设置
             paper.setShift(true);
-            paper.setShiftScore(Objects.nonNull(paper.getScore()));
+            paper.setShiftScore(true);
             List<MarkTask> markTasks = markTaskRepo.findByPaperIdAndStage(paper.getId(), MarkStage.LEVEL);
             List<String> ranges = markTasks.stream().map(m->m.getMarkerId().toString()).collect(Collectors.toList());
             markingService.reject(paper, changeLevel.getSuggestLevel(), String.join(",", ranges));
+
+            //重置已经打分的数据
+            List<MarkTask> markTasksScore = markTaskRepo.findByPaperIdAndStage(paper.getId(), MarkStage.SCORE);
+            if (markTasksScore != null && markTasksScore.size() > 0){
+                markTasksScore.forEach(o-> o.setResult(null));
+                markTaskRepo.save(markTasksScore);
+            }
         }
         return new ResponseEntity(HttpStatus.OK);
     }

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

@@ -246,20 +246,39 @@ public class MakrerApi {
             }
         });
         //统计workId下各考点的数量
-        paperRepo.countScoreGroupByLevel(questionId, batchNo)
-                .forEach(o -> {
-                    LevelStatDTO levelStatDTO = levelStatAssembler.toDTO(o);
-                    levelStatDTO.setGcount(levelStatDTO.getCount());
-                    if (Objects.isNull(levelStatDTO.getId())) {
-                        //求任务数为null的条数
-                        int count = markTaskRepo.countScoreByQuestionIdAndMarkerIdAndStageAndResultIsNullAndIsMissing(questionId, marker.getId(), MarkStage.SCORE.ordinal(), false, batchNo);
-                        levelStatDTO.setCount(count);
-                    } else {
-                        int count = markTaskRepo.countScoreByQuestionIdAndStageAndResultAndIsMissing(questionId, MarkStage.SCORE.ordinal(), levelStatDTO.getId().toString(), false, batchNo, marker.getId());
-                        levelStatDTO.setCount(count);
-                    }
-                    levelStatDTOs.add(levelStatDTO);
-                });
+//        paperRepo.countScoreGroupByLevel(questionId, batchNo)
+//                .forEach(o -> {
+//                    LevelStatDTO levelStatDTO = levelStatAssembler.toScoreDTO(o);
+//                    levelStatDTO.setGcount(levelStatDTO.getCount());
+//                    if (Objects.isNull(levelStatDTO.getId())) {
+//                        //求任务数为null的条数
+//                        int count = markTaskRepo.countScoreByQuestionIdAndMarkerIdAndStageAndResultIsNullAndIsMissing(questionId, marker.getId(), MarkStage.SCORE.ordinal(), false, batchNo);
+//                        levelStatDTO.setCount(count);
+//                        //查询改档
+//                        int shiftCount = markTaskRepo.countShiftByQuestionIdAndMarkerIdAndStageAndResultIsNullAndIsMissing(questionId, marker.getId(), MarkStage.LEVEL.ordinal(), false, batchNo);
+//                        levelStatDTO.setShift(shiftCount);
+//                        //查询改档打分
+//                        int shiftScoreCount = markTaskRepo.countShiftScoreByQuestionIdAndMarkerIdAndStageAndResultIsNullAndIsMissing(questionId, marker.getId(), MarkStage.SCORE.ordinal(), false, batchNo);
+//                        levelStatDTO.setShiftScore(shiftScoreCount - shiftCount);
+//                    }
+////                    else {
+////                        int count = markTaskRepo.countScoreByQuestionIdAndStageAndResultAndIsMissing(questionId, MarkStage.SCORE.ordinal(), levelStatDTO.getId().toString(), false, batchNo, marker.getId());
+////                        levelStatDTO.setCount(count);
+////                    }
+//                    levelStatDTOs.add(levelStatDTO);
+//                });
+        LevelStatDTO levelStatDTO = new LevelStatDTO();
+        //求任务数为null的条数
+        int totalCount = markTaskRepo.countScoreByQuestionIdAndMarkerIdAndStageAndResultIsNullAndIsMissing(questionId, marker.getId(), MarkStage.SCORE.ordinal(), false, batchNo);
+        levelStatDTO.setCount(totalCount);
+        //查询改档
+        int shiftCount = markTaskRepo.countShiftByQuestionIdAndMarkerIdAndStageAndResultIsNullAndIsMissing(questionId, marker.getId(), MarkStage.LEVEL.ordinal(), false);
+        levelStatDTO.setShift(shiftCount);
+        //查询改档打分
+        int shiftScoreCount = markTaskRepo.countShiftScoreByQuestionIdAndMarkerIdAndStageAndResultIsNullAndIsMissing(questionId, marker.getId(), MarkStage.SCORE.ordinal(), false);
+        levelStatDTO.setShiftScore(shiftScoreCount);
+        levelStatDTOs.add(levelStatDTO);
+
         for (Level level : levels) {
             //所有档位依次比较
             long count = levelStatDTOs.stream().filter(l -> String.valueOf(l.getId()).equals(level.getCode())).count();

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

@@ -99,6 +99,10 @@ public class MarkTaskApi {
             predicates.add(builder.equal(root.get("stage"), stage));
             if (level == null) {
                 predicates.add(builder.isNull(root.get("result")));
+                if (stage == MarkStage.SCORE) {
+                    predicates.add(builder.equal(root.get("paper").get("isShift"), false));
+                    predicates.add(builder.equal(root.get("paper").get("isShiftScore"), false));
+                }
             } else if (stage == MarkStage.LEVEL) {
                 //查询
                 Long batchNo = paperRepo.findByQuestionId(questionId);
@@ -110,6 +114,8 @@ public class MarkTaskApi {
 //                predicates.add(builder.isNotNull(root.get("result")));
                 predicates.add(builder.equal(root.get("paper").get("level"), level));
                 predicates.add(builder.isNotNull(root.get("result")));
+                predicates.add(builder.equal(root.get("paper").get("isShift"), false));
+                predicates.add(builder.equal(root.get("paper").get("isShiftScore"), false));
             }
             if (isSample != null) {
                 predicates.add(builder.equal(root.get("paper").get("isSample"), isSample));
@@ -179,9 +185,17 @@ public class MarkTaskApi {
             if (isShift != null) {
                 //查询
                 predicates.add(builder.equal(root.get("paper").get("isShift"), isShift));
+                if(isShift){
+                    predicates.add(builder.equal(root.get("stage"), MarkStage.LEVEL));
+                    predicates.add(builder.isNull(root.get("result")));
+                }
             }
-            if (isShiftScore != null) {
+            if (isShiftScore != null && isShiftScore && !isShift) {
                 predicates.add(builder.equal(root.get("paper").get("isShiftScore"), isShiftScore));
+                if(isShiftScore){
+                    predicates.add(builder.equal(root.get("stage"), MarkStage.SCORE));
+                    predicates.add(builder.isNull(root.get("result")));
+                }
             }
             return builder.and(predicates.toArray(new Predicate[predicates.size()]));
         };

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

@@ -44,7 +44,8 @@ public class ChangeLevelAssembler {
             changeLevelDTO.setUpdatedOn(changeLevel.getCreateDate());
             changeLevelDTO.setResult(paper.getLevel());
             changeLevelDTO.setSn(paper.getSecretNumber());
-            changeLevelDTO.setRedoLevel(paper.getRedoLevel());
+            changeLevelDTO.setOriginLevel(changeLevel.getOriginalLevel());
+            changeLevelDTO.setRedoLevel(changeLevel.getSuggestLevel());
             String imgSrc;
             String thumbSrc;
             Long workId = changeLevel.getWorkId();
@@ -65,6 +66,7 @@ public class ChangeLevelAssembler {
             changeLevelDTO.setMarkByLeader(paper.isMarkByLeader());
             changeLevelDTO.setPaperId(changeLevel.getPaperId());
             changeLevelDTO.setAuditStatus(changeLevel.getAuditStatus());
+            changeLevelDTO.setExamNumber(examNumber);
         }
         return changeLevelDTO;
     }

+ 26 - 0
stmms-ms-marking/src/main/java/cn/com/qmth/stmms/ms/marking/assembler/LevelStatAssembler.java

@@ -39,4 +39,30 @@ public class LevelStatAssembler {
         }
         return levelStatDTO;
     }
+
+    public LevelStatDTO toScoreDTO(Object[] levelStats){
+        LevelStatDTO levelStatDTO = null;
+        if(levelStats != null){
+            levelStatDTO = new LevelStatDTO();
+            BigInteger count = new BigInteger(String.valueOf(levelStats[0]));
+            levelStatDTO.setCount(count.intValue());
+            if(levelStats.length>1){
+                BigDecimal rejected =(BigDecimal) levelStats[1];
+                levelStatDTO.setRejected(rejected.intValue());
+            }
+            if(levelStats.length>2){
+                BigDecimal arbitrated =(BigDecimal) levelStats[2];
+                levelStatDTO.setArbitrated(arbitrated.intValue());
+            }
+            if(levelStats.length>3){
+                BigDecimal shift =(BigDecimal) levelStats[3];
+                levelStatDTO.setShift(shift.intValue());
+            }
+            if(levelStats.length>4){
+                BigDecimal shiftScore =(BigDecimal) levelStats[4];
+                levelStatDTO.setShiftScore(shiftScore.intValue());
+            }
+        }
+        return levelStatDTO;
+    }
 }

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

@@ -14,6 +14,8 @@ import cn.com.qmth.stmms.ms.marking.dto.MarkTaskDTO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
+import java.util.Objects;
+
 /**
  * Created by zhengmin on 2016/10/12.
  */
@@ -69,7 +71,11 @@ public class MarkTaskAssembler {
             markTaskDTO.setRandomSeq(markTask.getRandomSeq());
             markTaskDTO.setPaperId(paper.getId());
             markTaskDTO.setSerialNumber(markTask.getSerialNumber());
-            markTaskDTO.setDisplayNumber(markTask.getDisplayNumber()==1);
+            if(Objects.nonNull(markTask.getDisplayNumber())) {
+                markTaskDTO.setDisplayNumber(markTask.getDisplayNumber() == 1);
+            }
+            markTaskDTO.setShift(paper.isShift());
+            markTaskDTO.setShiftScore(paper.isShiftScore());
         }
         return markTaskDTO;
     }
@@ -162,7 +168,11 @@ public class MarkTaskAssembler {
             markTaskDTO.setRandomSeq(markTask.getRandomSeq());
             markTaskDTO.setPaperId(paper.getId());
             markTaskDTO.setSerialNumber(markTask.getSerialNumber());
-            markTaskDTO.setDisplayNumber(markTask.getDisplayNumber()==1);
+            if(Objects.nonNull(markTask.getDisplayNumber())) {
+                markTaskDTO.setDisplayNumber(markTask.getDisplayNumber() == 1);
+            }
+            markTaskDTO.setShift(paper.isShift());
+            markTaskDTO.setShiftScore(paper.isShiftScore());
         }
         return markTaskDTO;
     }

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

@@ -88,6 +88,8 @@ public class PaperAssembler {
             paperDTO.setStage(markSubject.getStage());
             paperDTO.setTest(markSubject.getTest());
             paperDTO.setPaperTest(paper.getTest());
+            paperDTO.setShift(paper.isShift());
+            paperDTO.setShiftScore(paper.isShiftScore());
         }
         return paperDTO;
     }

+ 9 - 0
stmms-ms-marking/src/main/java/cn/com/qmth/stmms/ms/marking/dto/ChangeLevelDTO.java

@@ -30,6 +30,7 @@ public class ChangeLevelDTO implements Serializable{
     private Long randomSeqNew;
     private Integer randomSeq;
     private Integer auditStatus;
+    private String examNumber;
 
     public Integer getRandomSeq() {
         return randomSeq;
@@ -194,4 +195,12 @@ public class ChangeLevelDTO implements Serializable{
     public void setAuditStatus(Integer auditStatus) {
         this.auditStatus = auditStatus;
     }
+
+    public String getExamNumber() {
+        return examNumber;
+    }
+
+    public void setExamNumber(String examNumber) {
+        this.examNumber = examNumber;
+    }
 }

+ 18 - 0
stmms-ms-marking/src/main/java/cn/com/qmth/stmms/ms/marking/dto/MarkTaskDTO.java

@@ -31,6 +31,8 @@ public class MarkTaskDTO implements Serializable{
     private Integer randomSeq;
     private String serialNumber;
     private boolean displayNumber;
+    private boolean shift;
+    private boolean shiftScore;
 
     public Integer getRandomSeq() {
         return randomSeq;
@@ -203,4 +205,20 @@ public class MarkTaskDTO implements Serializable{
     public void setDisplayNumber(boolean displayNumber) {
         this.displayNumber = displayNumber;
     }
+
+    public boolean isShift() {
+        return shift;
+    }
+
+    public void setShift(boolean shift) {
+        this.shift = shift;
+    }
+
+    public boolean isShiftScore() {
+        return shiftScore;
+    }
+
+    public void setShiftScore(boolean shiftScore) {
+        this.shiftScore = shiftScore;
+    }
 }

+ 18 - 0
stmms-ms-marking/src/main/java/cn/com/qmth/stmms/ms/marking/dto/PaperDTO.java

@@ -41,6 +41,8 @@ public class PaperDTO implements Serializable{
     private MarkStage stage;
     private int test;
     private int paperTest;
+    private boolean shift;
+    private boolean shiftScore;
     private List<MarkTaskDTO> markResults = new ArrayList<>();
 
     public int getPaperTest() {
@@ -262,4 +264,20 @@ public class PaperDTO implements Serializable{
     public void setSubjectName(String subjectName) {
         this.subjectName = subjectName;
     }
+
+    public boolean isShift() {
+        return shift;
+    }
+
+    public void setShift(boolean shift) {
+        this.shift = shift;
+    }
+
+    public boolean isShiftScore() {
+        return shiftScore;
+    }
+
+    public void setShiftScore(boolean shiftScore) {
+        this.shiftScore = shiftScore;
+    }
 }

+ 4 - 0
stmms-ms-marking/src/main/java/cn/com/qmth/stmms/ms/marking/service/MarkingService.java

@@ -158,6 +158,8 @@ public class MarkingService {
                     levelsLog(markTasks, paper);
                 }
             }
+            //改档后重新分档,状态改为false
+            paper.setShift(false);
             paperRepo.save(paper);
         }
         long end = System.currentTimeMillis();
@@ -337,6 +339,8 @@ public class MarkingService {
             Integer roundUp = Optional.ofNullable(ParamCache.paramMap.get(markTask.getWorkId()).getRoundUp()).orElse(1);
             double fs = roundUp.intValue() == 1 ? Math.ceil(finalScore.orElse(0)) : Math.round(finalScore.orElse(0));
             paper.setScore(fs);
+            //改档打分完成,更新状态为false
+            paper.setShiftScore(false);
             paperRepo.save(paper);
         }
         return markTask;

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

@@ -358,9 +358,7 @@ public class StageControlService {
         int totalTaskCount = taskList.stream().mapToInt(TaskPublishSetting::getTaskCount).sum();
 
         Sort sort = new Sort("questionId","level");
-        List<Paper> papers = null;
-        Map<String, TaskPublishSetting> map = new HashMap<>();
-        papers = paperRepo.findByWorkIdAndSubjectAndIsMissingFalseAndActiveTrueAndScoreBatchNoIsNull(workId, subject, sort);
+        List<Paper> papers = paperRepo.findByWorkIdAndSubjectAndIsMissingFalseAndActiveTrueAndScoreBatchNoIsNull(workId, subject, sort);
         papers = papers.subList(0, totalTaskCount);
 
         assignTaskService.assignForGrouping(papers, markerGroups, markSubject, taskList);