فهرست منبع

美术阅卷11月新增需求-跳过排序和新增缺考查询条件

wangliang 5 سال پیش
والد
کامیت
8e1ec7ef17

+ 4 - 0
stmms-ms-admin/src/main/java/cn/com/qmth/stmms/ms/admin/api/ScoreApi.java

@@ -321,6 +321,7 @@ public class ScoreApi {
             @RequestParam(required = false) Long startNumber,
             @RequestParam(required = false) Long endNumber,
             @RequestParam(required = false) Boolean isManual,
+            @RequestParam(required = false) Boolean missing,
             Pageable pageable) {
         Specification<Paper> specification = (root, query, builder) -> {
             List<Predicate> predicates = new ArrayList<>();
@@ -332,6 +333,9 @@ public class ScoreApi {
             } else if (startNumber != null) {
                 predicates.add(builder.equal(root.get("examNumber"), startNumber));
             }
+            if (Objects.nonNull(missing)) {
+                predicates.add(builder.equal(root.get("isMissing"), missing));
+            }
             predicates.add(builder.equal(root.get("isManual"), Optional.ofNullable(isManual).orElse(true)));
             predicates.add(builder.equal(root.get("test"), 0));
             return builder.and(predicates.toArray(new Predicate[predicates.size()]));

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

@@ -130,14 +130,32 @@ public class MarkTaskApi {
             if (Objects.nonNull(scoreConfig) && Objects.nonNull(scoreConfig.getTaskSort()) && Objects.equals("paper", scoreConfig.getTaskSort())) {
                 Collections.sort(markTaskDTOs, Comparator.comparing(MarkTaskDTO::getPaperId));
             } else {
-                Collections.sort(markTaskDTOs, Comparator.comparing(MarkTaskDTO::getRandomSeqNew));
+                randomSeqNewSort(markTaskDTOs);
             }
         } else if (stage == MarkStage.LEVEL && Objects.isNull(level)) {
-            Collections.sort(markTaskDTOs, Comparator.comparing(MarkTaskDTO::getRandomSeqNew));
+            randomSeqNewSort(markTaskDTOs);
         }
         return new PageableDTO(markTaskDTOs, markTasks.getTotalElements(), markTasks.getTotalPages(), pageable.getPageNumber());
     }
 
+    /**
+     * randomSeqNew排序
+     *
+     * @param markTaskDTOs
+     */
+    public void randomSeqNewSort(List<MarkTaskDTO> markTaskDTOs) {
+        boolean isSort = true;
+        for (MarkTaskDTO m : markTaskDTOs) {
+            if (Objects.nonNull(m.getRandomSeq())) {
+                isSort = false;
+                break;
+            }
+        }
+        if (isSort) {
+            Collections.sort(markTaskDTOs, Comparator.comparing(MarkTaskDTO::getRandomSeqNew));
+        }
+    }
+
     /**
      * 提交评卷任务
      *

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

@@ -123,6 +123,7 @@ public class PaperApi {
                                      @RequestParam(required = false) Long startNumber,
                                      @RequestParam(required = false) Long endNumber,
                                      @RequestParam(required = false) Boolean isManual,
+                                     @RequestParam(required = false) Boolean missing,
                                      Pageable pageable) {
         Specification<Paper> specification = (root, query, builder) -> {
             List<Predicate> predicates = new ArrayList<>();
@@ -137,6 +138,9 @@ public class PaperApi {
             if (isManual != null) {
                 predicates.add(builder.equal(root.get("isManual"), isManual));
             }
+            if (Objects.nonNull(missing)) {
+                predicates.add(builder.equal(root.get("isMissing"), missing));
+            }
             predicates.add(builder.equal(root.get("test"), 0));
             return builder.and(predicates.toArray(new Predicate[predicates.size()]));
         };

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

@@ -65,6 +65,7 @@ public class TaskApi {
                                          @RequestParam("type") String type,
                                         @RequestParam(required = false) Long startNumber,
                                         @RequestParam(required = false) Long endNumber,
+                                        @RequestParam(required = false) Boolean missing,
                                          @RequestParam("page") Integer page,
                                          @RequestParam("size") Integer size) {
         if ("paper".equals(type)) {
@@ -79,6 +80,9 @@ public class TaskApi {
                 } else if (startNumber != null) {
                     predicates.add(builder.equal(root.get("examNumber"), startNumber));
                 }
+                if (Objects.nonNull(missing)) {
+                    predicates.add(builder.equal(root.get("isMissing"), missing));
+                }
                 return builder.and(predicates.toArray(new Predicate[predicates.size()]));
             };
             Page<Paper> paperOptional = paperRepo.findAll(specification, new PageRequest(page, size));

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

@@ -65,6 +65,7 @@ public class MarkTaskAssembler {
             markTaskDTO.setSample(paper.isSample());
             markTaskDTO.setMarkByLeader(paper.isMarkByLeader());
             markTaskDTO.setRandomSeqNew(markTask.getRandomSeqNew());
+            markTaskDTO.setRandomSeq(markTask.getRandomSeq());
             markTaskDTO.setPaperId(paper.getId());
         }
         return markTaskDTO;
@@ -106,6 +107,7 @@ public class MarkTaskAssembler {
             markTaskDTO.setSample(paper.isSample());
             markTaskDTO.setMarkByLeader(paper.isMarkByLeader());
             markTaskDTO.setRandomSeqNew(markTask.getRandomSeqNew());
+            markTaskDTO.setRandomSeq(markTask.getRandomSeq());
             markTaskDTO.setPaperId(paper.getId());
         }
         return markTaskDTO;

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

@@ -28,6 +28,15 @@ public class MarkTaskDTO implements Serializable{
     private boolean oldRejected;
     private Long paperId;
     private Long randomSeqNew;
+    private Integer randomSeq;
+
+    public Integer getRandomSeq() {
+        return randomSeq;
+    }
+
+    public void setRandomSeq(Integer randomSeq) {
+        this.randomSeq = randomSeq;
+    }
 
     public Long getPaperId() {
         return paperId;