|
@@ -1,5 +1,6 @@
|
|
|
package cn.com.qmth.stmms.ms.marking.service;
|
|
|
|
|
|
+import cn.com.qmth.stmms.ms.commons.config.LevelConfig;
|
|
|
import cn.com.qmth.stmms.ms.commons.constant.ArbitrateCallback;
|
|
|
import cn.com.qmth.stmms.ms.core.domain.*;
|
|
|
import cn.com.qmth.stmms.ms.core.domain.task.MarkTask;
|
|
@@ -43,12 +44,15 @@ public class MarkingService {
|
|
|
@Autowired
|
|
|
private LevelRepo levelRepo;
|
|
|
|
|
|
- @Autowired
|
|
|
- private MarkSubjectRepo markSubjectRepo;
|
|
|
+// @Autowired
|
|
|
+// private MarkSubjectRepo markSubjectRepo;
|
|
|
|
|
|
@Autowired
|
|
|
MarkLogRepo markLogRepo;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ LevelConfig levelConfig;
|
|
|
+
|
|
|
/**
|
|
|
* 提交分档。如果每个评卷都提交了,则进行仲裁判定,如果没有触发仲裁就定档
|
|
|
*
|
|
@@ -117,32 +121,34 @@ public class MarkingService {
|
|
|
if (result) {
|
|
|
//仲裁
|
|
|
paper.arbitrate();
|
|
|
- List<String> levels = markTasks.stream().map(o -> o.getResult()).collect(Collectors.toList());
|
|
|
- //20191107wangliang加入仲裁自动打回算法
|
|
|
- List<String> list = ArbitrateCallback.judge(levels, markingConfig.getDeviation());
|
|
|
- if (Objects.nonNull(list) && list.size() > 0) {
|
|
|
- paper.reject(null);
|
|
|
- String operResult = null;
|
|
|
- List<MarkLog> markLogList = new ArrayList<>();
|
|
|
- for (String s : list) {
|
|
|
- for (MarkTask m : markTasks) {
|
|
|
- if (Objects.equals(s, m.getResult())) {
|
|
|
- m.setRejected(true);
|
|
|
- m.setOriginLevel(markTask.getResult());
|
|
|
- m.setResult(null);
|
|
|
- MarkLog markLogPrev = markLogRepo.findTopByCreateUserIdAndOperTypeAndSubjectAndExamNumberOrderByCreateTimeDesc(-1L, MarkLogOperType.SYSTEM_CALLBACK_LEVEl.getId(), markTask.getSubject().toString(), paper.getExamNumber());
|
|
|
- if (Objects.nonNull(markLogPrev)) {
|
|
|
- operResult = Optional.ofNullable(markLogPrev.getOperDataAfter()).orElse("-");
|
|
|
+ if (levelConfig.isAutoCallback()) {//为true则自动打回
|
|
|
+ //20191107wangliang加入仲裁自动打回算法
|
|
|
+ List<String> levels = markTasks.stream().map(o -> o.getResult()).collect(Collectors.toList());
|
|
|
+ List<String> list = ArbitrateCallback.judge(levels, markingConfig.getDeviation());
|
|
|
+ if (Objects.nonNull(list) && list.size() > 0) {
|
|
|
+ paper.reject(null);
|
|
|
+ String operResult = null;
|
|
|
+ List<MarkLog> markLogList = new ArrayList<>();
|
|
|
+ for (String s : list) {
|
|
|
+ for (MarkTask m : markTasks) {
|
|
|
+ if (Objects.equals(s, m.getResult())) {
|
|
|
+ m.setRejected(true);
|
|
|
+ m.setOriginLevel(markTask.getResult());
|
|
|
+ m.setResult(null);
|
|
|
+ MarkLog markLogPrev = markLogRepo.findTopByCreateUserIdAndOperTypeAndSubjectAndExamNumberOrderByCreateTimeDesc(-1L, MarkLogOperType.SYSTEM_CALLBACK_LEVEl.getId(), markTask.getSubject().toString(), paper.getExamNumber());
|
|
|
+ if (Objects.nonNull(markLogPrev)) {
|
|
|
+ operResult = Optional.ofNullable(markLogPrev.getOperDataAfter()).orElse("-");
|
|
|
+ }
|
|
|
+ //加入打回日志
|
|
|
+ MarkLog markLog = new MarkLog(-1L, Role.ADMIN.getName(), Role.ADMIN, markTask.getSubject(), paper.getExamNumber(), paper.getStudentName(), MarkLogOperType.SYSTEM_CALLBACK_LEVEl.getId(), paper.getWorkId(), paper.getId(), markTask.getStage(), operResult, s, "仲裁自动打回");
|
|
|
+ markLogList.add(markLog);
|
|
|
}
|
|
|
- //加入打回日志
|
|
|
- MarkLog markLog = new MarkLog(-1L, Role.ADMIN.getName(), Role.ADMIN, markTask.getSubject(), paper.getExamNumber(), paper.getStudentName(), MarkLogOperType.SYSTEM_CALLBACK_LEVEl.getId(), paper.getWorkId(), paper.getId(), markTask.getStage(), operResult, s, "仲裁自动打回");
|
|
|
- markLogList.add(markLog);
|
|
|
}
|
|
|
}
|
|
|
+ markTaskRepo.save(markTasks);
|
|
|
+ paperRepo.save(paper);
|
|
|
+ markLogRepo.save(markLogList);
|
|
|
}
|
|
|
- markTaskRepo.save(markTasks);
|
|
|
- paperRepo.save(paper);
|
|
|
- markLogRepo.save(markLogList);
|
|
|
}
|
|
|
} else {
|
|
|
//定档
|