|
@@ -306,6 +306,7 @@ public class InspectedController extends BaseExamController {
|
|
WebUser wu = RequestUtils.getWebUser(request);
|
|
WebUser wu = RequestUtils.getWebUser(request);
|
|
if (student != null && subjectCheck(student.getSubjectCode(), wu)) {
|
|
if (student != null && subjectCheck(student.getSubjectCode(), wu)) {
|
|
try {
|
|
try {
|
|
|
|
+ lockService.watch(LockType.EXAM_SUBJECT, student.getExamId(), student.getSubjectCode());
|
|
if (lockService.trylock(LockType.STUDENT, studentId) && inspectedService.cancelByStudent(studentId)) {
|
|
if (lockService.trylock(LockType.STUDENT, studentId) && inspectedService.cancelByStudent(studentId)) {
|
|
obj.accumulate("success", true);
|
|
obj.accumulate("success", true);
|
|
} else {
|
|
} else {
|
|
@@ -318,6 +319,7 @@ public class InspectedController extends BaseExamController {
|
|
log.error("back inspected error", e);
|
|
log.error("back inspected error", e);
|
|
} finally {
|
|
} finally {
|
|
lockService.unlock(LockType.STUDENT, studentId);
|
|
lockService.unlock(LockType.STUDENT, studentId);
|
|
|
|
+ lockService.unwatch(LockType.EXAM_SUBJECT, student.getExamId(), student.getSubjectCode());
|
|
}
|
|
}
|
|
} else {
|
|
} else {
|
|
obj.accumulate("success", false);
|
|
obj.accumulate("success", false);
|
|
@@ -332,12 +334,17 @@ public class InspectedController extends BaseExamController {
|
|
public String nextround(RedirectAttributes ra, HttpServletRequest request, @RequestParam String subjectCode) {
|
|
public String nextround(RedirectAttributes ra, HttpServletRequest request, @RequestParam String subjectCode) {
|
|
int examId = getSessionExamId(request);
|
|
int examId = getSessionExamId(request);
|
|
ExamSubject es = subjectService.find(examId, subjectCode);
|
|
ExamSubject es = subjectService.find(examId, subjectCode);
|
|
- if (!inspectedService.inspectFinish(examId, subjectCode, es.getInspectRound())) {
|
|
|
|
- ra.addFlashAttribute("errmsg", "该科目第" + es.getInspectRound() + "次复核还未完成");
|
|
|
|
- return "redirect:/admin/exam/inspected/list";
|
|
|
|
- }
|
|
|
|
- subjectService.nextInspectRound(examId, subjectCode);
|
|
|
|
- return "redirect:/admin/exam/inspected/list";
|
|
|
|
|
|
+ lockService.waitlock(LockType.EXAM_SUBJECT, examId, subjectCode);
|
|
|
|
+ try {
|
|
|
|
+ if (!inspectedService.inspectFinish(examId, subjectCode, es.getInspectRound())) {
|
|
|
|
+ ra.addFlashAttribute("errmsg", "该科目第" + es.getInspectRound() + "次复核还未完成");
|
|
|
|
+ return "redirect:/admin/exam/inspected/list";
|
|
|
|
+ }
|
|
|
|
+ subjectService.nextInspectRound(examId, subjectCode);
|
|
|
|
+ return "redirect:/admin/exam/inspected/list";
|
|
|
|
+ } finally {
|
|
|
|
+ lockService.unlock(LockType.EXAM_SUBJECT, examId, subjectCode);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
@Logging(menu = "打回", type = LogType.UPDATE)
|
|
@Logging(menu = "打回", type = LogType.UPDATE)
|
|
@@ -492,12 +499,14 @@ public class InspectedController extends BaseExamController {
|
|
// subjectCode = student.getSubjectCode();
|
|
// subjectCode = student.getSubjectCode();
|
|
if (student != null && subjectCheck(student.getSubjectCode(), wu)) {
|
|
if (student != null && subjectCheck(student.getSubjectCode(), wu)) {
|
|
try {
|
|
try {
|
|
|
|
+ lockService.watch(LockType.EXAM_SUBJECT, student.getExamId(), student.getSubjectCode());
|
|
if (lockService.trylock(LockType.STUDENT, student.getId()) && inspectedService.cancelByStudent(id)) {
|
|
if (lockService.trylock(LockType.STUDENT, student.getId()) && inspectedService.cancelByStudent(id)) {
|
|
}
|
|
}
|
|
} catch (Exception e) {
|
|
} catch (Exception e) {
|
|
log.error("back inspected error", e);
|
|
log.error("back inspected error", e);
|
|
} finally {
|
|
} finally {
|
|
lockService.unlock(LockType.STUDENT, student.getId());
|
|
lockService.unlock(LockType.STUDENT, student.getId());
|
|
|
|
+ lockService.unwatch(LockType.EXAM_SUBJECT, student.getExamId(), student.getSubjectCode());
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|