xiaof 4 rokov pred
rodič
commit
b4eff237c4

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

@@ -121,7 +121,7 @@ public interface PaperRepo extends JpaRepository<Paper, Long>, JpaSpecificationE
             "SUM(IF(p.`is_shift` = 1, 1, 0))," +
             "SUM(IF(p.`is_shift_score` = 1, 1, 0))" +
             "FROM paper p " +
-            "WHERE p.`question_id` = ? and p.is_missing = false and p.is_test = ? " +
+            "WHERE p.`question_id` = ? and p.is_missing = false and p.is_test = ? and p.batch_no is not null " +
             "GROUP BY p.`level` ORDER BY p.`level`", nativeQuery = true)
     List<Object[]> countGroupByLevelAll(Long questionId, int test);
 

+ 6 - 18
stmms-ms-core/src/main/java/cn/com/qmth/stmms/ms/core/specification/StudentSpecification.java

@@ -139,8 +139,6 @@ public class StudentSpecification extends PagingAndSortingSpecification {
             List<Predicate> predicates = new ArrayList<Predicate>();
             List<Predicate> listPermission = new ArrayList<>();
             List<Predicate> listPermission1 = new ArrayList<>();
-            List<Predicate> listPermission2 = new ArrayList<>();
-            List<Predicate> listPermission3 = new ArrayList<>();
             predicates.add(cb.equal(root.get("test"), String.valueOf(TrialEnum.DEFAULT.getId())));
             if (!StringUtils.isEmpty(getStudentName())) {
                 predicates.add(cb.like(root.get("name"), "%" + getStudentName() + "%"));
@@ -156,17 +154,10 @@ public class StudentSpecification extends PagingAndSortingSpecification {
             }
 
             if ("ONE".equals(getSubject())) {
-                listPermission1.add(cb.equal(root.get("scMissing"), true));
-                listPermission1.add(cb.equal(root.get("sxMissing"), false));
-                listPermission1.add(cb.equal(root.get("smMissing"), false));
+                listPermission1.add(cb.equal(root.get("uploadStatus"), "SX:1,SC:1,SM:0"));
+                listPermission1.add(cb.equal(root.get("uploadStatus"), "SX:1,SC:0,SM:1"));
+                listPermission1.add(cb.equal(root.get("uploadStatus"), "SX:0,SC:1,SM:1"));
 
-                listPermission2.add(cb.equal(root.get("scMissing"), false));
-                listPermission2.add(cb.equal(root.get("sxMissing"), true));
-                listPermission2.add(cb.equal(root.get("smMissing"), false));
-
-                listPermission3.add(cb.equal(root.get("scMissing"), false));
-                listPermission3.add(cb.equal(root.get("sxMissing"), false));
-                listPermission3.add(cb.equal(root.get("smMissing"), true));
             } else {
                 if (getIsAbsent() != null) {
 //                predicates.add(cb.equal(root.get("isAbsent"), getIsAbsent()));
@@ -211,12 +202,9 @@ public class StudentSpecification extends PagingAndSortingSpecification {
             }
             Predicate Pre_And = cb.and(predicates.toArray(new Predicate[predicates.size()]));
             if ("ONE".equals(getSubject())) {
-                if (!CollectionUtils.isEmpty(listPermission1) && !CollectionUtils.isEmpty(listPermission2) && !CollectionUtils.isEmpty(listPermission3)) {
-                    Predicate Pre_Or1 = cb.and(listPermission1.toArray(new Predicate[listPermission1.size()]));
-                    Predicate Pre_Or2 = cb.and(listPermission2.toArray(new Predicate[listPermission2.size()]));
-                    Predicate Pre_Or3 = cb.and(listPermission3.toArray(new Predicate[listPermission3.size()]));
-                    Predicate preOrAll = cb.or(Pre_Or1, Pre_Or2, Pre_Or3);
-                    return query.where(Pre_And, preOrAll).getRestriction();
+                if (!CollectionUtils.isEmpty(listPermission1)) {
+                    Predicate Pre_Or1 = cb.or(listPermission1.toArray(new Predicate[listPermission1.size()]));
+                    return query.where(Pre_And, Pre_Or1).getRestriction();
                 }
             } else {
                 if (!CollectionUtils.isEmpty(listPermission)) {

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

@@ -238,6 +238,7 @@ public class PaperApi {
 //                predicates.add(builder.equal(root.get("batchNo"), batchNo));
                 } else {
                     predicates.add(builder.equal(root.get("level"), level));
+                    predicates.add(builder.isNotNull(root.get("batchNo")));
                 }
             }
             if (arbi != null) {

+ 6 - 9
stmms-ms-marking/src/main/java/cn/com/qmth/stmms/ms/marking/service/StageControlService.java

@@ -161,15 +161,6 @@ public class StageControlService {
                 throw new RuntimeException("没有分档完成");
             }
 
-            if (Objects.nonNull(questionId)) {
-                Long questionId1 = Long.valueOf(questionId.toString());
-                int qcount = paperRepo.countByWorkIdAndQuestionIdAndSubjectAndLevelIsNullAndIsMissingFalseAndTest(workId, questionId1, subject, 0);
-                if (qcount == 0) {
-                    statusMap.put(markSubject.getId(), false);
-                    throw new RuntimeException("没有可分档任务");
-                }
-            }
-
             //任务数量大于0,小于等于待评数量
             if (taskCount == 0) {
                 statusMap.put(markSubject.getId(), false);
@@ -182,6 +173,12 @@ public class StageControlService {
                 Long questionId1 = Long.valueOf(questionId.toString());
                 waitCount = paperRepo.countByWorkIdAndQuestionIdAndSubjectAndIsMissingFalseAndActiveFalseAndBatchNoIsNullAndTest(workId, questionId1, subject, 0);
             }
+
+            if (waitCount == 0) {
+                statusMap.put(markSubject.getId(), false);
+                throw new RuntimeException("没有可分档任务");
+            }
+
             if (taskCount - waitCount > 0) {
                 statusMap.put(markSubject.getId(), false);
                 throw new RuntimeException("分配任务数量不能大于待评数量");