|
@@ -207,7 +207,7 @@ public class MarkServiceImpl implements MarkService {
|
|
}
|
|
}
|
|
Long now = System.currentTimeMillis();
|
|
Long now = System.currentTimeMillis();
|
|
if (markTaskService.resetById(markTask.getId(), null, null, userId, now, MarkTaskStatus.WAITING)) {
|
|
if (markTaskService.resetById(markTask.getId(), null, null, userId, now, MarkTaskStatus.WAITING)) {
|
|
- resetStudentGroup(markTask.getStudentId());
|
|
|
|
|
|
+ resetStudentStatus(markTask.getStudentId());
|
|
markProblemHistoryService.resetByMarkProblemId(markProblemHistory.getId(), MarkProblemStatus.WAITING,
|
|
markProblemHistoryService.resetByMarkProblemId(markProblemHistory.getId(), MarkProblemStatus.WAITING,
|
|
userId, MarkProblemStatus.BACK, now);
|
|
userId, MarkProblemStatus.BACK, now);
|
|
updateMarkedCount(markTask.getExamId(), markTask.getPaperNumber(), markTask.getQuestionId());
|
|
updateMarkedCount(markTask.getExamId(), markTask.getPaperNumber(), markTask.getQuestionId());
|
|
@@ -217,7 +217,7 @@ public class MarkServiceImpl implements MarkService {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
- private void resetStudentGroup(Long studentId) {
|
|
|
|
|
|
+ private void resetStudentStatus(Long studentId) {
|
|
// markStudentService.updateSubjectiveStatusAndScore(studentId, SubjectiveStatus.UNMARK, null, null);
|
|
// markStudentService.updateSubjectiveStatusAndScore(studentId, SubjectiveStatus.UNMARK, null, null);
|
|
markStudentService.updateSubjectiveScoreByVersion(studentId, SubjectiveStatus.UNMARK, null, null, null);
|
|
markStudentService.updateSubjectiveScoreByVersion(studentId, SubjectiveStatus.UNMARK, null, null, null);
|
|
}
|
|
}
|
|
@@ -719,8 +719,7 @@ public class MarkServiceImpl implements MarkService {
|
|
|
|
|
|
private MarkStatusDto getDto(MarkStatusDto dto, Long examId, String paperNumber, Long userId, List<String> classNames, List<Long> questionIds) {
|
|
private MarkStatusDto getDto(MarkStatusDto dto, Long examId, String paperNumber, Long userId, List<String> classNames, List<Long> questionIds) {
|
|
//待仲裁卷数量
|
|
//待仲裁卷数量
|
|
- dto.setArbitrateCount(markTaskService.countByExamIdAndPaperNumberAndQuestionIdAndAndClassNameStatusIn(examId,
|
|
|
|
- paperNumber, null, classNames, MarkTaskStatus.WAIT_ARBITRATE));
|
|
|
|
|
|
+ dto.setArbitrateCount(markArbitrateHistoryService.waitArbitrateCount(examId, paperNumber, null, classNames));
|
|
//总数量
|
|
//总数量
|
|
dto.setTotalCount(markTaskService.countByExamIdAndPaperNumberAndUserIdAndAndClassNameAndQuestionIdIn(examId, paperNumber, null, classNames, questionIds));
|
|
dto.setTotalCount(markTaskService.countByExamIdAndPaperNumberAndUserIdAndAndClassNameAndQuestionIdIn(examId, paperNumber, null, classNames, questionIds));
|
|
// 未评
|
|
// 未评
|
|
@@ -732,8 +731,7 @@ public class MarkServiceImpl implements MarkService {
|
|
dto.setPersonCount(markTaskService.countByExamIdAndPaperNumberAndUserIdAndAndClassNameAndQuestionIdIn(examId, paperNumber, userId, classNames, questionIds, MarkTaskStatus.MARKED, MarkTaskStatus.ARBITRATED,
|
|
dto.setPersonCount(markTaskService.countByExamIdAndPaperNumberAndUserIdAndAndClassNameAndQuestionIdIn(examId, paperNumber, userId, classNames, questionIds, MarkTaskStatus.MARKED, MarkTaskStatus.ARBITRATED,
|
|
MarkTaskStatus.WAIT_ARBITRATE, MarkTaskStatus.PROBLEM));
|
|
MarkTaskStatus.WAIT_ARBITRATE, MarkTaskStatus.PROBLEM));
|
|
//问题卷数量
|
|
//问题卷数量
|
|
- dto.setProblemCount(markTaskService.countByExamIdAndPaperNumberAndQuestionIdAndAndClassNameStatusIn(examId,
|
|
|
|
- paperNumber, null, classNames, MarkTaskStatus.PROBLEM));
|
|
|
|
|
|
+ dto.setProblemCount(markProblemHistoryService.countByExamIdAndPaperNumberAndStatusAndClassNameIn(examId, paperNumber, MarkProblemStatus.WAITING, classNames));
|
|
return dto;
|
|
return dto;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -868,13 +866,22 @@ public class MarkServiceImpl implements MarkService {
|
|
if (markUserQuestions.isEmpty()) {
|
|
if (markUserQuestions.isEmpty()) {
|
|
throw ExceptionResultEnum.ERROR.exception("评卷员未设置评卷题目");
|
|
throw ExceptionResultEnum.ERROR.exception("评卷员未设置评卷题目");
|
|
}
|
|
}
|
|
|
|
+ List<String> classNames = null;
|
|
|
|
+ //校验是否有分班阅
|
|
|
|
+ if (markPaper != null && markPaper.getClassMark() != null && markPaper.getClassMark().booleanValue()) {
|
|
|
|
+ List<MarkUserClass> markUserClassList = markUserClassService.listByExamIdAndPaperNumberAndUserId(examId, paperNumber, userId);
|
|
|
|
+ if (CollectionUtils.isNotEmpty(markUserClassList)) {
|
|
|
|
+ classNames = markUserClassList.stream().map(MarkUserClass::getClassName).collect(Collectors.toList());
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
Task task = null;
|
|
Task task = null;
|
|
List<Long> studentIds;
|
|
List<Long> studentIds;
|
|
int pageNumber = 1;
|
|
int pageNumber = 1;
|
|
while (task == null) {
|
|
while (task == null) {
|
|
if (questionModel.equals(QuestionModel.SINGLE)) {
|
|
if (questionModel.equals(QuestionModel.SINGLE)) {
|
|
Set<Long> questions = new HashSet<>(Arrays.asList(questionId));
|
|
Set<Long> questions = new HashSet<>(Arrays.asList(questionId));
|
|
- List<MarkTask> list = markTaskService.findUnMarkedFilterClass(new Page<>(pageNumber, 20), examId, paperNumber, userId, questionId, markPaper.getClassMark());
|
|
|
|
|
|
+ List<MarkTask> list = markTaskService.findUnMarkedFilterClass(new Page<>(pageNumber, 20), examId, paperNumber, userId, questionId, classNames);
|
|
if (list.isEmpty()) {
|
|
if (list.isEmpty()) {
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
@@ -886,7 +893,7 @@ public class MarkServiceImpl implements MarkService {
|
|
}
|
|
}
|
|
} else if (questionModel.equals(QuestionModel.MULTI)) {
|
|
} else if (questionModel.equals(QuestionModel.MULTI)) {
|
|
Set<Long> questions = markUserQuestions.stream().map(MarkUserQuestion::getQuestionId).collect(Collectors.toSet());
|
|
Set<Long> questions = markUserQuestions.stream().map(MarkUserQuestion::getQuestionId).collect(Collectors.toSet());
|
|
- studentIds = markStudentService.findUnMarked(new Page<>(pageNumber, 20), examId, paperNumber, userId, markPaper.getClassMark());
|
|
|
|
|
|
+ studentIds = markStudentService.findUnMarked(new Page<>(pageNumber, 20), examId, paperNumber, questions, classNames);
|
|
if (studentIds.isEmpty()) {
|
|
if (studentIds.isEmpty()) {
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
@@ -957,8 +964,8 @@ public class MarkServiceImpl implements MarkService {
|
|
if (!lock) {
|
|
if (!lock) {
|
|
return false;
|
|
return false;
|
|
}
|
|
}
|
|
- taskLock.remove(studentId, userId);
|
|
|
|
- return false;
|
|
|
|
|
|
+// taskLock.remove(studentId, userId);
|
|
|
|
+ return true;
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
@@ -1062,7 +1069,7 @@ public class MarkServiceImpl implements MarkService {
|
|
saveProblemHistory(markResultQuestion, task, userId);
|
|
saveProblemHistory(markResultQuestion, task, userId);
|
|
updateMarkedCount(markUserQuestion.getExamId(), markUserQuestion.getPaperNumber(), markUserQuestion.getQuestionId());
|
|
updateMarkedCount(markUserQuestion.getExamId(), markUserQuestion.getPaperNumber(), markUserQuestion.getQuestionId());
|
|
// 未评完
|
|
// 未评完
|
|
- resetStudentGroup(task.getStudentId());
|
|
|
|
|
|
+ resetStudentStatus(task.getStudentId());
|
|
count++;
|
|
count++;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -1159,7 +1166,7 @@ public class MarkServiceImpl implements MarkService {
|
|
// 触发仲裁后续状态更新
|
|
// 触发仲裁后续状态更新
|
|
markTaskService.updateStatusByStudentIdAndQuestionId(task.getStudentId(), task.getQuestionId(), MarkTaskStatus.WAIT_ARBITRATE);
|
|
markTaskService.updateStatusByStudentIdAndQuestionId(task.getStudentId(), task.getQuestionId(), MarkTaskStatus.WAIT_ARBITRATE);
|
|
// 未评完
|
|
// 未评完
|
|
- resetStudentGroup(task.getStudentId());
|
|
|
|
|
|
+ resetStudentStatus(task.getStudentId());
|
|
} else {
|
|
} else {
|
|
// 判断当前分组是否已完成评卷
|
|
// 判断当前分组是否已完成评卷
|
|
checkStudentQuestion(task.getStudentId(), markQuestion, result.getMarkerScore());
|
|
checkStudentQuestion(task.getStudentId(), markQuestion, result.getMarkerScore());
|
|
@@ -1214,7 +1221,7 @@ public class MarkServiceImpl implements MarkService {
|
|
markUserQuestionService.updateRejectCountByExamIdAndPaperNumberAndQuestionIdAndUserId(markTask.getExamId(), markTask.getPaperNumber(), markTask.getQuestionId(), markTask.getUserId());
|
|
markUserQuestionService.updateRejectCountByExamIdAndPaperNumberAndQuestionIdAndUserId(markTask.getExamId(), markTask.getPaperNumber(), markTask.getQuestionId(), markTask.getUserId());
|
|
markRejectHistoryService.save(history);
|
|
markRejectHistoryService.save(history);
|
|
markSubjectiveScoreService.updateRejected(markTask.getStudentId(), markTask.getQuestionId(), true);
|
|
markSubjectiveScoreService.updateRejected(markTask.getStudentId(), markTask.getQuestionId(), true);
|
|
- resetStudentGroup(markTask.getStudentId());
|
|
|
|
|
|
+ resetStudentStatus(markTask.getStudentId());
|
|
updateMarkedCount(markTask.getExamId(), markTask.getPaperNumber(), markTask.getQuestionId());
|
|
updateMarkedCount(markTask.getExamId(), markTask.getPaperNumber(), markTask.getQuestionId());
|
|
return true;
|
|
return true;
|
|
} else {
|
|
} else {
|