|
@@ -376,8 +376,10 @@ public class MarkGroupController extends BaseExamController {
|
|
List<ExamQuestion> others = questionService
|
|
List<ExamQuestion> others = questionService
|
|
.findByExamAndSubjectAndObjectiveAndGroupNumberNotEqual(examId, subjectCode, false, number);
|
|
.findByExamAndSubjectAndObjectiveAndGroupNumberNotEqual(examId, subjectCode, false, number);
|
|
Set<String> numbers = new HashSet<>();
|
|
Set<String> numbers = new HashSet<>();
|
|
- for (ExamQuestion examQuestion : others) {
|
|
|
|
- numbers.add(examQuestion.getQuestionNumber());
|
|
|
|
|
|
+ Map<Integer, String> titles = new HashMap<>();
|
|
|
|
+ for (ExamQuestion question : others) {
|
|
|
|
+ numbers.add(question.getQuestionNumber());
|
|
|
|
+ titles.put(question.getMainNumber(), question.getMainTitle());
|
|
}
|
|
}
|
|
for (ExamQuestion question : questionList) {
|
|
for (ExamQuestion question : questionList) {
|
|
if (numbers.contains(question.getQuestionNumber())) {
|
|
if (numbers.contains(question.getQuestionNumber())) {
|
|
@@ -386,6 +388,13 @@ public class MarkGroupController extends BaseExamController {
|
|
redirectAttributes.addAttribute("number", number);
|
|
redirectAttributes.addAttribute("number", number);
|
|
return "redirect:/admin/exam/group/edit-full";
|
|
return "redirect:/admin/exam/group/edit-full";
|
|
}
|
|
}
|
|
|
|
+ if (titles.get(question.getMainNumber()) != null && !titles.get(question.getMainNumber())
|
|
|
|
+ .equals(question.getMainTitle())) {
|
|
|
|
+ addMessage(redirectAttributes, "大题名称不一致");
|
|
|
|
+ redirectAttributes.addAttribute("subjectCode", subjectCode);
|
|
|
|
+ redirectAttributes.addAttribute("number", number);
|
|
|
|
+ return "redirect:/admin/exam/group/add";
|
|
|
|
+ }
|
|
}
|
|
}
|
|
if (!questionList.isEmpty()) {
|
|
if (!questionList.isEmpty()) {
|
|
ScorePolicy policy = scorePolicy != null ? ScorePolicy.findByValue(scorePolicy) : null;
|
|
ScorePolicy policy = scorePolicy != null ? ScorePolicy.findByValue(scorePolicy) : null;
|
|
@@ -505,19 +514,31 @@ public class MarkGroupController extends BaseExamController {
|
|
}
|
|
}
|
|
dto.setScoreList(scoreList);
|
|
dto.setScoreList(scoreList);
|
|
}
|
|
}
|
|
|
|
+ List<ExamQuestion> current = questionService
|
|
|
|
+ .findByExamAndSubjectAndObjectiveAndGroupNumberNotEqual(examId, subjectCode, false, number);
|
|
|
|
+ Set<String> numbers = new HashSet<>();
|
|
|
|
+ Map<Integer, String> titles = new HashMap<>();
|
|
|
|
+ for (ExamQuestion question : current) {
|
|
|
|
+ numbers.add(question.getQuestionNumber());
|
|
|
|
+ titles.put(question.getMainNumber(), question.getMainTitle());
|
|
|
|
+ }
|
|
if (detailList != null && detailList.size() > 0) {
|
|
if (detailList != null && detailList.size() > 0) {
|
|
group = new MarkGroup(examId, subjectCode, number, picConfigList, 0d, doubleRate,
|
|
group = new MarkGroup(examId, subjectCode, number, picConfigList, 0d, doubleRate,
|
|
arbitrateThreshold, scorePolicy, markMode, trialCount, sheetView, enableAllZero,
|
|
arbitrateThreshold, scorePolicy, markMode, trialCount, sheetView, enableAllZero,
|
|
thirdPolicy);
|
|
thirdPolicy);
|
|
List<ExamQuestion> list = buildQuestionList(group, detailList);
|
|
List<ExamQuestion> list = buildQuestionList(group, detailList);
|
|
for (ExamQuestion question : list) {
|
|
for (ExamQuestion question : list) {
|
|
- if (questionService
|
|
|
|
- .countByExamAndSubjectAndObjectiveAndMainNumberAndSubNumber(examId, subjectCode, false,
|
|
|
|
- question.getMainNumber(), question.getSubNumber()) > 0) {
|
|
|
|
|
|
+ if (numbers.contains(question.getQuestionNumber())) {
|
|
addMessage(redirectAttributes, "题号不能重复");
|
|
addMessage(redirectAttributes, "题号不能重复");
|
|
redirectAttributes.addAttribute("subjectCode", subjectCode);
|
|
redirectAttributes.addAttribute("subjectCode", subjectCode);
|
|
return "redirect:/admin/exam/group/add";
|
|
return "redirect:/admin/exam/group/add";
|
|
}
|
|
}
|
|
|
|
+ if (titles.get(question.getMainNumber()) != null && !titles.get(question.getMainNumber())
|
|
|
|
+ .equals(question.getMainTitle())) {
|
|
|
|
+ addMessage(redirectAttributes, "大题名称不一致");
|
|
|
|
+ redirectAttributes.addAttribute("subjectCode", subjectCode);
|
|
|
|
+ return "redirect:/admin/exam/group/add";
|
|
|
|
+ }
|
|
}
|
|
}
|
|
// clear and replace exam_question
|
|
// clear and replace exam_question
|
|
questionService
|
|
questionService
|