|
@@ -6,6 +6,7 @@ import org.slf4j.Logger;
|
|
import org.slf4j.LoggerFactory;
|
|
import org.slf4j.LoggerFactory;
|
|
|
|
|
|
import cn.com.qmth.stmms.biz.exam.service.ExamQuestionService;
|
|
import cn.com.qmth.stmms.biz.exam.service.ExamQuestionService;
|
|
|
|
+import cn.com.qmth.stmms.biz.exam.service.InspectedService;
|
|
import cn.com.qmth.stmms.biz.exam.service.MarkGroupService;
|
|
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.MarkerService;
|
|
import cn.com.qmth.stmms.biz.lock.LockService;
|
|
import cn.com.qmth.stmms.biz.lock.LockService;
|
|
@@ -24,6 +25,8 @@ public class SubjectiveCalculateThread implements Runnable {
|
|
|
|
|
|
private MarkerService markerService;
|
|
private MarkerService markerService;
|
|
|
|
|
|
|
|
+ private InspectedService inspectedService;
|
|
|
|
+
|
|
private LockService lockService;
|
|
private LockService lockService;
|
|
|
|
|
|
private Integer examId;
|
|
private Integer examId;
|
|
@@ -34,12 +37,13 @@ public class SubjectiveCalculateThread implements Runnable {
|
|
|
|
|
|
public SubjectiveCalculateThread(Integer examId, String subjectCode, List<Integer> studentList,
|
|
public SubjectiveCalculateThread(Integer examId, String subjectCode, List<Integer> studentList,
|
|
MarkService markService, LockService lockService, ExamQuestionService questionService,
|
|
MarkService markService, LockService lockService, ExamQuestionService questionService,
|
|
- MarkGroupService groupService, MarkerService markerService) {
|
|
|
|
|
|
+ MarkGroupService groupService, MarkerService markerService, InspectedService inspectedService) {
|
|
this.markService = markService;
|
|
this.markService = markService;
|
|
this.lockService = lockService;
|
|
this.lockService = lockService;
|
|
this.questionService = questionService;
|
|
this.questionService = questionService;
|
|
this.groupService = groupService;
|
|
this.groupService = groupService;
|
|
this.markerService = markerService;
|
|
this.markerService = markerService;
|
|
|
|
+ this.inspectedService = inspectedService;
|
|
this.examId = examId;
|
|
this.examId = examId;
|
|
this.subjectCode = subjectCode;
|
|
this.subjectCode = subjectCode;
|
|
this.studentList = studentList;
|
|
this.studentList = studentList;
|
|
@@ -50,7 +54,7 @@ public class SubjectiveCalculateThread implements Runnable {
|
|
try {
|
|
try {
|
|
lockService.waitlock(LockType.SCORE_CALCULATE, examId, subjectCode);
|
|
lockService.waitlock(LockType.SCORE_CALCULATE, examId, subjectCode);
|
|
lockService.waitlock(LockType.EXAM_SUBJECT, examId, subjectCode);
|
|
lockService.waitlock(LockType.EXAM_SUBJECT, examId, subjectCode);
|
|
- log.info("delete question examId=" + examId + " subjectCode=" + subjectCode);
|
|
|
|
|
|
+ log.info("SubjectiveCalculateThread examId=" + examId + " subjectCode=" + subjectCode);
|
|
markerService.logoutByExamIdAndSubjectCodeAndGroupNumber(examId, subjectCode, null);
|
|
markerService.logoutByExamIdAndSubjectCodeAndGroupNumber(examId, subjectCode, null);
|
|
// 未分组的题目
|
|
// 未分组的题目
|
|
long unGroupQuestionCount = questionService.countByExamIdAndSubjectAndObjectiveAndGroupNumberIsNull(examId,
|
|
long unGroupQuestionCount = questionService.countByExamIdAndSubjectAndObjectiveAndGroupNumberIsNull(examId,
|
|
@@ -61,8 +65,9 @@ public class SubjectiveCalculateThread implements Runnable {
|
|
lockService.waitlock(LockType.STUDENT, studentId);
|
|
lockService.waitlock(LockType.STUDENT, studentId);
|
|
markService.checkStudentSubjective(studentId, groupCount, unGroupQuestionCount);
|
|
markService.checkStudentSubjective(studentId, groupCount, unGroupQuestionCount);
|
|
}
|
|
}
|
|
|
|
+ inspectedService.cancelBySubject(examId, subjectCode);
|
|
} catch (Exception e) {
|
|
} catch (Exception e) {
|
|
- log.error("delete group error", e);
|
|
|
|
|
|
+ log.error("SubjectiveCalculateThread error", e);
|
|
} finally {
|
|
} finally {
|
|
for (Integer studentId : studentList) {
|
|
for (Integer studentId : studentList) {
|
|
lockService.unlock(LockType.STUDENT, studentId);
|
|
lockService.unlock(LockType.STUDENT, studentId);
|