Răsfoiți Sursa

修复分组结束后评卷员重置问题

yin 9 luni în urmă
părinte
comite
5585d979a8

+ 6 - 5
stmms-web/src/main/java/cn/com/qmth/stmms/admin/exam/MarkerController.java

@@ -10,6 +10,7 @@ import java.util.Set;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
+import cn.com.qmth.stmms.common.enums.*;
 import org.apache.commons.lang.StringEscapeUtils;
 import org.apache.commons.lang.StringUtils;
 import org.slf4j.Logger;
@@ -55,11 +56,6 @@ import cn.com.qmth.stmms.biz.user.service.query.UserSearchQuery;
 import cn.com.qmth.stmms.common.annotation.Logging;
 import cn.com.qmth.stmms.common.annotation.RoleRequire;
 import cn.com.qmth.stmms.common.domain.WebUser;
-import cn.com.qmth.stmms.common.enums.LockType;
-import cn.com.qmth.stmms.common.enums.LogType;
-import cn.com.qmth.stmms.common.enums.MarkerExcelError;
-import cn.com.qmth.stmms.common.enums.Role;
-import cn.com.qmth.stmms.common.enums.UserSource;
 import cn.com.qmth.stmms.common.utils.EncryptUtils;
 import cn.com.qmth.stmms.common.utils.ExportExcel;
 import cn.com.qmth.stmms.common.utils.ImportExcel;
@@ -271,6 +267,11 @@ public class MarkerController extends BaseExamController {
                 obj.accumulate("message", "授权码不正确");
                 return obj;
             }
+            if(group.getStatus()== MarkStatus.FINISH){
+                obj.accumulate("success", false);
+                obj.accumulate("message", "分组已结束");
+                return obj;
+            }
             if (lockService.trylock(LockType.MARKER_RESET, marker.getId())) {
                 taskExecutor.submit(new MarkerResetThread(marker, group,markService,libraryService,trialService,markerService, lockService));
                 obj.accumulate("success", true);

+ 3 - 0
stmms-web/src/main/java/cn/com/qmth/stmms/admin/thread/MarkerResetThread.java

@@ -57,6 +57,9 @@ public class MarkerResetThread implements Runnable {
             lockService.watch(LockType.EXAM_SUBJECT, marker.getExamId(), marker.getSubjectCode());
             lockService.watch(LockType.GROUP, marker.getExamId(), marker.getSubjectCode(), marker.getGroupNumber());
             lockService.waitlock(LockType.MARKER, marker.getId());
+            if(group.getStatus() == MarkStatus.FINISH){
+                return ;
+            }
             markService.markerLogout(marker);
             if (group.getStatus() == MarkStatus.FORMAL) {
                 // 仲裁和等待仲裁的任务不被重置