|
@@ -28,6 +28,7 @@ import com.qmth.teachcloud.common.enums.mark.*;
|
|
import com.qmth.teachcloud.common.mapper.BasicCourseMapper;
|
|
import com.qmth.teachcloud.common.mapper.BasicCourseMapper;
|
|
import com.qmth.teachcloud.common.mapper.BasicSchoolMapper;
|
|
import com.qmth.teachcloud.common.mapper.BasicSchoolMapper;
|
|
import com.qmth.teachcloud.common.service.*;
|
|
import com.qmth.teachcloud.common.service.*;
|
|
|
|
+import com.qmth.teachcloud.common.util.DateDisposeUtils;
|
|
import com.qmth.teachcloud.common.util.FileUtil;
|
|
import com.qmth.teachcloud.common.util.FileUtil;
|
|
import com.qmth.teachcloud.common.util.ServletUtil;
|
|
import com.qmth.teachcloud.common.util.ServletUtil;
|
|
import com.qmth.teachcloud.mark.dto.ai.SheetImageDto;
|
|
import com.qmth.teachcloud.mark.dto.ai.SheetImageDto;
|
|
@@ -1571,7 +1572,7 @@ public class MarkServiceImpl implements MarkService {
|
|
int pageNumber = 1;
|
|
int pageNumber = 1;
|
|
do {
|
|
do {
|
|
if (CollectionUtils.isEmpty(markTasks)) {
|
|
if (CollectionUtils.isEmpty(markTasks)) {
|
|
- markTasks = markTaskService.findAiUnOcr(new Page<>(pageNumber, 20), examId, paperNumber, questionId);
|
|
|
|
|
|
+ markTasks = markTaskService.findAiUnOcr(new Page<>(pageNumber, 20), examId, paperNumber, questionId, System.currentTimeMillis());
|
|
}
|
|
}
|
|
if (markTasks.isEmpty() || !markQuestion.getEnableAi()) {
|
|
if (markTasks.isEmpty() || !markQuestion.getEnableAi()) {
|
|
break;
|
|
break;
|
|
@@ -1580,13 +1581,20 @@ public class MarkServiceImpl implements MarkService {
|
|
// 考生作答
|
|
// 考生作答
|
|
try {
|
|
try {
|
|
this.ocrStudentQuestionResult(basicSchool, t.getStudentId(), t.getQuestionId());
|
|
this.ocrStudentQuestionResult(basicSchool, t.getStudentId(), t.getQuestionId());
|
|
|
|
+ t.setRetryCount(5);
|
|
} catch (Exception e) {
|
|
} catch (Exception e) {
|
|
|
|
+ t.setRetryCount(t.getRetryCount() == null ? 5 : t.getRetryCount() == 0 ? 0 : t.getRetryCount() - 1);
|
|
|
|
+ t.setAiMarkErrorType(MarkTaskAiErrorTypeStatus.OCR_ERROR);
|
|
|
|
+ t.setAiMarkErrorMsg(e.getMessage());
|
|
|
|
+ t.setNextRetryTime(DateDisposeUtils.addMinute(System.currentTimeMillis(), 10));
|
|
log.error("OCR识别错误:{}", e.getMessage());
|
|
log.error("OCR识别错误:{}", e.getMessage());
|
|
|
|
+ } finally {
|
|
|
|
+ markTaskService.updateAiMarkErrorMsg(t);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
// 获取终止评卷标记
|
|
// 获取终止评卷标记
|
|
markQuestion = markQuestionService.getById(questionId);
|
|
markQuestion = markQuestionService.getById(questionId);
|
|
- markTasks = markTaskService.findAiUnOcr(new Page<>(pageNumber, 20), examId, paperNumber, questionId);
|
|
|
|
|
|
+ markTasks = markTaskService.findAiUnOcr(new Page<>(pageNumber, 20), examId, paperNumber, questionId, System.currentTimeMillis());
|
|
} while (CollectionUtils.isNotEmpty(markTasks));
|
|
} while (CollectionUtils.isNotEmpty(markTasks));
|
|
}
|
|
}
|
|
|
|
|
|
@@ -1622,7 +1630,7 @@ public class MarkServiceImpl implements MarkService {
|
|
int pageNumber = 1;
|
|
int pageNumber = 1;
|
|
do {
|
|
do {
|
|
if (CollectionUtils.isEmpty(markTasks)) {
|
|
if (CollectionUtils.isEmpty(markTasks)) {
|
|
- markTasks = markTaskService.findAiUnMarked(new Page<>(pageNumber, 20), examId, paperNumber, questionId);
|
|
|
|
|
|
+ markTasks = markTaskService.findAiUnMarked(new Page<>(pageNumber, 20), examId, paperNumber, questionId, System.currentTimeMillis());
|
|
}
|
|
}
|
|
if (markTasks.isEmpty() || !markQuestion.getEnableAi()) {
|
|
if (markTasks.isEmpty() || !markQuestion.getEnableAi()) {
|
|
break;
|
|
break;
|
|
@@ -1671,6 +1679,7 @@ public class MarkServiceImpl implements MarkService {
|
|
t.setRetryCount(t.getRetryCount() == null ? 5 : t.getRetryCount() == 0 ? 0 : t.getRetryCount() - 1);
|
|
t.setRetryCount(t.getRetryCount() == null ? 5 : t.getRetryCount() == 0 ? 0 : t.getRetryCount() - 1);
|
|
t.setAiMarkErrorType(MarkTaskAiErrorTypeStatus.OTHER);
|
|
t.setAiMarkErrorType(MarkTaskAiErrorTypeStatus.OTHER);
|
|
t.setAiMarkErrorMsg(e.getMessage());
|
|
t.setAiMarkErrorMsg(e.getMessage());
|
|
|
|
+ t.setNextRetryTime(DateDisposeUtils.addMinute(System.currentTimeMillis(), 10));
|
|
} finally {
|
|
} finally {
|
|
this.releaseStudent(examId, paperNumber, t.getStudentId(), aiUser.getId());
|
|
this.releaseStudent(examId, paperNumber, t.getStudentId(), aiUser.getId());
|
|
this.updateMarkedCount(examId, paperNumber, t.getQuestionId());
|
|
this.updateMarkedCount(examId, paperNumber, t.getQuestionId());
|
|
@@ -1679,7 +1688,7 @@ public class MarkServiceImpl implements MarkService {
|
|
}
|
|
}
|
|
// 获取终止评卷标记
|
|
// 获取终止评卷标记
|
|
markQuestion = markQuestionService.getById(questionId);
|
|
markQuestion = markQuestionService.getById(questionId);
|
|
- markTasks = markTaskService.findAiUnMarked(new Page<>(pageNumber, 20), examId, paperNumber, questionId);
|
|
|
|
|
|
+ markTasks = markTaskService.findAiUnMarked(new Page<>(pageNumber, 20), examId, paperNumber, questionId, System.currentTimeMillis());
|
|
} while (CollectionUtils.isNotEmpty(markTasks));
|
|
} while (CollectionUtils.isNotEmpty(markTasks));
|
|
}
|
|
}
|
|
}
|
|
}
|