Browse Source

复核打回的考生上锁改回到尝试模式

luoshi 4 năm trước cách đây
mục cha
commit
8f15d6c224

+ 3 - 4
stmms-web/src/main/java/cn/com/qmth/stmms/admin/exam/InspectedController.java

@@ -314,11 +314,10 @@ public class InspectedController extends BaseExamController {
         ExamStudent student = studentService.findById(studentId);
         WebUser wu = RequestUtils.getWebUser(request);
         if (student != null && student.getSubjectiveStatus().equals(SubjectiveStatus.MARKED)) {
-            if (subjectCheck(student.getSubjectCode(), wu)) {
+            if (subjectCheck(student.getSubjectCode(), wu) && lockService.trylock(LockType.STUDENT, student.getId())) {
                 try {
                     lockService.watch(LockType.EXAM_SUBJECT, student.getExamId(), student.getSubjectCode());
                     lockService.watch(LockType.GROUP, student.getExamId(), student.getSubjectCode(), groupNumber);
-                    lockService.waitlock(LockType.STUDENT, student.getId());
                     if (markService.backStudentByGroup(student, groupNumber, wu.getId())) {
                         obj.accumulate("success", true);
                     } else {
@@ -330,13 +329,13 @@ public class InspectedController extends BaseExamController {
                     obj.accumulate("message", "打回失败");
                     log.error("back inspected error", e);
                 } finally {
-                    lockService.unlock(LockType.STUDENT, student.getId());
                     lockService.unwatch(LockType.GROUP, student.getExamId(), student.getSubjectCode(), groupNumber);
                     lockService.unwatch(LockType.EXAM_SUBJECT, student.getExamId(), student.getSubjectCode());
+                    lockService.unlock(LockType.STUDENT, student.getId());
                 }
             } else {
                 obj.accumulate("success", false);
-                obj.accumulate("message", "没有操作该评卷任务的权限");
+                obj.accumulate("message", "无法打回");
             }
         } else {
             obj.accumulate("success", false);