Selaa lähdekoodia

Merge remote-tracking branch 'origin/dev_1.3.14' into dev_1.3.14

luoshi 1 vuosi sitten
vanhempi
commit
36f4772544

+ 2 - 0
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/exam/dao/MarkerDao.java

@@ -75,4 +75,6 @@ public interface MarkerDao extends PagingAndSortingRepository<Marker, Integer>,
     @Query(value = "update Marker m set m.enable=?2 where m.userId=?1")
     public void updateEnableByUserId(Integer userId, boolean enable);
 
+    public List<Marker> findByExamIdAndSubjectCode(Integer examId, String subjectCode);
+
 }

+ 7 - 1
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/exam/service/impl/MarkerServiceImpl.java

@@ -234,7 +234,12 @@ public class MarkerServiceImpl extends BaseQueryService<Marker> implements Marke
     @Transactional
     @Override
     public void logoutByExamIdAndSubjectCodeAndGroupNumber(Integer examId, String subjectCode, Integer number) {
-        List<Marker> markers = this.findByExamAndSubjectAndGroup(examId, subjectCode, number);
+        List<Marker> markers = new ArrayList<Marker>();
+        if (number == null) {
+            markers = markerDao.findByExamIdAndSubjectCode(examId, subjectCode);
+        } else {
+            markers = this.findByExamAndSubjectAndGroup(examId, subjectCode, number);
+        }
         List<User> list = new ArrayList<User>();
         for (Marker marker : markers) {
             User user = userDao.findOne(marker.getUserId());
@@ -262,4 +267,5 @@ public class MarkerServiceImpl extends BaseQueryService<Marker> implements Marke
     public void updateEnableByUserId(Integer userId, boolean enable) {
         markerDao.updateEnableByUserId(userId, enable);
     }
+
 }

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

@@ -36,6 +36,7 @@ import cn.com.qmth.stmms.biz.exam.service.ExamQuestionService;
 import cn.com.qmth.stmms.biz.exam.service.ExamStudentService;
 import cn.com.qmth.stmms.biz.exam.service.ExamSubjectService;
 import cn.com.qmth.stmms.biz.exam.service.MarkGroupService;
+import cn.com.qmth.stmms.biz.exam.service.MarkerService;
 import cn.com.qmth.stmms.biz.exam.service.SelectiveGroupService;
 import cn.com.qmth.stmms.biz.lock.LockService;
 import cn.com.qmth.stmms.biz.mark.service.MarkService;
@@ -75,6 +76,9 @@ public class SelectiveGroupController extends BaseExamController {
     @Autowired
     private ExamStudentService studentService;
 
+    @Autowired
+    private MarkerService markerService;
+
     @Logging(menu = "选做题查询", type = LogType.QUERY)
     @RequestMapping
     public String list(HttpServletRequest request, Model model, @RequestParam String subjectCode) {
@@ -244,7 +248,7 @@ public class SelectiveGroupController extends BaseExamController {
         List<Integer> studentList = studentService.findIdByExamIdAndSubjectCodeAndSubjectiveStatus(examId, subjectCode,
                 SubjectiveStatus.UNMARK, SubjectiveStatus.MARKED);
         SubjectiveCalculateThread thread = new SubjectiveCalculateThread(examId, subjectCode, studentList, markService,
-                lockService, questionService, groupService);
+                lockService, questionService, groupService, markerService);
         taskExecutor.submit(thread);
         return "redirect:/admin/exam/selectiveGroup?subjectCode=" + subjectCode;
     }

+ 6 - 2
stmms-web/src/main/java/cn/com/qmth/stmms/admin/thread/SubjectiveCalculateThread.java

@@ -7,6 +7,7 @@ import org.slf4j.LoggerFactory;
 
 import cn.com.qmth.stmms.biz.exam.service.ExamQuestionService;
 import cn.com.qmth.stmms.biz.exam.service.MarkGroupService;
+import cn.com.qmth.stmms.biz.exam.service.MarkerService;
 import cn.com.qmth.stmms.biz.lock.LockService;
 import cn.com.qmth.stmms.biz.mark.service.MarkService;
 import cn.com.qmth.stmms.common.enums.LockType;
@@ -21,6 +22,8 @@ public class SubjectiveCalculateThread implements Runnable {
 
     private MarkGroupService groupService;
 
+    private MarkerService markerService;
+
     private LockService lockService;
 
     private Integer examId;
@@ -31,11 +34,12 @@ public class SubjectiveCalculateThread implements Runnable {
 
     public SubjectiveCalculateThread(Integer examId, String subjectCode, List<Integer> studentList,
             MarkService markService, LockService lockService, ExamQuestionService questionService,
-            MarkGroupService groupService) {
+            MarkGroupService groupService, MarkerService markerService) {
         this.markService = markService;
         this.lockService = lockService;
         this.questionService = questionService;
         this.groupService = groupService;
+        this.markerService = markerService;
         this.examId = examId;
         this.subjectCode = subjectCode;
         this.studentList = studentList;
@@ -47,6 +51,7 @@ public class SubjectiveCalculateThread implements Runnable {
             lockService.waitlock(LockType.SCORE_CALCULATE, examId, subjectCode);
             lockService.waitlock(LockType.EXAM_SUBJECT, examId, subjectCode);
             log.info("delete question examId=" + examId + " subjectCode=" + subjectCode);
+            markerService.logoutByExamIdAndSubjectCodeAndGroupNumber(examId, subjectCode, null);
             // 未分组的题目
             long unGroupQuestionCount = questionService.countByExamIdAndSubjectAndObjectiveAndGroupNumberIsNull(examId,
                     subjectCode, false);
@@ -66,5 +71,4 @@ public class SubjectiveCalculateThread implements Runnable {
             lockService.unlock(LockType.SCORE_CALCULATE, examId, subjectCode);
         }
     }
-
 }