Răsfoiți Sursa

联考版-v2.1.0

xiaof 3 ani în urmă
părinte
comite
0f9d903b91

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

@@ -452,5 +452,9 @@ public interface PaperRepo extends JpaRepository<Paper, Long>, JpaSpecificationE
 
 
     long countByWorkIdAndQuestionIdAndIsMissingIsFalseAndTest(Long workId, Long questionId, int test);
     long countByWorkIdAndQuestionIdAndIsMissingIsFalseAndTest(Long workId, Long questionId, int test);
 
 
+    long countByWorkIdAndSubjectAndLevelAndBatchNoNotNull(Long workId, Subject subject, String valueOf);
+
+    long countByWorkIdAndSubjectAndLevelAndTestAndBatchNoNotNull(Long workId, Subject subject, String valueOf, int test);
+
 //    List<Paper> findByWorkIdAndSubjectAndInspectRange(Long workId, Subject subject, Long inspectRange);
 //    List<Paper> findByWorkIdAndSubjectAndInspectRange(Long workId, Subject subject, Long inspectRange);
 }
 }

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

@@ -167,7 +167,7 @@ public class MarkSubjectApi {
                 Level level = levels.stream().filter(l -> l.getCode().equals(o.getId())).collect(Collectors.toList()).get(0);
                 Level level = levels.stream().filter(l -> l.getCode().equals(o.getId())).collect(Collectors.toList()).get(0);
                 o.setKdpt(level.getKdpt());
                 o.setKdpt(level.getKdpt());
                 //所有考区档位数量
                 //所有考区档位数量
-                long gcount = paperRepo.countByWorkIdAndSubjectAndLevelAndTest(markSubject.getWorkId(), markSubject.getSubject(), String.valueOf(o.getId()), markSubject.getTest());
+                long gcount = paperRepo.countByWorkIdAndSubjectAndLevelAndTestAndBatchNoNotNull(markSubject.getWorkId(), markSubject.getSubject(), String.valueOf(o.getId()), markSubject.getTest());
                 o.setGcount((int) gcount);
                 o.setGcount((int) gcount);
                 //所有考区档位占比
                 //所有考区档位占比
                 double gp = gtotal == 0 ? 0 : (double) o.getGcount() / gtotal * 100;
                 double gp = gtotal == 0 ? 0 : (double) o.getGcount() / gtotal * 100;
@@ -231,7 +231,7 @@ public class MarkSubjectApi {
                     Level level = levels.stream().filter(l -> l.getCode().equals(o.getId())).collect(Collectors.toList()).get(0);
                     Level level = levels.stream().filter(l -> l.getCode().equals(o.getId())).collect(Collectors.toList()).get(0);
                     o.setKdpt(level.getKdpt());
                     o.setKdpt(level.getKdpt());
                     //所有考区档位数量
                     //所有考区档位数量
-                    long gcount = paperRepo.countByWorkIdAndSubjectAndLevel(markSubject.getWorkId(), markSubject.getSubject(), String.valueOf(o.getId()));
+                    long gcount = paperRepo.countByWorkIdAndSubjectAndLevelAndTestAndBatchNoNotNull(markSubject.getWorkId(), markSubject.getSubject(), String.valueOf(o.getId()), markSubject.getTest());
                     o.setGcount((int) gcount);
                     o.setGcount((int) gcount);
                     //所有考区档位占比
                     //所有考区档位占比
                     double gp = gtotal == 0 ? 0 : (double) o.getGcount() / gtotal * 100;
                     double gp = gtotal == 0 ? 0 : (double) o.getGcount() / gtotal * 100;

+ 19 - 0
stmms-ms-marking/src/main/java/cn/com/qmth/stmms/ms/marking/api/MarkTaskApi.java

@@ -454,6 +454,16 @@ public class MarkTaskApi {
     public List<PaperDTO> reviewPaper(@RequestParam Long workId,
     public List<PaperDTO> reviewPaper(@RequestParam Long workId,
                                       @RequestParam Subject subject,
                                       @RequestParam Subject subject,
                                       @RequestParam Long questionId) {
                                       @RequestParam Long questionId) {
+
+        MarkSubject markSubject = markSubjectRepo.findOne(workId + "-" + subject.name());
+        Long markerId = ServletUtil.getUserId();
+        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());
+            paperIds = markerGroupLeaderService.listPaperIdsByWorkIdAndSubjectAndStage(workId, markSubject.getSubject(), markSubject.getStage(), markers);
+        }
+        List<Long> finalPaperIds = paperIds;
         Specification<Paper> specification = (root, query, builder) -> {
         Specification<Paper> specification = (root, query, builder) -> {
             List<Predicate> predicates = new ArrayList<>();
             List<Predicate> predicates = new ArrayList<>();
             predicates.add(builder.equal(root.get("workId"), workId));
             predicates.add(builder.equal(root.get("workId"), workId));
@@ -461,6 +471,15 @@ public class MarkTaskApi {
             if (Objects.nonNull(questionId)) {
             if (Objects.nonNull(questionId)) {
                 predicates.add(builder.equal(root.get("questionId"), questionId));
                 predicates.add(builder.equal(root.get("questionId"), questionId));
             }
             }
+
+            if (!CollectionUtils.isEmpty(finalPaperIds)) {
+                CriteriaBuilder.In<Object> in = builder.in(root.get("id"));
+                for (Long id : finalPaperIds) {
+                    in.value(id);
+                }
+                predicates.add(builder.and(builder.and(in)));
+            }
+
             predicates.add(builder.equal(root.get("markByLeader"), true));
             predicates.add(builder.equal(root.get("markByLeader"), true));
             List<Predicate> list = new ArrayList<>();
             List<Predicate> list = new ArrayList<>();
             list.add(builder.equal(root.get("isSample"), true));
             list.add(builder.equal(root.get("isSample"), true));

+ 3 - 5
stmms-ms-marking/src/main/java/cn/com/qmth/stmms/ms/marking/api/PaperApi.java

@@ -223,7 +223,7 @@ public class PaperApi {
                             @RequestParam(defaultValue = "false") Boolean isScore,//打分阶段该档位已打分数
                             @RequestParam(defaultValue = "false") Boolean isScore,//打分阶段该档位已打分数
                             Pageable pageable) {
                             Pageable pageable) {
         ExamQuestion examQuestion = examQuestionRepo.findOne(questionId);
         ExamQuestion examQuestion = examQuestionRepo.findOne(questionId);
-        MarkSubject markSubject = markSubjectRepo.findOne(examQuestion.getWorkId()+"-" + examQuestion.getSubject().name());
+        MarkSubject markSubject = markSubjectRepo.findOne(examQuestion.getWorkId() + "-" + examQuestion.getSubject().name());
         Long markerId = ServletUtil.getUserId();
         Long markerId = ServletUtil.getUserId();
         List<MarkerGroupLeader> markerGroupLeaders = markerGroupLeaderService.listByWorkIdAndSubjectAndStageAndMarkLeaderId(markSubject.getWorkId(), markSubject, markerId);
         List<MarkerGroupLeader> markerGroupLeaders = markerGroupLeaderService.listByWorkIdAndSubjectAndStageAndMarkLeaderId(markSubject.getWorkId(), markSubject, markerId);
         List<Long> paperIds = null;
         List<Long> paperIds = null;
@@ -235,7 +235,7 @@ public class PaperApi {
         List<Long> finalPaperIds = paperIds;
         List<Long> finalPaperIds = paperIds;
         Specification<Paper> specification = (root, query, builder) -> {
         Specification<Paper> specification = (root, query, builder) -> {
             List<Predicate> predicates = new ArrayList<>();
             List<Predicate> predicates = new ArrayList<>();
-            if(Objects.nonNull(questionId)) {
+            if (Objects.nonNull(questionId)) {
                 predicates.add(builder.equal(root.get("questionId"), questionId));
                 predicates.add(builder.equal(root.get("questionId"), questionId));
             }
             }
             //isScore为true时,为科组长打分详情页面数据查询条件
             //isScore为true时,为科组长打分详情页面数据查询条件
@@ -277,9 +277,7 @@ public class PaperApi {
 //                predicates.add(builder.equal(root.get("batchNo"), batchNo));
 //                predicates.add(builder.equal(root.get("batchNo"), batchNo));
                     } else {
                     } else {
                         predicates.add(builder.equal(root.get("level"), level));
                         predicates.add(builder.equal(root.get("level"), level));
-                        if (Objects.nonNull(isSample) && !isSample) {
-                            predicates.add(builder.isNotNull(root.get("batchNo")));
-                        }
+                        predicates.add(builder.isNotNull(root.get("batchNo")));
                     }
                     }
                 }
                 }
                 if (!CollectionUtils.isEmpty(finalPaperIds)) {
                 if (!CollectionUtils.isEmpty(finalPaperIds)) {