1
0
ting.yin 3 жил өмнө
parent
commit
afd9f3696b

+ 5 - 0
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/mark/dao/MarkLibraryDao.java

@@ -158,4 +158,9 @@ public interface MarkLibraryDao extends JpaRepository<MarkLibrary, Integer>, Jpa
     @Modifying(clearAutomatically = true)
     @Query("update MarkLibrary l set l.unansweredCount=?2 where l.id=?1")
     void updateUnansweredCount(Integer id, int unansweredCount);
+
+    @Query("select count(l1) from MarkLibrary l1 where l1.examId=?1 and l1.subjectCode=?2 and l1.groupNumber=?3 and l1.status in (?5) "
+            + "and exists (select mc.id from MarkerClass mc, ExamStudent s where l1.studentId=s.id and mc.userId=?4 and s.className=mc.className)")
+    long countMarkedFilterClass(Integer examId, String subjectCode, Integer groupNumber, Integer userId,
+            LibraryStatus... status);
 }

+ 6 - 0
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/mark/service/Impl/MarkLibraryServiceImpl.java

@@ -239,4 +239,10 @@ public class MarkLibraryServiceImpl extends BaseQueryService<MarkLibrary> implem
         return libraryDao.countFilterClass(examId, subjectCode, groupNumber, userId);
     }
 
+    @Override
+    public long countMarkedByExamAndSubjectAndGroupAndFilterClass(Integer examId, String subjectCode,
+            Integer groupNumber, Integer userId, LibraryStatus... status) {
+        return libraryDao.countMarkedFilterClass(examId, subjectCode, groupNumber, userId, status);
+    }
+
 }

+ 3 - 0
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/mark/service/MarkLibraryService.java

@@ -49,4 +49,7 @@ public interface MarkLibraryService {
     long countByExamAndSubjectAndGroupAndFilterClass(Integer examId, String subjectCode, Integer groupNumber,
             Integer userId);
 
+    long countMarkedByExamAndSubjectAndGroupAndFilterClass(Integer examId, String subjectCode, Integer groupNumber,
+            Integer userId, LibraryStatus... status);
+
 }

+ 9 - 4
stmms-web/src/main/java/cn/com/qmth/stmms/mark/MarkController.java

@@ -374,10 +374,15 @@ public class MarkController extends BaseController {
             query.addStatus(LibraryStatus.MARKED);
             query.addStatus(LibraryStatus.INSPECTED);
             personCount = libraryService.countByQuery(query);
-
-            query.setMarkerId(0);
-            query.addStatus(LibraryStatus.ARBITRATED);
-            markedCount = libraryService.countByQuery(query);
+            if (classCount > 0) {
+                markedCount = libraryService.countMarkedByExamAndSubjectAndGroupAndFilterClass(marker.getExamId(),
+                        marker.getSubjectCode(), marker.getGroupNumber(), marker.getUserId(), LibraryStatus.MARKED,
+                        LibraryStatus.INSPECTED, LibraryStatus.ARBITRATED);
+            } else {
+                query.setMarkerId(0);
+                query.addStatus(LibraryStatus.ARBITRATED);
+                markedCount = libraryService.countByQuery(query);
+            }
 
             query.clearStatus();
             query.addStatus(LibraryStatus.PROBLEM);