|
@@ -280,10 +280,17 @@ public class ExamPaperStructureServiceImpl extends ServiceImpl<ExamPaperStructur
|
|
@Transactional(rollbackFor = Exception.class)
|
|
@Transactional(rollbackFor = Exception.class)
|
|
@Override
|
|
@Override
|
|
public ExamPaperStructure submitExamPaperParams(String evaluationParameterStr, SysUser requestUser) {
|
|
public ExamPaperStructure submitExamPaperParams(String evaluationParameterStr, SysUser requestUser) {
|
|
- // 1.保存试卷结构
|
|
|
|
|
|
+ // 1.判断试卷中主观题是否全部完成分组
|
|
|
|
+ EvaluationParameters evaluationParameters = JSON.parseObject(evaluationParameterStr, EvaluationParameters.class);
|
|
|
|
+// Question.matchTwoQuestionList(evaluationParameters.getPaperStructureInfo().getSubjectiveQuestionList(),
|
|
|
|
+// evaluationParameters.getGroupInfo().stream().flatMap(e -> {
|
|
|
|
+// List<Question> questionList = e.getQuestions();
|
|
|
|
+//
|
|
|
|
+// }).collect(Collectors.toList()));
|
|
|
|
+ // 2.保存试卷结构
|
|
ExamPaperStructure examPaperStructure = this.saveExamPaperStructure(evaluationParameterStr, requestUser);
|
|
ExamPaperStructure examPaperStructure = this.saveExamPaperStructure(evaluationParameterStr, requestUser);
|
|
- // 2.保存分组和分组关系信息
|
|
|
|
- EvaluationParameters evaluationParameters = JSON.parseObject(evaluationParameterStr,EvaluationParameters.class);
|
|
|
|
|
|
+ // 3.保存分组和分组关系信息
|
|
|
|
+
|
|
examPaperGroupService.saveExamPaperGroupInfo(examPaperStructure.getId(), evaluationParameters.getGroupInfo());
|
|
examPaperGroupService.saveExamPaperGroupInfo(examPaperStructure.getId(), evaluationParameters.getGroupInfo());
|
|
// 返回试卷结构信息
|
|
// 返回试卷结构信息
|
|
return examPaperStructure;
|
|
return examPaperStructure;
|
|
@@ -332,7 +339,7 @@ public class ExamPaperStructureServiceImpl extends ServiceImpl<ExamPaperStructur
|
|
* @return 评卷参数id
|
|
* @return 评卷参数id
|
|
*/
|
|
*/
|
|
private ExamPaperStructure saveExamPaperStructure(String evaluationParameterStr, SysUser requestUser) {
|
|
private ExamPaperStructure saveExamPaperStructure(String evaluationParameterStr, SysUser requestUser) {
|
|
- EvaluationParameters evaluationParameters = JSON.parseObject(evaluationParameterStr,EvaluationParameters.class);
|
|
|
|
|
|
+ EvaluationParameters evaluationParameters = JSON.parseObject(evaluationParameterStr, EvaluationParameters.class);
|
|
BasicPaperInfo basicPaperInfo = evaluationParameters.getBasicPaperInfo();
|
|
BasicPaperInfo basicPaperInfo = evaluationParameters.getBasicPaperInfo();
|
|
PaperStructureInfo paperStructureInfo = evaluationParameters.getPaperStructureInfo();
|
|
PaperStructureInfo paperStructureInfo = evaluationParameters.getPaperStructureInfo();
|
|
|
|
|
|
@@ -346,7 +353,7 @@ public class ExamPaperStructureServiceImpl extends ServiceImpl<ExamPaperStructur
|
|
String courseCode = basicPaperInfo.getCourseCode();
|
|
String courseCode = basicPaperInfo.getCourseCode();
|
|
String courseName = basicPaperInfo.getCourseName();
|
|
String courseName = basicPaperInfo.getCourseName();
|
|
String paperType = basicPaperInfo.getPaperType();
|
|
String paperType = basicPaperInfo.getPaperType();
|
|
- if (!SystemConstant.strNotNull(paperType)){
|
|
|
|
|
|
+ if (!SystemConstant.strNotNull(paperType)) {
|
|
throw ExceptionResultEnum.ERROR.exception("试卷类型不存在");
|
|
throw ExceptionResultEnum.ERROR.exception("试卷类型不存在");
|
|
}
|
|
}
|
|
ExamPaperStructureStatusEnum status = basicPaperInfo.getStatus();
|
|
ExamPaperStructureStatusEnum status = basicPaperInfo.getStatus();
|
|
@@ -581,22 +588,6 @@ public class ExamPaperStructureServiceImpl extends ServiceImpl<ExamPaperStructur
|
|
|
|
|
|
List<Question> freshList = JSON.parseArray(newQuestions, Question.class);
|
|
List<Question> freshList = JSON.parseArray(newQuestions, Question.class);
|
|
|
|
|
|
- // 两个结构内元素数量不一致直接返回错误
|
|
|
|
- if (dbList.size() != freshList.size()) {
|
|
|
|
- return false;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- // 排序
|
|
|
|
- List<Question> dbSort = dbList.stream().sorted(Comparator.comparing(Question::getMainNumber).thenComparing(Question::getSubNumber)).collect(Collectors.toList());
|
|
|
|
- List<Question> freshSort = freshList.stream().sorted(Comparator.comparing(Question::getMainNumber).thenComparing(Question::getSubNumber)).collect(Collectors.toList());
|
|
|
|
-
|
|
|
|
- for (int i = 0; i < dbSort.size(); i++) {
|
|
|
|
- Question db = dbSort.get(i);
|
|
|
|
- Question fresh = freshSort.get(i);
|
|
|
|
- if (!Question.matchTwoObjects(db, fresh)) {
|
|
|
|
- return false;
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- return true;
|
|
|
|
|
|
+ return Question.matchTwoQuestionList(dbList, freshList);
|
|
}
|
|
}
|
|
}
|
|
}
|