|
@@ -53,6 +53,7 @@ import cn.com.qmth.am.entity.QuestionEntity;
|
|
|
import cn.com.qmth.am.entity.StudentEntity;
|
|
|
import cn.com.qmth.am.entity.StudentScoreEntity;
|
|
|
import cn.com.qmth.am.enums.DataStatus;
|
|
|
+import cn.com.qmth.am.enums.DataType;
|
|
|
import cn.com.qmth.am.service.QuestionService;
|
|
|
import cn.com.qmth.am.service.StudentScoreService;
|
|
|
import cn.com.qmth.am.service.StudentService;
|
|
@@ -397,7 +398,34 @@ public class StudentScoreServiceImpl extends ServiceImpl<StudentScoreDao, Studen
|
|
|
}
|
|
|
|
|
|
private String getImageUrl(StudentScoreEntity score, QuestionEntity q, Integer pageIndex) {
|
|
|
- return null;
|
|
|
+ if (DataType.MARKING_CLOUD.equals(sysProperty.getDataType())) {
|
|
|
+ return getImageUrlFromMarkingCloud(score,pageIndex);
|
|
|
+ } else if (DataType.TEACH_CLOUD.equals(sysProperty.getDataType())) {
|
|
|
+ return getImageUrlFromTeachCloud(score, q, pageIndex);
|
|
|
+ } else {
|
|
|
+ throw new StatusException("数据类型错误");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private String getImageUrlFromMarkingCloud(StudentScoreEntity score, Integer pageIndex) {
|
|
|
+ return sysProperty.getImageServer() + "/" + getMarkingCloudPath(score.getExamId(),
|
|
|
+ getSuffix(score.getStudentCode()), score.getStudentCode(), pageIndex, "jpg");
|
|
|
+ }
|
|
|
+
|
|
|
+ private String getSuffix(String input) {
|
|
|
+ return StringUtils.trimToEmpty(input).substring(Math.max(0, input.length() - 3));
|
|
|
+ }
|
|
|
+
|
|
|
+ private String getImageUrlFromTeachCloud(StudentScoreEntity score, QuestionEntity q, Integer pageIndex) {
|
|
|
+ int paperNum=(pageIndex+1)/2;
|
|
|
+ return sysProperty.getImageServer() + "/" + getTeachCloudPath(score.getExamId(),
|
|
|
+ score.getSubjectCode(), score.getStudentCode(),paperNum, pageIndex, "jpg");
|
|
|
+ }
|
|
|
+ private String getTeachCloudPath(Object... param) {
|
|
|
+ return String.format("sheet/%d/%s/%s/%d-%d.%s", param);
|
|
|
+ }
|
|
|
+ private String getMarkingCloudPath(Object... param) {
|
|
|
+ return String.format("sheet/%d/%s/%s-%d.%s", param);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -456,8 +484,8 @@ public class StudentScoreServiceImpl extends ServiceImpl<StudentScoreDao, Studen
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- private void ocrErr(StudentScoreImageDto dto,String err) {
|
|
|
- updateAnswerErr(dto.getStudentScoreId(),err);
|
|
|
+ private void ocrErr(StudentScoreImageDto dto, String err) {
|
|
|
+ updateAnswerErr(dto.getStudentScoreId(), err);
|
|
|
studentService.updateStatus(dto.getStudentId(), DataStatus.PROCESSING, DataStatus.FAILED);
|
|
|
}
|
|
|
|
|
@@ -493,7 +521,7 @@ public class StudentScoreServiceImpl extends ServiceImpl<StudentScoreDao, Studen
|
|
|
if (allSuccess(score.getStudentId())) {
|
|
|
studentService.updateStatus(score.getStudentId(), DataStatus.PROCESSING, DataStatus.SUCCESS);
|
|
|
}
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
aiScoreErr(dto, "aiScore异常");
|
|
|
}
|
|
|
} catch (Exception e) {
|
|
@@ -555,7 +583,7 @@ public class StudentScoreServiceImpl extends ServiceImpl<StudentScoreDao, Studen
|
|
|
updateScoreErr(dto.getScoreInfo().getId(), err);
|
|
|
studentService.updateStatus(dto.getScoreInfo().getStudentId(), DataStatus.PROCESSING, DataStatus.FAILED);
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
private void updateScoreErr(Long id, String err) {
|
|
|
UpdateWrapper<StudentScoreEntity> wrapper = new UpdateWrapper<>();
|
|
|
LambdaUpdateWrapper<StudentScoreEntity> lw = wrapper.lambda();
|