|
@@ -703,40 +703,43 @@ public class MarkServiceImpl implements MarkService {
|
|
|
MarkStatusDto dto;
|
|
|
for (MarkUserQuestion question : markUserQuestionList) {
|
|
|
dto = new MarkStatusDto(markQuestionService.getById(question.getQuestionId()));
|
|
|
- Long[] questionIds = new Long[]{question.getQuestionId()};
|
|
|
+ List<Long> questionIds = Arrays.asList(question.getQuestionId());
|
|
|
//总数量(考生数)
|
|
|
- dto.setTotalCount(markTaskService.countTotalCountByExamIdAndPaperNumberAndAndClassNameAndQuestionIdIn(examId, paperNumber, classNames, questionIds));
|
|
|
+ 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(markTaskService.countMarkedCountByExamIdAndPaperNumberAndUserIdAndAndClassNameAndQuestionIdIn(examId, paperNumber, userId, classNames, questionIds, MarkTaskStatus.MARKED, MarkTaskStatus.ARBITRATED));
|
|
|
+ dto.setMarkedCount(dto.getTotalCount() == 0 ? 0 : dto.getTotalCount() - unmarkCount);
|
|
|
//个人评卷数量(考生数)
|
|
|
- dto.setPersonCount(markTaskService.countMarkedCountByExamIdAndPaperNumberAndUserIdAndAndClassNameAndQuestionIdIn(examId, paperNumber, userId, classNames, questionIds, MarkTaskStatus.MARKED, MarkTaskStatus.ARBITRATED,
|
|
|
- MarkTaskStatus.WAIT_ARBITRATE));
|
|
|
+ dto.setPersonCount(markTaskService.countByExamIdAndPaperNumberAndUserIdAndAndClassNameAndQuestionIdIn(examId, paperNumber, userId, classNames, questionIds, MarkTaskStatus.MARKED, MarkTaskStatus.ARBITRATED,
|
|
|
+ MarkTaskStatus.WAIT_ARBITRATE, MarkTaskStatus.PROBLEM));
|
|
|
//问题卷数量(任务数)
|
|
|
- dto.setProblemCount(markTaskService.countByExamIdAndPaperNumberAndQuestionIdAndUserIdAndAndClassNameStatusIn(examId,
|
|
|
- paperNumber, question.getQuestionId(), null, classNames, MarkTaskStatus.PROBLEM));
|
|
|
+ dto.setProblemCount(markTaskService.countByExamIdAndPaperNumberAndQuestionIdAndAndClassNameStatusIn(examId,
|
|
|
+ paperNumber, question.getQuestionId(), classNames, MarkTaskStatus.PROBLEM));
|
|
|
//待仲裁卷数量(任务数)
|
|
|
- dto.setArbitrateCount(markTaskService.countByExamIdAndPaperNumberAndQuestionIdAndUserIdAndAndClassNameStatusIn(examId,
|
|
|
- paperNumber, question.getQuestionId(), null, classNames, MarkTaskStatus.WAIT_ARBITRATE));
|
|
|
+ dto.setArbitrateCount(markTaskService.countByExamIdAndPaperNumberAndQuestionIdAndAndClassNameStatusIn(examId,
|
|
|
+ paperNumber, question.getQuestionId(), classNames, MarkTaskStatus.WAIT_ARBITRATE));
|
|
|
dto.setLeftCount(dto.getTotalCount() - dto.getPersonCount());
|
|
|
dtoList.add(dto);
|
|
|
}
|
|
|
} else if (QuestionModel.MULTI.equals(questionModel)) {
|
|
|
MarkStatusDto dto = new MarkStatusDto();
|
|
|
- List<Long> questionIdList = markUserQuestionList.stream().filter(m -> m.getUserId().equals(userId)).map(MarkUserQuestion::getQuestionId).collect(Collectors.toList());
|
|
|
- Long[] questionIds = questionIdList.toArray(new Long[0]);
|
|
|
+ List<Long> questionIds = markUserQuestionList.stream().filter(m -> m.getUserId().equals(userId)).map(MarkUserQuestion::getQuestionId).collect(Collectors.toList());
|
|
|
//待仲裁卷数量
|
|
|
- dto.setArbitrateCount(markTaskService.countByExamIdAndPaperNumberAndQuestionIdAndUserIdAndAndClassNameStatusIn(examId,
|
|
|
- paperNumber, null, null, classNames, MarkTaskStatus.WAIT_ARBITRATE));
|
|
|
+ dto.setArbitrateCount(markTaskService.countByExamIdAndPaperNumberAndQuestionIdAndAndClassNameStatusIn(examId,
|
|
|
+ paperNumber, null, classNames, MarkTaskStatus.WAIT_ARBITRATE));
|
|
|
//总数量
|
|
|
- dto.setTotalCount(markTaskService.countTotalCountByExamIdAndPaperNumberAndAndClassNameAndQuestionIdIn(examId, paperNumber, classNames, questionIds));
|
|
|
- //总评卷数量(已评)
|
|
|
- dto.setMarkedCount(markTaskService.countMarkedCountByExamIdAndPaperNumberAndUserIdAndAndClassNameAndQuestionIdIn(examId, paperNumber, userId, classNames, questionIds, MarkTaskStatus.MARKED, MarkTaskStatus.ARBITRATED));
|
|
|
+ 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.countMarkedCountByExamIdAndPaperNumberAndUserIdAndAndClassNameAndQuestionIdIn(examId, paperNumber, userId, classNames, questionIds, MarkTaskStatus.MARKED, MarkTaskStatus.ARBITRATED,
|
|
|
- MarkTaskStatus.WAIT_ARBITRATE));
|
|
|
+ dto.setPersonCount(markTaskService.countByExamIdAndPaperNumberAndUserIdAndAndClassNameAndQuestionIdIn(examId, paperNumber, userId, classNames, questionIds, MarkTaskStatus.MARKED, MarkTaskStatus.ARBITRATED,
|
|
|
+ MarkTaskStatus.WAIT_ARBITRATE, MarkTaskStatus.PROBLEM));
|
|
|
//问题卷数量
|
|
|
- dto.setProblemCount(markTaskService.countByExamIdAndPaperNumberAndQuestionIdAndUserIdAndAndClassNameStatusIn(examId,
|
|
|
- paperNumber, null, null, classNames, MarkTaskStatus.PROBLEM));
|
|
|
+ dto.setProblemCount(markTaskService.countByExamIdAndPaperNumberAndQuestionIdAndAndClassNameStatusIn(examId,
|
|
|
+ paperNumber, null, classNames, MarkTaskStatus.PROBLEM));
|
|
|
dtoList.add(dto);
|
|
|
} else {
|
|
|
throw ExceptionResultEnum.ERROR.exception("参数有误");
|