|
@@ -320,6 +320,10 @@ public class ImportPaperService {
|
|
// 处理其他题型
|
|
// 处理其他题型
|
|
processQuesBody(pList, importPaperCheck.index, subQuesNum,question, importPaperCheck, tmpWordMlPackage);
|
|
processQuesBody(pList, importPaperCheck.index, subQuesNum,question, importPaperCheck, tmpWordMlPackage);
|
|
processQuesTail(pList, importPaperCheck.index, subQuesNum, question, paperDetailUnit,importPaperCheck, tmpWordMlPackage, false,paper);
|
|
processQuesTail(pList, importPaperCheck.index, subQuesNum, question, paperDetailUnit,importPaperCheck, tmpWordMlPackage, false,paper);
|
|
|
|
+ //填空题空格校验
|
|
|
|
+ if(question.getQuestionType().getName() == QuesStructType.FILL_BLANK_QUESTION.getName()){
|
|
|
|
+ processFill(question,paperDetailUnit,importPaperCheck,subQuesNum);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
// 设置WordMlPackage二进制数据
|
|
// 设置WordMlPackage二进制数据
|
|
byte[] pkgByte = getZipResource(wordMLPackage,question);
|
|
byte[] pkgByte = getZipResource(wordMLPackage,question);
|
|
@@ -524,10 +528,16 @@ public class ImportPaperService {
|
|
*/
|
|
*/
|
|
public void processMainQuesHeader(List<Object> pList, int index, ImportPaperCheck importPaperCheck,String courseNo) throws PaperException {
|
|
public void processMainQuesHeader(List<Object> pList, int index, ImportPaperCheck importPaperCheck,String courseNo) throws PaperException {
|
|
int i = 0;
|
|
int i = 0;
|
|
- P pFirst = (P) pList.get(index);
|
|
|
|
- String tmpTextFirst = DocxProcessUtil.getPText(pFirst);
|
|
|
|
- if(!tmpTextFirst.startsWith(ImportPaperMsg.questionClassify_word)){
|
|
|
|
- throw new PaperException("导入文件格式有误,必须有大题头信息,且以[试题分类]开头!");
|
|
|
|
|
|
+ for(i=index;i< pList.size(); i++){
|
|
|
|
+ P pFirst = (P) pList.get(i);
|
|
|
|
+ String tmpTextFirst = DocxProcessUtil.getPText(pFirst);
|
|
|
|
+ if(StringUtils.isBlank(tmpTextFirst)){
|
|
|
|
+ continue;
|
|
|
|
+ }
|
|
|
|
+ if(!tmpTextFirst.startsWith(ImportPaperMsg.questionClassify_word)){
|
|
|
|
+ throw new PaperException("导入文件格式有误,必须有大题头信息,且以[试题分类]开头!");
|
|
|
|
+ }
|
|
|
|
+ break;
|
|
}
|
|
}
|
|
for (i = index; i < pList.size(); i++) {
|
|
for (i = index; i < pList.size(); i++) {
|
|
P pHeader = (P) pList.get(i);
|
|
P pHeader = (P) pList.get(i);
|
|
@@ -1223,6 +1233,10 @@ public class ImportPaperService {
|
|
// 处理其他题型
|
|
// 处理其他题型
|
|
processQuesBody(pList, importPaperCheck.index, subQuesNum, subQues, importPaperCheck, wordMLPackage);
|
|
processQuesBody(pList, importPaperCheck.index, subQuesNum, subQues, importPaperCheck, wordMLPackage);
|
|
processQuesTail(pList, importPaperCheck.index, subQuesNum, subQues, paperDetailUnit,importPaperCheck, wordMLPackage, true,paper);
|
|
processQuesTail(pList, importPaperCheck.index, subQuesNum, subQues, paperDetailUnit,importPaperCheck, wordMLPackage, true,paper);
|
|
|
|
+ //填空题空格校验
|
|
|
|
+ if(subQues.getQuestionType().getName() == QuesStructType.FILL_BLANK_QUESTION.getName()){
|
|
|
|
+ processFill(question,paperDetailUnit,importPaperCheck,subQuesNum);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
subQuesList.add(subQues);
|
|
subQuesList.add(subQues);
|
|
i = importPaperCheck.index - 1;
|
|
i = importPaperCheck.index - 1;
|
|
@@ -1744,4 +1758,26 @@ public class ImportPaperService {
|
|
Pattern pattern = Pattern.compile("^[-\\+]?[\\d]*$");
|
|
Pattern pattern = Pattern.compile("^[-\\+]?[\\d]*$");
|
|
return pattern.matcher(str).matches();
|
|
return pattern.matcher(str).matches();
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 判断填空题题干和答案空格数量是否一致
|
|
|
|
+ * @throws PaperException
|
|
|
|
+ */
|
|
|
|
+ public void processFill(Question question, PaperDetailUnit paperDetailUnit, ImportPaperCheck importPaperCheck,int subQuesNum) throws PaperException{
|
|
|
|
+ //按3个#号截取题干
|
|
|
|
+ String[] quesBody = question.getQuesBody().split("(</span><span>###");
|
|
|
|
+ String[] quesAnwser = question.getQuesAnswer().split("<span>##");
|
|
|
|
+ //如果有答案,进行判断
|
|
|
|
+ if(quesAnwser.length>1){
|
|
|
|
+ //判断题干空格和答案空格是否相等
|
|
|
|
+ if((quesBody.length -1) != quesAnwser.length){
|
|
|
|
+ if(importPaperCheck.nestedHeadNumber == 0){
|
|
|
|
+ importPaperCheck.setErrorInfo("[大题名称]:"+importPaperCheck.quesName+"第"+subQuesNum+"题中,题干与答案的空格数量不一样");
|
|
|
|
+ }else {
|
|
|
|
+ importPaperCheck.setErrorInfo("[大题名称]:"+importPaperCheck.quesName+"第"+importPaperCheck.nestedHeadNumber+"个套题中,第"+subQuesNum+"题中,题干与答案的空格数量不一样");
|
|
|
|
+ }
|
|
|
|
+ throw new PaperException(importPaperCheck.errorInfo);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
}
|
|
}
|