|
@@ -55,7 +55,7 @@ public class MarkCronService {
|
|
private MarkService markService;
|
|
private MarkService markService;
|
|
|
|
|
|
@Autowired
|
|
@Autowired
|
|
- private MarkLockService lockService;
|
|
|
|
|
|
+ private MarkLockService markLockService;
|
|
|
|
|
|
@Autowired
|
|
@Autowired
|
|
private MemoryLockProvider memoryLock;
|
|
private MemoryLockProvider memoryLock;
|
|
@@ -72,7 +72,7 @@ public class MarkCronService {
|
|
@Scheduled(cron = "${mark.cleanLockSchedule}")
|
|
@Scheduled(cron = "${mark.cleanLockSchedule}")
|
|
public void cronCleanLock() {
|
|
public void cronCleanLock() {
|
|
try {
|
|
try {
|
|
- lockService.clear();
|
|
|
|
|
|
+ markLockService.clear();
|
|
memoryLock.clear();
|
|
memoryLock.clear();
|
|
} catch (Exception e) {
|
|
} catch (Exception e) {
|
|
log.error("CronCleanTask error", e);
|
|
log.error("CronCleanTask error", e);
|
|
@@ -97,7 +97,7 @@ public class MarkCronService {
|
|
*/
|
|
*/
|
|
@Scheduled(fixedDelay = 2 * 60 * 1000, initialDelay = 60 * 1000)
|
|
@Scheduled(fixedDelay = 2 * 60 * 1000, initialDelay = 60 * 1000)
|
|
public void buildLibrary() {
|
|
public void buildLibrary() {
|
|
- log.debug("start auto-create library");
|
|
|
|
|
|
+ log.info("start auto-create library");
|
|
try {
|
|
try {
|
|
Map<String, Campus> campusMap = new HashMap<String, Campus>();
|
|
Map<String, Campus> campusMap = new HashMap<String, Campus>();
|
|
List<Integer> examIds = groupService.findExamIdByStatus(MarkStatus.TRIAL, MarkStatus.FORMAL);
|
|
List<Integer> examIds = groupService.findExamIdByStatus(MarkStatus.TRIAL, MarkStatus.FORMAL);
|
|
@@ -107,20 +107,20 @@ public class MarkCronService {
|
|
} catch (Exception e) {
|
|
} catch (Exception e) {
|
|
log.error("auto-create library error", e);
|
|
log.error("auto-create library error", e);
|
|
} finally {
|
|
} finally {
|
|
- log.debug("finish auto-create library");
|
|
|
|
|
|
+ log.info("finish auto-create library");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
- * 定时生成评卷任务
|
|
|
|
|
|
+ * 定时更新评卷员质量监控指标
|
|
*/
|
|
*/
|
|
@Scheduled(fixedDelay = 2 * 60 * 1000, initialDelay = 60 * 1000)
|
|
@Scheduled(fixedDelay = 2 * 60 * 1000, initialDelay = 60 * 1000)
|
|
- public void updateMarker() {
|
|
|
|
|
|
+ public void updateMarkerQuality() {
|
|
log.debug("start auto-update marker");
|
|
log.debug("start auto-update marker");
|
|
try {
|
|
try {
|
|
List<Integer> examIds = groupService.findExamIdByStatus(MarkStatus.FORMAL);
|
|
List<Integer> examIds = groupService.findExamIdByStatus(MarkStatus.FORMAL);
|
|
for (Integer examId : examIds) {
|
|
for (Integer examId : examIds) {
|
|
- updateMarkerByExam(examId);
|
|
|
|
|
|
+ updateMarkerQualityByExam(examId);
|
|
}
|
|
}
|
|
} catch (Exception e) {
|
|
} catch (Exception e) {
|
|
log.error("auto-update marker error", e);
|
|
log.error("auto-update marker error", e);
|
|
@@ -129,22 +129,20 @@ public class MarkCronService {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
- private void updateMarkerByExam(Integer examId) {
|
|
|
|
|
|
+ private void updateMarkerQualityByExam(Integer examId) {
|
|
// 获取主观题总分大于0的科目
|
|
// 获取主观题总分大于0的科目
|
|
List<ExamSubject> subjects = subjectService.list(examId, 0);
|
|
List<ExamSubject> subjects = subjectService.list(examId, 0);
|
|
for (ExamSubject subject : subjects) {
|
|
for (ExamSubject subject : subjects) {
|
|
List<MarkGroup> groups = groupService.findByExamAndSubjectAndStatus(examId, subject.getCode(),
|
|
List<MarkGroup> groups = groupService.findByExamAndSubjectAndStatus(examId, subject.getCode(),
|
|
MarkStatus.FORMAL);
|
|
MarkStatus.FORMAL);
|
|
for (MarkGroup markGroup : groups) {
|
|
for (MarkGroup markGroup : groups) {
|
|
- if (!MarkStatus.FINISH.equals(markGroup.getStatus())) {
|
|
|
|
- List<Marker> markers = markerService.findByExamAndSubjectAndGroup(examId, subject.getCode(),
|
|
|
|
- markGroup.getNumber());
|
|
|
|
- for (Marker marker : markers) {
|
|
|
|
- try {
|
|
|
|
- markService.updateQuality(marker);
|
|
|
|
- } catch (Exception e) {
|
|
|
|
- log.error("update marker quality error for markerId=" + marker.getId(), e);
|
|
|
|
- }
|
|
|
|
|
|
+ List<Marker> markers = markerService.findByExamAndSubjectAndGroup(examId, subject.getCode(),
|
|
|
|
+ markGroup.getNumber());
|
|
|
|
+ for (Marker marker : markers) {
|
|
|
|
+ try {
|
|
|
|
+ markService.updateQuality(marker);
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
+ log.error("update marker quality error for markerId=" + marker.getId(), e);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -205,12 +203,6 @@ public class MarkCronService {
|
|
List<MarkGroup> groups = groupService.findByExamAndSubjectAndStatus(subject.getExamId(), subject.getCode(),
|
|
List<MarkGroup> groups = groupService.findByExamAndSubjectAndStatus(subject.getExamId(), subject.getCode(),
|
|
MarkStatus.TRIAL);
|
|
MarkStatus.TRIAL);
|
|
for (MarkGroup group : groups) {
|
|
for (MarkGroup group : groups) {
|
|
- // if (group.getLibraryCount() >= group.getTrialCount()) {
|
|
|
|
- // continue;
|
|
|
|
- // }
|
|
|
|
-
|
|
|
|
- // while (groupService.needTrialLibrary(group.getExamId(),
|
|
|
|
- // group.getSubjectCode(), group.getNumber())) {
|
|
|
|
while (group.getTrialCount() > group.getLibraryCount()) {
|
|
while (group.getTrialCount() > group.getLibraryCount()) {
|
|
// 随机取一个未生成试评任务的考生
|
|
// 随机取一个未生成试评任务的考生
|
|
ExamStudent student = studentService.randomUnTrialStudent(group.getExamId(), group.getSubjectCode(),
|
|
ExamStudent student = studentService.randomUnTrialStudent(group.getExamId(), group.getSubjectCode(),
|