|
@@ -153,6 +153,7 @@ public class ImportPaperService {
|
|
|
|
|
|
/**
|
|
/**
|
|
* 处理导入试卷
|
|
* 处理导入试卷
|
|
|
|
+ *
|
|
* @param paperName
|
|
* @param paperName
|
|
* @param courseNo
|
|
* @param courseNo
|
|
* @param courseName
|
|
* @param courseName
|
|
@@ -187,7 +188,7 @@ public class ImportPaperService {
|
|
|
|
|
|
paper.setOrgId(user.getOrgId().toString());
|
|
paper.setOrgId(user.getOrgId().toString());
|
|
|
|
|
|
- paper.setCreator(user.getLoginName());
|
|
|
|
|
|
+ paper.setCreator(user.getName());
|
|
|
|
|
|
// 设置试卷
|
|
// 设置试卷
|
|
initPaper(paper, paperName);
|
|
initPaper(paper, paperName);
|
|
@@ -248,18 +249,22 @@ public class ImportPaperService {
|
|
// 处理题干
|
|
// 处理题干
|
|
processQuesBody(pList, importPaperCheck.index, question, importPaperCheck, tmpWordMlPackage);
|
|
processQuesBody(pList, importPaperCheck.index, question, importPaperCheck, tmpWordMlPackage);
|
|
// 处理选项
|
|
// 处理选项
|
|
- 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);
|
|
|
|
- //处理选择题的option--chenken 20170425
|
|
|
|
|
|
+ processQuesTail(pList, importPaperCheck.index, subQuesNum, question, paperDetailUnit,
|
|
|
|
+ importPaperCheck, tmpWordMlPackage, false);
|
|
|
|
+ // 处理选择题的option--chenken 20170425
|
|
processSelectOption(question);
|
|
processSelectOption(question);
|
|
} else if (importPaperCheck.quesType.equals("套题")) {
|
|
} else if (importPaperCheck.quesType.equals("套题")) {
|
|
// 处理套题
|
|
// 处理套题
|
|
- processNestedQues(pList, importPaperCheck.index, question, paperDetailUnit, importPaperCheck,tmpWordMlPackage);
|
|
|
|
|
|
+ processNestedQues(pList, importPaperCheck.index, question, paperDetailUnit, importPaperCheck,
|
|
|
|
+ tmpWordMlPackage);
|
|
} else {
|
|
} else {
|
|
// 处理其他题型
|
|
// 处理其他题型
|
|
processQuesBody(pList, importPaperCheck.index, question, importPaperCheck, tmpWordMlPackage);
|
|
processQuesBody(pList, importPaperCheck.index, question, importPaperCheck, tmpWordMlPackage);
|
|
- processQuesTail(pList, importPaperCheck.index, subQuesNum, question, paperDetailUnit,importPaperCheck, tmpWordMlPackage, false);
|
|
|
|
|
|
+ processQuesTail(pList, importPaperCheck.index, subQuesNum, question, paperDetailUnit,
|
|
|
|
+ importPaperCheck, tmpWordMlPackage, false);
|
|
}
|
|
}
|
|
// 设置WordMlPackage二进制数据
|
|
// 设置WordMlPackage二进制数据
|
|
setPkgByte(question, writePkg);
|
|
setPkgByte(question, writePkg);
|
|
@@ -508,7 +513,7 @@ public class ImportPaperService {
|
|
int i = 0;
|
|
int i = 0;
|
|
int number = 0;
|
|
int number = 0;
|
|
for (i = index; i < pList.size(); i++) {
|
|
for (i = index; i < pList.size(); i++) {
|
|
- number++;
|
|
|
|
|
|
+ number++;
|
|
P pOption = (P) pList.get(i);
|
|
P pOption = (P) pList.get(i);
|
|
String tmpText = DocxProcessUtil.getPText(pOption);
|
|
String tmpText = DocxProcessUtil.getPText(pOption);
|
|
|
|
|
|
@@ -519,7 +524,9 @@ public class ImportPaperService {
|
|
// 检测到选项开始段落
|
|
// 检测到选项开始段落
|
|
// 创建试题选项
|
|
// 创建试题选项
|
|
current = new QuesOption();
|
|
current = new QuesOption();
|
|
- String optionNumber = String.valueOf(number);//number设置 为1,2,3,4--chenken 2017.4.25
|
|
|
|
|
|
+ String optionNumber = String.valueOf(number);// number设置
|
|
|
|
+ // 为1,2,3,4--chenken
|
|
|
|
+ // 2017.4.25
|
|
current.setNumber(optionNumber);
|
|
current.setNumber(optionNumber);
|
|
current.setOptionBody("");
|
|
current.setOptionBody("");
|
|
current.setOptionBodyWord("");
|
|
current.setOptionBodyWord("");
|
|
@@ -601,17 +608,17 @@ public class ImportPaperService {
|
|
importPaperCheck.setIndex(i);
|
|
importPaperCheck.setIndex(i);
|
|
// 校验答案
|
|
// 校验答案
|
|
if (answerHTML.length() > 0) {
|
|
if (answerHTML.length() > 0) {
|
|
- //选择题过滤html标签--chenken 2017.4.25
|
|
|
|
- if (question.getQuestionType()==QuesStructType.SINGLE_ANSWER_QUESTION||
|
|
|
|
- question.getQuestionType()==QuesStructType.MULTIPLE_ANSWER_QUESTION||
|
|
|
|
- question.getQuestionType()==QuesStructType.BOOL_ANSWER_QUESTION){
|
|
|
|
- String regEx_html="<[^>]+>";
|
|
|
|
- Pattern p_html=Pattern.compile(regEx_html,Pattern.CASE_INSENSITIVE);
|
|
|
|
- Matcher m_html=p_html.matcher(answerHTML.toString()); //过滤html标签
|
|
|
|
|
|
+ // 选择题过滤html标签--chenken 2017.4.25
|
|
|
|
+ if (question.getQuestionType() == QuesStructType.SINGLE_ANSWER_QUESTION
|
|
|
|
+ || question.getQuestionType() == QuesStructType.MULTIPLE_ANSWER_QUESTION
|
|
|
|
+ || question.getQuestionType() == QuesStructType.BOOL_ANSWER_QUESTION) {
|
|
|
|
+ String regEx_html = "<[^>]+>";
|
|
|
|
+ Pattern p_html = Pattern.compile(regEx_html, Pattern.CASE_INSENSITIVE);
|
|
|
|
+ Matcher m_html = p_html.matcher(answerHTML.toString()); // 过滤html标签
|
|
question.setQuesAnswer(m_html.replaceAll(""));
|
|
question.setQuesAnswer(m_html.replaceAll(""));
|
|
- }else{
|
|
|
|
- question.setQuesAnswer(answerHTML.toString());
|
|
|
|
- }
|
|
|
|
|
|
+ } else {
|
|
|
|
+ question.setQuesAnswer(answerHTML.toString());
|
|
|
|
+ }
|
|
question.setQuesAnswerWord(answerWordML.toString());
|
|
question.setQuesAnswerWord(answerWordML.toString());
|
|
} else {
|
|
} else {
|
|
importPaperCheck.setErrorInfo(getQuesNumInfo(importPaperCheck.quesName, subQuesNum) + "答案为空或格式不正确\n");
|
|
importPaperCheck.setErrorInfo(getQuesNumInfo(importPaperCheck.quesName, subQuesNum) + "答案为空或格式不正确\n");
|
|
@@ -629,24 +636,25 @@ public class ImportPaperService {
|
|
|
|
|
|
/**
|
|
/**
|
|
* 处理选择题option信息
|
|
* 处理选择题option信息
|
|
|
|
+ *
|
|
* @param question
|
|
* @param question
|
|
*/
|
|
*/
|
|
- public void processSelectOption(Question question){
|
|
|
|
- String answer = question.getQuesAnswer();
|
|
|
|
- if(StringUtils.isNotBlank(answer)){
|
|
|
|
- String[] answerArray = answer.split(",");
|
|
|
|
- for(int i=0;i<question.getQuesOptions().size();i++){
|
|
|
|
- QuesOption quesOption = question.getQuesOptions().get(i);
|
|
|
|
- char number = (char) (Integer.parseInt(quesOption.getNumber())+64);
|
|
|
|
- if(ArrayUtils.contains(answerArray,String.valueOf(number))){
|
|
|
|
- quesOption.setIsCorrect((short) 1);
|
|
|
|
- }else{
|
|
|
|
- quesOption.setIsCorrect((short) 0);
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- //选择题答案不持久化
|
|
|
|
- question.setQuesAnswer(null);
|
|
|
|
- }
|
|
|
|
|
|
+ public void processSelectOption(Question question) {
|
|
|
|
+ String answer = question.getQuesAnswer();
|
|
|
|
+ if (StringUtils.isNotBlank(answer)) {
|
|
|
|
+ String[] answerArray = answer.split(",");
|
|
|
|
+ for (int i = 0; i < question.getQuesOptions().size(); i++) {
|
|
|
|
+ QuesOption quesOption = question.getQuesOptions().get(i);
|
|
|
|
+ char number = (char) (Integer.parseInt(quesOption.getNumber()) + 64);
|
|
|
|
+ if (ArrayUtils.contains(answerArray, String.valueOf(number))) {
|
|
|
|
+ quesOption.setIsCorrect((short) 1);
|
|
|
|
+ } else {
|
|
|
|
+ quesOption.setIsCorrect((short) 0);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ // 选择题答案不持久化
|
|
|
|
+ question.setQuesAnswer(null);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -715,7 +723,7 @@ 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
|
|
|
|
|
|
+ // 处理选择题的option--chenken 20170426
|
|
processSelectOption(subQues);
|
|
processSelectOption(subQues);
|
|
|
|
|
|
} else {
|
|
} else {
|