|
@@ -9,6 +9,7 @@ import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
import java.util.UUID;
|
|
|
+import java.util.regex.Pattern;
|
|
|
|
|
|
import org.apache.commons.io.FileUtils;
|
|
|
import org.apache.commons.io.IOUtils;
|
|
@@ -471,19 +472,19 @@ public class ImportPaperService {
|
|
|
bodyStart = true;
|
|
|
pBody = DocxProcessUtil.formatP(pBody, QuesUnit.QUES_BODY);
|
|
|
String tmpWordMl = DocxProcessUtil.getPWordMl(pBody);
|
|
|
- quesBodyWordMl.append(DocxProcessUtil.formatPWordMl(tmpWordMl));
|
|
|
+ tmpWordMl = DocxProcessUtil.formatPWordMl(tmpWordMl);
|
|
|
+ quesBodyWordMl.append(tmpWordMl);
|
|
|
quesBodyHtml.append(DocxProcessUtil.docx2Html(tmpWordMl, wordMLPackage));
|
|
|
} else if (tmpText.matches("^[a-zA-Z]\\.[\\s\\S]*") || tmpText.startsWith("[")) {
|
|
|
// 检测到选项或其他特殊段落直接退出
|
|
|
break;
|
|
|
- } else /*if(bodyStart)*/{
|
|
|
+ } else{
|
|
|
// 题干普通段落
|
|
|
String tmpWordMl = DocxProcessUtil.getPWordMl(pBody);
|
|
|
- quesBodyWordMl.append(DocxProcessUtil.formatPWordMl(tmpWordMl));
|
|
|
+ tmpWordMl = DocxProcessUtil.formatPWordMl(tmpWordMl);
|
|
|
+ quesBodyWordMl.append(tmpWordMl);
|
|
|
quesBodyHtml.append(DocxProcessUtil.docx2Html(tmpWordMl, wordMLPackage));
|
|
|
- }/*else{
|
|
|
- break;
|
|
|
- }*/
|
|
|
+ }
|
|
|
}
|
|
|
if(StringUtils.isEmpty(quesBodyHtml) || StringUtils.isEmpty(quesBodyWordMl)){
|
|
|
if(subQuesNum == 0){
|
|
@@ -974,7 +975,8 @@ public class ImportPaperService {
|
|
|
if(paperDetail.getUnitCount()!=entry.getValue()){
|
|
|
importPaperCheck.setErrorInfo("大题:"+paperDetail.getName()
|
|
|
+"标识小题数量("+paperDetail.getUnitCount()
|
|
|
- +")与实际小题数量("+entry.getValue()+")不符 ");
|
|
|
+ +")与实际小题数量("+entry.getValue()+")不符。"
|
|
|
+ + "(注:若检查小题数量无问题,请检查word中题目的格式是否正确)");
|
|
|
throw new PaperException(importPaperCheck.errorInfo);
|
|
|
}
|
|
|
}
|
|
@@ -999,15 +1001,17 @@ public class ImportPaperService {
|
|
|
optionNumList.add(word+"");
|
|
|
}
|
|
|
for(String answer:pAnswerArray){
|
|
|
- String reg="([A-Z]|[a-z])";
|
|
|
- if(!answer.matches(reg)){
|
|
|
+ answer = answer.trim();
|
|
|
+ String pattern = "\\s*([A-Z]|[a-z])\\s*";
|
|
|
+ if(!Pattern.matches(pattern,answer)){
|
|
|
importPaperCheck.setErrorInfo(getQuesNumInfo(importPaperCheck.quesName, subQuesNum)+
|
|
|
- "中,答案格式不正确,答案为:"+answerWord);
|
|
|
+ "中,答案格式不正确,答案为:"+answerWord);
|
|
|
throw new PaperException(importPaperCheck.errorInfo);
|
|
|
}
|
|
|
if(!optionNumList.contains(answer)){
|
|
|
importPaperCheck.setErrorInfo(getQuesNumInfo(importPaperCheck.quesName, subQuesNum)+
|
|
|
- "中,选项为:"+optionNumList.toString()+",答案为:"+answerWord);
|
|
|
+ "中,选项为:"+optionNumList.toString()+",答案为:"+answerWord+
|
|
|
+ "。(注:若检查选项无问题,请检查word中题目的格式是否正确)");
|
|
|
throw new PaperException(importPaperCheck.errorInfo);
|
|
|
}
|
|
|
}
|
|
@@ -1052,4 +1056,10 @@ public class ImportPaperService {
|
|
|
throw new PaperException(importPaperCheck.errorInfo);
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ /*public static void main(String[] args) {
|
|
|
+ String pattern = "\\s*([A-Z]|[a-z])\\s*";
|
|
|
+ System.out.println(Pattern.matches(pattern, " C"));
|
|
|
+ }*/
|
|
|
+
|
|
|
}
|