浏览代码

update previewPaperForPDF

deason 6 年之前
父节点
当前提交
0cd9c36118

+ 59 - 60
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/export/ExportPaperAbstractService.java

@@ -493,15 +493,13 @@ public abstract class ExportPaperAbstractService {
     }
 
     /**
+     * 处理Word的题干选项
      * 1.设置题号
      * 2.给小题选项进行排序
      * 3.设置选项号
      * 4.替换题干中的##为____
-     *
-     * @param paperDetails
-     * @throws Exception
      */
-    public void setUnitExpNumber(List<PaperDetailExp> paperDetails) throws Exception {
+    public void setQuestionNumberForWord(List<PaperDetailExp> paperDetails) throws Exception {
         for (PaperDetailExp paperDetail : paperDetails) {
             List<PaperDetailUnitExp> paperDetailUnitExpList = paperDetail.getPaperDetailUnits();
             for (PaperDetailUnitExp paperDetailUnit : paperDetailUnitExpList) {
@@ -563,49 +561,6 @@ 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));
-                }
-            }
-        }
-    }
-
     /**
      * 检测同一行可以放多少个选项
      *
@@ -1499,13 +1454,10 @@ public abstract class ExportPaperAbstractService {
         sortPaperDetailUnits(exportPaper.getPaperDetails());
 
         //如果每个小题分数不一样,题干后面添加分数
-        checkAndSetQuestionScore(exportPaper.getPaperDetails());
+        setQuestionScoreForHtml(exportPaper.getPaperDetails());
 
-        // 1.设置题号
-        // 2.给小题选项进行排序
-        // 3.设置选项号
-        // 4.替换题干中的##为____
-        setUnitExpNumber(exportPaper.getPaperDetails());
+        //处理Word的题干选项
+        setQuestionNumberForWord(exportPaper.getPaperDetails());
 
         //设置大题标题
         setExpDtoTitle(exportPaper.getPaperDetails());
@@ -1522,13 +1474,10 @@ public abstract class ExportPaperAbstractService {
         sortPaperDetailUnits(previewPaper.getPaperDetails());
 
         //如果每个小题分数不一致,题干后面添加分数;一致时则不用加
-        checkAndSetQuestionScore(previewPaper.getPaperDetails());
+        setQuestionScoreForHtml(previewPaper.getPaperDetails());
 
-        // 1.设置题号
-        // 2.给小题选项进行排序
-        // 3.设置选项号
-        // 4.替换题干中的##为____
-        setUnitExpNumberHtml(previewPaper.getPaperDetails());
+        //处理Html的题干选项
+        setQuestionNumberForHtml(previewPaper.getPaperDetails());
 
         //设置大题标题
         setExpDtoTitle(previewPaper.getPaperDetails());
@@ -1594,13 +1543,14 @@ public abstract class ExportPaperAbstractService {
      */
     public String appendScoreToQuestionBodyHtml(String quesBodyHtml, double score) {
         quesBodyHtml = quesBodyHtml.replaceAll("<p>", "").replaceAll("</p>", "");
+        quesBodyHtml = quesBodyHtml.replaceAll("<span>", "").replaceAll("</span>", "");
         return "<p>" + quesBodyHtml + "(" + score + "分)</p>";
     }
 
     /**
      * 如果每个小题分数不一致,题干后面添加分数;一致时则不用加
      */
-    public void checkAndSetQuestionScore(List<PaperDetailExp> details) {
+    public void setQuestionScoreForHtml(List<PaperDetailExp> details) {
         for (PaperDetailExp detail : details) {
             if (checkPaperDetailUnitScore(detail) != null) {
                 continue;//分数一致
@@ -1653,4 +1603,53 @@ public abstract class ExportPaperAbstractService {
         return null;
     }
 
+    /**
+     * 处理Html的题干选项
+     * 1.设置题号
+     * 2.给小题选项进行排序
+     * 3.设置选项号
+     * 4.替换题干中的##为____
+     */
+    public void setQuestionNumberForHtml(List<PaperDetailExp> details) {
+        for (PaperDetailExp detail : details) {
+            List<PaperDetailUnitExp> units = detail.getPaperDetailUnits();
+            for (PaperDetailUnitExp unit : units) {
+                Question question = unit.getQuestion();
+                List<QuesOption> options = question.getQuesOptions();
+                if (CollectionUtils.isNotEmpty(options)) {
+                    for (QuesOption option : options) {
+                        option.setOptionBody(CommonUtils.relaceQuestionIdx(option.getOptionBody().replace("###", "____"), 0));
+                        option.setOptionBodyWord(null);
+                    }
+                }
+
+                List<Question> subQuestions = question.getSubQuestions();
+                question.setQuesBodyWord(null);
+
+                if (CollectionUtils.isNotEmpty(subQuestions)) {
+                    for (Question subQues : subQuestions) {
+                        Map<String, String> params = new HashMap<>();
+                        params.put("number", String.valueOf(subQues.getNumber()));
+                        subQues.setQuesParams(params);
+                        subQues.setQuesBodyWord(null);
+                        subQues.setQuesAnswerWord(null);
+                        subQues.setQuesBodyWord(null);
+
+                        List<QuesOption> subOptions = subQues.getQuesOptions();
+                        if (subOptions != null && subOptions.size() > 0) {
+                            for (QuesOption subOption : subOptions) {
+                                subOption.setOptionBodyWord(null);
+                                subOption.setOptionBody(CommonUtils.relaceQuestionIdx(subOption.getOptionBody().replace("###", "____"), 0));
+                            }
+                        }
+                    }
+                } else {
+                    question.setQuesAnswerWord(null);
+                    question.setQuesBody(CommonUtils.relaceQuestionIdx(question.getQuesBody().replace("###", "____"), 0));
+                    question.setQuesAnswer(CommonUtils.relaceQuestionIdx(question.getQuesAnswer().replace("###", "____"), 0));
+                }
+            }
+        }
+    }
+
 }