|
@@ -354,6 +354,8 @@ public abstract class ExportPaperAbstractService {
|
|
|
* @throws Exception
|
|
|
*/
|
|
|
public abstract void downloadPaperAnswer(String paperId,String zipFileName)throws Exception;
|
|
|
+
|
|
|
+ public abstract PaperExp previewPDF(String paperId);
|
|
|
/**
|
|
|
* 上传试卷相关文件
|
|
|
* @param extractConfig
|
|
@@ -377,6 +379,19 @@ public abstract class ExportPaperAbstractService {
|
|
|
return paperExp;
|
|
|
}
|
|
|
|
|
|
+ public PaperExp previewPDF2(String paperId){
|
|
|
+ PaperExp paperExp = initPaperExpService.initPaperExp(paperId);
|
|
|
+ //给新的大题下所有小题排序
|
|
|
+ sortPaperDetailUnitExps(paperExp.getPaperDetails());
|
|
|
+ //如果每个小题分数不一样,题干后面添加分数
|
|
|
+ appendScoreToQuestionBodyHtml(paperExp.getPaperDetails());
|
|
|
+ //1.设置题号 2.给小题选项进行排序 3.设置选项号 4.替换题干中的##为____
|
|
|
+ setUnitExpNumberHtml(paperExp.getPaperDetails());
|
|
|
+ //设置大题标题
|
|
|
+ setExpDtoTitle(paperExp.getPaperDetails());
|
|
|
+ return paperExp;
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 设置选项号
|
|
|
* @param optionWordMl
|
|
@@ -601,6 +616,49 @@ public abstract class ExportPaperAbstractService {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ public void setUnitExpNumberHtml(List<PaperDetailExp> paperDetails) {
|
|
|
+ for (PaperDetailExp paperDetail : paperDetails) {
|
|
|
+ List<PaperDetailUnitExp> paperDetailUnitExpList = paperDetail.getPaperDetailUnits();
|
|
|
+ for (PaperDetailUnitExp paperDetailUnit:paperDetailUnitExpList) {
|
|
|
+ List<QuesOption> optionList = paperDetailUnit.getQuestion().getQuesOptions();
|
|
|
+ if (optionList != null && optionList.size() > 0) {
|
|
|
+ for (QuesOption quesOption : optionList) {
|
|
|
+ quesOption.setOptionBodyWord(null);
|
|
|
+ quesOption.setOptionBody(CommonUtils.relaceQuestionIdx(quesOption.getOptionBody().replace("###", "____"),0));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ List<Question> subQuesList = paperDetailUnit.getQuestion().getSubQuestions();
|
|
|
+ Question question = paperDetailUnit.getQuestion();
|
|
|
+ if (subQuesList != null && subQuesList.size() > 0) {
|
|
|
+ //套题主题干
|
|
|
+ question.setQuesBodyWord(null);
|
|
|
+ for (Question subQues : subQuesList) {
|
|
|
+ Map<String, String> params = new HashMap<String, String>();
|
|
|
+ params.put("number", String.valueOf(subQues.getNumber()));
|
|
|
+ subQues.setQuesParams(params);
|
|
|
+ //处理子题题干,答案
|
|
|
+ subQues.setQuesBodyWord(null);
|
|
|
+ subQues.setQuesAnswerWord(null);
|
|
|
+ subQues.setQuesBodyWord(null);
|
|
|
+ List<QuesOption> subOptionList = subQues.getQuesOptions();
|
|
|
+ if (subOptionList != null && subOptionList.size() > 0) {
|
|
|
+ for (QuesOption quesOption : subOptionList) {
|
|
|
+ quesOption.setOptionBodyWord(null);
|
|
|
+ quesOption.setOptionBody(CommonUtils.relaceQuestionIdx(quesOption.getOptionBody().replace("###", "____"),0));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ //处理非套题题干、答案
|
|
|
+ question.setQuesBodyWord(null);
|
|
|
+ question.setQuesAnswerWord(null);
|
|
|
+ question.setQuesBody(CommonUtils.relaceQuestionIdx(question.getQuesBody().replace("###", "____"),0));
|
|
|
+ question.setQuesAnswer(CommonUtils.relaceQuestionIdx(question.getQuesAnswer().replace("###", "____"),0));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 检测同一行可以放多少个选项
|
|
|
* @param optionList
|
|
@@ -856,6 +914,13 @@ public abstract class ExportPaperAbstractService {
|
|
|
return pWordMl.toString();
|
|
|
}
|
|
|
|
|
|
+ public String appendScoreToQuestionBodyHtml(String quesBodyHtml,double score){
|
|
|
+ String html = quesBodyHtml.replaceAll("<p>", "").replaceAll("</p>", "");
|
|
|
+ html = "<P>" + html + "(" + score + ")分</p>";
|
|
|
+ return html;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
//去掉分数后面的小数点
|
|
|
protected String deletePoint(String str) {
|
|
|
if(str.indexOf(".0")>-1){
|
|
@@ -892,6 +957,29 @@ public abstract class ExportPaperAbstractService {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ public void appendScoreToQuestionBodyHtml(List<PaperDetailExp> details){
|
|
|
+ for(PaperDetailExp paperDetailExp:details){
|
|
|
+ if(checkPaperDetailUnitScore(paperDetailExp)==null){
|
|
|
+ for(PaperDetailUnitExp paperDetailUnit:paperDetailExp.getPaperDetailUnits()){
|
|
|
+ //判断小题是否为套题
|
|
|
+ if(paperDetailUnit.getQuestionType() == QuesStructType.NESTED_ANSWER_QUESTION){
|
|
|
+ List<Question> subQuestions = paperDetailUnit.getQuestion().getSubQuestions();
|
|
|
+ for(int i = 0;i < subQuestions.size();i++){
|
|
|
+ Question subQuestion = subQuestions.get(i);
|
|
|
+ double subScore = paperDetailUnit.getSubScoreList().get(i);
|
|
|
+ String questionBodyHtml = appendScoreToQuestionBodyHtml(subQuestion.getQuesBody(),subScore);
|
|
|
+ subQuestion.setQuesBody(questionBodyHtml);
|
|
|
+ }
|
|
|
+ }else {
|
|
|
+ Question question = paperDetailUnit.getQuestion();
|
|
|
+ String questionBodyHtml = appendScoreToQuestionBodyHtml(question.getQuesBody(),paperDetailUnit.getScore());
|
|
|
+ question.setQuesBody(questionBodyHtml);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 小题排序
|
|
|
* @describle 大题排序完成之后,放在一个集合里面。然后对相同类型的大题分组,生成不同的集合,在对小题进行
|
|
@@ -1497,7 +1585,8 @@ public abstract class ExportPaperAbstractService {
|
|
|
* @param paperId
|
|
|
* @return
|
|
|
*/
|
|
|
- private String findPaperType(ExtractConfig extractConfig,String paperId){
|
|
|
+ @SuppressWarnings("unused")
|
|
|
+ private String findPaperType(ExtractConfig extractConfig,String paperId){
|
|
|
String paperType = "";
|
|
|
Map<String,String> paperIdMap = extractConfig.getFinishedPaperIdMap();
|
|
|
Set<Entry<String,String>> entry = paperIdMap.entrySet();
|