|
@@ -704,49 +704,38 @@ public class MarkServiceImpl implements MarkService {
|
|
for (MarkUserQuestion question : markUserQuestionList) {
|
|
for (MarkUserQuestion question : markUserQuestionList) {
|
|
dto = new MarkStatusDto(markQuestionService.getById(question.getQuestionId()));
|
|
dto = new MarkStatusDto(markQuestionService.getById(question.getQuestionId()));
|
|
List<Long> questionIds = Arrays.asList(question.getQuestionId());
|
|
List<Long> questionIds = Arrays.asList(question.getQuestionId());
|
|
- //总数量(考生数)
|
|
|
|
- dto.setTotalCount(markTaskService.countByExamIdAndPaperNumberAndUserIdAndAndClassNameAndQuestionIdIn(examId, paperNumber, null, classNames, questionIds));
|
|
|
|
- // 未评
|
|
|
|
- int unmarkCount = markTaskService.countByExamIdAndPaperNumberAndUserIdAndAndClassNameAndQuestionIdIn(examId, paperNumber, null, classNames, questionIds, MarkTaskStatus.WAITING, MarkTaskStatus.WAIT_ARBITRATE, MarkTaskStatus.REJECTED);
|
|
|
|
- //总评卷数量(考生数)
|
|
|
|
- dto.setMarkedCount(dto.getTotalCount() == 0 ? 0 : dto.getTotalCount() - unmarkCount);
|
|
|
|
- //个人评卷数量(考生数)
|
|
|
|
- dto.setPersonCount(markTaskService.countByExamIdAndPaperNumberAndUserIdAndAndClassNameAndQuestionIdIn(examId, paperNumber, userId, classNames, questionIds, MarkTaskStatus.MARKED, MarkTaskStatus.ARBITRATED,
|
|
|
|
- MarkTaskStatus.WAIT_ARBITRATE, MarkTaskStatus.PROBLEM));
|
|
|
|
- //问题卷数量(任务数)
|
|
|
|
- dto.setProblemCount(markTaskService.countByExamIdAndPaperNumberAndQuestionIdAndAndClassNameStatusIn(examId,
|
|
|
|
- paperNumber, question.getQuestionId(), classNames, MarkTaskStatus.PROBLEM));
|
|
|
|
- //待仲裁卷数量(任务数)
|
|
|
|
- dto.setArbitrateCount(markTaskService.countByExamIdAndPaperNumberAndQuestionIdAndAndClassNameStatusIn(examId,
|
|
|
|
- paperNumber, question.getQuestionId(), classNames, MarkTaskStatus.WAIT_ARBITRATE));
|
|
|
|
- dto.setLeftCount(dto.getTotalCount() - dto.getPersonCount());
|
|
|
|
- dtoList.add(dto);
|
|
|
|
|
|
+ dtoList.add(getDto(dto, examId, paperNumber, userId, classNames, questionIds));
|
|
}
|
|
}
|
|
} else if (QuestionModel.MULTI.equals(questionModel)) {
|
|
} else if (QuestionModel.MULTI.equals(questionModel)) {
|
|
MarkStatusDto dto = new MarkStatusDto();
|
|
MarkStatusDto dto = new MarkStatusDto();
|
|
List<Long> questionIds = markUserQuestionList.stream().filter(m -> m.getUserId().equals(userId)).map(MarkUserQuestion::getQuestionId).collect(Collectors.toList());
|
|
List<Long> questionIds = markUserQuestionList.stream().filter(m -> m.getUserId().equals(userId)).map(MarkUserQuestion::getQuestionId).collect(Collectors.toList());
|
|
- //待仲裁卷数量
|
|
|
|
- dto.setArbitrateCount(markTaskService.countByExamIdAndPaperNumberAndQuestionIdAndAndClassNameStatusIn(examId,
|
|
|
|
- paperNumber, null, classNames, MarkTaskStatus.WAIT_ARBITRATE));
|
|
|
|
- //总数量
|
|
|
|
- dto.setTotalCount(markTaskService.countByExamIdAndPaperNumberAndUserIdAndAndClassNameAndQuestionIdIn(examId, paperNumber,null, classNames, questionIds));
|
|
|
|
- // 未评
|
|
|
|
- int unmarkCount = markTaskService.countByExamIdAndPaperNumberAndUserIdAndAndClassNameAndQuestionIdIn(examId, paperNumber, null, classNames, questionIds, MarkTaskStatus.WAITING, MarkTaskStatus.WAIT_ARBITRATE, MarkTaskStatus.REJECTED);
|
|
|
|
- //总评卷数量(考生数)
|
|
|
|
- dto.setMarkedCount(dto.getTotalCount() == 0 ? 0 : dto.getTotalCount() - unmarkCount);
|
|
|
|
- //个人评卷数量
|
|
|
|
- dto.setPersonCount(markTaskService.countByExamIdAndPaperNumberAndUserIdAndAndClassNameAndQuestionIdIn(examId, paperNumber, userId, classNames, questionIds, MarkTaskStatus.MARKED, MarkTaskStatus.ARBITRATED,
|
|
|
|
- MarkTaskStatus.WAIT_ARBITRATE, MarkTaskStatus.PROBLEM));
|
|
|
|
- //问题卷数量
|
|
|
|
- dto.setProblemCount(markTaskService.countByExamIdAndPaperNumberAndQuestionIdAndAndClassNameStatusIn(examId,
|
|
|
|
- paperNumber, null, classNames, MarkTaskStatus.PROBLEM));
|
|
|
|
- dtoList.add(dto);
|
|
|
|
|
|
+ dtoList.add(getDto(dto, examId, paperNumber, userId, classNames, questionIds));
|
|
} else {
|
|
} else {
|
|
throw ExceptionResultEnum.ERROR.exception("参数有误");
|
|
throw ExceptionResultEnum.ERROR.exception("参数有误");
|
|
}
|
|
}
|
|
return dtoList;
|
|
return dtoList;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ 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.setTotalCount(markTaskService.countByExamIdAndPaperNumberAndUserIdAndAndClassNameAndQuestionIdIn(examId, paperNumber, null, classNames, questionIds));
|
|
|
|
+ // 未评
|
|
|
|
+ int unmarkCount = markTaskService.countByExamIdAndPaperNumberAndUserIdAndAndClassNameAndQuestionIdIn(examId, paperNumber, null, classNames, questionIds, MarkTaskStatus.WAITING, MarkTaskStatus.WAIT_ARBITRATE, MarkTaskStatus.REJECTED);
|
|
|
|
+ dto.setLeftCount(unmarkCount);
|
|
|
|
+ //总评卷数量(考生数)
|
|
|
|
+ dto.setMarkedCount(dto.getTotalCount() == 0 ? 0 : dto.getTotalCount() - unmarkCount);
|
|
|
|
+ //个人评卷数量
|
|
|
|
+ dto.setPersonCount(markTaskService.countByExamIdAndPaperNumberAndUserIdAndAndClassNameAndQuestionIdIn(examId, paperNumber, userId, classNames, questionIds, MarkTaskStatus.MARKED, MarkTaskStatus.ARBITRATED,
|
|
|
|
+ MarkTaskStatus.WAIT_ARBITRATE, MarkTaskStatus.PROBLEM));
|
|
|
|
+ //问题卷数量
|
|
|
|
+ dto.setProblemCount(markTaskService.countByExamIdAndPaperNumberAndQuestionIdAndAndClassNameStatusIn(examId,
|
|
|
|
+ paperNumber, null, classNames, MarkTaskStatus.PROBLEM));
|
|
|
|
+ return dto;
|
|
|
|
+ }
|
|
|
|
+
|
|
@Override
|
|
@Override
|
|
public void clear(Long userId, Long examId, String paperNumber) {
|
|
public void clear(Long userId, Long examId, String paperNumber) {
|
|
TaskLock taskLock = TaskLockUtil.getFormalTask(getKey(examId, paperNumber));
|
|
TaskLock taskLock = TaskLockUtil.getFormalTask(getKey(examId, paperNumber));
|