|
@@ -1,13 +1,30 @@
|
|
|
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 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 com.google.gson.Gson;
|
|
|
import com.qmth.cqb.paper.dao.PaperDetailRepo;
|
|
|
import com.qmth.cqb.paper.dao.PaperDetailUnitRepo;
|
|
|
-
|
|
|
-import java.util.*;
|
|
|
-
|
|
|
import com.qmth.cqb.paper.dao.PaperRepo;
|
|
|
-import com.qmth.cqb.paper.model.*;
|
|
|
+import com.qmth.cqb.paper.model.ImportPaperCheck;
|
|
|
+import com.qmth.cqb.paper.model.Paper;
|
|
|
+import com.qmth.cqb.paper.model.PaperDetail;
|
|
|
+import com.qmth.cqb.paper.model.PaperDetailUnit;
|
|
|
import com.qmth.cqb.question.dao.QuesRepo;
|
|
|
import com.qmth.cqb.question.model.QuesOption;
|
|
|
import com.qmth.cqb.question.model.Question;
|
|
@@ -15,19 +32,10 @@ import com.qmth.cqb.question.model.QuestionType;
|
|
|
import com.qmth.cqb.utils.CommonUtils;
|
|
|
import com.qmth.cqb.utils.enums.PaperStatus;
|
|
|
import com.qmth.cqb.utils.enums.PaperType;
|
|
|
-import com.qmth.cqb.utils.enums.QuesStructType;
|
|
|
import com.qmth.cqb.utils.enums.QuesUnit;
|
|
|
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 java.io.*;
|
|
|
+import cn.com.qmth.examcloud.common.dto.question.enums.QuesStructType;
|
|
|
|
|
|
@Service
|
|
|
public class ImportPaperService {
|
|
@@ -55,19 +63,20 @@ public class ImportPaperService {
|
|
|
|
|
|
/**
|
|
|
* 获取上传文件
|
|
|
+ *
|
|
|
* @param file
|
|
|
* @return
|
|
|
*/
|
|
|
- public File getUploadFile(CommonsMultipartFile file){
|
|
|
+ public File getUploadFile(CommonsMultipartFile file) {
|
|
|
String fileName = file.getOriginalFilename();
|
|
|
- File tempFile = new File(DocxProcessUtil.TEMP_FILE_IMP+fileName);
|
|
|
+ File tempFile = new File(DocxProcessUtil.TEMP_FILE_IMP + fileName);
|
|
|
OutputStream os = null;
|
|
|
try {
|
|
|
os = new FileOutputStream(tempFile);
|
|
|
- IOUtils.copyLarge(file.getInputStream(),os);
|
|
|
+ IOUtils.copyLarge(file.getInputStream(), os);
|
|
|
} catch (Exception e) {
|
|
|
e.printStackTrace();
|
|
|
- }finally {
|
|
|
+ } finally {
|
|
|
IOUtils.closeQuietly(os);
|
|
|
}
|
|
|
return tempFile;
|
|
@@ -75,46 +84,46 @@ public class ImportPaperService {
|
|
|
|
|
|
/**
|
|
|
* 导入试卷
|
|
|
+ *
|
|
|
* @param file
|
|
|
* @return
|
|
|
*/
|
|
|
- public String ImportPaper(String paperName,File file){
|
|
|
- String errorInfo = processImportPaper(paperName,file);
|
|
|
- if(StringUtils.isEmpty(errorInfo)){
|
|
|
+ public String ImportPaper(String paperName, File file) {
|
|
|
+ String errorInfo = processImportPaper(paperName, file);
|
|
|
+ if (StringUtils.isEmpty(errorInfo)) {
|
|
|
return "success";
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
return errorInfo;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 保存导入试卷信息
|
|
|
+ *
|
|
|
* @param paper
|
|
|
* @param paperDetails
|
|
|
* @param paperDetailUnits
|
|
|
* @param importPaperCheck
|
|
|
*/
|
|
|
- public void savePaper(Paper paper,
|
|
|
- List paperDetails,
|
|
|
- List paperDetailUnits,
|
|
|
- List questions,
|
|
|
- ImportPaperCheck importPaperCheck){
|
|
|
+ public void savePaper(Paper paper, List paperDetails, List paperDetailUnits, List questions,
|
|
|
+ ImportPaperCheck importPaperCheck) {
|
|
|
|
|
|
- if(!StringUtils.isEmpty(importPaperCheck.errorInfo)) return;
|
|
|
+ if (!StringUtils.isEmpty(importPaperCheck.errorInfo))
|
|
|
+ return;
|
|
|
|
|
|
- if(paper != null){
|
|
|
+ if (paper != null) {
|
|
|
paperRepo.save(paper);
|
|
|
}
|
|
|
|
|
|
- if(paperDetails.size() > 0){
|
|
|
+ if (paperDetails.size() > 0) {
|
|
|
paperDetailRepo.save(paperDetails);
|
|
|
}
|
|
|
|
|
|
- if(questions.size() > 0){
|
|
|
+ if (questions.size() > 0) {
|
|
|
quesRepo.save(questions);
|
|
|
}
|
|
|
|
|
|
- if(paperDetailUnits.size() > 0){
|
|
|
+ if (paperDetailUnits.size() > 0) {
|
|
|
paperDetailUnitRepo.save(paperDetailUnits);
|
|
|
}
|
|
|
|
|
@@ -122,172 +131,130 @@ public class ImportPaperService {
|
|
|
|
|
|
/**
|
|
|
* 处理导入试卷
|
|
|
+ *
|
|
|
* @param file
|
|
|
*/
|
|
|
- public String processImportPaper(String paperName,File file){
|
|
|
+ public String processImportPaper(String paperName, File file) {
|
|
|
|
|
|
WordprocessingMLPackage wordMLPackage;
|
|
|
WordprocessingMLPackage tmpWordMlPackage;
|
|
|
WordprocessingMLPackage writePkg;
|
|
|
ImportPaperCheck importPaperCheck = new ImportPaperCheck();
|
|
|
|
|
|
- try{
|
|
|
+ try {
|
|
|
wordMLPackage = WordprocessingMLPackage.load(file);
|
|
|
- //初始化图片路径
|
|
|
+ // 初始化图片路径
|
|
|
DocxProcessUtil.initPkgImage(wordMLPackage);
|
|
|
- //深拷贝临时pkg与最终写入数据库pkg
|
|
|
+ // 深拷贝临时pkg与最终写入数据库pkg
|
|
|
tmpWordMlPackage = DocxProcessUtil.getTmpPackage(wordMLPackage);
|
|
|
writePkg = DocxProcessUtil.getTmpPackage(wordMLPackage);
|
|
|
|
|
|
- //获取word文档中所有段落
|
|
|
- List<Object> pList = DocxProcessUtil.getAllElementFromObject(
|
|
|
- wordMLPackage.getMainDocumentPart(), P.class);
|
|
|
+ // 获取word文档中所有段落
|
|
|
+ List<Object> pList = DocxProcessUtil.getAllElementFromObject(wordMLPackage.getMainDocumentPart(), P.class);
|
|
|
|
|
|
- //创建试卷类
|
|
|
+ // 创建试卷类
|
|
|
Paper paper = new Paper();
|
|
|
|
|
|
- //设置试卷
|
|
|
- initPaper(paper,paperName);
|
|
|
+ // 设置试卷
|
|
|
+ initPaper(paper, paperName);
|
|
|
|
|
|
- //创建空大题类
|
|
|
+ // 创建空大题类
|
|
|
PaperDetail paperDetail = null;
|
|
|
|
|
|
- //创建大题集合
|
|
|
+ // 创建大题集合
|
|
|
List<PaperDetail> paperDetails = new ArrayList<PaperDetail>();
|
|
|
|
|
|
- //创建小题集合
|
|
|
+ // 创建小题集合
|
|
|
List<PaperDetailUnit> paperDetailUnits = new ArrayList<PaperDetailUnit>();
|
|
|
|
|
|
- //创建试题集合
|
|
|
+ // 创建试题集合
|
|
|
List<Question> questions = new ArrayList<Question>();
|
|
|
|
|
|
- //大题号
|
|
|
+ // 大题号
|
|
|
int mainQuesNum = 0;
|
|
|
|
|
|
- //小题号
|
|
|
+ // 小题号
|
|
|
int subQuesNum = 0;
|
|
|
|
|
|
- for (int i = 0;i < pList.size();i++) {
|
|
|
- P p=(P) pList.get(i);
|
|
|
+ for (int i = 0; i < pList.size(); i++) {
|
|
|
+ P p = (P) pList.get(i);
|
|
|
String pText = DocxProcessUtil.getPText(p);
|
|
|
|
|
|
- //获取大题头信息
|
|
|
- if(pText.startsWith("[试题分类]")){
|
|
|
+ // 获取大题头信息
|
|
|
+ if (pText.startsWith("[试题分类]")) {
|
|
|
|
|
|
- //处理大题头信息
|
|
|
- processMainQuesHeader(pList,importPaperCheck.index,importPaperCheck);
|
|
|
+ // 处理大题头信息
|
|
|
+ processMainQuesHeader(pList, importPaperCheck.index, importPaperCheck);
|
|
|
|
|
|
- //校验大题头信息
|
|
|
- if(!checkQuesHeader(importPaperCheck)){
|
|
|
+ // 校验大题头信息
|
|
|
+ if (!checkQuesHeader(importPaperCheck)) {
|
|
|
return importPaperCheck.errorInfo;
|
|
|
}
|
|
|
|
|
|
- //创建大题类
|
|
|
+ // 创建大题类
|
|
|
paperDetail = new PaperDetail();
|
|
|
|
|
|
- //设置大题类
|
|
|
- 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("["))) {
|
|
|
+ // 处理试题
|
|
|
|
|
|
- //创建小题类和试题类
|
|
|
+ // 创建小题类和试题类
|
|
|
PaperDetailUnit paperDetailUnit = new PaperDetailUnit();
|
|
|
Question question = new Question();
|
|
|
|
|
|
- //初始化小题类和试题类
|
|
|
- initPaperDetail(paper,
|
|
|
- paperDetail,
|
|
|
- paperDetailUnit,
|
|
|
- question,
|
|
|
- ++subQuesNum,
|
|
|
- importPaperCheck);
|
|
|
-
|
|
|
- //处理客观题
|
|
|
- if(importPaperCheck.quesType.equals("单选")
|
|
|
- || importPaperCheck.quesType.equals("多选")){
|
|
|
-
|
|
|
- //处理题干
|
|
|
- processQuesBody(pList,
|
|
|
- importPaperCheck.index,
|
|
|
- question,
|
|
|
- importPaperCheck,
|
|
|
- tmpWordMlPackage);
|
|
|
-
|
|
|
- //处理选项
|
|
|
- processQuesOption(pList,
|
|
|
- importPaperCheck.index,
|
|
|
- subQuesNum,
|
|
|
- question,
|
|
|
- importPaperCheck,
|
|
|
- tmpWordMlPackage);
|
|
|
- //处理尾信息
|
|
|
- processQuesTail(pList,
|
|
|
- importPaperCheck.index,
|
|
|
- subQuesNum,
|
|
|
- question,
|
|
|
- paperDetailUnit,
|
|
|
- importPaperCheck,
|
|
|
- tmpWordMlPackage,
|
|
|
- false);
|
|
|
-
|
|
|
- }else if(importPaperCheck.quesType.equals("套题")){
|
|
|
- //处理套题
|
|
|
- processNestedQues(pList,
|
|
|
- importPaperCheck.index,
|
|
|
- question,
|
|
|
- paperDetailUnit,
|
|
|
- importPaperCheck,
|
|
|
- tmpWordMlPackage);
|
|
|
- }else{
|
|
|
- //处理其他题型
|
|
|
- processQuesBody(pList,
|
|
|
- importPaperCheck.index,
|
|
|
- question,
|
|
|
- importPaperCheck,
|
|
|
- tmpWordMlPackage);
|
|
|
-
|
|
|
- processQuesTail(pList,
|
|
|
- importPaperCheck.index,
|
|
|
- subQuesNum,
|
|
|
- question,
|
|
|
- paperDetailUnit,
|
|
|
- importPaperCheck,
|
|
|
- tmpWordMlPackage,
|
|
|
- false);
|
|
|
+ // 初始化小题类和试题类
|
|
|
+ initPaperDetail(paper, paperDetail, paperDetailUnit, question, ++subQuesNum, importPaperCheck);
|
|
|
+
|
|
|
+ // 处理客观题
|
|
|
+ if (importPaperCheck.quesType.equals("单选") || importPaperCheck.quesType.equals("多选")) {
|
|
|
+
|
|
|
+ // 处理题干
|
|
|
+ processQuesBody(pList, importPaperCheck.index, question, importPaperCheck, tmpWordMlPackage);
|
|
|
+
|
|
|
+ // 处理选项
|
|
|
+ processQuesOption(pList, importPaperCheck.index, subQuesNum, question, importPaperCheck,
|
|
|
+ tmpWordMlPackage);
|
|
|
+ // 处理尾信息
|
|
|
+ processQuesTail(pList, importPaperCheck.index, subQuesNum, question, paperDetailUnit,
|
|
|
+ importPaperCheck, tmpWordMlPackage, false);
|
|
|
+
|
|
|
+ } else if (importPaperCheck.quesType.equals("套题")) {
|
|
|
+ // 处理套题
|
|
|
+ processNestedQues(pList, importPaperCheck.index, question, paperDetailUnit, importPaperCheck,
|
|
|
+ tmpWordMlPackage);
|
|
|
+ } else {
|
|
|
+ // 处理其他题型
|
|
|
+ processQuesBody(pList, importPaperCheck.index, question, importPaperCheck, tmpWordMlPackage);
|
|
|
+
|
|
|
+ processQuesTail(pList, importPaperCheck.index, subQuesNum, question, paperDetailUnit,
|
|
|
+ importPaperCheck, tmpWordMlPackage, false);
|
|
|
}
|
|
|
- //设置WordMlPackage二进制数据
|
|
|
- setPkgByte(question,writePkg);
|
|
|
+ // 设置WordMlPackage二进制数据
|
|
|
+ setPkgByte(question, writePkg);
|
|
|
|
|
|
- //设置question与Unit集合数据
|
|
|
+ // 设置question与Unit集合数据
|
|
|
questions.add(question);
|
|
|
paperDetailUnits.add(paperDetailUnit);
|
|
|
|
|
|
- //设置当前索引,防止多余循环
|
|
|
+ // 设置当前索引,防止多余循环
|
|
|
i = importPaperCheck.index - 1;
|
|
|
}
|
|
|
- if(!StringUtils.isEmpty(importPaperCheck.errorInfo)){
|
|
|
+ if (!StringUtils.isEmpty(importPaperCheck.errorInfo)) {
|
|
|
return importPaperCheck.errorInfo;
|
|
|
}
|
|
|
}
|
|
|
paper.setPaperDetailCount(mainQuesNum);
|
|
|
- paper.setTotalScore((double)100);
|
|
|
- //保存导入试卷信息
|
|
|
- savePaper(paper,
|
|
|
- paperDetails,
|
|
|
- paperDetailUnits,
|
|
|
- questions,
|
|
|
- importPaperCheck);
|
|
|
-
|
|
|
- }catch (Exception e){
|
|
|
+ paper.setTotalScore((double) 100);
|
|
|
+ // 保存导入试卷信息
|
|
|
+ savePaper(paper, paperDetails, paperDetailUnits, questions, importPaperCheck);
|
|
|
+
|
|
|
+ } catch (Exception e) {
|
|
|
e.printStackTrace();
|
|
|
importPaperCheck.setErrorInfo(e.getMessage());
|
|
|
- }finally {
|
|
|
+ } finally {
|
|
|
wordMLPackage = null;
|
|
|
tmpWordMlPackage = null;
|
|
|
writePkg = null;
|
|
@@ -298,10 +265,11 @@ public class ImportPaperService {
|
|
|
|
|
|
/**
|
|
|
* 初始化试卷信息
|
|
|
+ *
|
|
|
* @param paper
|
|
|
* @param paperName
|
|
|
*/
|
|
|
- public void initPaper(Paper paper,String paperName){
|
|
|
+ public void initPaper(Paper paper, String paperName) {
|
|
|
paper.setName(paperName);
|
|
|
paper.setTitle(paperName);
|
|
|
paper.setPaperType(PaperType.IMPORT);
|
|
@@ -310,27 +278,24 @@ public class ImportPaperService {
|
|
|
|
|
|
/**
|
|
|
* 初始化大题头信息
|
|
|
+ *
|
|
|
* @param paper
|
|
|
* @param paperDetail
|
|
|
* @param paperDetails
|
|
|
* @param mainQuesNum
|
|
|
* @param importPaperCheck
|
|
|
*/
|
|
|
- public void initQuesHeader(Paper paper,
|
|
|
- PaperDetail paperDetail,
|
|
|
- List<PaperDetail> paperDetails,
|
|
|
- int mainQuesNum,
|
|
|
- ImportPaperCheck importPaperCheck){
|
|
|
+ public void initQuesHeader(Paper paper, PaperDetail paperDetail, List<PaperDetail> paperDetails, int mainQuesNum,
|
|
|
+ ImportPaperCheck importPaperCheck) {
|
|
|
|
|
|
paperDetail.setPaper(paper);
|
|
|
|
|
|
- //设置课程
|
|
|
- if(StringUtils.isEmpty(paper.getCourseNo())
|
|
|
- || StringUtils.isEmpty(paper.getCourseName())){
|
|
|
+ // 设置课程
|
|
|
+ if (StringUtils.isEmpty(paper.getCourseNo()) || StringUtils.isEmpty(paper.getCourseName())) {
|
|
|
paper.setCourseNo(getCourseNo(importPaperCheck));
|
|
|
paper.setCourseName(getCourseName(importPaperCheck));
|
|
|
}
|
|
|
- //设置大题信息
|
|
|
+ // 设置大题信息
|
|
|
paperDetail.setName(importPaperCheck.quesName);
|
|
|
paperDetail.setUnitCount(Integer.parseInt(importPaperCheck.quesCount));
|
|
|
paperDetail.setNumber(mainQuesNum);
|
|
@@ -341,18 +306,15 @@ public class ImportPaperService {
|
|
|
|
|
|
/**
|
|
|
* 初始化试卷明细和试题
|
|
|
+ *
|
|
|
* @param paperDetail
|
|
|
* @param paperDetailUnit
|
|
|
* @param question
|
|
|
* @param subQuesNum
|
|
|
* @param importPaperCheck
|
|
|
*/
|
|
|
- public void initPaperDetail(Paper paper,
|
|
|
- PaperDetail paperDetail,
|
|
|
- PaperDetailUnit paperDetailUnit,
|
|
|
- Question question,
|
|
|
- int subQuesNum,
|
|
|
- ImportPaperCheck importPaperCheck){
|
|
|
+ public void initPaperDetail(Paper paper, PaperDetail paperDetail, PaperDetailUnit paperDetailUnit,
|
|
|
+ Question question, int subQuesNum, ImportPaperCheck importPaperCheck) {
|
|
|
|
|
|
question.setQuestionType(getQuesStructType(importPaperCheck.quesType));
|
|
|
paperDetailUnit.setNumber(++subQuesNum);
|
|
@@ -365,35 +327,35 @@ public class ImportPaperService {
|
|
|
|
|
|
/**
|
|
|
* 校验试题头标识
|
|
|
+ *
|
|
|
* @param importPaperCheck
|
|
|
* @return
|
|
|
*/
|
|
|
- public boolean checkQuesHeader(ImportPaperCheck importPaperCheck){
|
|
|
+ public boolean checkQuesHeader(ImportPaperCheck importPaperCheck) {
|
|
|
|
|
|
String tmpErrorInfo = "";
|
|
|
- if(StringUtils.isEmpty(importPaperCheck.quesGroup)){
|
|
|
+ if (StringUtils.isEmpty(importPaperCheck.quesGroup)) {
|
|
|
tmpErrorInfo += "试题分类为空或格式不正确\n";
|
|
|
|
|
|
- }else if(StringUtils.isEmpty(importPaperCheck.quesType)){
|
|
|
+ } else if (StringUtils.isEmpty(importPaperCheck.quesType)) {
|
|
|
tmpErrorInfo += "题型为空或格式不正确\n";
|
|
|
|
|
|
- }else if(StringUtils.isEmpty(importPaperCheck.quesName)){
|
|
|
+ } else if (StringUtils.isEmpty(importPaperCheck.quesName)) {
|
|
|
tmpErrorInfo += "大题名称为空或格式不正确\n";
|
|
|
|
|
|
- }else if(StringUtils.isEmpty(importPaperCheck.quesCount)){
|
|
|
+ } else if (StringUtils.isEmpty(importPaperCheck.quesCount)) {
|
|
|
tmpErrorInfo += "题目数量为空或格式不正确\n";
|
|
|
|
|
|
- }else if(StringUtils.isEmpty(importPaperCheck.quesScore)){
|
|
|
+ } else if (StringUtils.isEmpty(importPaperCheck.quesScore)) {
|
|
|
tmpErrorInfo += "分数为空或格式不正确\n";
|
|
|
|
|
|
}
|
|
|
- if(!StringUtils.isEmpty(importPaperCheck.quesType)
|
|
|
- && !CommonUtils.checkQuesType(importPaperCheck.quesType)){
|
|
|
+ if (!StringUtils.isEmpty(importPaperCheck.quesType) && !CommonUtils.checkQuesType(importPaperCheck.quesType)) {
|
|
|
tmpErrorInfo += "题型必须是单选、多选、判断、填空、问答、套题中的一种\n";
|
|
|
}
|
|
|
- if(StringUtils.isEmpty(tmpErrorInfo)){
|
|
|
+ if (StringUtils.isEmpty(tmpErrorInfo)) {
|
|
|
return true;
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
importPaperCheck.setErrorInfo(tmpErrorInfo);
|
|
|
return false;
|
|
|
}
|
|
@@ -401,47 +363,41 @@ public class ImportPaperService {
|
|
|
|
|
|
/**
|
|
|
* 处理大题头信息
|
|
|
+ *
|
|
|
* @param pList
|
|
|
* @param index
|
|
|
* @param importPaperCheck
|
|
|
*/
|
|
|
- public void processMainQuesHeader(List pList,
|
|
|
- int index,
|
|
|
- ImportPaperCheck importPaperCheck){
|
|
|
+ public void processMainQuesHeader(List pList, int index, ImportPaperCheck importPaperCheck) {
|
|
|
|
|
|
int i = 0;
|
|
|
|
|
|
- for(i = index;i < pList.size();i++){
|
|
|
- P pHeader = (P)pList.get(i);
|
|
|
+ for (i = index; i < pList.size(); i++) {
|
|
|
+ P pHeader = (P) pList.get(i);
|
|
|
String tmpText = DocxProcessUtil.getPText(pHeader);
|
|
|
- if(tmpText.startsWith("[试题分类]")){
|
|
|
+ if (tmpText.startsWith("[试题分类]")) {
|
|
|
|
|
|
- importPaperCheck.setQuesGroup(tmpText.replaceAll("\\[试题分类\\]","")
|
|
|
- .replaceAll("[:|:]","").trim());
|
|
|
+ importPaperCheck.setQuesGroup(tmpText.replaceAll("\\[试题分类\\]", "").replaceAll("[:|:]", "").trim());
|
|
|
|
|
|
- }else if(tmpText.startsWith("[题型]")){
|
|
|
+ } else if (tmpText.startsWith("[题型]")) {
|
|
|
|
|
|
- importPaperCheck.setQuesType(tmpText.replaceAll("\\[题型\\]","")
|
|
|
- .replaceAll("[:|:]","").trim());
|
|
|
+ importPaperCheck.setQuesType(tmpText.replaceAll("\\[题型\\]", "").replaceAll("[:|:]", "").trim());
|
|
|
|
|
|
- }else if(tmpText.startsWith("[大题名称]")){
|
|
|
+ } else if (tmpText.startsWith("[大题名称]")) {
|
|
|
|
|
|
- importPaperCheck.setQuesName(tmpText.replaceAll("\\[大题名称\\]","")
|
|
|
- .replaceAll("[:|:]","").trim());
|
|
|
+ importPaperCheck.setQuesName(tmpText.replaceAll("\\[大题名称\\]", "").replaceAll("[:|:]", "").trim());
|
|
|
|
|
|
- }else if(tmpText.startsWith("[题目数量]")){
|
|
|
+ } else if (tmpText.startsWith("[题目数量]")) {
|
|
|
|
|
|
- importPaperCheck.setQuesCount(tmpText.replaceAll("\\[题目数量\\]","")
|
|
|
- .replaceAll("[:|:]","").trim());
|
|
|
+ importPaperCheck.setQuesCount(tmpText.replaceAll("\\[题目数量\\]", "").replaceAll("[:|:]", "").trim());
|
|
|
|
|
|
- }else if(tmpText.startsWith("[分数]")){
|
|
|
+ } else if (tmpText.startsWith("[分数]")) {
|
|
|
|
|
|
- importPaperCheck.setQuesScore(tmpText.replaceAll("\\[分数\\]","")
|
|
|
- .replaceAll("[:|:]","").trim());
|
|
|
+ importPaperCheck.setQuesScore(tmpText.replaceAll("\\[分数\\]", "").replaceAll("[:|:]", "").trim());
|
|
|
|
|
|
- }else if(StringUtils.isEmpty(tmpText)){
|
|
|
+ } else if (StringUtils.isEmpty(tmpText)) {
|
|
|
continue;
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
@@ -450,6 +406,7 @@ public class ImportPaperService {
|
|
|
|
|
|
/**
|
|
|
* 处理题干信息
|
|
|
+ *
|
|
|
* @param pList
|
|
|
* @param index
|
|
|
* @param question
|
|
@@ -457,34 +414,30 @@ public class ImportPaperService {
|
|
|
* @param wordMLPackage
|
|
|
* @throws Exception
|
|
|
*/
|
|
|
- public void processQuesBody(List pList,
|
|
|
- int index,
|
|
|
- Question question,
|
|
|
- ImportPaperCheck importPaperCheck,
|
|
|
- WordprocessingMLPackage wordMLPackage)throws Exception{
|
|
|
- //定义题干wordml和html
|
|
|
+ public void processQuesBody(List pList, int index, Question question, ImportPaperCheck importPaperCheck,
|
|
|
+ WordprocessingMLPackage wordMLPackage) throws Exception {
|
|
|
+ // 定义题干wordml和html
|
|
|
String quesBodyWordMl = "";
|
|
|
String quesBodyHtml = "";
|
|
|
int i = 0;
|
|
|
|
|
|
- for(i = index;i < pList.size();i++){
|
|
|
- P pBody = (P)pList.get(i);
|
|
|
+ for (i = index; i < pList.size(); i++) {
|
|
|
+ P pBody = (P) pList.get(i);
|
|
|
String tmpText = DocxProcessUtil.getPText(pBody);
|
|
|
|
|
|
- //判断是否为题干
|
|
|
- if(StringUtils.isEmpty(tmpText)){
|
|
|
+ // 判断是否为题干
|
|
|
+ if (StringUtils.isEmpty(tmpText)) {
|
|
|
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]*")
|
|
|
+ || (!tmpText.matches("^[a-zA-Z]\\.[\\s\\S]*") && !tmpText.startsWith("["))) {
|
|
|
+ // 过滤题干标题
|
|
|
pBody = DocxProcessUtil.formatP(pBody, QuesUnit.QUES_BODY);
|
|
|
|
|
|
String tmpWordMl = DocxProcessUtil.getPWordMl(pBody);
|
|
|
- String tmpHtml = DocxProcessUtil.docx2Html(tmpWordMl,wordMLPackage);
|
|
|
+ String tmpHtml = DocxProcessUtil.docx2Html(tmpWordMl, wordMLPackage);
|
|
|
quesBodyWordMl += DocxProcessUtil.formatPWordMl(tmpWordMl);
|
|
|
quesBodyHtml += tmpHtml;
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
@@ -493,10 +446,9 @@ public class ImportPaperService {
|
|
|
question.setQuesBodyWord(quesBodyWordMl);
|
|
|
}
|
|
|
|
|
|
-
|
|
|
-
|
|
|
/**
|
|
|
* 处理题目选项
|
|
|
+ *
|
|
|
* @param pList
|
|
|
* @param index
|
|
|
* @param subQuesNum
|
|
@@ -506,49 +458,45 @@ public class ImportPaperService {
|
|
|
* @return
|
|
|
* @throws Exception
|
|
|
*/
|
|
|
- public String processQuesOption(List pList,
|
|
|
- int index,
|
|
|
- int subQuesNum,
|
|
|
- Question question,
|
|
|
- ImportPaperCheck importPaperCheck,
|
|
|
- WordprocessingMLPackage wordMLPackage)throws Exception{
|
|
|
-
|
|
|
- //定义试题选项wordml和html
|
|
|
+ public String processQuesOption(List pList, int index, int subQuesNum, Question question,
|
|
|
+ ImportPaperCheck importPaperCheck, WordprocessingMLPackage wordMLPackage) throws Exception {
|
|
|
+
|
|
|
+ // 定义试题选项wordml和html
|
|
|
String quesOptionWordMl = "";
|
|
|
String quesOptionHtml = "";
|
|
|
- //定义选项集合
|
|
|
+ // 定义选项集合
|
|
|
List<QuesOption> quesOptions = new ArrayList<QuesOption>();
|
|
|
- //定义选项数量
|
|
|
+ // 定义选项数量
|
|
|
int optionCount = 0;
|
|
|
|
|
|
int i = 0;
|
|
|
|
|
|
- for(i = index;i < pList.size();i++){
|
|
|
- P pOption = (P)pList.get(i);
|
|
|
+ for (i = index; i < pList.size(); i++) {
|
|
|
+ P pOption = (P) pList.get(i);
|
|
|
String tmpText = DocxProcessUtil.getPText(pOption);
|
|
|
|
|
|
- if(StringUtils.isEmpty(tmpText)){
|
|
|
+ if (StringUtils.isEmpty(tmpText)) {
|
|
|
continue;
|
|
|
- }else if(tmpText.matches("^[a-zA-Z]\\.[\\s\\S]*")){//判断是否为选项
|
|
|
+ } else if (tmpText.matches("^[a-zA-Z]\\.[\\s\\S]*")) {// 判断是否为选项
|
|
|
|
|
|
quesOptionWordMl = DocxProcessUtil.getPWordMl(pOption);
|
|
|
- quesOptionHtml = DocxProcessUtil.docx2Html(quesOptionWordMl,wordMLPackage);
|
|
|
- //创建试题选项
|
|
|
+ quesOptionHtml = DocxProcessUtil.docx2Html(quesOptionWordMl, wordMLPackage);
|
|
|
+ // 创建试题选项
|
|
|
QuesOption quesOption = new QuesOption();
|
|
|
quesOption.setOptionBody(quesOptionHtml);
|
|
|
quesOption.setOptionBodyWord(DocxProcessUtil.formatPWordMl(quesOptionWordMl));
|
|
|
- quesOption.setNumber(tmpText.substring(0,1));
|
|
|
+ quesOption.setNumber(tmpText.substring(0, 1));
|
|
|
quesOptions.add(quesOption);
|
|
|
optionCount++;
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
importPaperCheck.setIndex(i);
|
|
|
- if(optionCount < 2){
|
|
|
- importPaperCheck.setErrorInfo(getQuesNumInfo(importPaperCheck.quesName,
|
|
|
- subQuesNum) +"中选项格式不正确或有缺失,如没有缺失可尝试换行处理\n");
|
|
|
- }else{
|
|
|
+ if (optionCount < 2) {
|
|
|
+ importPaperCheck.setErrorInfo(
|
|
|
+ getQuesNumInfo(importPaperCheck.quesName, subQuesNum) + "中选项格式不正确或有缺失,如没有缺失可尝试换行处理\n");
|
|
|
+ } else {
|
|
|
question.setQuesOptions(quesOptions);
|
|
|
}
|
|
|
return importPaperCheck.errorInfo;
|
|
@@ -556,6 +504,7 @@ public class ImportPaperService {
|
|
|
|
|
|
/**
|
|
|
* 处理小题尾信息
|
|
|
+ *
|
|
|
* @param pList
|
|
|
* @param index
|
|
|
* @param subQuesNum
|
|
@@ -563,60 +512,54 @@ public class ImportPaperService {
|
|
|
* @param paperDetailUnit
|
|
|
* @param importPaperCheck
|
|
|
*/
|
|
|
- public void processQuesTail(List pList,
|
|
|
- int index,
|
|
|
- int subQuesNum,
|
|
|
- Question question,
|
|
|
- PaperDetailUnit paperDetailUnit,
|
|
|
- ImportPaperCheck importPaperCheck,
|
|
|
- WordprocessingMLPackage wordMLPackage,
|
|
|
- boolean isNested)throws Exception{
|
|
|
+ public void processQuesTail(List pList, int index, int subQuesNum, Question question,
|
|
|
+ PaperDetailUnit paperDetailUnit, ImportPaperCheck importPaperCheck, WordprocessingMLPackage wordMLPackage,
|
|
|
+ boolean isNested) throws Exception {
|
|
|
|
|
|
String quesAnwserWordMl = "";
|
|
|
String quesAnwserHtml = "";
|
|
|
String quesScore = "";
|
|
|
- Map<String,String> quesParams = new HashMap<String,String>();
|
|
|
+ Map<String, String> quesParams = new HashMap<String, String>();
|
|
|
int i = 0;
|
|
|
|
|
|
- for(i = index;i < pList.size();i++){
|
|
|
- P pAnswer = (P)pList.get(i);
|
|
|
+ for (i = index; i < pList.size(); i++) {
|
|
|
+ P pAnswer = (P) pList.get(i);
|
|
|
String tmpText = DocxProcessUtil.getPText(pAnswer);
|
|
|
- if(StringUtils.isEmpty(tmpText)){
|
|
|
+ if (StringUtils.isEmpty(tmpText)) {
|
|
|
continue;
|
|
|
- }else if(tmpText.startsWith("[答案]")){
|
|
|
- pAnswer = DocxProcessUtil.formatP(pAnswer,QuesUnit.QUES_ANSWER);
|
|
|
+ } else if (tmpText.startsWith("[答案]")) {
|
|
|
+ pAnswer = DocxProcessUtil.formatP(pAnswer, QuesUnit.QUES_ANSWER);
|
|
|
quesAnwserWordMl = DocxProcessUtil.getPWordMl(pAnswer);
|
|
|
- quesAnwserHtml = DocxProcessUtil.docx2Html(quesAnwserWordMl,wordMLPackage);
|
|
|
+ quesAnwserHtml = DocxProcessUtil.docx2Html(quesAnwserWordMl, wordMLPackage);
|
|
|
|
|
|
- }else if(tmpText.startsWith("[小题分数]")){
|
|
|
- quesScore = tmpText.replaceAll("\\[小题分数\\]","").replaceAll("[:|:]","").trim();
|
|
|
- }else{
|
|
|
+ } else if (tmpText.startsWith("[小题分数]")) {
|
|
|
+ quesScore = tmpText.replaceAll("\\[小题分数\\]", "").replaceAll("[:|:]", "").trim();
|
|
|
+ } else {
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
importPaperCheck.setIndex(i);
|
|
|
- //校验答案
|
|
|
- if(!StringUtils.isEmpty(quesAnwserHtml)){
|
|
|
+ // 校验答案
|
|
|
+ if (!StringUtils.isEmpty(quesAnwserHtml)) {
|
|
|
question.setQuesAnswer(quesAnwserHtml);
|
|
|
- question.setQuesAnswerWord(
|
|
|
- DocxProcessUtil.formatPWordMl(quesAnwserWordMl));
|
|
|
- }else{
|
|
|
- importPaperCheck.setErrorInfo(getQuesNumInfo(importPaperCheck.quesName,
|
|
|
- subQuesNum) +"答案为空或格式不正确\n");
|
|
|
+ question.setQuesAnswerWord(DocxProcessUtil.formatPWordMl(quesAnwserWordMl));
|
|
|
+ } else {
|
|
|
+ importPaperCheck.setErrorInfo(getQuesNumInfo(importPaperCheck.quesName, subQuesNum) + "答案为空或格式不正确\n");
|
|
|
}
|
|
|
|
|
|
- //设置小题分数
|
|
|
- quesParams.put("小题分数",quesScore);
|
|
|
+ // 设置小题分数
|
|
|
+ quesParams.put("小题分数", quesScore);
|
|
|
question.setQuesParams(quesParams);
|
|
|
|
|
|
- //一般大题明细需要设置分数
|
|
|
- if(!isNested && !StringUtils.isEmpty(quesScore)){
|
|
|
+ // 一般大题明细需要设置分数
|
|
|
+ if (!isNested && !StringUtils.isEmpty(quesScore)) {
|
|
|
paperDetailUnit.setScore(Double.parseDouble(quesScore));
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 处理套题
|
|
|
+ *
|
|
|
* @param pList
|
|
|
* @param index
|
|
|
* @param question
|
|
@@ -624,198 +567,173 @@ public class ImportPaperService {
|
|
|
* @param importPaperCheck
|
|
|
* @throws Exception
|
|
|
*/
|
|
|
- public void processNestedQues(List pList,
|
|
|
- int index,
|
|
|
- Question question,
|
|
|
- PaperDetailUnit paperDetailUnit,
|
|
|
- ImportPaperCheck importPaperCheck,
|
|
|
- WordprocessingMLPackage wordMLPackage)throws Exception{
|
|
|
- //题型
|
|
|
+ public void processNestedQues(List pList, int index, Question question, PaperDetailUnit paperDetailUnit,
|
|
|
+ ImportPaperCheck importPaperCheck, WordprocessingMLPackage wordMLPackage) throws Exception {
|
|
|
+ // 题型
|
|
|
String nestedQuesType = "";
|
|
|
|
|
|
- //设置套题题干
|
|
|
- processQuesBody(pList,index,question,importPaperCheck,wordMLPackage);
|
|
|
+ // 设置套题题干
|
|
|
+ processQuesBody(pList, index, question, importPaperCheck, wordMLPackage);
|
|
|
|
|
|
- //创建小题集合
|
|
|
+ // 创建小题集合
|
|
|
List<Question> subQuesList = new ArrayList<Question>();
|
|
|
|
|
|
int beginNum = importPaperCheck.index;
|
|
|
|
|
|
int subQuesNum = 0;
|
|
|
- for(int i = beginNum;i < pList.size();i++){
|
|
|
- P pSubQues = (P)pList.get(i);
|
|
|
+ for (int i = beginNum; i < pList.size(); i++) {
|
|
|
+ P pSubQues = (P) pList.get(i);
|
|
|
String tmpText = DocxProcessUtil.getPText(pSubQues);
|
|
|
|
|
|
- if(StringUtils.isEmpty(tmpText)){
|
|
|
+ if (StringUtils.isEmpty(tmpText)) {
|
|
|
continue;
|
|
|
- }if(tmpText.startsWith("[小题型]")){
|
|
|
+ }
|
|
|
+ if (tmpText.startsWith("[小题型]")) {
|
|
|
|
|
|
- nestedQuesType = tmpText.replaceAll("\\[小题型\\]","").replaceAll("[:|:]","").trim();
|
|
|
+ nestedQuesType = tmpText.replaceAll("\\[小题型\\]", "").replaceAll("[:|:]", "").trim();
|
|
|
importPaperCheck.index++;
|
|
|
|
|
|
- }else if(tmpText.matches("^\\d\\.[\\s\\S]*")){
|
|
|
+ } else if (tmpText.matches("^\\d\\.[\\s\\S]*")) {
|
|
|
|
|
|
++subQuesNum;
|
|
|
|
|
|
- if(StringUtils.isEmpty(nestedQuesType)){
|
|
|
- importPaperCheck.setErrorInfo(getQuesNumInfo(importPaperCheck.quesName
|
|
|
- ,subQuesNum)+ "小题型为空或格式不正确\n");
|
|
|
+ if (StringUtils.isEmpty(nestedQuesType)) {
|
|
|
+ importPaperCheck
|
|
|
+ .setErrorInfo(getQuesNumInfo(importPaperCheck.quesName, subQuesNum) + "小题型为空或格式不正确\n");
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
Question subQues = new Question();
|
|
|
|
|
|
- //处理客观题
|
|
|
- if(nestedQuesType.equals("单选") || nestedQuesType.equals("多选")){
|
|
|
-
|
|
|
- //处理题干
|
|
|
- processQuesBody(pList,
|
|
|
- importPaperCheck.index,
|
|
|
- subQues,
|
|
|
- importPaperCheck,
|
|
|
- wordMLPackage
|
|
|
- );
|
|
|
-
|
|
|
- //处理选项
|
|
|
- processQuesOption(pList,
|
|
|
- importPaperCheck.index,
|
|
|
- subQuesNum,
|
|
|
- subQues,
|
|
|
- importPaperCheck,
|
|
|
- wordMLPackage);
|
|
|
-
|
|
|
- //处理尾信息
|
|
|
- processQuesTail(pList,
|
|
|
- importPaperCheck.index,
|
|
|
- subQuesNum,
|
|
|
- subQues,
|
|
|
- paperDetailUnit,
|
|
|
- importPaperCheck,
|
|
|
- wordMLPackage,
|
|
|
- true);
|
|
|
-
|
|
|
- }else{
|
|
|
- //处理其他题型
|
|
|
- processQuesBody(pList,
|
|
|
- importPaperCheck.index,
|
|
|
- subQues,
|
|
|
- importPaperCheck,
|
|
|
- wordMLPackage
|
|
|
- );
|
|
|
-
|
|
|
- processQuesTail(pList,
|
|
|
- importPaperCheck.index,
|
|
|
- subQuesNum,
|
|
|
- subQues,
|
|
|
- paperDetailUnit,
|
|
|
- importPaperCheck,
|
|
|
- wordMLPackage,
|
|
|
- true);
|
|
|
+ // 处理客观题
|
|
|
+ if (nestedQuesType.equals("单选") || nestedQuesType.equals("多选")) {
|
|
|
+
|
|
|
+ // 处理题干
|
|
|
+ processQuesBody(pList, importPaperCheck.index, subQues, importPaperCheck, wordMLPackage);
|
|
|
+
|
|
|
+ // 处理选项
|
|
|
+ processQuesOption(pList, importPaperCheck.index, subQuesNum, subQues, importPaperCheck,
|
|
|
+ wordMLPackage);
|
|
|
+
|
|
|
+ // 处理尾信息
|
|
|
+ processQuesTail(pList, importPaperCheck.index, subQuesNum, subQues, paperDetailUnit,
|
|
|
+ importPaperCheck, wordMLPackage, true);
|
|
|
+
|
|
|
+ } else {
|
|
|
+ // 处理其他题型
|
|
|
+ processQuesBody(pList, importPaperCheck.index, subQues, importPaperCheck, wordMLPackage);
|
|
|
+
|
|
|
+ processQuesTail(pList, importPaperCheck.index, subQuesNum, subQues, paperDetailUnit,
|
|
|
+ importPaperCheck, wordMLPackage, true);
|
|
|
}
|
|
|
subQuesList.add(subQues);
|
|
|
i = importPaperCheck.index - 1;
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
break;
|
|
|
}
|
|
|
- if(!StringUtils.isEmpty(importPaperCheck.errorInfo)){
|
|
|
+ if (!StringUtils.isEmpty(importPaperCheck.errorInfo)) {
|
|
|
return;
|
|
|
}
|
|
|
}
|
|
|
question.setSubQuestions(subQuesList);
|
|
|
}
|
|
|
|
|
|
-
|
|
|
/**
|
|
|
* 获取试题类型
|
|
|
+ *
|
|
|
* @param quesType
|
|
|
* @return
|
|
|
*/
|
|
|
- public static QuestionType getQuesType(String quesType){
|
|
|
- return getQuesType(quesType,"");
|
|
|
+ public static QuestionType getQuesType(String quesType) {
|
|
|
+ return getQuesType(quesType, "");
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 获取试题类型
|
|
|
+ *
|
|
|
* @param quesType
|
|
|
* @param quesName
|
|
|
* @return
|
|
|
*/
|
|
|
- public static QuestionType getQuesType(String quesType,String quesName){
|
|
|
- QuesStructType quesStructType = CommonUtils.getEnum(QuesStructType.class,quesType);
|
|
|
- return new QuestionType(quesStructType,quesName);
|
|
|
+ public static QuestionType getQuesType(String quesType, String quesName) {
|
|
|
+ QuesStructType quesStructType = CommonUtils.getEnum(QuesStructType.class, quesType);
|
|
|
+ return new QuestionType(quesStructType, quesName);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 获取试题结构类型
|
|
|
+ *
|
|
|
* @param quesType
|
|
|
* @return
|
|
|
*/
|
|
|
- public static QuesStructType getQuesStructType(String quesType){
|
|
|
- return CommonUtils.getEnum(QuesStructType.class,quesType);
|
|
|
+ public static QuesStructType getQuesStructType(String quesType) {
|
|
|
+ return CommonUtils.getEnum(QuesStructType.class, quesType);
|
|
|
}
|
|
|
|
|
|
-
|
|
|
/**
|
|
|
* 获取当前试题大题小题号
|
|
|
+ *
|
|
|
* @param quesType
|
|
|
* @param subQuesNum
|
|
|
* @return
|
|
|
*/
|
|
|
- public static String getQuesNumInfo(String quesType,int subQuesNum){
|
|
|
- return quesType+"第"+subQuesNum+"小题";
|
|
|
+ public static String getQuesNumInfo(String quesType, int subQuesNum) {
|
|
|
+ return quesType + "第" + subQuesNum + "小题";
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 判断是否为套题
|
|
|
+ *
|
|
|
* @param importPaperCheck
|
|
|
* @return
|
|
|
*/
|
|
|
- public static boolean isNested(ImportPaperCheck importPaperCheck){
|
|
|
- if(importPaperCheck.getQuesType().equals("套题")){
|
|
|
+ public static boolean isNested(ImportPaperCheck importPaperCheck) {
|
|
|
+ if (importPaperCheck.getQuesType().equals("套题")) {
|
|
|
return true;
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
return false;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 获取课程代码
|
|
|
+ *
|
|
|
* @param importPaperCheck
|
|
|
* @return
|
|
|
*/
|
|
|
- public static String getCourseNo(ImportPaperCheck importPaperCheck){
|
|
|
- String [] courseInfo = importPaperCheck.quesGroup.split("_");
|
|
|
- if(courseInfo.length == 2){
|
|
|
+ public static String getCourseNo(ImportPaperCheck importPaperCheck) {
|
|
|
+ String[] courseInfo = importPaperCheck.quesGroup.split("_");
|
|
|
+ if (courseInfo.length == 2) {
|
|
|
return courseInfo[1];
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
return "";
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 获取课程名称
|
|
|
+ *
|
|
|
* @param importPaperCheck
|
|
|
* @return
|
|
|
*/
|
|
|
- public static String getCourseName(ImportPaperCheck importPaperCheck){
|
|
|
- String [] courseInfo = importPaperCheck.quesGroup.split("_");
|
|
|
- if(courseInfo.length == 2){
|
|
|
+ public static String getCourseName(ImportPaperCheck importPaperCheck) {
|
|
|
+ String[] courseInfo = importPaperCheck.quesGroup.split("_");
|
|
|
+ if (courseInfo.length == 2) {
|
|
|
return courseInfo[0];
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
return "";
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 设置wordMLPackage对象二进制数据
|
|
|
+ *
|
|
|
* @param question
|
|
|
* @param wordMLPackage
|
|
|
* @throws Exception
|
|
|
*/
|
|
|
- public static void setPkgByte(Question question,
|
|
|
- WordprocessingMLPackage wordMLPackage)throws Exception{
|
|
|
+ public static void setPkgByte(Question question, WordprocessingMLPackage wordMLPackage) throws Exception {
|
|
|
question.setQuesPkg(DocxProcessUtil.getPkgByte(wordMLPackage));
|
|
|
}
|
|
|
|
|
|
-
|
|
|
}
|