|
@@ -5,7 +5,11 @@ import java.util.HashMap;
|
|
import java.util.List;
|
|
import java.util.List;
|
|
import java.util.Set;
|
|
import java.util.Set;
|
|
|
|
|
|
|
|
+import com.qmth.cqb.utils.word.DocxProcessUtil;
|
|
|
|
+import com.sun.javadoc.Doc;
|
|
|
|
+import org.apache.commons.lang3.StringEscapeUtils;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
|
+import org.docx4j.openpackaging.packages.WordprocessingMLPackage;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.data.domain.Example;
|
|
import org.springframework.data.domain.Example;
|
|
import org.springframework.data.domain.Page;
|
|
import org.springframework.data.domain.Page;
|
|
@@ -115,13 +119,49 @@ public class QuesService {
|
|
question.setCreateTime(now);
|
|
question.setCreateTime(now);
|
|
question.setUpdateTime(now);
|
|
question.setUpdateTime(now);
|
|
updateSubId(question);
|
|
updateSubId(question);
|
|
|
|
+ updateQuesWord(question);
|
|
return quesRepo.save(question);
|
|
return quesRepo.save(question);
|
|
} else {
|
|
} else {
|
|
updateMainInfo(saveQues, question);
|
|
updateMainInfo(saveQues, question);
|
|
|
|
+ updateQuesWord(saveQues);
|
|
return quesRepo.save(saveQues);
|
|
return quesRepo.save(saveQues);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 保存导入试题
|
|
|
|
+ * @param question
|
|
|
|
+ * @return
|
|
|
|
+ */
|
|
|
|
+ public Question saveImportQues(Question question){
|
|
|
|
+ String now = CommonUtils.getCurDateTime();
|
|
|
|
+ Question saveQues = null;
|
|
|
|
+ if (StringUtils.isNotEmpty(question.getId())) {
|
|
|
|
+ saveQues = quesRepo.findOne(question.getId());
|
|
|
|
+ }
|
|
|
|
+ if (saveQues == null) {
|
|
|
|
+ question.setCreateTime(now);
|
|
|
|
+ question.setUpdateTime(now);
|
|
|
|
+ updateSubId(question);
|
|
|
|
+ return quesRepo.save(question);
|
|
|
|
+ } else {
|
|
|
|
+ updateMainInfo(saveQues, question);
|
|
|
|
+ return quesRepo.save(saveQues);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 批量保存导入试题
|
|
|
|
+ * @param list
|
|
|
|
+ */
|
|
|
|
+ public void saveImportQuesList(List<Question> list) {
|
|
|
|
+ if (list != null) {
|
|
|
|
+ for (Question question : list) {
|
|
|
|
+ saveImportQues(question);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* 批量保存试题
|
|
* 批量保存试题
|
|
*
|
|
*
|
|
@@ -210,4 +250,43 @@ public class QuesService {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 保存后更新word
|
|
|
|
+ * @param question
|
|
|
|
+ */
|
|
|
|
+ public void updateQuesWord(Question question){
|
|
|
|
+ WordprocessingMLPackage wordMLPackage = null;
|
|
|
|
+ try {
|
|
|
|
+ wordMLPackage = WordprocessingMLPackage.createPackage();
|
|
|
|
+ updateQuesWordUnit(wordMLPackage,question);
|
|
|
|
+ List<Question> subQuesList = question.getSubQuestions();
|
|
|
|
+ if (subQuesList != null && subQuesList.size() > 0) {
|
|
|
|
+ for(Question subQues:subQuesList){
|
|
|
|
+ updateQuesWordUnit(wordMLPackage,subQues);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ question.setQuesPkg(DocxProcessUtil.getPkgByte(wordMLPackage));
|
|
|
|
+ }catch (Exception e){
|
|
|
|
+ e.printStackTrace();
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public void updateQuesWordUnit(WordprocessingMLPackage wordMLPackage,
|
|
|
|
+ Question question)throws Exception{
|
|
|
|
+ String quesBody = StringEscapeUtils.unescapeHtml4(question.getQuesBody());
|
|
|
|
+ String quesAnswer = StringEscapeUtils.unescapeHtml4(question.getQuesAnswer());
|
|
|
|
+ question.setQuesBodyWord(DocxProcessUtil.html2Docx(wordMLPackage,quesBody));
|
|
|
|
+ DocxProcessUtil.initTmpPackage(wordMLPackage);
|
|
|
|
+ question.setQuesAnswerWord(DocxProcessUtil.html2Docx(wordMLPackage,quesAnswer));
|
|
|
|
+ DocxProcessUtil.initTmpPackage(wordMLPackage);
|
|
|
|
+ List<QuesOption> quesOptions = question.getQuesOptions();
|
|
|
|
+ if(quesOptions != null && quesOptions.size() > 0){
|
|
|
|
+ for(QuesOption quesOption:quesOptions){
|
|
|
|
+ quesOption.setOptionBodyWord(DocxProcessUtil.html2Docx(wordMLPackage,
|
|
|
|
+ StringEscapeUtils.unescapeHtml4(quesOption.getOptionBody())));
|
|
|
|
+ DocxProcessUtil.initTmpPackage(wordMLPackage);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
}
|
|
}
|