Kaynağa Gözat

新增绑定班级的评卷员显示的总数量为该班级总数量

ting.yin 3 yıl önce
ebeveyn
işleme
27ea7c0429

+ 9 - 6
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/mark/dao/MarkLibraryDao.java

@@ -31,8 +31,8 @@ public interface MarkLibraryDao extends JpaRepository<MarkLibrary, Integer>, Jpa
     @Query("select l1 from MarkLibrary l1 where l1.examId=?1 and l1.subjectCode=?2 and l1.groupNumber=?3 and l1.status in (?6) and (l1.markerId=?4 or l1.markerId is null ) "
             + "and not exists (select l2 from MarkLibrary l2 where l2.studentId=l1.studentId and l2.id!=l1.id and l2.markerId=?4 and l2.markerScore is not null) "
             + "and exists (select mc.id from MarkerClass mc, ExamStudent s where l1.studentId=s.id and mc.userId=?5 and s.className=mc.className)")
-    List<MarkLibrary> findUnMarkedFilterClass(Integer examId, String subjectCode, Integer groupNumber, Integer markerId,
-            Integer userId, Set<LibraryStatus> statusSet, Pageable page);
+    List<MarkLibrary> findUnMarkedFilterClass(Integer examId, String subjectCode, Integer groupNumber,
+            Integer markerId, Integer userId, Set<LibraryStatus> statusSet, Pageable page);
 
     List<MarkLibrary> findByMarkerId(Integer markerId);
 
@@ -54,8 +54,8 @@ public interface MarkLibraryDao extends JpaRepository<MarkLibrary, Integer>, Jpa
     long countByExamIdAndSubjectCodeAndGroupNumber(Integer examId, String subjectCode, Integer groupNumber);
 
     @Query("select count(f) from MarkLibrary f where f.examId=?1 and f.subjectCode=?2 and f.groupNumber=?3 and f.taskNumber=?4")
-    long countByExamIdAndSubjectCodeAndGroupNumberAndTaskNumber(Integer examId, String subjectCode, Integer groupNumber,
-            Integer taskNumber);
+    long countByExamIdAndSubjectCodeAndGroupNumberAndTaskNumber(Integer examId, String subjectCode,
+            Integer groupNumber, Integer taskNumber);
 
     @Query("select count(f) from MarkLibrary f where f.examId=?1 and f.subjectCode=?2 and f.groupNumber=?3 and f.status in (?4)")
     long countByExamIdAndSubjectCodeAndGroupNumberAndStatus(Integer examId, String subjectCode, Integer groupNumber,
@@ -115,8 +115,8 @@ public interface MarkLibraryDao extends JpaRepository<MarkLibrary, Integer>, Jpa
     @Modifying(clearAutomatically = true)
     @Query("update MarkLibrary m set m.headerId=?3, m.headerScore=?4, m.headerScoreList=?5, m.headerTime=?6, m.status=?7 "
             + " where m.studentId=?1 and m.groupNumber=?2")
-    void updateHeaderResult(Integer studentId, Integer groupNumber, Integer userId, Double totalScore, String scoreList,
-            Date updateTime, LibraryStatus arbitrated);
+    void updateHeaderResult(Integer studentId, Integer groupNumber, Integer userId, Double totalScore,
+            String scoreList, Date updateTime, LibraryStatus arbitrated);
 
     @Modifying(clearAutomatically = true)
     @Query("update MarkLibrary m set m.status=?3 where m.studentId=?1 and m.groupNumber=?2")
@@ -151,4 +151,7 @@ public interface MarkLibraryDao extends JpaRepository<MarkLibrary, Integer>, Jpa
     @Query("select distinct m.subjectCode from MarkLibrary m where m.examId=?1 and m.status not in (?2) ")
     Set<String> findSubjectUnFinishByExamId(int examId, LibraryStatus... status);
 
+    @Query("select count(l1) from MarkLibrary l1 where l1.examId=?1 and l1.subjectCode=?2 and l1.groupNumber=?3 "
+            + "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 countFilterClass(Integer examId, String subjectCode, Integer groupNumber, Integer userId);
 }

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

@@ -46,4 +46,7 @@ public interface MarkLibraryService {
 
     Set<String> findSubjectUnFinishByExamId(int examId);
 
+    long countByExamAndSubjectAndGroupAndFilterClass(Integer examId, String subjectCode, Integer groupNumber,
+            Integer userId);
+
 }

+ 1 - 1
stmms-web/src/main/java/cn/com/qmth/stmms/admin/exam/MarkGroupController.java

@@ -535,7 +535,7 @@ public class MarkGroupController extends BaseExamController {
         // 一个选做题大题内的小题必须在一个分组
         if (selectives.size() > 0) {
             for (Integer mainNumber : mainNumbers) {
-                Long count = questionService.countByExamAndSubjectAndObjectiveAndMainNumber(examId, subjectCode, true,
+                Long count = questionService.countByExamAndSubjectAndObjectiveAndMainNumber(examId, subjectCode, false,
                         mainNumber);
                 if (count != selectives.size()) {
                     return false;

+ 7 - 1
stmms-web/src/main/java/cn/com/qmth/stmms/mark/MarkController.java

@@ -314,6 +314,7 @@ public class MarkController extends BaseController {
     public JSONObject status(HttpServletRequest request) {
         JSONObject status = new JSONObject();
         Marker marker = RequestUtils.getWebUser(request).getMarker();
+        long classCount = markerClassService.countByUserIdAndExamId(marker.getUserId(), marker.getExamId());
         ExamSubject subject = subjectService.find(marker.getExamId(), marker.getSubjectCode());
         MarkGroup group = groupService.findOne(marker.getExamId(), marker.getSubjectCode(), marker.getGroupNumber());
         if (subject == null || group == null || group.getStatus() == MarkStatus.FINISH) {
@@ -330,7 +331,12 @@ public class MarkController extends BaseController {
             query.setExamId(marker.getExamId());
             query.setSubjectCode(marker.getSubjectCode());
             query.setGroupNumber(marker.getGroupNumber());
-            totalCount = libraryService.countByQuery(query);
+            if (classCount > 0) {
+                totalCount = libraryService.countByExamAndSubjectAndGroupAndFilterClass(marker.getExamId(),
+                        marker.getSubjectCode(), marker.getGroupNumber(), marker.getUserId());
+            } else {
+                totalCount = libraryService.countByQuery(query);
+            }
 
             query.setMarkerId(marker.getId());
             query.addStatus(LibraryStatus.MARKED);