Browse Source

Merge branch 'dev0410' of https://git.oschina.net/songyue123456/comm-ques-bank.git into dev0410

gaoxing 8 năm trước cách đây
mục cha
commit
66f4af2ef9

+ 19 - 5
cqb-comm-utils/src/main/java/com/qmth/cqb/utils/word/DocxProcessUtil.java

@@ -546,8 +546,12 @@ public final class DocxProcessUtil {
                         Text text = (Text) rChild;
                         String tmpText = text.getValue();
                         if (quesUnit == QuesUnit.QUES_BODY) {
+
                             // 过滤题干标题
                             if (tmpText.matches("^\\d{1,}\\.[\\s\\S]*")) {
+                                if (index == 2) {
+                                    return p;
+                                }
                                 tmpText = tmpText.replaceFirst("\\d{1,}\\.", "");
                                 text.setValue(tmpText);
                             } else {
@@ -558,13 +562,17 @@ public final class DocxProcessUtil {
                                 }
                                 text.setValue(tmpText);
                                 if (index == 2) {
-                                    break;
+                                    return p;
                                 }
                             }
 
                         } else if (quesUnit == QuesUnit.QUES_OPTION) {
+
                             // 过滤选项标题
                             if (tmpText.matches("^[A-Z]\\.[\\s\\S]*")) {
+                                if (index == 2) {
+                                    return p;
+                                }
                                 tmpText = tmpText.replaceFirst("[A-Z]\\.", "");
                                 text.setValue(tmpText);
                             } else {
@@ -575,7 +583,7 @@ public final class DocxProcessUtil {
                                 }
                                 text.setValue(tmpText);
                                 if (index == 2) {
-                                    break;
+                                    return p;
                                 }
                             }
 
@@ -586,7 +594,7 @@ public final class DocxProcessUtil {
                                         .replaceFirst("[:|:]", "");
                                 text.setValue(tmpText);
                             } else {
-                                break;
+                                return p;
                             }
                         }
                     }
@@ -661,6 +669,9 @@ public final class DocxProcessUtil {
         WordprocessingMLPackage wordMLPackage = (WordprocessingMLPackage) flatOpcXmlImporter.get();
 
         for (WordprocessingMLPackage wp : wordMLPackages) {
+
+            //初始化图片路径
+            initPkgImage(wp);
             // 获取资源文件存储
             PartStore partStore = wp.getSourcePartStore();
             // 获取图片资源定义
@@ -790,7 +801,7 @@ public final class DocxProcessUtil {
      * @throws Exception
      */
     public static String html2Docx(WordprocessingMLPackage wordMLPackage,String html)throws Exception {
-        initPkgImage(wordMLPackage);
+        initTmpPackage(wordMLPackage);
         XHTMLImporterImpl XHTMLImporter = new XHTMLImporterImpl(wordMLPackage);
         String wordMl = "";
         wordMLPackage.getMainDocumentPart().getContent().addAll(
@@ -804,5 +815,8 @@ public final class DocxProcessUtil {
         return wordMl;
     }
 
-
+    public static void main(String[] args) {
+        String str = "1";
+        System.out.println(str.matches("^\\d{1,}\\.[\\s\\S]*"));
+    }
 }

+ 4 - 3
cqb-paper/src/main/java/com/qmth/cqb/paper/service/ExportPaperService.java

@@ -168,6 +168,7 @@ public class ExportPaperService {
                     int index = 0;
                     for(QuesOption quesOption:optionList){
                         quesOption.setOptionBodyWord(setOptionNum(quesOption.getOptionBodyWord(),getOptionNum(index)));
+                        index++;
                     }
                 }
                 List<Question> subQuesList = paperDetailUnit.getQuestion().getSubQuestions();
@@ -177,10 +178,10 @@ public class ExportPaperService {
                         subQues.setQuesBodyWord(setSubQuesNum(subQues.getQuesBodyWord(),++subNum));
                         List<QuesOption> subOptionList = subQues.getQuesOptions();
                         if(subOptionList != null && subOptionList.size() > 0){
-                            int index = 0;
+                            int sub_index = 0;
                             for(QuesOption quesOption:subOptionList){
-                                quesOption.setOptionBodyWord(setOptionNum(quesOption.getOptionBodyWord(),getOptionNum(index)));
-                                index++;
+                                quesOption.setOptionBodyWord(setOptionNum(quesOption.getOptionBodyWord(),getOptionNum(sub_index)));
+                                sub_index++;
                             }
                         }
                     }

+ 1 - 3
cqb-question-resource/src/main/java/com/qmth/cqb/question/service/QuesService.java

@@ -285,17 +285,15 @@ public class QuesService {
         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);
             }
         }
+        DocxProcessUtil.initPkgImage(wordMLPackage);
         question.setQuesPkg(DocxProcessUtil.getPkgByte(wordMLPackage));
     }