瀏覽代碼

试卷导入时,选择题选项初始化,需设置number的值,存为1,2,3,4...
需设置isCorrect字段值,正确的为1,不正确为0
选择题的答案不持久化
套题下选择题初始化也需按此规则

chenken 8 年之前
父節點
當前提交
0d2f95c336

+ 6 - 2
cqb-paper/src/main/java/com/qmth/cqb/paper/service/ImportPaperService.java

@@ -254,7 +254,7 @@ public class ImportPaperService {
                         processQuesOption(pList, importPaperCheck.index, subQuesNum, question, importPaperCheck,tmpWordMlPackage);
                         processQuesOption(pList, importPaperCheck.index, subQuesNum, question, importPaperCheck,tmpWordMlPackage);
                         // 处理尾信息
                         // 处理尾信息
                         processQuesTail(pList, importPaperCheck.index, subQuesNum, question, paperDetailUnit,importPaperCheck, tmpWordMlPackage, false);
                         processQuesTail(pList, importPaperCheck.index, subQuesNum, question, paperDetailUnit,importPaperCheck, tmpWordMlPackage, false);
-                        //处理选择题的option
+                        //处理选择题的option--chenken 20170425
                         processSelectOption(question);
                         processSelectOption(question);
                     } else if (importPaperCheck.quesType.equals("套题")) {
                     } else if (importPaperCheck.quesType.equals("套题")) {
                         // 处理套题
                         // 处理套题
@@ -606,7 +606,8 @@ public class ImportPaperService {
         // 校验答案
         // 校验答案
         if (answerHTML.length() > 0) {
         if (answerHTML.length() > 0) {
         	//选择题过滤html标签--chenken 2017.4.25
         	//选择题过滤html标签--chenken 2017.4.25
-        	if (importPaperCheck.quesType.equals("单选") || importPaperCheck.quesType.equals("多选")){
+        	if (question.getQuestionType()==QuesStructType.SINGLE_ANSWER_QUESTION||
+        		question.getQuestionType()==QuesStructType.MULTIPLE_ANSWER_QUESTION){
         		String regEx_html="<[^>]+>";
         		String regEx_html="<[^>]+>";
         		Pattern p_html=Pattern.compile(regEx_html,Pattern.CASE_INSENSITIVE); 
         		Pattern p_html=Pattern.compile(regEx_html,Pattern.CASE_INSENSITIVE); 
                 Matcher m_html=p_html.matcher(answerHTML.toString()); //过滤html标签 
                 Matcher m_html=p_html.matcher(answerHTML.toString()); //过滤html标签 
@@ -716,6 +717,9 @@ public class ImportPaperService {
                     // 处理尾信息
                     // 处理尾信息
                     processQuesTail(pList, importPaperCheck.index, subQuesNum, subQues, paperDetailUnit,
                     processQuesTail(pList, importPaperCheck.index, subQuesNum, subQues, paperDetailUnit,
                             importPaperCheck, wordMLPackage, true);
                             importPaperCheck, wordMLPackage, true);
+                    
+                    //处理选择题的option--chenken 20170426
+                    processSelectOption(subQues);
 
 
                 } else {
                 } else {
                     // 处理其他题型
                     // 处理其他题型

+ 8 - 6
cqb-paper/src/main/java/com/qmth/cqb/paper/service/PaperService.java

@@ -391,7 +391,7 @@ 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);
                 reorderChoicequestionOption(paperDetailUnitExps);
                 paperDetailExps.get(i).setPaperDetailUnits(paperDetailUnitExps);
                 paperDetailExps.get(i).setPaperDetailUnits(paperDetailUnitExps);
             } else {
             } else {
@@ -424,8 +424,8 @@ public class PaperService {
             			Question subQuestion = subQuestions.get(k);
             			Question subQuestion = subQuestions.get(k);
             			if(subQuestion.getQuestionType()==QuesStructType.SINGLE_ANSWER_QUESTION||
             			if(subQuestion.getQuestionType()==QuesStructType.SINGLE_ANSWER_QUESTION||
             			   subQuestion.getQuestionType()==QuesStructType.MULTIPLE_ANSWER_QUESTION){
             			   subQuestion.getQuestionType()==QuesStructType.MULTIPLE_ANSWER_QUESTION){
+            				subQuestion.setQuesOptions(reorderOptionCore(subQuestion.getQuesOptions(),optionOrder.split(";")[index]));
             				index++;
             				index++;
-            				subQuestion.setQuesOptions(reorderOptionCore(question.getQuesOptions(),optionOrder.split(";")[index]));
                     	}
                     	}
             		}
             		}
             	}
             	}
@@ -435,16 +435,18 @@ public class PaperService {
     
     
     private List<QuesOption> reorderOptionCore(List<QuesOption> quesOptions,String optionOrder){
     private List<QuesOption> reorderOptionCore(List<QuesOption> quesOptions,String optionOrder){
 		List<QuesOption> newQuesOptions = new ArrayList<QuesOption>();
 		List<QuesOption> newQuesOptions = new ArrayList<QuesOption>();
-		if(StringUtil.isBlank(optionOrder)){
+		if(StringUtil.isBlank(optionOrder)||quesOptions.isEmpty()){
 			return null;
 			return null;
 		}
 		}
 		String[] optionOrderArr = optionOrder.split(",");
 		String[] optionOrderArr = optionOrder.split(",");
 		for(int j = 0;j<optionOrderArr.length;j++){
 		for(int j = 0;j<optionOrderArr.length;j++){
-			String number = j+1+"";
-			if(number.equals(quesOptions.get(j).getNumber())){
-				newQuesOptions.add(quesOptions.get(j));
+			for(int k = 0;k<quesOptions.size();k++){
+				if(optionOrderArr[j].equals(quesOptions.get(k).getNumber())){
+					newQuesOptions.add(quesOptions.get(k));
+				}
 			}
 			}
 		}
 		}
+		quesOptions = null; 
 		return newQuesOptions;
 		return newQuesOptions;
     }
     }