|
@@ -1,7 +1,6 @@
|
|
package com.qmth.cqb.paper.service;
|
|
package com.qmth.cqb.paper.service;
|
|
|
|
|
|
import java.util.ArrayList;
|
|
import java.util.ArrayList;
|
|
-import java.util.Arrays;
|
|
|
|
import java.util.Collections;
|
|
import java.util.Collections;
|
|
import java.util.HashMap;
|
|
import java.util.HashMap;
|
|
import java.util.HashSet;
|
|
import java.util.HashSet;
|
|
@@ -22,9 +21,6 @@ import org.springframework.data.mongodb.core.query.Query;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import com.google.gson.Gson;
|
|
import com.google.gson.Gson;
|
|
-import com.mongodb.BasicDBList;
|
|
|
|
-import com.mongodb.BasicDBObject;
|
|
|
|
-import com.mongodb.DBObject;
|
|
|
|
import com.qmth.cqb.flow.enums.PassEnum;
|
|
import com.qmth.cqb.flow.enums.PassEnum;
|
|
import com.qmth.cqb.flow.model.DataMapModel;
|
|
import com.qmth.cqb.flow.model.DataMapModel;
|
|
import com.qmth.cqb.flow.service.ComTaskService;
|
|
import com.qmth.cqb.flow.service.ComTaskService;
|
|
@@ -43,6 +39,7 @@ import com.qmth.cqb.paper.model.PaperDetailUnit;
|
|
import com.qmth.cqb.paper.model.PaperSearchInfo;
|
|
import com.qmth.cqb.paper.model.PaperSearchInfo;
|
|
import com.qmth.cqb.question.dao.QuesBakRepo;
|
|
import com.qmth.cqb.question.dao.QuesBakRepo;
|
|
import com.qmth.cqb.question.dao.QuesRepo;
|
|
import com.qmth.cqb.question.dao.QuesRepo;
|
|
|
|
+import com.qmth.cqb.question.model.QuesOption;
|
|
import com.qmth.cqb.question.model.Question;
|
|
import com.qmth.cqb.question.model.Question;
|
|
import com.qmth.cqb.question.model.QuestionBak;
|
|
import com.qmth.cqb.question.model.QuestionBak;
|
|
import com.qmth.cqb.question.service.QuesService;
|
|
import com.qmth.cqb.question.service.QuesService;
|
|
@@ -394,6 +391,8 @@ public class PaperService {
|
|
if (paperDetailUnits != null && paperDetailUnits.size() > 0) {
|
|
if (paperDetailUnits != null && paperDetailUnits.size() > 0) {
|
|
List<PaperDetailUnitExp> paperDetailUnitExps = BeanCopierUtil.copyPropertiesOfList(paperDetailUnits,
|
|
List<PaperDetailUnitExp> paperDetailUnitExps = BeanCopierUtil.copyPropertiesOfList(paperDetailUnits,
|
|
PaperDetailUnitExp.class);
|
|
PaperDetailUnitExp.class);
|
|
|
|
+ //选择题,套题下选择题 选项乱序
|
|
|
|
+ reorderChoicequestionOption(paperDetailUnitExps);
|
|
paperDetailExps.get(i).setPaperDetailUnits(paperDetailUnitExps);
|
|
paperDetailExps.get(i).setPaperDetailUnits(paperDetailUnitExps);
|
|
} else {
|
|
} else {
|
|
paperDetailExps.get(i).setUnitCount(0);
|
|
paperDetailExps.get(i).setUnitCount(0);
|
|
@@ -405,6 +404,49 @@ public class PaperService {
|
|
|
|
|
|
return paperExp;
|
|
return paperExp;
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 重新对选择题option进行排序(多选、单选、套题下选择题)
|
|
|
|
+ */
|
|
|
|
+ private void reorderChoicequestionOption(List<PaperDetailUnitExp> paperDetailUnitExps){
|
|
|
|
+ for(PaperDetailUnitExp paperDetailUnitExp:paperDetailUnitExps){
|
|
|
|
+ String optionOrder = paperDetailUnitExp.getOptionOrder();
|
|
|
|
+ if(StringUtil.isNotBlank(optionOrder)){
|
|
|
|
+ Question question = paperDetailUnitExp.getQuestion();
|
|
|
|
+ if(question.getQuestionType()==QuesStructType.SINGLE_ANSWER_QUESTION||
|
|
|
|
+ question.getQuestionType()==QuesStructType.MULTIPLE_ANSWER_QUESTION){
|
|
|
|
+ question.setQuesOptions(reorderOptionCore(question.getQuesOptions(),optionOrder));
|
|
|
|
+ }
|
|
|
|
+ if(question.getQuestionType()==QuesStructType.NESTED_ANSWER_QUESTION){
|
|
|
|
+ List<Question> subQuestions = question.getSubQuestions();
|
|
|
|
+ int index = 0;
|
|
|
|
+ for(int k=0;k<subQuestions.size();k++){
|
|
|
|
+ Question subQuestion = subQuestions.get(k);
|
|
|
|
+ if(subQuestion.getQuestionType()==QuesStructType.SINGLE_ANSWER_QUESTION||
|
|
|
|
+ subQuestion.getQuestionType()==QuesStructType.MULTIPLE_ANSWER_QUESTION){
|
|
|
|
+ index++;
|
|
|
|
+ subQuestion.setQuesOptions(reorderOptionCore(question.getQuesOptions(),optionOrder.split(";")[index]));
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ private List<QuesOption> reorderOptionCore(List<QuesOption> quesOptions,String optionOrder){
|
|
|
|
+ List<QuesOption> newQuesOptions = new ArrayList<QuesOption>();
|
|
|
|
+ if(StringUtil.isBlank(optionOrder)){
|
|
|
|
+ return null;
|
|
|
|
+ }
|
|
|
|
+ String[] optionOrderArr = optionOrder.split(",");
|
|
|
|
+ for(int j = 0;j<optionOrderArr.length;j++){
|
|
|
|
+ String number = j+1+"";
|
|
|
|
+ if(number.equals(quesOptions.get(j).getNumber())){
|
|
|
|
+ newQuesOptions.add(quesOptions.get(j));
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ return newQuesOptions;
|
|
|
|
+ }
|
|
|
|
|
|
/**
|
|
/**
|
|
* 初始化试卷内容(增加序号)
|
|
* 初始化试卷内容(增加序号)
|
|
@@ -418,18 +460,17 @@ public class PaperService {
|
|
int mainNum = 0;
|
|
int mainNum = 0;
|
|
int subNum = 0;
|
|
int subNum = 0;
|
|
Collections.sort(paperExp.getPaperDetails());
|
|
Collections.sort(paperExp.getPaperDetails());
|
|
- for (PaperDetailExp paperDetail : paperExp.getPaperDetails()) {
|
|
|
|
|
|
+ List<PaperDetailExp> paperDetailExpList = paperExp.getPaperDetails();
|
|
|
|
+ for (PaperDetailExp paperDetail:paperDetailExpList) {
|
|
// 大题序号
|
|
// 大题序号
|
|
paperDetail.setCnNum(CommonUtils.toCHNum(paperDetail.getNumber()));
|
|
paperDetail.setCnNum(CommonUtils.toCHNum(paperDetail.getNumber()));
|
|
paperDetail.setNumber(++mainNum);
|
|
paperDetail.setNumber(++mainNum);
|
|
if (paperDetail.getPaperDetailUnits() == null || paperDetail.getPaperDetailUnits().size() == 0) {
|
|
if (paperDetail.getPaperDetailUnits() == null || paperDetail.getPaperDetailUnits().size() == 0) {
|
|
- return;
|
|
|
|
|
|
+ continue;
|
|
}
|
|
}
|
|
// 小题序号
|
|
// 小题序号
|
|
for (PaperDetailUnitExp paperDetailUnit : paperDetail.getPaperDetailUnits()) {
|
|
for (PaperDetailUnitExp paperDetailUnit : paperDetail.getPaperDetailUnits()) {
|
|
-
|
|
|
|
quesService.formatQuesUnit(paperDetailUnit.getQuestion());
|
|
quesService.formatQuesUnit(paperDetailUnit.getQuestion());
|
|
-
|
|
|
|
List<Question> subQuesList = paperDetailUnit.getQuestion().getSubQuestions();
|
|
List<Question> subQuesList = paperDetailUnit.getQuestion().getSubQuestions();
|
|
// 套题序号
|
|
// 套题序号
|
|
if (subQuesList != null && subQuesList.size() > 0) {
|
|
if (subQuesList != null && subQuesList.size() > 0) {
|