|
@@ -96,6 +96,8 @@ public class MarkPaperServiceImpl extends ServiceImpl<MarkPaperMapper, MarkPaper
|
|
|
@Resource
|
|
|
private ScanAnswerCardService scanAnswerCardService;
|
|
|
@Resource
|
|
|
+ private ScanAnswerCardQuestionService scanAnswerCardQuestionService;
|
|
|
+ @Resource
|
|
|
private TeachcloudCommonService teachcloudCommonService;
|
|
|
@Resource
|
|
|
private BasicRoleDataPermissionService basicRoleDataPermissionService;
|
|
@@ -654,6 +656,7 @@ public class MarkPaperServiceImpl extends ServiceImpl<MarkPaperMapper, MarkPaper
|
|
|
if (StringUtils.isNotBlank(uploadPath)) {
|
|
|
// 删除试卷结构
|
|
|
markQuestionService.deleteByExamIdAndPaperNumber(examId, markPaper.getPaperNumber());
|
|
|
+ markQuestionAnswerService.deleteByExamIdAndPaperNumber(examId, markPaper.getPaperNumber());
|
|
|
// 保存试卷结构
|
|
|
List<MarkQuestion> markQuestions = new ArrayList<>();
|
|
|
List<MarkQuestionAnswer> markQuestionAnswers = new ArrayList<>();
|
|
@@ -702,7 +705,7 @@ public class MarkPaperServiceImpl extends ServiceImpl<MarkPaperMapper, MarkPaper
|
|
|
scanAnswerCard.setCoursePaperId(markPaper.getCoursePaperId());
|
|
|
scanAnswerCard.setPaperType(markPaper.getPaperType());
|
|
|
scanAnswerCard.setCardId(null);
|
|
|
- scanAnswerCard.setNumber(scanAnswerCardService.findMaxCardNumberByExamId(examId) + 1);
|
|
|
+ scanAnswerCard.setNumber(number);
|
|
|
scanAnswerCard.setSource(CardSource.WEB);
|
|
|
scanAnswerCard.setUri(uploadPath);
|
|
|
scanAnswerCard.setMd5(jsonMd5);
|
|
@@ -714,6 +717,31 @@ public class MarkPaperServiceImpl extends ServiceImpl<MarkPaperMapper, MarkPaper
|
|
|
scanAnswerCard.setPaperCount(paperCount);
|
|
|
scanAnswerCardService.save(scanAnswerCard);
|
|
|
|
|
|
+ List<ScanAnswerCardQuestion> scanAnswerCardQuestions = new ArrayList<>();
|
|
|
+ for (Struct struct : structList) {
|
|
|
+ if (!struct.getObjective()) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ ScanAnswerCardQuestion scanAnswerCardQuestion = new ScanAnswerCardQuestion();
|
|
|
+ scanAnswerCardQuestion.setId(SystemConstant.getDbUuid());
|
|
|
+ scanAnswerCardQuestion.setExamId(examId);
|
|
|
+ scanAnswerCardQuestion.setPaperNumber(markPaper.getPaperNumber());
|
|
|
+ scanAnswerCardQuestion.setCoursePaperId(markPaper.getCoursePaperId());
|
|
|
+ scanAnswerCardQuestion.setSerialNumber(markPaper.getSerialNumber());
|
|
|
+ scanAnswerCardQuestion.setCardNumber(number);
|
|
|
+ scanAnswerCardQuestion.setMainNumber(struct.getMainNumber());
|
|
|
+ scanAnswerCardQuestion.setSubNumber(struct.getSubNumber());
|
|
|
+ scanAnswerCardQuestion.setOptionCount(struct.getOptionCount());
|
|
|
+ scanAnswerCardQuestion.setQuestionType(struct.getType());
|
|
|
+ scanAnswerCardQuestion.setPaperIndex(struct.getPaperIndex());
|
|
|
+ scanAnswerCardQuestion.setPageIndex(struct.getPageIndex());
|
|
|
+ scanAnswerCardQuestion.setCreateTime(System.currentTimeMillis());
|
|
|
+ scanAnswerCardQuestions.add(scanAnswerCardQuestion);
|
|
|
+ }
|
|
|
+
|
|
|
+ scanAnswerCardQuestionService.deleteByExamIdAndPaperNumberAndCardNumber(examId, markPaper.getPaperNumber(), number);
|
|
|
+ scanAnswerCardQuestionService.saveBatch(scanAnswerCardQuestions);
|
|
|
+
|
|
|
// 状态改为未提交
|
|
|
UpdateWrapper<MarkPaper> updateWrapper = new UpdateWrapper<>();
|
|
|
updateWrapper.lambda().set(MarkPaper::getQuestionStatus, false)
|