|
@@ -51,6 +51,14 @@ public class TaskServiceImpl implements TaskService {
|
|
|
private MarkArchiveStudentCardService markArchiveStudentCardService;
|
|
|
@Resource
|
|
|
private MarkUserQuestionService markUserQuestionService;
|
|
|
+ @Resource
|
|
|
+ private MarkOcrStudentQuestionService markOcrStudentQuestionService;
|
|
|
+ @Resource
|
|
|
+ private MarkAiQuestionParamService markAiQuestionParamService;
|
|
|
+ @Resource
|
|
|
+ private MarkAiQuestionPointService markAiQuestionPointService;
|
|
|
+ @Resource
|
|
|
+ private MarkAiQuestionLevelService markAiQuestionLevelService;
|
|
|
|
|
|
@Override
|
|
|
public Task build(MarkArbitrateHistory markArbitrateHistory, MarkQuestion markQuestion) {
|
|
@@ -379,4 +387,36 @@ public class TaskServiceImpl implements TaskService {
|
|
|
}
|
|
|
return taskQuestions;
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public MarkTaskTrackDto buildMarkTask(MarkTask markTask) {
|
|
|
+ MarkTaskTrackDto markTaskTrackDto = new MarkTaskTrackDto();
|
|
|
+ MarkStudent markStudent = markStudentService.getById(markTask.getStudentId());
|
|
|
+ markTaskTrackDto.setSheetUrls(teachcloudCommonService.fileMarkPreview(markStudent.getSheetPathList()));
|
|
|
+ MarkQuestion markQuestion = markQuestionService.getById(markTask.getQuestionId());
|
|
|
+ markTaskTrackDto.setPicList(markQuestion.getPictureConfigs());
|
|
|
+ markTaskTrackDto.setTrackList(StringUtils.isNotBlank(markTask.getHeaderTrackList()) ? markTask.listHeaderTrack() : markTask.listMarkerTrack());
|
|
|
+ MarkTaskTrackOcrDto markTaskTrackOcrDto = new MarkTaskTrackOcrDto();
|
|
|
+ if (StringUtils.isNotBlank(markTask.getAiMarkErrorMsg())) {
|
|
|
+ markTaskTrackOcrDto.setErrorMsg(markTask.getAiMarkErrorMsg());
|
|
|
+ } else {
|
|
|
+ List<MarkOcrStudentQuestion> markOcrStudentQuestions = markOcrStudentQuestionService.listByStudentIdAndQuestionId(markTask.getStudentId(), markTask.getQuestionId());
|
|
|
+ List<String> result = new ArrayList<>();
|
|
|
+ if (CollectionUtils.isNotEmpty(markOcrStudentQuestions)) {
|
|
|
+ result = markOcrStudentQuestions.stream().map(MarkOcrStudentQuestion::getOcrContent).collect(Collectors.toList());
|
|
|
+ }
|
|
|
+ markTaskTrackOcrDto.setResult(result);
|
|
|
+ }
|
|
|
+ markTaskTrackDto.setOcr(markTaskTrackOcrDto);
|
|
|
+
|
|
|
+ MarkAiQuestionParam markAiQuestionParam = markAiQuestionParamService.getByExamIdAndPaperNumberAndQuestionId(markTask.getExamId(), markTask.getPaperNumber(), markTask.getQuestionId());
|
|
|
+ if (Objects.nonNull(markAiQuestionParam)) {
|
|
|
+ List<MarkAiQuestionPoint> markAiQuestionPointDbList = markAiQuestionPointService.listByAiQuestionId(markAiQuestionParam.getId());
|
|
|
+ List<MarkAiQuestionLevel> markAiQuestionLevelDbList = markAiQuestionLevelService.listByAiQuestionId(markAiQuestionParam.getId());
|
|
|
+ markAiQuestionParam.setListInfo(markAiQuestionPointDbList, markAiQuestionLevelDbList);
|
|
|
+ }
|
|
|
+ markTaskTrackDto.setMarkAiQuestionParam(markAiQuestionParam);
|
|
|
+ return markTaskTrackDto;
|
|
|
+ }
|
|
|
+
|
|
|
}
|