|
@@ -1,24 +1,6 @@
|
|
package com.qmth.cqb.paper.service;
|
|
package com.qmth.cqb.paper.service;
|
|
|
|
|
|
-import java.io.File;
|
|
|
|
-import java.io.FileOutputStream;
|
|
|
|
-import java.io.OutputStream;
|
|
|
|
-import java.util.ArrayList;
|
|
|
|
-import java.util.HashMap;
|
|
|
|
-import java.util.List;
|
|
|
|
-import java.util.Map;
|
|
|
|
-import java.util.UUID;
|
|
|
|
-import java.util.stream.Collectors;
|
|
|
|
-
|
|
|
|
-import org.apache.commons.io.FileUtils;
|
|
|
|
-import org.apache.commons.io.IOUtils;
|
|
|
|
-import org.apache.commons.lang3.StringUtils;
|
|
|
|
-import org.docx4j.openpackaging.packages.WordprocessingMLPackage;
|
|
|
|
-import org.docx4j.wml.P;
|
|
|
|
-import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
-import org.springframework.stereotype.Service;
|
|
|
|
-import org.springframework.web.multipart.commons.CommonsMultipartFile;
|
|
|
|
-
|
|
|
|
|
|
+import cn.com.qmth.examcloud.common.dto.question.enums.QuesStructType;
|
|
import com.google.gson.Gson;
|
|
import com.google.gson.Gson;
|
|
import com.qmth.cqb.base.dao.CourseRepo;
|
|
import com.qmth.cqb.base.dao.CourseRepo;
|
|
import com.qmth.cqb.paper.dao.PaperDetailRepo;
|
|
import com.qmth.cqb.paper.dao.PaperDetailRepo;
|
|
@@ -37,8 +19,21 @@ import com.qmth.cqb.utils.enums.PaperStatus;
|
|
import com.qmth.cqb.utils.enums.PaperType;
|
|
import com.qmth.cqb.utils.enums.PaperType;
|
|
import com.qmth.cqb.utils.enums.QuesUnit;
|
|
import com.qmth.cqb.utils.enums.QuesUnit;
|
|
import com.qmth.cqb.utils.word.DocxProcessUtil;
|
|
import com.qmth.cqb.utils.word.DocxProcessUtil;
|
|
|
|
+import org.apache.commons.io.FileUtils;
|
|
|
|
+import org.apache.commons.io.IOUtils;
|
|
|
|
+import org.apache.commons.lang3.StringUtils;
|
|
|
|
+import org.docx4j.openpackaging.packages.WordprocessingMLPackage;
|
|
|
|
+import org.docx4j.wml.P;
|
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
|
+import org.springframework.web.multipart.commons.CommonsMultipartFile;
|
|
|
|
|
|
-import cn.com.qmth.examcloud.common.dto.question.enums.QuesStructType;
|
|
|
|
|
|
+import java.io.File;
|
|
|
|
+import java.io.FileOutputStream;
|
|
|
|
+import java.io.OutputStream;
|
|
|
|
+import java.util.ArrayList;
|
|
|
|
+import java.util.List;
|
|
|
|
+import java.util.UUID;
|
|
|
|
|
|
@Service
|
|
@Service
|
|
public class ImportPaperService {
|
|
public class ImportPaperService {
|
|
@@ -63,14 +58,13 @@ public class ImportPaperService {
|
|
|
|
|
|
@Autowired
|
|
@Autowired
|
|
PaperService paperService;
|
|
PaperService paperService;
|
|
-
|
|
|
|
|
|
|
|
@Autowired
|
|
@Autowired
|
|
CourseRepo courseRepo;
|
|
CourseRepo courseRepo;
|
|
|
|
|
|
/**
|
|
/**
|
|
* 获取上传文件
|
|
* 获取上传文件
|
|
- *
|
|
|
|
|
|
+ *
|
|
* @param file
|
|
* @param file
|
|
* @return
|
|
* @return
|
|
*/
|
|
*/
|
|
@@ -91,7 +85,7 @@ public class ImportPaperService {
|
|
|
|
|
|
/**
|
|
/**
|
|
* 导入试卷
|
|
* 导入试卷
|
|
- *
|
|
|
|
|
|
+ *
|
|
* @param file
|
|
* @param file
|
|
* @return
|
|
* @return
|
|
*/
|
|
*/
|
|
@@ -106,7 +100,7 @@ public class ImportPaperService {
|
|
|
|
|
|
/**
|
|
/**
|
|
* 保存导入试卷信息
|
|
* 保存导入试卷信息
|
|
- *
|
|
|
|
|
|
+ *
|
|
* @param paper
|
|
* @param paper
|
|
* @param paperDetails
|
|
* @param paperDetails
|
|
* @param paperDetailUnits
|
|
* @param paperDetailUnits
|
|
@@ -141,7 +135,7 @@ public class ImportPaperService {
|
|
|
|
|
|
/**
|
|
/**
|
|
* 处理导入试卷
|
|
* 处理导入试卷
|
|
- *
|
|
|
|
|
|
+ *
|
|
* @param file
|
|
* @param file
|
|
*/
|
|
*/
|
|
public String processImportPaper(String paperName, File file) {
|
|
public String processImportPaper(String paperName, File file) {
|
|
@@ -207,8 +201,8 @@ public class ImportPaperService {
|
|
// 设置大题类
|
|
// 设置大题类
|
|
initQuesHeader(paper, paperDetail, paperDetails, ++mainQuesNum, importPaperCheck);
|
|
initQuesHeader(paper, paperDetail, paperDetails, ++mainQuesNum, importPaperCheck);
|
|
|
|
|
|
- } else if (pText.matches("^\\d{1,}\\.[\\s\\S]*")
|
|
|
|
- || (isNested(importPaperCheck) && !pText.startsWith("["))) {
|
|
|
|
|
|
+ } else if (pText.matches("^\\d{1,}\\.[\\s\\S]*") || (isNested(importPaperCheck) && !pText
|
|
|
|
+ .startsWith("["))) {
|
|
// 处理试题
|
|
// 处理试题
|
|
|
|
|
|
// 创建小题类和试题类
|
|
// 创建小题类和试题类
|
|
@@ -274,7 +268,7 @@ public class ImportPaperService {
|
|
|
|
|
|
/**
|
|
/**
|
|
* 初始化试卷信息
|
|
* 初始化试卷信息
|
|
- *
|
|
|
|
|
|
+ *
|
|
* @param paper
|
|
* @param paper
|
|
* @param paperName
|
|
* @param paperName
|
|
*/
|
|
*/
|
|
@@ -287,7 +281,7 @@ public class ImportPaperService {
|
|
|
|
|
|
/**
|
|
/**
|
|
* 初始化大题头信息
|
|
* 初始化大题头信息
|
|
- *
|
|
|
|
|
|
+ *
|
|
* @param paper
|
|
* @param paper
|
|
* @param paperDetail
|
|
* @param paperDetail
|
|
* @param paperDetails
|
|
* @param paperDetails
|
|
@@ -315,7 +309,7 @@ public class ImportPaperService {
|
|
|
|
|
|
/**
|
|
/**
|
|
* 初始化试卷明细和试题
|
|
* 初始化试卷明细和试题
|
|
- *
|
|
|
|
|
|
+ *
|
|
* @param paperDetail
|
|
* @param paperDetail
|
|
* @param paperDetailUnit
|
|
* @param paperDetailUnit
|
|
* @param question
|
|
* @param question
|
|
@@ -337,7 +331,7 @@ public class ImportPaperService {
|
|
|
|
|
|
/**
|
|
/**
|
|
* 校验试题头标识
|
|
* 校验试题头标识
|
|
- *
|
|
|
|
|
|
+ *
|
|
* @param importPaperCheck
|
|
* @param importPaperCheck
|
|
* @return
|
|
* @return
|
|
*/
|
|
*/
|
|
@@ -376,7 +370,7 @@ public class ImportPaperService {
|
|
|
|
|
|
/**
|
|
/**
|
|
* 处理大题头信息
|
|
* 处理大题头信息
|
|
- *
|
|
|
|
|
|
+ *
|
|
* @param pList
|
|
* @param pList
|
|
* @param index
|
|
* @param index
|
|
* @param importPaperCheck
|
|
* @param importPaperCheck
|
|
@@ -419,7 +413,7 @@ public class ImportPaperService {
|
|
|
|
|
|
/**
|
|
/**
|
|
* 处理题干信息
|
|
* 处理题干信息
|
|
- *
|
|
|
|
|
|
+ *
|
|
* @param pList
|
|
* @param pList
|
|
* @param index
|
|
* @param index
|
|
* @param question
|
|
* @param question
|
|
@@ -430,38 +424,42 @@ public class ImportPaperService {
|
|
public void processQuesBody(List pList, int index, Question question, ImportPaperCheck importPaperCheck,
|
|
public void processQuesBody(List pList, int index, Question question, ImportPaperCheck importPaperCheck,
|
|
WordprocessingMLPackage wordMLPackage) throws Exception {
|
|
WordprocessingMLPackage wordMLPackage) throws Exception {
|
|
// 定义题干wordml和html
|
|
// 定义题干wordml和html
|
|
- String quesBodyWordMl = "";
|
|
|
|
- String quesBodyHtml = "";
|
|
|
|
|
|
+ StringBuilder quesBodyWordMl = new StringBuilder();
|
|
|
|
+ StringBuilder quesBodyHtml = new StringBuilder();
|
|
int i = 0;
|
|
int i = 0;
|
|
|
|
|
|
for (i = index; i < pList.size(); i++) {
|
|
for (i = index; i < pList.size(); i++) {
|
|
P pBody = (P) pList.get(i);
|
|
P pBody = (P) pList.get(i);
|
|
String tmpText = DocxProcessUtil.getPText(pBody);
|
|
String tmpText = DocxProcessUtil.getPText(pBody);
|
|
|
|
|
|
- // 判断是否为题干
|
|
|
|
if (StringUtils.isEmpty(tmpText)) {
|
|
if (StringUtils.isEmpty(tmpText)) {
|
|
|
|
+ // 跳过空白段落
|
|
continue;
|
|
continue;
|
|
- } else if (tmpText.matches("^\\d{1,}\\.[\\s\\S]*")
|
|
|
|
- || (!tmpText.matches("^[a-zA-Z]\\.[\\s\\S]*") && !tmpText.startsWith("["))) {
|
|
|
|
|
|
+ } else if (tmpText.matches("^\\d{1,}\\.[\\s\\S]*")) {
|
|
|
|
+ // 题干第一段
|
|
// 过滤题干标题
|
|
// 过滤题干标题
|
|
pBody = DocxProcessUtil.formatP(pBody, QuesUnit.QUES_BODY);
|
|
pBody = DocxProcessUtil.formatP(pBody, QuesUnit.QUES_BODY);
|
|
-
|
|
|
|
String tmpWordMl = DocxProcessUtil.getPWordMl(pBody);
|
|
String tmpWordMl = DocxProcessUtil.getPWordMl(pBody);
|
|
- String tmpHtml = DocxProcessUtil.docx2Html(tmpWordMl, wordMLPackage);
|
|
|
|
- quesBodyWordMl += DocxProcessUtil.formatPWordMl(tmpWordMl);
|
|
|
|
- quesBodyHtml += tmpHtml;
|
|
|
|
- } else {
|
|
|
|
|
|
+ quesBodyWordMl.append(DocxProcessUtil.formatPWordMl(tmpWordMl));
|
|
|
|
+ quesBodyHtml.append(DocxProcessUtil.docx2Html(tmpWordMl, wordMLPackage));
|
|
|
|
+ } else if (tmpText.matches("^[a-zA-Z]\\.[\\s\\S]*") || tmpText.startsWith("[")) {
|
|
|
|
+ // 检测到选项或其他特殊段落直接退出
|
|
break;
|
|
break;
|
|
|
|
+ } else {
|
|
|
|
+ // 题干普通段落
|
|
|
|
+ String tmpWordMl = DocxProcessUtil.getPWordMl(pBody);
|
|
|
|
+ quesBodyWordMl.append(DocxProcessUtil.formatPWordMl(tmpWordMl));
|
|
|
|
+ quesBodyHtml.append(DocxProcessUtil.docx2Html(tmpWordMl, wordMLPackage));
|
|
}
|
|
}
|
|
}
|
|
}
|
|
importPaperCheck.setIndex(i);
|
|
importPaperCheck.setIndex(i);
|
|
- question.setQuesBody(quesBodyHtml);
|
|
|
|
- question.setQuesBodyWord(quesBodyWordMl);
|
|
|
|
|
|
+ question.setQuesBody(quesBodyHtml.toString());
|
|
|
|
+ question.setQuesBodyWord(quesBodyWordMl.toString());
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
* 处理题目选项
|
|
* 处理题目选项
|
|
- *
|
|
|
|
|
|
+ *
|
|
* @param pList
|
|
* @param pList
|
|
* @param index
|
|
* @param index
|
|
* @param subQuesNum
|
|
* @param subQuesNum
|
|
@@ -475,12 +473,14 @@ public class ImportPaperService {
|
|
ImportPaperCheck importPaperCheck, WordprocessingMLPackage wordMLPackage) throws Exception {
|
|
ImportPaperCheck importPaperCheck, WordprocessingMLPackage wordMLPackage) throws Exception {
|
|
|
|
|
|
// 定义试题选项wordml和html
|
|
// 定义试题选项wordml和html
|
|
- String quesOptionWordMl = "";
|
|
|
|
- String quesOptionHtml = "";
|
|
|
|
|
|
+ //String quesOptionWordMl = "";
|
|
|
|
+ //String quesOptionHtml = "";
|
|
// 定义选项集合
|
|
// 定义选项集合
|
|
List<QuesOption> quesOptions = new ArrayList<QuesOption>();
|
|
List<QuesOption> quesOptions = new ArrayList<QuesOption>();
|
|
// 定义选项数量
|
|
// 定义选项数量
|
|
int optionCount = 0;
|
|
int optionCount = 0;
|
|
|
|
+ // 当前所处的选项
|
|
|
|
+ QuesOption current = null;
|
|
|
|
|
|
int i = 0;
|
|
int i = 0;
|
|
|
|
|
|
@@ -489,21 +489,30 @@ public class ImportPaperService {
|
|
String tmpText = DocxProcessUtil.getPText(pOption);
|
|
String tmpText = DocxProcessUtil.getPText(pOption);
|
|
|
|
|
|
if (StringUtils.isEmpty(tmpText)) {
|
|
if (StringUtils.isEmpty(tmpText)) {
|
|
|
|
+ // 跳过空白段落
|
|
continue;
|
|
continue;
|
|
- } else if (tmpText.matches("^[a-zA-Z]\\.[\\s\\S]*")) {// 判断是否为选项
|
|
|
|
- // 过滤选项标题
|
|
|
|
- pOption = DocxProcessUtil.formatP(pOption, QuesUnit.QUES_OPTION);
|
|
|
|
- quesOptionWordMl = DocxProcessUtil.getPWordMl(pOption);
|
|
|
|
- quesOptionHtml = DocxProcessUtil.docx2Html(quesOptionWordMl, wordMLPackage);
|
|
|
|
|
|
+ } else if (tmpText.matches("^[a-zA-Z]\\.[\\s\\S]*")) {
|
|
|
|
+ // 检测到选项开始段落
|
|
// 创建试题选项
|
|
// 创建试题选项
|
|
- QuesOption quesOption = new QuesOption();
|
|
|
|
- quesOption.setOptionBody(quesOptionHtml);
|
|
|
|
- quesOption.setOptionBodyWord(DocxProcessUtil.formatPWordMl(quesOptionWordMl));
|
|
|
|
- quesOption.setNumber(tmpText.substring(0, 1));
|
|
|
|
- quesOptions.add(quesOption);
|
|
|
|
|
|
+ current = new QuesOption();
|
|
|
|
+ current.setNumber(tmpText.substring(0, 1));
|
|
|
|
+ current.setOptionBody("");
|
|
|
|
+ current.setOptionBodyWord("");
|
|
|
|
+ quesOptions.add(current);
|
|
optionCount++;
|
|
optionCount++;
|
|
- } else {
|
|
|
|
|
|
+ // 过滤选项标题
|
|
|
|
+ pOption = DocxProcessUtil.formatP(pOption, QuesUnit.QUES_OPTION);
|
|
|
|
+ String tmpWordMl = DocxProcessUtil.getPWordMl(pOption);
|
|
|
|
+ current.setOptionBody(current.getOptionBody() + DocxProcessUtil.docx2Html(tmpWordMl, wordMLPackage));
|
|
|
|
+ current.setOptionBodyWord(current.getOptionBodyWord() + DocxProcessUtil.formatPWordMl(tmpWordMl));
|
|
|
|
+ } else if (tmpText.startsWith("[")) {
|
|
|
|
+ // 非选项的其他内容直接退出
|
|
break;
|
|
break;
|
|
|
|
+ } else if (current != null) {
|
|
|
|
+ // 选项的其他段落
|
|
|
|
+ String tmpWordMl = DocxProcessUtil.getPWordMl(pOption);
|
|
|
|
+ current.setOptionBody(current.getOptionBody() + DocxProcessUtil.docx2Html(tmpWordMl, wordMLPackage));
|
|
|
|
+ current.setOptionBodyWord(current.getOptionBodyWord() + DocxProcessUtil.formatPWordMl(tmpWordMl));
|
|
}
|
|
}
|
|
}
|
|
}
|
|
importPaperCheck.setIndex(i);
|
|
importPaperCheck.setIndex(i);
|
|
@@ -518,7 +527,7 @@ public class ImportPaperService {
|
|
|
|
|
|
/**
|
|
/**
|
|
* 处理小题尾信息
|
|
* 处理小题尾信息
|
|
- *
|
|
|
|
|
|
+ *
|
|
* @param pList
|
|
* @param pList
|
|
* @param index
|
|
* @param index
|
|
* @param subQuesNum
|
|
* @param subQuesNum
|
|
@@ -530,39 +539,51 @@ public class ImportPaperService {
|
|
PaperDetailUnit paperDetailUnit, ImportPaperCheck importPaperCheck, WordprocessingMLPackage wordMLPackage,
|
|
PaperDetailUnit paperDetailUnit, ImportPaperCheck importPaperCheck, WordprocessingMLPackage wordMLPackage,
|
|
boolean isNested) throws Exception {
|
|
boolean isNested) throws Exception {
|
|
|
|
|
|
- String quesAnwserWordMl = "";
|
|
|
|
- String quesAnwserHtml = "";
|
|
|
|
|
|
+ StringBuilder answerWordML = new StringBuilder("");
|
|
|
|
+ StringBuilder answerHTML = new StringBuilder("");
|
|
String quesScore = "";
|
|
String quesScore = "";
|
|
- Map<String, String> quesParams = new HashMap<String, String>();
|
|
|
|
|
|
+ //Map<String, String> quesParams = new HashMap<String, String>();
|
|
int i = 0;
|
|
int i = 0;
|
|
|
|
+ // 是否刚刚检测到答案内容
|
|
|
|
+ boolean answerStart = false;
|
|
|
|
|
|
for (i = index; i < pList.size(); i++) {
|
|
for (i = index; i < pList.size(); i++) {
|
|
P pAnswer = (P) pList.get(i);
|
|
P pAnswer = (P) pList.get(i);
|
|
String tmpText = DocxProcessUtil.getPText(pAnswer);
|
|
String tmpText = DocxProcessUtil.getPText(pAnswer);
|
|
if (StringUtils.isEmpty(tmpText)) {
|
|
if (StringUtils.isEmpty(tmpText)) {
|
|
|
|
+ // 跳过空白段落
|
|
continue;
|
|
continue;
|
|
} else if (tmpText.startsWith("[答案]")) {
|
|
} else if (tmpText.startsWith("[答案]")) {
|
|
|
|
+ // 检测到答案开始段落
|
|
pAnswer = DocxProcessUtil.formatP(pAnswer, QuesUnit.QUES_ANSWER);
|
|
pAnswer = DocxProcessUtil.formatP(pAnswer, QuesUnit.QUES_ANSWER);
|
|
- quesAnwserWordMl = DocxProcessUtil.getPWordMl(pAnswer);
|
|
|
|
- quesAnwserHtml = DocxProcessUtil.docx2Html(quesAnwserWordMl, wordMLPackage);
|
|
|
|
-
|
|
|
|
|
|
+ String tmpWordMl = DocxProcessUtil.getPWordMl(pAnswer);
|
|
|
|
+ answerWordML.append(DocxProcessUtil.formatPWordMl(tmpWordMl));
|
|
|
|
+ answerHTML.append(DocxProcessUtil.docx2Html(tmpWordMl, wordMLPackage));
|
|
|
|
+ answerStart = true;
|
|
} else if (tmpText.startsWith("[小题分数]")) {
|
|
} else if (tmpText.startsWith("[小题分数]")) {
|
|
|
|
+ // 检测到分数开始段落
|
|
quesScore = tmpText.replaceAll("\\[小题分数\\]", "").replaceAll("[:|:]", "").trim();
|
|
quesScore = tmpText.replaceAll("\\[小题分数\\]", "").replaceAll("[:|:]", "").trim();
|
|
- } else {
|
|
|
|
|
|
+ answerStart = false;
|
|
|
|
+ } else if (tmpText.startsWith("[") || tmpText.matches("^\\d{1,}\\.[\\s\\S]*")) {
|
|
|
|
+ // 检测到其他特殊段落或下一题直接退出
|
|
break;
|
|
break;
|
|
|
|
+ } else if (answerStart) {
|
|
|
|
+ String tmpWordMl = DocxProcessUtil.getPWordMl(pAnswer);
|
|
|
|
+ answerWordML.append(DocxProcessUtil.formatPWordMl(tmpWordMl));
|
|
|
|
+ answerHTML.append(DocxProcessUtil.docx2Html(tmpWordMl, wordMLPackage));
|
|
}
|
|
}
|
|
}
|
|
}
|
|
importPaperCheck.setIndex(i);
|
|
importPaperCheck.setIndex(i);
|
|
// 校验答案
|
|
// 校验答案
|
|
- if (!StringUtils.isEmpty(quesAnwserHtml)) {
|
|
|
|
- question.setQuesAnswer(quesAnwserHtml);
|
|
|
|
- question.setQuesAnswerWord(DocxProcessUtil.formatPWordMl(quesAnwserWordMl));
|
|
|
|
|
|
+ if (answerHTML.length() > 0) {
|
|
|
|
+ question.setQuesAnswer(answerHTML.toString());
|
|
|
|
+ question.setQuesAnswerWord(answerWordML.toString());
|
|
} else {
|
|
} else {
|
|
importPaperCheck.setErrorInfo(getQuesNumInfo(importPaperCheck.quesName, subQuesNum) + "答案为空或格式不正确\n");
|
|
importPaperCheck.setErrorInfo(getQuesNumInfo(importPaperCheck.quesName, subQuesNum) + "答案为空或格式不正确\n");
|
|
}
|
|
}
|
|
|
|
|
|
// 设置预设分数
|
|
// 设置预设分数
|
|
- if(StringUtils.isNumeric(quesScore)){
|
|
|
|
|
|
+ if (StringUtils.isNumeric(quesScore)) {
|
|
question.setScore(Double.parseDouble(quesScore));
|
|
question.setScore(Double.parseDouble(quesScore));
|
|
}
|
|
}
|
|
// 一般大题明细需要设置分数
|
|
// 一般大题明细需要设置分数
|
|
@@ -573,7 +594,7 @@ public class ImportPaperService {
|
|
|
|
|
|
/**
|
|
/**
|
|
* 处理套题
|
|
* 处理套题
|
|
- *
|
|
|
|
|
|
+ *
|
|
* @param pList
|
|
* @param pList
|
|
* @param index
|
|
* @param index
|
|
* @param question
|
|
* @param question
|
|
@@ -619,7 +640,7 @@ public class ImportPaperService {
|
|
|
|
|
|
Question subQues = new Question();
|
|
Question subQues = new Question();
|
|
subQues.setQuestionType(getQuesStructType(nestedQuesType));
|
|
subQues.setQuestionType(getQuesStructType(nestedQuesType));
|
|
- if(StringUtils.isNumeric(importPaperCheck.getQuesScore())){
|
|
|
|
|
|
+ if (StringUtils.isNumeric(importPaperCheck.getQuesScore())) {
|
|
subQues.setScore(Double.parseDouble(importPaperCheck.getQuesScore()));
|
|
subQues.setScore(Double.parseDouble(importPaperCheck.getQuesScore()));
|
|
}
|
|
}
|
|
|
|
|
|
@@ -658,7 +679,7 @@ public class ImportPaperService {
|
|
|
|
|
|
/**
|
|
/**
|
|
* 获取试题类型
|
|
* 获取试题类型
|
|
- *
|
|
|
|
|
|
+ *
|
|
* @param quesType
|
|
* @param quesType
|
|
* @return
|
|
* @return
|
|
*/
|
|
*/
|
|
@@ -668,7 +689,7 @@ public class ImportPaperService {
|
|
|
|
|
|
/**
|
|
/**
|
|
* 获取试题类型
|
|
* 获取试题类型
|
|
- *
|
|
|
|
|
|
+ *
|
|
* @param quesType
|
|
* @param quesType
|
|
* @param quesName
|
|
* @param quesName
|
|
* @return
|
|
* @return
|
|
@@ -680,7 +701,7 @@ public class ImportPaperService {
|
|
|
|
|
|
/**
|
|
/**
|
|
* 获取试题结构类型
|
|
* 获取试题结构类型
|
|
- *
|
|
|
|
|
|
+ *
|
|
* @param quesType
|
|
* @param quesType
|
|
* @return
|
|
* @return
|
|
*/
|
|
*/
|
|
@@ -690,7 +711,7 @@ public class ImportPaperService {
|
|
|
|
|
|
/**
|
|
/**
|
|
* 获取当前试题大题小题号
|
|
* 获取当前试题大题小题号
|
|
- *
|
|
|
|
|
|
+ *
|
|
* @param quesType
|
|
* @param quesType
|
|
* @param subQuesNum
|
|
* @param subQuesNum
|
|
* @return
|
|
* @return
|
|
@@ -701,7 +722,7 @@ public class ImportPaperService {
|
|
|
|
|
|
/**
|
|
/**
|
|
* 判断是否为套题
|
|
* 判断是否为套题
|
|
- *
|
|
|
|
|
|
+ *
|
|
* @param importPaperCheck
|
|
* @param importPaperCheck
|
|
* @return
|
|
* @return
|
|
*/
|
|
*/
|
|
@@ -715,7 +736,7 @@ public class ImportPaperService {
|
|
|
|
|
|
/**
|
|
/**
|
|
* 获取课程代码
|
|
* 获取课程代码
|
|
- *
|
|
|
|
|
|
+ *
|
|
* @param importPaperCheck
|
|
* @param importPaperCheck
|
|
* @return
|
|
* @return
|
|
*/
|
|
*/
|
|
@@ -730,7 +751,7 @@ public class ImportPaperService {
|
|
|
|
|
|
/**
|
|
/**
|
|
* 获取课程名称
|
|
* 获取课程名称
|
|
- *
|
|
|
|
|
|
+ *
|
|
* @param importPaperCheck
|
|
* @param importPaperCheck
|
|
* @return
|
|
* @return
|
|
*/
|
|
*/
|
|
@@ -745,7 +766,7 @@ public class ImportPaperService {
|
|
|
|
|
|
/**
|
|
/**
|
|
* 设置wordMLPackage对象二进制数据
|
|
* 设置wordMLPackage对象二进制数据
|
|
- *
|
|
|
|
|
|
+ *
|
|
* @param question
|
|
* @param question
|
|
* @param wordMLPackage
|
|
* @param wordMLPackage
|
|
* @throws Exception
|
|
* @throws Exception
|
|
@@ -754,13 +775,10 @@ public class ImportPaperService {
|
|
question.setQuesPkg(DocxProcessUtil.getPkgByte(wordMLPackage));
|
|
question.setQuesPkg(DocxProcessUtil.getPkgByte(wordMLPackage));
|
|
}
|
|
}
|
|
|
|
|
|
-
|
|
|
|
-
|
|
|
|
/**
|
|
/**
|
|
* 构造一张空白的导入类型试卷
|
|
* 构造一张空白的导入类型试卷
|
|
- *
|
|
|
|
|
|
+ *
|
|
* @param courseNo
|
|
* @param courseNo
|
|
- * @param courseName
|
|
|
|
* @param paperName
|
|
* @param paperName
|
|
* @return
|
|
* @return
|
|
*/
|
|
*/
|