فهرست منبع

优化保存调卷规则 代码

chenken 8 سال پیش
والد
کامیت
7079b32153

+ 29 - 1
cqb-comm-utils/src/main/java/com/qmth/cqb/utils/CommonUtils.java

@@ -159,14 +159,42 @@ public final class CommonUtils {
         return list;
     }
 
+    /**
+     * 将整数转化成字母
+     * @param number
+     * @return
+     */
     public static String getOptionNum(int number){
         char optionNum = (char)(65 + number);
         return String.valueOf(optionNum);
     }
+    
+    /**
+     * 字母转换成数字
+     * @param character
+     * @return
+     */
+    public static String characterToNumber(String input){
+    	String reg = "[a-zA-Z]";  
+        StringBuffer strBuf = new StringBuffer();  
+        input = input.toLowerCase();  
+        if (null != input && !"".equals(input)) {  
+            for (char c : input.toCharArray()) {  
+                if (String.valueOf(c).matches(reg)) {  
+                    strBuf.append(c - 96);  
+                } else {  
+                    strBuf.append(c);  
+                }  
+            }  
+            return strBuf.toString();  
+        } else {  
+            return input;  
+        } 
+    }
 
     public static void main(String[] args) {
         // QuesStructType quesStructType = getEnum(QuesStructType.class,"单选");
         // System.out.println(quesStructType.getName());
-        System.out.println(getCurNum());
+        System.out.println(characterToNumber("E"));
     }
 }

+ 1580 - 0
cqb-comm-utils/src/main/resources/sydx_answer_template.ftl

@@ -0,0 +1,1580 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<?mso-application progid="Word.Document"?>
+<pkg:package xmlns:pkg="http://schemas.microsoft.com/office/2006/xmlPackage">
+    <pkg:part pkg:name="/_rels/.rels" pkg:contentType="application/vnd.openxmlformats-package.relationships+xml" pkg:padding="512">
+        <pkg:xmlData>
+            <Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">
+                <Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument" Target="word/document.xml"/>
+                <Relationship Id="rId2" Type="http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties" Target="docProps/core.xml"/>
+                <Relationship Id="rId3" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties" Target="docProps/app.xml"/>
+            </Relationships>
+        </pkg:xmlData>
+    </pkg:part>
+    <pkg:part pkg:name="/word/_rels/document.xml.rels" pkg:contentType="application/vnd.openxmlformats-package.relationships+xml" pkg:padding="256">
+        <pkg:xmlData>
+            <Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">
+                <Relationship Id="rId3" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/settings" Target="settings.xml"/>
+                <Relationship Id="rId4" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/webSettings" Target="webSettings.xml"/>
+                <Relationship Id="rId5" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/footnotes" Target="footnotes.xml"/>
+                <Relationship Id="rId6" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/endnotes" Target="endnotes.xml"/>
+                <Relationship Id="rId7" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/header" Target="header1.xml"/>
+                <Relationship Id="rId8" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/footer" Target="footer1.xml"/>
+                <Relationship Id="rId9" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/fontTable" Target="fontTable.xml"/>
+                <Relationship Id="rId10" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme" Target="theme/theme1.xml"/>
+                <Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles" Target="styles.xml"/>
+                <Relationship Id="rId2" Type="http://schemas.microsoft.com/office/2007/relationships/stylesWithEffects" Target="stylesWithEffects.xml"/>
+            </Relationships>
+        </pkg:xmlData>
+    </pkg:part>
+    <pkg:part pkg:name="/word/document.xml" pkg:contentType="application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml">
+        <pkg:xmlData>
+            <w:document mc:Ignorable="w14 wp14" xmlns:wpc="http://schemas.microsoft.com/office/word/2010/wordprocessingCanvas" xmlns:mo="http://schemas.microsoft.com/office/mac/office/2008/main" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:mv="urn:schemas-microsoft-com:mac:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:m="http://schemas.openxmlformats.org/officeDocument/2006/math" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:wp14="http://schemas.microsoft.com/office/word/2010/wordprocessingDrawing" xmlns:wp="http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing" xmlns:w10="urn:schemas-microsoft-com:office:word" xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" xmlns:w14="http://schemas.microsoft.com/office/word/2010/wordml" xmlns:wpg="http://schemas.microsoft.com/office/word/2010/wordprocessingGroup" xmlns:wpi="http://schemas.microsoft.com/office/word/2010/wordprocessingInk" xmlns:wne="http://schemas.microsoft.com/office/word/2006/wordml" xmlns:wps="http://schemas.microsoft.com/office/word/2010/wordprocessingShape">
+                <w:body>
+                    <w:p w14:paraId="3A033879" w14:textId="6D153FE6" w:rsidR="00097880" w:rsidRPr="00974876" w:rsidRDefault="00F24E78" w:rsidP="00974876">
+                        <w:pPr>
+                            <w:spacing w:beforeLines="50" w:before="217"/>
+                            <w:jc w:val="center"/>
+                            <w:rPr>
+                                <w:rFonts w:ascii="黑体" w:eastAsia="黑体" w:hAnsi="黑体" w:hint="eastAsia"/>
+                                <w:b/>
+                                <w:sz w:val="52"/>
+                                <w:szCs w:val="44"/>
+                            </w:rPr>
+                        </w:pPr>
+                        <w:r w:rsidRPr="00974876">
+                            <w:rPr>
+                                <w:rFonts w:ascii="黑体" w:eastAsia="黑体" w:hAnsi="黑体" w:hint="eastAsia"/>
+                                <w:b/>
+                                <w:sz w:val="52"/>
+                                <w:szCs w:val="44"/>
+                            </w:rPr>
+                            <w:t>${title}</w:t>
+                        </w:r>
+                    </w:p>
+                    <w:p w14:paraId="59CB5E42" w14:textId="367D1B47" w:rsidR="00974876" w:rsidRPr="00974876" w:rsidRDefault="00974876" w:rsidP="00974876">
+                        <w:pPr>
+                            <w:spacing w:beforeLines="50" w:before="217"/>
+                            <w:jc w:val="center"/>
+                            <w:rPr>
+                                <w:rFonts w:ascii="黑体" w:eastAsia="黑体" w:hAnsi="黑体" w:hint="eastAsia"/>
+                                <w:b/>
+                                <w:sz w:val="28"/>
+                                <w:szCs w:val="44"/>
+                            </w:rPr>
+                        </w:pPr>
+                        <w:r w:rsidRPr="00974876">
+                            <w:rPr>
+                                <w:rFonts w:ascii="黑体" w:eastAsia="黑体" w:hAnsi="黑体" w:hint="eastAsia"/>
+                                <w:b/>
+                                <w:sz w:val="28"/>
+                                <w:szCs w:val="44"/>
+                            </w:rPr>
+                            <w:t>${subTitle}</w:t>
+                        </w:r>
+                    </w:p>
+                    <w:p w14:paraId="012E5706" w14:textId="2384D476" w:rsidR="005E6C64" w:rsidRPr="00974876" w:rsidRDefault="00974876" w:rsidP="00974876">
+                        <w:pPr>
+                            <w:spacing w:beforeLines="50" w:before="217" w:afterLines="50" w:after="217"/>
+                            <w:jc w:val="center"/>
+                            <w:rPr>
+                                <w:rFonts w:ascii="黑体" w:eastAsia="黑体" w:hAnsi="黑体" w:hint="eastAsia"/>
+                                <w:bCs/>
+                                <w:sz w:val="28"/>
+                                <w:szCs w:val="28"/>
+                            </w:rPr>
+                        </w:pPr>
+                        <w:r w:rsidRPr="00974876">
+                            <w:rPr>
+                                <w:rFonts w:ascii="黑体" w:eastAsia="黑体" w:hAnsi="黑体" w:hint="eastAsia"/>
+                                <w:bCs/>
+                                <w:sz w:val="28"/>
+                                <w:szCs w:val="28"/>
+                            </w:rPr>
+                            <w:t>《</w:t>
+                        </w:r>
+                        <w:r w:rsidR="00F24E78" w:rsidRPr="00974876">
+                            <w:rPr>
+                                <w:rFonts w:ascii="黑体" w:eastAsia="黑体" w:hAnsi="黑体" w:hint="eastAsia"/>
+                                <w:bCs/>
+                                <w:sz w:val="28"/>
+                                <w:szCs w:val="28"/>
+                            </w:rPr>
+                            <w:t>${courseName}</w:t>
+                        </w:r>
+                        <w:r w:rsidRPr="00974876">
+                            <w:rPr>
+                                <w:rFonts w:ascii="黑体" w:eastAsia="黑体" w:hAnsi="黑体" w:hint="eastAsia"/>
+                                <w:bCs/>
+                                <w:sz w:val="28"/>
+                                <w:szCs w:val="28"/>
+                            </w:rPr>
+                            <w:t>》</w:t>
+                        </w:r>
+                    </w:p>
+                    <!--循环大题-->
+                    <#if paperDetails?exists>
+                    <#list paperDetails as paperDetail>
+                    <w:p w14:paraId="69CD38D9" w14:textId="04C0CD44" w:rsidR="00097880" w:rsidRDefault="00C62FAC" w:rsidP="00430FE2">
+                        <w:pPr>
+                            <w:adjustRightInd w:val="0"/>
+                            <w:snapToGrid w:val="0"/>
+                            <w:spacing w:beforeLines="30" w:before="130" w:line="320" w:lineRule="exact"/>
+                            <w:rPr>
+                                <w:color w:val="000000"/>
+                                <w:szCs w:val="21"/>
+                            </w:rPr>
+                        </w:pPr>
+                        <w:r>
+                            <w:rPr>
+                                <w:rFonts w:hint="eastAsia"/>
+                                <w:color w:val="000000"/>
+                                <w:szCs w:val="21"/>
+                            </w:rPr>
+                            <w:t>${paperDetail.cnNum}</w:t>
+                        </w:r>
+                        <w:r w:rsidR="00574041" w:rsidRPr="00574041">
+                            <w:rPr>
+                                <w:rFonts w:hint="eastAsia"/>
+                                <w:color w:val="000000"/>
+                                <w:szCs w:val="21"/>
+                            </w:rPr>
+                            <w:t>.</w:t>
+                        </w:r>
+                        <w:r w:rsidR="00EC5025">
+                            <w:rPr>
+                                <w:rFonts w:hint="eastAsia"/>
+                                <w:color w:val="000000"/>
+                                <w:szCs w:val="21"/>
+                            </w:rPr>
+                            <w:t>${paperDetail.name}</w:t>
+                        </w:r>
+                        <w:r w:rsidR="009804AF">
+                            <w:rPr>
+                                <w:rFonts w:hint="eastAsia"/>
+                                <w:color w:val="000000"/>
+                                <w:szCs w:val="21"/>
+                            </w:rPr>
+                            <w:t>(</w:t>
+                        </w:r>
+                        <w:r w:rsidR="00974876">
+                            <w:rPr>
+                                <w:rFonts w:hint="eastAsia"/>
+                                <w:color w:val="000000"/>
+                                <w:szCs w:val="21"/>
+                            </w:rPr>
+                            <w:t>${paperDetail.title}</w:t>
+                        </w:r>
+                        <w:r w:rsidR="009804AF">
+                            <w:rPr>
+                                <w:rFonts w:hint="eastAsia"/>
+                                <w:color w:val="000000"/>
+                                <w:szCs w:val="21"/>
+                            </w:rPr>
+                            <w:t>)</w:t>
+                        </w:r>
+                    </w:p>
+                    <w:p w14:paraId="58E61D59" w14:textId="77777777" w:rsidR="00A8194A" w:rsidRDefault="00A8194A" w:rsidP="00430FE2">
+                        <w:pPr>
+                            <w:adjustRightInd w:val="0"/>
+                            <w:snapToGrid w:val="0"/>
+                            <w:spacing w:beforeLines="30" w:before="130" w:line="320" w:lineRule="exact"/>
+                            <w:rPr>
+                                <w:color w:val="000000"/>
+                                <w:szCs w:val="21"/>
+                            </w:rPr>
+                        </w:pPr>
+                    </w:p>
+                    <!--循环小题-->
+                    <#if paperDetail.paperDetailUnits?exists>
+	                    <#list paperDetail.paperDetailUnits as paperDetailUnit>
+		                    <#if paperDetailUnit.question.subQuestions?exists>
+			                    <#list paperDetailUnit.question.subQuestions as subQuestion>
+			                        <#if subQuestion.quesAnswerWord??>
+			                            ${subQuestion.quesAnswerWord}
+			                        </#if>
+			                    </#list>
+		                    </#if>
+	                        <#if paperDetailUnit.question.quesAnswerWord??>
+	                            ${paperDetailUnit.question.quesAnswerWord}
+	                        </#if>
+
+                    <w:p w14:paraId="15CFB5D6" w14:textId="77777777" w:rsidR="003D5A89" w:rsidRDefault="003D5A89" w:rsidP="00757E54">
+                        <w:pPr>
+                            <w:adjustRightInd w:val="0"/>
+                            <w:snapToGrid w:val="0"/>
+                            <w:spacing w:line="320" w:lineRule="exact"/>
+                            <w:rPr>
+                                <w:color w:val="000000"/>
+                                <w:szCs w:val="21"/>
+                            </w:rPr>
+                        </w:pPr>
+                    </w:p>
+                    <w:p w14:paraId="5C7F80BF" w14:textId="77777777" w:rsidR="003D5A89" w:rsidRDefault="003D5A89" w:rsidP="00757E54">
+                        <w:pPr>
+                            <w:adjustRightInd w:val="0"/>
+                            <w:snapToGrid w:val="0"/>
+                            <w:spacing w:line="320" w:lineRule="exact"/>
+                            <w:rPr>
+                                <w:color w:val="000000"/>
+                                <w:szCs w:val="21"/>
+                            </w:rPr>
+                        </w:pPr>
+                    </w:p>
+                    </#list>
+                    </#if>
+                    </#list>
+                    </#if>
+                    <w:sectPr w:rsidR="003D5A89" w:rsidSect="00FF43E5">
+                        <w:headerReference w:type="default" r:id="rId7"/>
+                        <w:footerReference w:type="default" r:id="rId8"/>
+                        <w:pgSz w:w="16840" w:h="23820" w:code="9"/>
+                        <w:pgMar w:top="2098" w:right="1814" w:bottom="2098" w:left="1814" w:header="851" w:footer="1814" w:gutter="0"/>
+                        <w:cols w:space="425"/>
+                        <w:docGrid w:type="lines" w:linePitch="435"/>
+                    </w:sectPr>
+                </w:body>
+            </w:document>
+        </pkg:xmlData>
+    </pkg:part>
+    <pkg:part pkg:name="/word/footnotes.xml" pkg:contentType="application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml">
+        <pkg:xmlData>
+            <w:footnotes mc:Ignorable="w14 wp14" xmlns:wpc="http://schemas.microsoft.com/office/word/2010/wordprocessingCanvas" xmlns:mo="http://schemas.microsoft.com/office/mac/office/2008/main" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:mv="urn:schemas-microsoft-com:mac:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:m="http://schemas.openxmlformats.org/officeDocument/2006/math" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:wp14="http://schemas.microsoft.com/office/word/2010/wordprocessingDrawing" xmlns:wp="http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing" xmlns:w10="urn:schemas-microsoft-com:office:word" xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" xmlns:w14="http://schemas.microsoft.com/office/word/2010/wordml" xmlns:wpg="http://schemas.microsoft.com/office/word/2010/wordprocessingGroup" xmlns:wpi="http://schemas.microsoft.com/office/word/2010/wordprocessingInk" xmlns:wne="http://schemas.microsoft.com/office/word/2006/wordml" xmlns:wps="http://schemas.microsoft.com/office/word/2010/wordprocessingShape">
+                <w:footnote w:type="separator" w:id="-1">
+                    <w:p w14:paraId="3933DA74" w14:textId="77777777" w:rsidR="005E6C64" w:rsidRDefault="005E6C64">
+                        <w:r>
+                            <w:separator/>
+                        </w:r>
+                    </w:p>
+                </w:footnote>
+                <w:footnote w:type="continuationSeparator" w:id="0">
+                    <w:p w14:paraId="45E4E26E" w14:textId="77777777" w:rsidR="005E6C64" w:rsidRDefault="005E6C64">
+                        <w:r>
+                            <w:continuationSeparator/>
+                        </w:r>
+                    </w:p>
+                </w:footnote>
+            </w:footnotes>
+        </pkg:xmlData>
+    </pkg:part>
+    <pkg:part pkg:name="/word/endnotes.xml" pkg:contentType="application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml">
+        <pkg:xmlData>
+            <w:endnotes mc:Ignorable="w14 wp14" xmlns:wpc="http://schemas.microsoft.com/office/word/2010/wordprocessingCanvas" xmlns:mo="http://schemas.microsoft.com/office/mac/office/2008/main" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:mv="urn:schemas-microsoft-com:mac:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:m="http://schemas.openxmlformats.org/officeDocument/2006/math" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:wp14="http://schemas.microsoft.com/office/word/2010/wordprocessingDrawing" xmlns:wp="http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing" xmlns:w10="urn:schemas-microsoft-com:office:word" xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" xmlns:w14="http://schemas.microsoft.com/office/word/2010/wordml" xmlns:wpg="http://schemas.microsoft.com/office/word/2010/wordprocessingGroup" xmlns:wpi="http://schemas.microsoft.com/office/word/2010/wordprocessingInk" xmlns:wne="http://schemas.microsoft.com/office/word/2006/wordml" xmlns:wps="http://schemas.microsoft.com/office/word/2010/wordprocessingShape">
+                <w:endnote w:type="separator" w:id="-1">
+                    <w:p w14:paraId="4AB009BF" w14:textId="77777777" w:rsidR="005E6C64" w:rsidRDefault="005E6C64">
+                        <w:r>
+                            <w:separator/>
+                        </w:r>
+                    </w:p>
+                </w:endnote>
+                <w:endnote w:type="continuationSeparator" w:id="0">
+                    <w:p w14:paraId="72409104" w14:textId="77777777" w:rsidR="005E6C64" w:rsidRDefault="005E6C64">
+                        <w:r>
+                            <w:continuationSeparator/>
+                        </w:r>
+                    </w:p>
+                </w:endnote>
+            </w:endnotes>
+        </pkg:xmlData>
+    </pkg:part>
+    <pkg:part pkg:name="/word/header1.xml" pkg:contentType="application/vnd.openxmlformats-officedocument.wordprocessingml.header+xml">
+        <pkg:xmlData>
+            <w:hdr mc:Ignorable="w14 wp14" xmlns:wpc="http://schemas.microsoft.com/office/word/2010/wordprocessingCanvas" xmlns:mo="http://schemas.microsoft.com/office/mac/office/2008/main" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:mv="urn:schemas-microsoft-com:mac:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:m="http://schemas.openxmlformats.org/officeDocument/2006/math" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:wp14="http://schemas.microsoft.com/office/word/2010/wordprocessingDrawing" xmlns:wp="http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing" xmlns:w10="urn:schemas-microsoft-com:office:word" xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" xmlns:w14="http://schemas.microsoft.com/office/word/2010/wordml" xmlns:wpg="http://schemas.microsoft.com/office/word/2010/wordprocessingGroup" xmlns:wpi="http://schemas.microsoft.com/office/word/2010/wordprocessingInk" xmlns:wne="http://schemas.microsoft.com/office/word/2006/wordml" xmlns:wps="http://schemas.microsoft.com/office/word/2010/wordprocessingShape">
+                <w:p w14:paraId="01C235D6" w14:textId="77777777" w:rsidR="005E6C64" w:rsidRDefault="005E6C64" w:rsidP="00097880">
+                    <w:pPr>
+                        <w:pStyle w:val="a3"/>
+                        <w:pBdr>
+                            <w:bottom w:val="none" w:sz="0" w:space="0" w:color="auto"/>
+                        </w:pBdr>
+                    </w:pPr>
+                </w:p>
+            </w:hdr>
+        </pkg:xmlData>
+    </pkg:part>
+    <pkg:part pkg:name="/word/footer1.xml" pkg:contentType="application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml">
+        <pkg:xmlData>
+            <w:ftr mc:Ignorable="w14 wp14" xmlns:wpc="http://schemas.microsoft.com/office/word/2010/wordprocessingCanvas" xmlns:mo="http://schemas.microsoft.com/office/mac/office/2008/main" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:mv="urn:schemas-microsoft-com:mac:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:m="http://schemas.openxmlformats.org/officeDocument/2006/math" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:wp14="http://schemas.microsoft.com/office/word/2010/wordprocessingDrawing" xmlns:wp="http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing" xmlns:w10="urn:schemas-microsoft-com:office:word" xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" xmlns:w14="http://schemas.microsoft.com/office/word/2010/wordml" xmlns:wpg="http://schemas.microsoft.com/office/word/2010/wordprocessingGroup" xmlns:wpi="http://schemas.microsoft.com/office/word/2010/wordprocessingInk" xmlns:wne="http://schemas.microsoft.com/office/word/2006/wordml" xmlns:wps="http://schemas.microsoft.com/office/word/2010/wordprocessingShape">
+                <w:p w14:paraId="6B6A5894" w14:textId="13CDC3DA" w:rsidR="005E6C64" w:rsidRPr="00070B9E" w:rsidRDefault="005E6C64" w:rsidP="00070B9E">
+                    <w:pPr>
+                        <w:pStyle w:val="a4"/>
+                        <w:jc w:val="center"/>
+                    </w:pPr>
+                    <w:r w:rsidRPr="00070B9E">
+                        <w:rPr>
+                            <w:rFonts w:hint="eastAsia"/>
+                            <w:kern w:val="0"/>
+                            <w:sz w:val="21"/>
+                            <w:szCs w:val="21"/>
+                        </w:rPr>
+                        <w:t>试卷第</w:t>
+                    </w:r>
+                    <w:sdt>
+                        <w:sdtPr>
+                            <w:rPr>
+                                <w:rFonts w:eastAsiaTheme="minorEastAsia"/>
+                                <w:sz w:val="21"/>
+                                <w:szCs w:val="21"/>
+                            </w:rPr>
+                            <w:id w:val="-1918230034"/>
+                            <w:docPartObj>
+                                <w:docPartGallery w:val="Page Numbers (Bottom of Page)"/>
+                                <w:docPartUnique/>
+                            </w:docPartObj>
+                        </w:sdtPr>
+                        <w:sdtEndPr/>
+                        <w:sdtContent>
+                            <w:sdt>
+                                <w:sdtPr>
+                                    <w:rPr>
+                                        <w:rFonts w:eastAsiaTheme="minorEastAsia"/>
+                                        <w:sz w:val="21"/>
+                                        <w:szCs w:val="21"/>
+                                    </w:rPr>
+                                    <w:id w:val="98381352"/>
+                                    <w:docPartObj>
+                                        <w:docPartGallery w:val="Page Numbers (Top of Page)"/>
+                                        <w:docPartUnique/>
+                                    </w:docPartObj>
+                                </w:sdtPr>
+                                <w:sdtEndPr/>
+                                <w:sdtContent>
+                                    <w:r w:rsidRPr="007D3C9C">
+                                        <w:rPr>
+                                            <w:rFonts w:eastAsiaTheme="minorEastAsia"/>
+                                            <w:bCs/>
+                                            <w:sz w:val="21"/>
+                                            <w:szCs w:val="21"/>
+                                        </w:rPr>
+                                        <w:fldChar w:fldCharType="begin"/>
+                                    </w:r>
+                                    <w:r w:rsidRPr="007D3C9C">
+                                        <w:rPr>
+                                            <w:rFonts w:eastAsiaTheme="minorEastAsia"/>
+                                            <w:bCs/>
+                                            <w:sz w:val="21"/>
+                                            <w:szCs w:val="21"/>
+                                        </w:rPr>
+                                        <w:instrText>PAGE</w:instrText>
+                                    </w:r>
+                                    <w:r w:rsidRPr="007D3C9C">
+                                        <w:rPr>
+                                            <w:rFonts w:eastAsiaTheme="minorEastAsia"/>
+                                            <w:bCs/>
+                                            <w:sz w:val="21"/>
+                                            <w:szCs w:val="21"/>
+                                        </w:rPr>
+                                        <w:fldChar w:fldCharType="separate"/>
+                                    </w:r>
+                                    <w:r w:rsidR="00FF43E5">
+                                        <w:rPr>
+                                            <w:rFonts w:eastAsiaTheme="minorEastAsia"/>
+                                            <w:bCs/>
+                                            <w:noProof/>
+                                            <w:sz w:val="21"/>
+                                            <w:szCs w:val="21"/>
+                                        </w:rPr>
+                                        <w:t>1</w:t>
+                                    </w:r>
+                                    <w:r w:rsidRPr="007D3C9C">
+                                        <w:rPr>
+                                            <w:rFonts w:eastAsiaTheme="minorEastAsia"/>
+                                            <w:bCs/>
+                                            <w:sz w:val="21"/>
+                                            <w:szCs w:val="21"/>
+                                        </w:rPr>
+                                        <w:fldChar w:fldCharType="end"/>
+                                    </w:r>
+                                    <w:r w:rsidRPr="007D3C9C">
+                                        <w:rPr>
+                                            <w:rFonts w:eastAsiaTheme="minorEastAsia"/>
+                                            <w:kern w:val="0"/>
+                                            <w:sz w:val="21"/>
+                                            <w:szCs w:val="21"/>
+                                        </w:rPr>
+                                        <w:t>页(共</w:t>
+                                    </w:r>
+                                    <w:r w:rsidRPr="007D3C9C">
+                                        <w:rPr>
+                                            <w:rFonts w:eastAsiaTheme="minorEastAsia"/>
+                                            <w:bCs/>
+                                            <w:sz w:val="21"/>
+                                            <w:szCs w:val="21"/>
+                                        </w:rPr>
+                                        <w:fldChar w:fldCharType="begin"/>
+                                    </w:r>
+                                    <w:r w:rsidRPr="007D3C9C">
+                                        <w:rPr>
+                                            <w:rFonts w:eastAsiaTheme="minorEastAsia"/>
+                                            <w:bCs/>
+                                            <w:sz w:val="21"/>
+                                            <w:szCs w:val="21"/>
+                                        </w:rPr>
+                                        <w:instrText>NUMPAGES</w:instrText>
+                                    </w:r>
+                                    <w:r w:rsidRPr="007D3C9C">
+                                        <w:rPr>
+                                            <w:rFonts w:eastAsiaTheme="minorEastAsia"/>
+                                            <w:bCs/>
+                                            <w:sz w:val="21"/>
+                                            <w:szCs w:val="21"/>
+                                        </w:rPr>
+                                        <w:fldChar w:fldCharType="separate"/>
+                                    </w:r>
+                                    <w:r w:rsidR="00FF43E5">
+                                        <w:rPr>
+                                            <w:rFonts w:eastAsiaTheme="minorEastAsia"/>
+                                            <w:bCs/>
+                                            <w:noProof/>
+                                            <w:sz w:val="21"/>
+                                            <w:szCs w:val="21"/>
+                                        </w:rPr>
+                                        <w:t>1</w:t>
+                                    </w:r>
+                                    <w:r w:rsidRPr="007D3C9C">
+                                        <w:rPr>
+                                            <w:rFonts w:eastAsiaTheme="minorEastAsia"/>
+                                            <w:bCs/>
+                                            <w:sz w:val="21"/>
+                                            <w:szCs w:val="21"/>
+                                        </w:rPr>
+                                        <w:fldChar w:fldCharType="end"/>
+                                    </w:r>
+                                    <w:r w:rsidRPr="007D3C9C">
+                                        <w:rPr>
+                                            <w:rFonts w:eastAsiaTheme="minorEastAsia"/>
+                                            <w:kern w:val="0"/>
+                                            <w:sz w:val="21"/>
+                                            <w:szCs w:val="21"/>
+                                        </w:rPr>
+                                        <w:t>页)</w:t>
+                                    </w:r>
+                                </w:sdtContent>
+                            </w:sdt>
+                        </w:sdtContent>
+                    </w:sdt>
+                </w:p>
+            </w:ftr>
+        </pkg:xmlData>
+    </pkg:part>
+    <pkg:part pkg:name="/word/theme/theme1.xml" pkg:contentType="application/vnd.openxmlformats-officedocument.theme+xml">
+        <pkg:xmlData>
+            <a:theme name="Office 主题​​" xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main">
+                <a:themeElements>
+                    <a:clrScheme name="Office">
+                        <a:dk1>
+                            <a:sysClr val="windowText" lastClr="000000"/>
+                        </a:dk1>
+                        <a:lt1>
+                            <a:sysClr val="window" lastClr="FFFFFF"/>
+                        </a:lt1>
+                        <a:dk2>
+                            <a:srgbClr val="1F497D"/>
+                        </a:dk2>
+                        <a:lt2>
+                            <a:srgbClr val="EEECE1"/>
+                        </a:lt2>
+                        <a:accent1>
+                            <a:srgbClr val="4F81BD"/>
+                        </a:accent1>
+                        <a:accent2>
+                            <a:srgbClr val="C0504D"/>
+                        </a:accent2>
+                        <a:accent3>
+                            <a:srgbClr val="9BBB59"/>
+                        </a:accent3>
+                        <a:accent4>
+                            <a:srgbClr val="8064A2"/>
+                        </a:accent4>
+                        <a:accent5>
+                            <a:srgbClr val="4BACC6"/>
+                        </a:accent5>
+                        <a:accent6>
+                            <a:srgbClr val="F79646"/>
+                        </a:accent6>
+                        <a:hlink>
+                            <a:srgbClr val="0000FF"/>
+                        </a:hlink>
+                        <a:folHlink>
+                            <a:srgbClr val="800080"/>
+                        </a:folHlink>
+                    </a:clrScheme>
+                    <a:fontScheme name="Office">
+                        <a:majorFont>
+                            <a:latin typeface="Cambria"/>
+                            <a:ea typeface=""/>
+                            <a:cs typeface=""/>
+                            <a:font script="Jpan" typeface="MS ゴシック"/>
+                            <a:font script="Hang" typeface="맑은 고딕"/>
+                            <a:font script="Hans" typeface="宋体"/>
+                            <a:font script="Hant" typeface="新細明體"/>
+                            <a:font script="Arab" typeface="Times New Roman"/>
+                            <a:font script="Hebr" typeface="Times New Roman"/>
+                            <a:font script="Thai" typeface="Angsana New"/>
+                            <a:font script="Ethi" typeface="Nyala"/>
+                            <a:font script="Beng" typeface="Vrinda"/>
+                            <a:font script="Gujr" typeface="Shruti"/>
+                            <a:font script="Khmr" typeface="MoolBoran"/>
+                            <a:font script="Knda" typeface="Tunga"/>
+                            <a:font script="Guru" typeface="Raavi"/>
+                            <a:font script="Cans" typeface="Euphemia"/>
+                            <a:font script="Cher" typeface="Plantagenet Cherokee"/>
+                            <a:font script="Yiii" typeface="Microsoft Yi Baiti"/>
+                            <a:font script="Tibt" typeface="Microsoft Himalaya"/>
+                            <a:font script="Thaa" typeface="MV Boli"/>
+                            <a:font script="Deva" typeface="Mangal"/>
+                            <a:font script="Telu" typeface="Gautami"/>
+                            <a:font script="Taml" typeface="Latha"/>
+                            <a:font script="Syrc" typeface="Estrangelo Edessa"/>
+                            <a:font script="Orya" typeface="Kalinga"/>
+                            <a:font script="Mlym" typeface="Kartika"/>
+                            <a:font script="Laoo" typeface="DokChampa"/>
+                            <a:font script="Sinh" typeface="Iskoola Pota"/>
+                            <a:font script="Mong" typeface="Mongolian Baiti"/>
+                            <a:font script="Viet" typeface="Times New Roman"/>
+                            <a:font script="Uigh" typeface="Microsoft Uighur"/>
+                            <a:font script="Geor" typeface="Sylfaen"/>
+                        </a:majorFont>
+                        <a:minorFont>
+                            <a:latin typeface="Calibri"/>
+                            <a:ea typeface=""/>
+                            <a:cs typeface=""/>
+                            <a:font script="Jpan" typeface="MS 明朝"/>
+                            <a:font script="Hang" typeface="맑은 고딕"/>
+                            <a:font script="Hans" typeface="宋体"/>
+                            <a:font script="Hant" typeface="新細明體"/>
+                            <a:font script="Arab" typeface="Arial"/>
+                            <a:font script="Hebr" typeface="Arial"/>
+                            <a:font script="Thai" typeface="Cordia New"/>
+                            <a:font script="Ethi" typeface="Nyala"/>
+                            <a:font script="Beng" typeface="Vrinda"/>
+                            <a:font script="Gujr" typeface="Shruti"/>
+                            <a:font script="Khmr" typeface="DaunPenh"/>
+                            <a:font script="Knda" typeface="Tunga"/>
+                            <a:font script="Guru" typeface="Raavi"/>
+                            <a:font script="Cans" typeface="Euphemia"/>
+                            <a:font script="Cher" typeface="Plantagenet Cherokee"/>
+                            <a:font script="Yiii" typeface="Microsoft Yi Baiti"/>
+                            <a:font script="Tibt" typeface="Microsoft Himalaya"/>
+                            <a:font script="Thaa" typeface="MV Boli"/>
+                            <a:font script="Deva" typeface="Mangal"/>
+                            <a:font script="Telu" typeface="Gautami"/>
+                            <a:font script="Taml" typeface="Latha"/>
+                            <a:font script="Syrc" typeface="Estrangelo Edessa"/>
+                            <a:font script="Orya" typeface="Kalinga"/>
+                            <a:font script="Mlym" typeface="Kartika"/>
+                            <a:font script="Laoo" typeface="DokChampa"/>
+                            <a:font script="Sinh" typeface="Iskoola Pota"/>
+                            <a:font script="Mong" typeface="Mongolian Baiti"/>
+                            <a:font script="Viet" typeface="Arial"/>
+                            <a:font script="Uigh" typeface="Microsoft Uighur"/>
+                            <a:font script="Geor" typeface="Sylfaen"/>
+                        </a:minorFont>
+                    </a:fontScheme>
+                    <a:fmtScheme name="Office">
+                        <a:fillStyleLst>
+                            <a:solidFill>
+                                <a:schemeClr val="phClr"/>
+                            </a:solidFill>
+                            <a:gradFill rotWithShape="1">
+                                <a:gsLst>
+                                    <a:gs pos="0">
+                                        <a:schemeClr val="phClr">
+                                            <a:tint val="50000"/>
+                                            <a:satMod val="300000"/>
+                                        </a:schemeClr>
+                                    </a:gs>
+                                    <a:gs pos="35000">
+                                        <a:schemeClr val="phClr">
+                                            <a:tint val="37000"/>
+                                            <a:satMod val="300000"/>
+                                        </a:schemeClr>
+                                    </a:gs>
+                                    <a:gs pos="100000">
+                                        <a:schemeClr val="phClr">
+                                            <a:tint val="15000"/>
+                                            <a:satMod val="350000"/>
+                                        </a:schemeClr>
+                                    </a:gs>
+                                </a:gsLst>
+                                <a:lin ang="16200000" scaled="1"/>
+                            </a:gradFill>
+                            <a:gradFill rotWithShape="1">
+                                <a:gsLst>
+                                    <a:gs pos="0">
+                                        <a:schemeClr val="phClr">
+                                            <a:shade val="51000"/>
+                                            <a:satMod val="130000"/>
+                                        </a:schemeClr>
+                                    </a:gs>
+                                    <a:gs pos="80000">
+                                        <a:schemeClr val="phClr">
+                                            <a:shade val="93000"/>
+                                            <a:satMod val="130000"/>
+                                        </a:schemeClr>
+                                    </a:gs>
+                                    <a:gs pos="100000">
+                                        <a:schemeClr val="phClr">
+                                            <a:shade val="94000"/>
+                                            <a:satMod val="135000"/>
+                                        </a:schemeClr>
+                                    </a:gs>
+                                </a:gsLst>
+                                <a:lin ang="16200000" scaled="0"/>
+                            </a:gradFill>
+                        </a:fillStyleLst>
+                        <a:lnStyleLst>
+                            <a:ln w="9525" cap="flat" cmpd="sng" algn="ctr">
+                                <a:solidFill>
+                                    <a:schemeClr val="phClr">
+                                        <a:shade val="95000"/>
+                                        <a:satMod val="105000"/>
+                                    </a:schemeClr>
+                                </a:solidFill>
+                                <a:prstDash val="solid"/>
+                            </a:ln>
+                            <a:ln w="25400" cap="flat" cmpd="sng" algn="ctr">
+                                <a:solidFill>
+                                    <a:schemeClr val="phClr"/>
+                                </a:solidFill>
+                                <a:prstDash val="solid"/>
+                            </a:ln>
+                            <a:ln w="38100" cap="flat" cmpd="sng" algn="ctr">
+                                <a:solidFill>
+                                    <a:schemeClr val="phClr"/>
+                                </a:solidFill>
+                                <a:prstDash val="solid"/>
+                            </a:ln>
+                        </a:lnStyleLst>
+                        <a:effectStyleLst>
+                            <a:effectStyle>
+                                <a:effectLst>
+                                    <a:outerShdw blurRad="40000" dist="20000" dir="5400000" rotWithShape="0">
+                                        <a:srgbClr val="000000">
+                                            <a:alpha val="38000"/>
+                                        </a:srgbClr>
+                                    </a:outerShdw>
+                                </a:effectLst>
+                            </a:effectStyle>
+                            <a:effectStyle>
+                                <a:effectLst>
+                                    <a:outerShdw blurRad="40000" dist="23000" dir="5400000" rotWithShape="0">
+                                        <a:srgbClr val="000000">
+                                            <a:alpha val="35000"/>
+                                        </a:srgbClr>
+                                    </a:outerShdw>
+                                </a:effectLst>
+                            </a:effectStyle>
+                            <a:effectStyle>
+                                <a:effectLst>
+                                    <a:outerShdw blurRad="40000" dist="23000" dir="5400000" rotWithShape="0">
+                                        <a:srgbClr val="000000">
+                                            <a:alpha val="35000"/>
+                                        </a:srgbClr>
+                                    </a:outerShdw>
+                                </a:effectLst>
+                                <a:scene3d>
+                                    <a:camera prst="orthographicFront">
+                                        <a:rot lat="0" lon="0" rev="0"/>
+                                    </a:camera>
+                                    <a:lightRig rig="threePt" dir="t">
+                                        <a:rot lat="0" lon="0" rev="1200000"/>
+                                    </a:lightRig>
+                                </a:scene3d>
+                                <a:sp3d>
+                                    <a:bevelT w="63500" h="25400"/>
+                                </a:sp3d>
+                            </a:effectStyle>
+                        </a:effectStyleLst>
+                        <a:bgFillStyleLst>
+                            <a:solidFill>
+                                <a:schemeClr val="phClr"/>
+                            </a:solidFill>
+                            <a:gradFill rotWithShape="1">
+                                <a:gsLst>
+                                    <a:gs pos="0">
+                                        <a:schemeClr val="phClr">
+                                            <a:tint val="40000"/>
+                                            <a:satMod val="350000"/>
+                                        </a:schemeClr>
+                                    </a:gs>
+                                    <a:gs pos="40000">
+                                        <a:schemeClr val="phClr">
+                                            <a:tint val="45000"/>
+                                            <a:shade val="99000"/>
+                                            <a:satMod val="350000"/>
+                                        </a:schemeClr>
+                                    </a:gs>
+                                    <a:gs pos="100000">
+                                        <a:schemeClr val="phClr">
+                                            <a:shade val="20000"/>
+                                            <a:satMod val="255000"/>
+                                        </a:schemeClr>
+                                    </a:gs>
+                                </a:gsLst>
+                                <a:path path="circle">
+                                    <a:fillToRect l="50000" t="-80000" r="50000" b="180000"/>
+                                </a:path>
+                            </a:gradFill>
+                            <a:gradFill rotWithShape="1">
+                                <a:gsLst>
+                                    <a:gs pos="0">
+                                        <a:schemeClr val="phClr">
+                                            <a:tint val="80000"/>
+                                            <a:satMod val="300000"/>
+                                        </a:schemeClr>
+                                    </a:gs>
+                                    <a:gs pos="100000">
+                                        <a:schemeClr val="phClr">
+                                            <a:shade val="30000"/>
+                                            <a:satMod val="200000"/>
+                                        </a:schemeClr>
+                                    </a:gs>
+                                </a:gsLst>
+                                <a:path path="circle">
+                                    <a:fillToRect l="50000" t="50000" r="50000" b="50000"/>
+                                </a:path>
+                            </a:gradFill>
+                        </a:bgFillStyleLst>
+                    </a:fmtScheme>
+                </a:themeElements>
+                <a:objectDefaults/>
+                <a:extraClrSchemeLst/>
+            </a:theme>
+        </pkg:xmlData>
+    </pkg:part>
+    <pkg:part pkg:name="/word/settings.xml" pkg:contentType="application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml">
+        <pkg:xmlData>
+            <w:settings mc:Ignorable="w14" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:m="http://schemas.openxmlformats.org/officeDocument/2006/math" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:w10="urn:schemas-microsoft-com:office:word" xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" xmlns:w14="http://schemas.microsoft.com/office/word/2010/wordml" xmlns:sl="http://schemas.openxmlformats.org/schemaLibrary/2006/main">
+                <w:zoom w:percent="150"/>
+                <w:bordersDoNotSurroundHeader/>
+                <w:bordersDoNotSurroundFooter/>
+                <w:proofState w:spelling="clean" w:grammar="clean"/>
+                <w:stylePaneFormatFilter w:val="3F01" w:allStyles="1" w:customStyles="0" w:latentStyles="0" w:stylesInUse="0" w:headingStyles="0" w:numberingStyles="0" w:tableStyles="0" w:directFormattingOnRuns="1" w:directFormattingOnParagraphs="1" w:directFormattingOnNumbering="1" w:directFormattingOnTables="1" w:clearFormatting="1" w:top3HeadingStyles="1" w:visibleStyles="0" w:alternateStyleNames="0"/>
+                <w:defaultTabStop w:val="420"/>
+                <w:drawingGridHorizontalSpacing w:val="105"/>
+                <w:drawingGridVerticalSpacing w:val="435"/>
+                <w:displayHorizontalDrawingGridEvery w:val="0"/>
+                <w:characterSpacingControl w:val="compressPunctuation"/>
+                <w:hdrShapeDefaults>
+                    <o:shapedefaults v:ext="edit" spidmax="2050"/>
+                </w:hdrShapeDefaults>
+                <w:footnotePr>
+                    <w:footnote w:id="-1"/>
+                    <w:footnote w:id="0"/>
+                </w:footnotePr>
+                <w:endnotePr>
+                    <w:endnote w:id="-1"/>
+                    <w:endnote w:id="0"/>
+                </w:endnotePr>
+                <w:compat>
+                    <w:spaceForUL/>
+                    <w:balanceSingleByteDoubleByteWidth/>
+                    <w:doNotLeaveBackslashAlone/>
+                    <w:ulTrailSpace/>
+                    <w:doNotExpandShiftReturn/>
+                    <w:adjustLineHeightInTable/>
+                    <w:useFELayout/>
+                    <w:compatSetting w:name="compatibilityMode" w:uri="http://schemas.microsoft.com/office/word" w:val="14"/>
+                    <w:compatSetting w:name="overrideTableStyleFontSizeAndJustification" w:uri="http://schemas.microsoft.com/office/word" w:val="1"/>
+                    <w:compatSetting w:name="enableOpenTypeFeatures" w:uri="http://schemas.microsoft.com/office/word" w:val="1"/>
+                    <w:compatSetting w:name="doNotFlipMirrorIndents" w:uri="http://schemas.microsoft.com/office/word" w:val="1"/>
+                </w:compat>
+                <w:rsids>
+                    <w:rsidRoot w:val="00097880"/>
+                    <w:rsid w:val="00032C9E"/>
+                    <w:rsid w:val="00040F2F"/>
+                    <w:rsid w:val="0006124A"/>
+                    <w:rsid w:val="00063B9B"/>
+                    <w:rsid w:val="00070B9E"/>
+                    <w:rsid w:val="00075B8D"/>
+                    <w:rsid w:val="0007685A"/>
+                    <w:rsid w:val="00097880"/>
+                    <w:rsid w:val="000D4AC3"/>
+                    <w:rsid w:val="000F4283"/>
+                    <w:rsid w:val="00110C92"/>
+                    <w:rsid w:val="00153753"/>
+                    <w:rsid w:val="00177009"/>
+                    <w:rsid w:val="00195A56"/>
+                    <w:rsid w:val="00226D45"/>
+                    <w:rsid w:val="0028721C"/>
+                    <w:rsid w:val="002B6566"/>
+                    <w:rsid w:val="00324193"/>
+                    <w:rsid w:val="003A479C"/>
+                    <w:rsid w:val="003B5EF6"/>
+                    <w:rsid w:val="003B7191"/>
+                    <w:rsid w:val="003D5A89"/>
+                    <w:rsid w:val="003D7262"/>
+                    <w:rsid w:val="00423EE5"/>
+                    <w:rsid w:val="00430FE2"/>
+                    <w:rsid w:val="00460051"/>
+                    <w:rsid w:val="00467132"/>
+                    <w:rsid w:val="00497D71"/>
+                    <w:rsid w:val="004B69E8"/>
+                    <w:rsid w:val="004E66B2"/>
+                    <w:rsid w:val="004F543C"/>
+                    <w:rsid w:val="00517A21"/>
+                    <w:rsid w:val="00574041"/>
+                    <w:rsid w:val="00576D0C"/>
+                    <w:rsid w:val="005C192C"/>
+                    <w:rsid w:val="005C592F"/>
+                    <w:rsid w:val="005D30EC"/>
+                    <w:rsid w:val="005E6C64"/>
+                    <w:rsid w:val="006256AF"/>
+                    <w:rsid w:val="0063380F"/>
+                    <w:rsid w:val="00681035"/>
+                    <w:rsid w:val="00692287"/>
+                    <w:rsid w:val="006C2185"/>
+                    <w:rsid w:val="00703B43"/>
+                    <w:rsid w:val="0071469F"/>
+                    <w:rsid w:val="007224D1"/>
+                    <w:rsid w:val="007253D9"/>
+                    <w:rsid w:val="00757B9C"/>
+                    <w:rsid w:val="00757E54"/>
+                    <w:rsid w:val="007760B2"/>
+                    <w:rsid w:val="00776F80"/>
+                    <w:rsid w:val="007B25AC"/>
+                    <w:rsid w:val="007B656F"/>
+                    <w:rsid w:val="007C044A"/>
+                    <w:rsid w:val="007C31D0"/>
+                    <w:rsid w:val="007C551B"/>
+                    <w:rsid w:val="007E01D1"/>
+                    <w:rsid w:val="008239B8"/>
+                    <w:rsid w:val="00852C57"/>
+                    <w:rsid w:val="00852E4F"/>
+                    <w:rsid w:val="0089447C"/>
+                    <w:rsid w:val="008E795C"/>
+                    <w:rsid w:val="0094646F"/>
+                    <w:rsid w:val="00950F33"/>
+                    <w:rsid w:val="00965B17"/>
+                    <w:rsid w:val="00974876"/>
+                    <w:rsid w:val="009804AF"/>
+                    <w:rsid w:val="00985EFB"/>
+                    <w:rsid w:val="009A14B0"/>
+                    <w:rsid w:val="009A1711"/>
+                    <w:rsid w:val="00A052CD"/>
+                    <w:rsid w:val="00A31E04"/>
+                    <w:rsid w:val="00A32E54"/>
+                    <w:rsid w:val="00A42ED9"/>
+                    <w:rsid w:val="00A74712"/>
+                    <w:rsid w:val="00A8194A"/>
+                    <w:rsid w:val="00A87B57"/>
+                    <w:rsid w:val="00A913BA"/>
+                    <w:rsid w:val="00A945C6"/>
+                    <w:rsid w:val="00AA358F"/>
+                    <w:rsid w:val="00AA630E"/>
+                    <w:rsid w:val="00AC5FB3"/>
+                    <w:rsid w:val="00AD27CB"/>
+                    <w:rsid w:val="00AF49C6"/>
+                    <w:rsid w:val="00B10706"/>
+                    <w:rsid w:val="00B262C2"/>
+                    <w:rsid w:val="00B46ADE"/>
+                    <w:rsid w:val="00B963C7"/>
+                    <w:rsid w:val="00BA4604"/>
+                    <w:rsid w:val="00BD30D2"/>
+                    <w:rsid w:val="00C00E2B"/>
+                    <w:rsid w:val="00C14CC9"/>
+                    <w:rsid w:val="00C40249"/>
+                    <w:rsid w:val="00C5483B"/>
+                    <w:rsid w:val="00C62FAC"/>
+                    <w:rsid w:val="00C66982"/>
+                    <w:rsid w:val="00C854BB"/>
+                    <w:rsid w:val="00CA2F5E"/>
+                    <w:rsid w:val="00D05D1D"/>
+                    <w:rsid w:val="00D21C3F"/>
+                    <w:rsid w:val="00D52CCC"/>
+                    <w:rsid w:val="00D9781C"/>
+                    <w:rsid w:val="00DB0CB3"/>
+                    <w:rsid w:val="00DE5559"/>
+                    <w:rsid w:val="00DF790F"/>
+                    <w:rsid w:val="00E20128"/>
+                    <w:rsid w:val="00E441A6"/>
+                    <w:rsid w:val="00E470C7"/>
+                    <w:rsid w:val="00E57B71"/>
+                    <w:rsid w:val="00E60449"/>
+                    <w:rsid w:val="00EA765B"/>
+                    <w:rsid w:val="00EB33B3"/>
+                    <w:rsid w:val="00EC5025"/>
+                    <w:rsid w:val="00EF1006"/>
+                    <w:rsid w:val="00F07FBD"/>
+                    <w:rsid w:val="00F17E43"/>
+                    <w:rsid w:val="00F24E78"/>
+                    <w:rsid w:val="00F325CF"/>
+                    <w:rsid w:val="00F44AF9"/>
+                    <w:rsid w:val="00FB74AE"/>
+                    <w:rsid w:val="00FC5A19"/>
+                    <w:rsid w:val="00FD0974"/>
+                    <w:rsid w:val="00FE31B1"/>
+                    <w:rsid w:val="00FF43E5"/>
+                </w:rsids>
+                <m:mathPr>
+                    <m:mathFont m:val="Cambria Math"/>
+                    <m:brkBin m:val="before"/>
+                    <m:brkBinSub m:val="--"/>
+                    <m:smallFrac m:val="0"/>
+                    <m:dispDef/>
+                    <m:lMargin m:val="0"/>
+                    <m:rMargin m:val="0"/>
+                    <m:defJc m:val="centerGroup"/>
+                    <m:wrapIndent m:val="1440"/>
+                    <m:intLim m:val="subSup"/>
+                    <m:naryLim m:val="undOvr"/>
+                </m:mathPr>
+                <w:themeFontLang w:val="en-US" w:eastAsia="zh-CN"/>
+                <w:clrSchemeMapping w:bg1="light1" w:t1="dark1" w:bg2="light2" w:t2="dark2" w:accent1="accent1" w:accent2="accent2" w:accent3="accent3" w:accent4="accent4" w:accent5="accent5" w:accent6="accent6" w:hyperlink="hyperlink" w:followedHyperlink="followedHyperlink"/>
+                <w:doNotIncludeSubdocsInStats/>
+                <w:doNotAutoCompressPictures/>
+                <w:shapeDefaults>
+                    <o:shapedefaults v:ext="edit" spidmax="2050"/>
+                    <o:shapelayout v:ext="edit">
+                        <o:idmap v:ext="edit" data="1"/>
+                    </o:shapelayout>
+                </w:shapeDefaults>
+                <w:decimalSymbol w:val="."/>
+                <w:listSeparator w:val=","/>
+                <w14:docId w14:val="1601E0DE"/>
+            </w:settings>
+        </pkg:xmlData>
+    </pkg:part>
+    <pkg:part pkg:name="/word/webSettings.xml" pkg:contentType="application/vnd.openxmlformats-officedocument.wordprocessingml.webSettings+xml">
+        <pkg:xmlData>
+            <w:webSettings mc:Ignorable="w14" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" xmlns:w14="http://schemas.microsoft.com/office/word/2010/wordml">
+                <w:optimizeForBrowser/>
+                <w:doNotSaveAsSingleFile/>
+            </w:webSettings>
+        </pkg:xmlData>
+    </pkg:part>
+    <pkg:part pkg:name="/word/stylesWithEffects.xml" pkg:contentType="application/vnd.ms-word.stylesWithEffects+xml">
+        <pkg:xmlData>
+            <w:styles mc:Ignorable="w14 wp14" xmlns:wpc="http://schemas.microsoft.com/office/word/2010/wordprocessingCanvas" xmlns:mo="http://schemas.microsoft.com/office/mac/office/2008/main" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:mv="urn:schemas-microsoft-com:mac:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:m="http://schemas.openxmlformats.org/officeDocument/2006/math" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:wp14="http://schemas.microsoft.com/office/word/2010/wordprocessingDrawing" xmlns:wp="http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing" xmlns:w10="urn:schemas-microsoft-com:office:word" xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" xmlns:w14="http://schemas.microsoft.com/office/word/2010/wordml" xmlns:wpg="http://schemas.microsoft.com/office/word/2010/wordprocessingGroup" xmlns:wpi="http://schemas.microsoft.com/office/word/2010/wordprocessingInk" xmlns:wne="http://schemas.microsoft.com/office/word/2006/wordml" xmlns:wps="http://schemas.microsoft.com/office/word/2010/wordprocessingShape">
+                <w:docDefaults>
+                    <w:rPrDefault>
+                        <w:rPr>
+                            <w:rFonts w:ascii="Times New Roman" w:eastAsia="宋体" w:hAnsi="Times New Roman" w:cs="Times New Roman"/>
+                            <w:lang w:val="en-US" w:eastAsia="zh-CN" w:bidi="ar-SA"/>
+                        </w:rPr>
+                    </w:rPrDefault>
+                    <w:pPrDefault/>
+                </w:docDefaults>
+                <w:latentStyles w:defLockedState="0" w:defUIPriority="0" w:defSemiHidden="0" w:defUnhideWhenUsed="0" w:defQFormat="0" w:count="276">
+                    <w:lsdException w:name="Normal" w:qFormat="1"/>
+                    <w:lsdException w:name="heading 1" w:qFormat="1"/>
+                    <w:lsdException w:name="heading 2" w:semiHidden="1" w:unhideWhenUsed="1" w:qFormat="1"/>
+                    <w:lsdException w:name="heading 3" w:semiHidden="1" w:unhideWhenUsed="1" w:qFormat="1"/>
+                    <w:lsdException w:name="heading 4" w:semiHidden="1" w:unhideWhenUsed="1" w:qFormat="1"/>
+                    <w:lsdException w:name="heading 5" w:semiHidden="1" w:unhideWhenUsed="1" w:qFormat="1"/>
+                    <w:lsdException w:name="heading 6" w:semiHidden="1" w:unhideWhenUsed="1" w:qFormat="1"/>
+                    <w:lsdException w:name="heading 7" w:semiHidden="1" w:unhideWhenUsed="1" w:qFormat="1"/>
+                    <w:lsdException w:name="heading 8" w:semiHidden="1" w:unhideWhenUsed="1" w:qFormat="1"/>
+                    <w:lsdException w:name="heading 9" w:semiHidden="1" w:unhideWhenUsed="1" w:qFormat="1"/>
+                    <w:lsdException w:name="footer" w:uiPriority="99"/>
+                    <w:lsdException w:name="caption" w:semiHidden="1" w:unhideWhenUsed="1" w:qFormat="1"/>
+                    <w:lsdException w:name="Title" w:qFormat="1"/>
+                    <w:lsdException w:name="Subtitle" w:qFormat="1"/>
+                    <w:lsdException w:name="Strong" w:qFormat="1"/>
+                    <w:lsdException w:name="Emphasis" w:qFormat="1"/>
+                    <w:lsdException w:name="Placeholder Text" w:semiHidden="1" w:uiPriority="99"/>
+                    <w:lsdException w:name="No Spacing" w:uiPriority="1" w:qFormat="1"/>
+                    <w:lsdException w:name="Light Shading" w:uiPriority="60"/>
+                    <w:lsdException w:name="Light List" w:uiPriority="61"/>
+                    <w:lsdException w:name="Light Grid" w:uiPriority="62"/>
+                    <w:lsdException w:name="Medium Shading 1" w:uiPriority="63"/>
+                    <w:lsdException w:name="Medium Shading 2" w:uiPriority="64"/>
+                    <w:lsdException w:name="Medium List 1" w:uiPriority="65"/>
+                    <w:lsdException w:name="Medium List 2" w:uiPriority="66"/>
+                    <w:lsdException w:name="Medium Grid 1" w:uiPriority="67"/>
+                    <w:lsdException w:name="Medium Grid 2" w:uiPriority="68"/>
+                    <w:lsdException w:name="Medium Grid 3" w:uiPriority="69"/>
+                    <w:lsdException w:name="Dark List" w:uiPriority="70"/>
+                    <w:lsdException w:name="Colorful Shading" w:uiPriority="71"/>
+                    <w:lsdException w:name="Colorful List" w:uiPriority="72"/>
+                    <w:lsdException w:name="Colorful Grid" w:uiPriority="73"/>
+                    <w:lsdException w:name="Light Shading Accent 1" w:uiPriority="60"/>
+                    <w:lsdException w:name="Light List Accent 1" w:uiPriority="61"/>
+                    <w:lsdException w:name="Light Grid Accent 1" w:uiPriority="62"/>
+                    <w:lsdException w:name="Medium Shading 1 Accent 1" w:uiPriority="63"/>
+                    <w:lsdException w:name="Medium Shading 2 Accent 1" w:uiPriority="64"/>
+                    <w:lsdException w:name="Medium List 1 Accent 1" w:uiPriority="65"/>
+                    <w:lsdException w:name="Revision" w:semiHidden="1" w:uiPriority="99"/>
+                    <w:lsdException w:name="List Paragraph" w:uiPriority="34" w:qFormat="1"/>
+                    <w:lsdException w:name="Quote" w:uiPriority="29" w:qFormat="1"/>
+                    <w:lsdException w:name="Intense Quote" w:uiPriority="30" w:qFormat="1"/>
+                    <w:lsdException w:name="Medium List 2 Accent 1" w:uiPriority="66"/>
+                    <w:lsdException w:name="Medium Grid 1 Accent 1" w:uiPriority="67"/>
+                    <w:lsdException w:name="Medium Grid 2 Accent 1" w:uiPriority="68"/>
+                    <w:lsdException w:name="Medium Grid 3 Accent 1" w:uiPriority="69"/>
+                    <w:lsdException w:name="Dark List Accent 1" w:uiPriority="70"/>
+                    <w:lsdException w:name="Colorful Shading Accent 1" w:uiPriority="71"/>
+                    <w:lsdException w:name="Colorful List Accent 1" w:uiPriority="72"/>
+                    <w:lsdException w:name="Colorful Grid Accent 1" w:uiPriority="73"/>
+                    <w:lsdException w:name="Light Shading Accent 2" w:uiPriority="60"/>
+                    <w:lsdException w:name="Light List Accent 2" w:uiPriority="61"/>
+                    <w:lsdException w:name="Light Grid Accent 2" w:uiPriority="62"/>
+                    <w:lsdException w:name="Medium Shading 1 Accent 2" w:uiPriority="63"/>
+                    <w:lsdException w:name="Medium Shading 2 Accent 2" w:uiPriority="64"/>
+                    <w:lsdException w:name="Medium List 1 Accent 2" w:uiPriority="65"/>
+                    <w:lsdException w:name="Medium List 2 Accent 2" w:uiPriority="66"/>
+                    <w:lsdException w:name="Medium Grid 1 Accent 2" w:uiPriority="67"/>
+                    <w:lsdException w:name="Medium Grid 2 Accent 2" w:uiPriority="68"/>
+                    <w:lsdException w:name="Medium Grid 3 Accent 2" w:uiPriority="69"/>
+                    <w:lsdException w:name="Dark List Accent 2" w:uiPriority="70"/>
+                    <w:lsdException w:name="Colorful Shading Accent 2" w:uiPriority="71"/>
+                    <w:lsdException w:name="Colorful List Accent 2" w:uiPriority="72"/>
+                    <w:lsdException w:name="Colorful Grid Accent 2" w:uiPriority="73"/>
+                    <w:lsdException w:name="Light Shading Accent 3" w:uiPriority="60"/>
+                    <w:lsdException w:name="Light List Accent 3" w:uiPriority="61"/>
+                    <w:lsdException w:name="Light Grid Accent 3" w:uiPriority="62"/>
+                    <w:lsdException w:name="Medium Shading 1 Accent 3" w:uiPriority="63"/>
+                    <w:lsdException w:name="Medium Shading 2 Accent 3" w:uiPriority="64"/>
+                    <w:lsdException w:name="Medium List 1 Accent 3" w:uiPriority="65"/>
+                    <w:lsdException w:name="Medium List 2 Accent 3" w:uiPriority="66"/>
+                    <w:lsdException w:name="Medium Grid 1 Accent 3" w:uiPriority="67"/>
+                    <w:lsdException w:name="Medium Grid 2 Accent 3" w:uiPriority="68"/>
+                    <w:lsdException w:name="Medium Grid 3 Accent 3" w:uiPriority="69"/>
+                    <w:lsdException w:name="Dark List Accent 3" w:uiPriority="70"/>
+                    <w:lsdException w:name="Colorful Shading Accent 3" w:uiPriority="71"/>
+                    <w:lsdException w:name="Colorful List Accent 3" w:uiPriority="72"/>
+                    <w:lsdException w:name="Colorful Grid Accent 3" w:uiPriority="73"/>
+                    <w:lsdException w:name="Light Shading Accent 4" w:uiPriority="60"/>
+                    <w:lsdException w:name="Light List Accent 4" w:uiPriority="61"/>
+                    <w:lsdException w:name="Light Grid Accent 4" w:uiPriority="62"/>
+                    <w:lsdException w:name="Medium Shading 1 Accent 4" w:uiPriority="63"/>
+                    <w:lsdException w:name="Medium Shading 2 Accent 4" w:uiPriority="64"/>
+                    <w:lsdException w:name="Medium List 1 Accent 4" w:uiPriority="65"/>
+                    <w:lsdException w:name="Medium List 2 Accent 4" w:uiPriority="66"/>
+                    <w:lsdException w:name="Medium Grid 1 Accent 4" w:uiPriority="67"/>
+                    <w:lsdException w:name="Medium Grid 2 Accent 4" w:uiPriority="68"/>
+                    <w:lsdException w:name="Medium Grid 3 Accent 4" w:uiPriority="69"/>
+                    <w:lsdException w:name="Dark List Accent 4" w:uiPriority="70"/>
+                    <w:lsdException w:name="Colorful Shading Accent 4" w:uiPriority="71"/>
+                    <w:lsdException w:name="Colorful List Accent 4" w:uiPriority="72"/>
+                    <w:lsdException w:name="Colorful Grid Accent 4" w:uiPriority="73"/>
+                    <w:lsdException w:name="Light Shading Accent 5" w:uiPriority="60"/>
+                    <w:lsdException w:name="Light List Accent 5" w:uiPriority="61"/>
+                    <w:lsdException w:name="Light Grid Accent 5" w:uiPriority="62"/>
+                    <w:lsdException w:name="Medium Shading 1 Accent 5" w:uiPriority="63"/>
+                    <w:lsdException w:name="Medium Shading 2 Accent 5" w:uiPriority="64"/>
+                    <w:lsdException w:name="Medium List 1 Accent 5" w:uiPriority="65"/>
+                    <w:lsdException w:name="Medium List 2 Accent 5" w:uiPriority="66"/>
+                    <w:lsdException w:name="Medium Grid 1 Accent 5" w:uiPriority="67"/>
+                    <w:lsdException w:name="Medium Grid 2 Accent 5" w:uiPriority="68"/>
+                    <w:lsdException w:name="Medium Grid 3 Accent 5" w:uiPriority="69"/>
+                    <w:lsdException w:name="Dark List Accent 5" w:uiPriority="70"/>
+                    <w:lsdException w:name="Colorful Shading Accent 5" w:uiPriority="71"/>
+                    <w:lsdException w:name="Colorful List Accent 5" w:uiPriority="72"/>
+                    <w:lsdException w:name="Colorful Grid Accent 5" w:uiPriority="73"/>
+                    <w:lsdException w:name="Light Shading Accent 6" w:uiPriority="60"/>
+                    <w:lsdException w:name="Light List Accent 6" w:uiPriority="61"/>
+                    <w:lsdException w:name="Light Grid Accent 6" w:uiPriority="62"/>
+                    <w:lsdException w:name="Medium Shading 1 Accent 6" w:uiPriority="63"/>
+                    <w:lsdException w:name="Medium Shading 2 Accent 6" w:uiPriority="64"/>
+                    <w:lsdException w:name="Medium List 1 Accent 6" w:uiPriority="65"/>
+                    <w:lsdException w:name="Medium List 2 Accent 6" w:uiPriority="66"/>
+                    <w:lsdException w:name="Medium Grid 1 Accent 6" w:uiPriority="67"/>
+                    <w:lsdException w:name="Medium Grid 2 Accent 6" w:uiPriority="68"/>
+                    <w:lsdException w:name="Medium Grid 3 Accent 6" w:uiPriority="69"/>
+                    <w:lsdException w:name="Dark List Accent 6" w:uiPriority="70"/>
+                    <w:lsdException w:name="Colorful Shading Accent 6" w:uiPriority="71"/>
+                    <w:lsdException w:name="Colorful List Accent 6" w:uiPriority="72"/>
+                    <w:lsdException w:name="Colorful Grid Accent 6" w:uiPriority="73"/>
+                    <w:lsdException w:name="Subtle Emphasis" w:uiPriority="19" w:qFormat="1"/>
+                    <w:lsdException w:name="Intense Emphasis" w:uiPriority="21" w:qFormat="1"/>
+                    <w:lsdException w:name="Subtle Reference" w:uiPriority="31" w:qFormat="1"/>
+                    <w:lsdException w:name="Intense Reference" w:uiPriority="32" w:qFormat="1"/>
+                    <w:lsdException w:name="Book Title" w:uiPriority="33" w:qFormat="1"/>
+                    <w:lsdException w:name="Bibliography" w:semiHidden="1" w:uiPriority="37" w:unhideWhenUsed="1"/>
+                    <w:lsdException w:name="TOC Heading" w:semiHidden="1" w:uiPriority="39" w:unhideWhenUsed="1" w:qFormat="1"/>
+                </w:latentStyles>
+                <w:style w:type="paragraph" w:default="1" w:styleId="a">
+                    <w:name w:val="Normal"/>
+                    <w:qFormat/>
+                    <w:rsid w:val="00097880"/>
+                    <w:pPr>
+                        <w:widowControl w:val="0"/>
+                        <w:jc w:val="both"/>
+                    </w:pPr>
+                    <w:rPr>
+                        <w:kern w:val="2"/>
+                        <w:sz w:val="21"/>
+                        <w:szCs w:val="24"/>
+                    </w:rPr>
+                </w:style>
+                <w:style w:type="character" w:default="1" w:styleId="a0">
+                    <w:name w:val="Default Paragraph Font"/>
+                    <w:uiPriority w:val="1"/>
+                    <w:semiHidden/>
+                    <w:unhideWhenUsed/>
+                </w:style>
+                <w:style w:type="table" w:default="1" w:styleId="a1">
+                    <w:name w:val="Normal Table"/>
+                    <w:uiPriority w:val="99"/>
+                    <w:semiHidden/>
+                    <w:unhideWhenUsed/>
+                    <w:tblPr>
+                        <w:tblInd w:w="0" w:type="dxa"/>
+                        <w:tblCellMar>
+                            <w:top w:w="0" w:type="dxa"/>
+                            <w:left w:w="108" w:type="dxa"/>
+                            <w:bottom w:w="0" w:type="dxa"/>
+                            <w:right w:w="108" w:type="dxa"/>
+                        </w:tblCellMar>
+                    </w:tblPr>
+                </w:style>
+                <w:style w:type="numbering" w:default="1" w:styleId="a2">
+                    <w:name w:val="No List"/>
+                    <w:uiPriority w:val="99"/>
+                    <w:semiHidden/>
+                    <w:unhideWhenUsed/>
+                </w:style>
+                <w:style w:type="paragraph" w:styleId="a3">
+                    <w:name w:val="header"/>
+                    <w:basedOn w:val="a"/>
+                    <w:rsid w:val="00097880"/>
+                    <w:pPr>
+                        <w:pBdr>
+                            <w:bottom w:val="single" w:sz="6" w:space="1" w:color="auto"/>
+                        </w:pBdr>
+                        <w:tabs>
+                            <w:tab w:val="center" w:pos="4153"/>
+                            <w:tab w:val="right" w:pos="8306"/>
+                        </w:tabs>
+                        <w:snapToGrid w:val="0"/>
+                        <w:jc w:val="center"/>
+                    </w:pPr>
+                    <w:rPr>
+                        <w:sz w:val="18"/>
+                        <w:szCs w:val="18"/>
+                    </w:rPr>
+                </w:style>
+                <w:style w:type="paragraph" w:styleId="a4">
+                    <w:name w:val="footer"/>
+                    <w:basedOn w:val="a"/>
+                    <w:link w:val="a5"/>
+                    <w:uiPriority w:val="99"/>
+                    <w:rsid w:val="00097880"/>
+                    <w:pPr>
+                        <w:tabs>
+                            <w:tab w:val="center" w:pos="4153"/>
+                            <w:tab w:val="right" w:pos="8306"/>
+                        </w:tabs>
+                        <w:snapToGrid w:val="0"/>
+                        <w:jc w:val="left"/>
+                    </w:pPr>
+                    <w:rPr>
+                        <w:sz w:val="18"/>
+                        <w:szCs w:val="18"/>
+                    </w:rPr>
+                </w:style>
+                <w:style w:type="paragraph" w:styleId="a6">
+                    <w:name w:val="Plain Text"/>
+                    <w:basedOn w:val="a"/>
+                    <w:rsid w:val="00097880"/>
+                    <w:rPr>
+                        <w:rFonts w:ascii="宋体" w:hAnsi="Courier New" w:cs="Courier New"/>
+                        <w:szCs w:val="21"/>
+                    </w:rPr>
+                </w:style>
+                <w:style w:type="paragraph" w:customStyle="1" w:styleId="MSMincho">
+                    <w:name w:val="MS Mincho"/>
+                    <w:basedOn w:val="a"/>
+                    <w:rsid w:val="00097880"/>
+                    <w:rPr>
+                        <w:rFonts w:ascii="MS Mincho" w:eastAsia="MS Mincho" w:hAnsi="MS Mincho"/>
+                        <w:sz w:val="24"/>
+                    </w:rPr>
+                </w:style>
+                <w:style w:type="paragraph" w:customStyle="1" w:styleId="1">
+                    <w:name w:val="1"/>
+                    <w:basedOn w:val="a"/>
+                    <w:rsid w:val="00097880"/>
+                    <w:pPr>
+                        <w:widowControl/>
+                        <w:jc w:val="left"/>
+                    </w:pPr>
+                    <w:rPr>
+                        <w:noProof/>
+                        <w:kern w:val="0"/>
+                        <w:sz w:val="24"/>
+                        <w:lang w:eastAsia="de-DE"/>
+                    </w:rPr>
+                </w:style>
+                <w:style w:type="character" w:customStyle="1" w:styleId="a5">
+                    <w:name w:val="页脚字符"/>
+                    <w:basedOn w:val="a0"/>
+                    <w:link w:val="a4"/>
+                    <w:uiPriority w:val="99"/>
+                    <w:rsid w:val="00070B9E"/>
+                    <w:rPr>
+                        <w:kern w:val="2"/>
+                        <w:sz w:val="18"/>
+                        <w:szCs w:val="18"/>
+                    </w:rPr>
+                </w:style>
+            </w:styles>
+        </pkg:xmlData>
+    </pkg:part>
+    <pkg:part pkg:name="/word/fontTable.xml" pkg:contentType="application/vnd.openxmlformats-officedocument.wordprocessingml.fontTable+xml">
+        <pkg:xmlData>
+            <w:fonts mc:Ignorable="w14" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" xmlns:w14="http://schemas.microsoft.com/office/word/2010/wordml">
+                <w:font w:name="Times New Roman">
+                    <w:panose1 w:val="02020603050405020304"/>
+                    <w:charset w:val="00"/>
+                    <w:family w:val="auto"/>
+                    <w:pitch w:val="variable"/>
+                    <w:sig w:usb0="00000003" w:usb1="00000000" w:usb2="00000000" w:usb3="00000000" w:csb0="00000001" w:csb1="00000000"/>
+                </w:font>
+                <w:font w:name="宋体">
+                    <w:panose1 w:val="02010600030101010101"/>
+                    <w:charset w:val="50"/>
+                    <w:family w:val="auto"/>
+                    <w:pitch w:val="variable"/>
+                    <w:sig w:usb0="00000003" w:usb1="288F0000" w:usb2="00000016" w:usb3="00000000" w:csb0="00040001" w:csb1="00000000"/>
+                </w:font>
+                <w:font w:name="Courier New">
+                    <w:panose1 w:val="02070309020205020404"/>
+                    <w:charset w:val="00"/>
+                    <w:family w:val="auto"/>
+                    <w:pitch w:val="variable"/>
+                    <w:sig w:usb0="00000003" w:usb1="00000000" w:usb2="00000000" w:usb3="00000000" w:csb0="00000001" w:csb1="00000000"/>
+                </w:font>
+                <w:font w:name="MS Mincho">
+                    <w:altName w:val="MS 明朝"/>
+                    <w:charset w:val="80"/>
+                    <w:family w:val="modern"/>
+                    <w:pitch w:val="fixed"/>
+                    <w:sig w:usb0="E00002FF" w:usb1="6AC7FDFB" w:usb2="00000012" w:usb3="00000000" w:csb0="0002009F" w:csb1="00000000"/>
+                </w:font>
+                <w:font w:name="黑体">
+                    <w:panose1 w:val="02010609060101010101"/>
+                    <w:charset w:val="50"/>
+                    <w:family w:val="auto"/>
+                    <w:pitch w:val="variable"/>
+                    <w:sig w:usb0="800002BF" w:usb1="38CF7CFA" w:usb2="00000016" w:usb3="00000000" w:csb0="00040001" w:csb1="00000000"/>
+                </w:font>
+                <w:font w:name="Arial">
+                    <w:panose1 w:val="020B0604020202020204"/>
+                    <w:charset w:val="00"/>
+                    <w:family w:val="auto"/>
+                    <w:pitch w:val="variable"/>
+                    <w:sig w:usb0="00000003" w:usb1="00000000" w:usb2="00000000" w:usb3="00000000" w:csb0="00000001" w:csb1="00000000"/>
+                </w:font>
+                <w:font w:name="Cambria">
+                    <w:panose1 w:val="02040503050406030204"/>
+                    <w:charset w:val="00"/>
+                    <w:family w:val="auto"/>
+                    <w:pitch w:val="variable"/>
+                    <w:sig w:usb0="E00002FF" w:usb1="400004FF" w:usb2="00000000" w:usb3="00000000" w:csb0="0000019F" w:csb1="00000000"/>
+                </w:font>
+                <w:font w:name="Calibri">
+                    <w:panose1 w:val="020F0502020204030204"/>
+                    <w:charset w:val="00"/>
+                    <w:family w:val="auto"/>
+                    <w:pitch w:val="variable"/>
+                    <w:sig w:usb0="E10002FF" w:usb1="4000ACFF" w:usb2="00000009" w:usb3="00000000" w:csb0="0000019F" w:csb1="00000000"/>
+                </w:font>
+            </w:fonts>
+        </pkg:xmlData>
+    </pkg:part>
+    <pkg:part pkg:name="/docProps/core.xml" pkg:contentType="application/vnd.openxmlformats-package.core-properties+xml" pkg:padding="256">
+        <pkg:xmlData>
+            <cp:coreProperties xmlns:cp="http://schemas.openxmlformats.org/package/2006/metadata/core-properties" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:dcmitype="http://purl.org/dc/dcmitype/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+                <dc:title>绝密★启用前</dc:title>
+                <dc:creator>QMTH</dc:creator>
+                <cp:lastModifiedBy>悦 宋</cp:lastModifiedBy>
+                <cp:revision>22</cp:revision>
+                <cp:lastPrinted>2010-11-01T11:38:00Z</cp:lastPrinted>
+                <dcterms:created xsi:type="dcterms:W3CDTF">2017-03-14T10:02:00Z</dcterms:created>
+                <dcterms:modified xsi:type="dcterms:W3CDTF">2017-04-21T10:31:00Z</dcterms:modified>
+            </cp:coreProperties>
+        </pkg:xmlData>
+    </pkg:part>
+    <pkg:part pkg:name="/word/styles.xml" pkg:contentType="application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml">
+        <pkg:xmlData>
+            <w:styles mc:Ignorable="w14" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" xmlns:w14="http://schemas.microsoft.com/office/word/2010/wordml">
+                <w:docDefaults>
+                    <w:rPrDefault>
+                        <w:rPr>
+                            <w:rFonts w:ascii="Times New Roman" w:eastAsia="宋体" w:hAnsi="Times New Roman" w:cs="Times New Roman"/>
+                            <w:lang w:val="en-US" w:eastAsia="zh-CN" w:bidi="ar-SA"/>
+                        </w:rPr>
+                    </w:rPrDefault>
+                    <w:pPrDefault/>
+                </w:docDefaults>
+                <w:latentStyles w:defLockedState="0" w:defUIPriority="0" w:defSemiHidden="0" w:defUnhideWhenUsed="0" w:defQFormat="0" w:count="276">
+                    <w:lsdException w:name="Normal" w:qFormat="1"/>
+                    <w:lsdException w:name="heading 1" w:qFormat="1"/>
+                    <w:lsdException w:name="heading 2" w:semiHidden="1" w:unhideWhenUsed="1" w:qFormat="1"/>
+                    <w:lsdException w:name="heading 3" w:semiHidden="1" w:unhideWhenUsed="1" w:qFormat="1"/>
+                    <w:lsdException w:name="heading 4" w:semiHidden="1" w:unhideWhenUsed="1" w:qFormat="1"/>
+                    <w:lsdException w:name="heading 5" w:semiHidden="1" w:unhideWhenUsed="1" w:qFormat="1"/>
+                    <w:lsdException w:name="heading 6" w:semiHidden="1" w:unhideWhenUsed="1" w:qFormat="1"/>
+                    <w:lsdException w:name="heading 7" w:semiHidden="1" w:unhideWhenUsed="1" w:qFormat="1"/>
+                    <w:lsdException w:name="heading 8" w:semiHidden="1" w:unhideWhenUsed="1" w:qFormat="1"/>
+                    <w:lsdException w:name="heading 9" w:semiHidden="1" w:unhideWhenUsed="1" w:qFormat="1"/>
+                    <w:lsdException w:name="footer" w:uiPriority="99"/>
+                    <w:lsdException w:name="caption" w:semiHidden="1" w:unhideWhenUsed="1" w:qFormat="1"/>
+                    <w:lsdException w:name="Title" w:qFormat="1"/>
+                    <w:lsdException w:name="Subtitle" w:qFormat="1"/>
+                    <w:lsdException w:name="Strong" w:qFormat="1"/>
+                    <w:lsdException w:name="Emphasis" w:qFormat="1"/>
+                    <w:lsdException w:name="Placeholder Text" w:semiHidden="1" w:uiPriority="99"/>
+                    <w:lsdException w:name="No Spacing" w:uiPriority="1" w:qFormat="1"/>
+                    <w:lsdException w:name="Light Shading" w:uiPriority="60"/>
+                    <w:lsdException w:name="Light List" w:uiPriority="61"/>
+                    <w:lsdException w:name="Light Grid" w:uiPriority="62"/>
+                    <w:lsdException w:name="Medium Shading 1" w:uiPriority="63"/>
+                    <w:lsdException w:name="Medium Shading 2" w:uiPriority="64"/>
+                    <w:lsdException w:name="Medium List 1" w:uiPriority="65"/>
+                    <w:lsdException w:name="Medium List 2" w:uiPriority="66"/>
+                    <w:lsdException w:name="Medium Grid 1" w:uiPriority="67"/>
+                    <w:lsdException w:name="Medium Grid 2" w:uiPriority="68"/>
+                    <w:lsdException w:name="Medium Grid 3" w:uiPriority="69"/>
+                    <w:lsdException w:name="Dark List" w:uiPriority="70"/>
+                    <w:lsdException w:name="Colorful Shading" w:uiPriority="71"/>
+                    <w:lsdException w:name="Colorful List" w:uiPriority="72"/>
+                    <w:lsdException w:name="Colorful Grid" w:uiPriority="73"/>
+                    <w:lsdException w:name="Light Shading Accent 1" w:uiPriority="60"/>
+                    <w:lsdException w:name="Light List Accent 1" w:uiPriority="61"/>
+                    <w:lsdException w:name="Light Grid Accent 1" w:uiPriority="62"/>
+                    <w:lsdException w:name="Medium Shading 1 Accent 1" w:uiPriority="63"/>
+                    <w:lsdException w:name="Medium Shading 2 Accent 1" w:uiPriority="64"/>
+                    <w:lsdException w:name="Medium List 1 Accent 1" w:uiPriority="65"/>
+                    <w:lsdException w:name="Revision" w:semiHidden="1" w:uiPriority="99"/>
+                    <w:lsdException w:name="List Paragraph" w:uiPriority="34" w:qFormat="1"/>
+                    <w:lsdException w:name="Quote" w:uiPriority="29" w:qFormat="1"/>
+                    <w:lsdException w:name="Intense Quote" w:uiPriority="30" w:qFormat="1"/>
+                    <w:lsdException w:name="Medium List 2 Accent 1" w:uiPriority="66"/>
+                    <w:lsdException w:name="Medium Grid 1 Accent 1" w:uiPriority="67"/>
+                    <w:lsdException w:name="Medium Grid 2 Accent 1" w:uiPriority="68"/>
+                    <w:lsdException w:name="Medium Grid 3 Accent 1" w:uiPriority="69"/>
+                    <w:lsdException w:name="Dark List Accent 1" w:uiPriority="70"/>
+                    <w:lsdException w:name="Colorful Shading Accent 1" w:uiPriority="71"/>
+                    <w:lsdException w:name="Colorful List Accent 1" w:uiPriority="72"/>
+                    <w:lsdException w:name="Colorful Grid Accent 1" w:uiPriority="73"/>
+                    <w:lsdException w:name="Light Shading Accent 2" w:uiPriority="60"/>
+                    <w:lsdException w:name="Light List Accent 2" w:uiPriority="61"/>
+                    <w:lsdException w:name="Light Grid Accent 2" w:uiPriority="62"/>
+                    <w:lsdException w:name="Medium Shading 1 Accent 2" w:uiPriority="63"/>
+                    <w:lsdException w:name="Medium Shading 2 Accent 2" w:uiPriority="64"/>
+                    <w:lsdException w:name="Medium List 1 Accent 2" w:uiPriority="65"/>
+                    <w:lsdException w:name="Medium List 2 Accent 2" w:uiPriority="66"/>
+                    <w:lsdException w:name="Medium Grid 1 Accent 2" w:uiPriority="67"/>
+                    <w:lsdException w:name="Medium Grid 2 Accent 2" w:uiPriority="68"/>
+                    <w:lsdException w:name="Medium Grid 3 Accent 2" w:uiPriority="69"/>
+                    <w:lsdException w:name="Dark List Accent 2" w:uiPriority="70"/>
+                    <w:lsdException w:name="Colorful Shading Accent 2" w:uiPriority="71"/>
+                    <w:lsdException w:name="Colorful List Accent 2" w:uiPriority="72"/>
+                    <w:lsdException w:name="Colorful Grid Accent 2" w:uiPriority="73"/>
+                    <w:lsdException w:name="Light Shading Accent 3" w:uiPriority="60"/>
+                    <w:lsdException w:name="Light List Accent 3" w:uiPriority="61"/>
+                    <w:lsdException w:name="Light Grid Accent 3" w:uiPriority="62"/>
+                    <w:lsdException w:name="Medium Shading 1 Accent 3" w:uiPriority="63"/>
+                    <w:lsdException w:name="Medium Shading 2 Accent 3" w:uiPriority="64"/>
+                    <w:lsdException w:name="Medium List 1 Accent 3" w:uiPriority="65"/>
+                    <w:lsdException w:name="Medium List 2 Accent 3" w:uiPriority="66"/>
+                    <w:lsdException w:name="Medium Grid 1 Accent 3" w:uiPriority="67"/>
+                    <w:lsdException w:name="Medium Grid 2 Accent 3" w:uiPriority="68"/>
+                    <w:lsdException w:name="Medium Grid 3 Accent 3" w:uiPriority="69"/>
+                    <w:lsdException w:name="Dark List Accent 3" w:uiPriority="70"/>
+                    <w:lsdException w:name="Colorful Shading Accent 3" w:uiPriority="71"/>
+                    <w:lsdException w:name="Colorful List Accent 3" w:uiPriority="72"/>
+                    <w:lsdException w:name="Colorful Grid Accent 3" w:uiPriority="73"/>
+                    <w:lsdException w:name="Light Shading Accent 4" w:uiPriority="60"/>
+                    <w:lsdException w:name="Light List Accent 4" w:uiPriority="61"/>
+                    <w:lsdException w:name="Light Grid Accent 4" w:uiPriority="62"/>
+                    <w:lsdException w:name="Medium Shading 1 Accent 4" w:uiPriority="63"/>
+                    <w:lsdException w:name="Medium Shading 2 Accent 4" w:uiPriority="64"/>
+                    <w:lsdException w:name="Medium List 1 Accent 4" w:uiPriority="65"/>
+                    <w:lsdException w:name="Medium List 2 Accent 4" w:uiPriority="66"/>
+                    <w:lsdException w:name="Medium Grid 1 Accent 4" w:uiPriority="67"/>
+                    <w:lsdException w:name="Medium Grid 2 Accent 4" w:uiPriority="68"/>
+                    <w:lsdException w:name="Medium Grid 3 Accent 4" w:uiPriority="69"/>
+                    <w:lsdException w:name="Dark List Accent 4" w:uiPriority="70"/>
+                    <w:lsdException w:name="Colorful Shading Accent 4" w:uiPriority="71"/>
+                    <w:lsdException w:name="Colorful List Accent 4" w:uiPriority="72"/>
+                    <w:lsdException w:name="Colorful Grid Accent 4" w:uiPriority="73"/>
+                    <w:lsdException w:name="Light Shading Accent 5" w:uiPriority="60"/>
+                    <w:lsdException w:name="Light List Accent 5" w:uiPriority="61"/>
+                    <w:lsdException w:name="Light Grid Accent 5" w:uiPriority="62"/>
+                    <w:lsdException w:name="Medium Shading 1 Accent 5" w:uiPriority="63"/>
+                    <w:lsdException w:name="Medium Shading 2 Accent 5" w:uiPriority="64"/>
+                    <w:lsdException w:name="Medium List 1 Accent 5" w:uiPriority="65"/>
+                    <w:lsdException w:name="Medium List 2 Accent 5" w:uiPriority="66"/>
+                    <w:lsdException w:name="Medium Grid 1 Accent 5" w:uiPriority="67"/>
+                    <w:lsdException w:name="Medium Grid 2 Accent 5" w:uiPriority="68"/>
+                    <w:lsdException w:name="Medium Grid 3 Accent 5" w:uiPriority="69"/>
+                    <w:lsdException w:name="Dark List Accent 5" w:uiPriority="70"/>
+                    <w:lsdException w:name="Colorful Shading Accent 5" w:uiPriority="71"/>
+                    <w:lsdException w:name="Colorful List Accent 5" w:uiPriority="72"/>
+                    <w:lsdException w:name="Colorful Grid Accent 5" w:uiPriority="73"/>
+                    <w:lsdException w:name="Light Shading Accent 6" w:uiPriority="60"/>
+                    <w:lsdException w:name="Light List Accent 6" w:uiPriority="61"/>
+                    <w:lsdException w:name="Light Grid Accent 6" w:uiPriority="62"/>
+                    <w:lsdException w:name="Medium Shading 1 Accent 6" w:uiPriority="63"/>
+                    <w:lsdException w:name="Medium Shading 2 Accent 6" w:uiPriority="64"/>
+                    <w:lsdException w:name="Medium List 1 Accent 6" w:uiPriority="65"/>
+                    <w:lsdException w:name="Medium List 2 Accent 6" w:uiPriority="66"/>
+                    <w:lsdException w:name="Medium Grid 1 Accent 6" w:uiPriority="67"/>
+                    <w:lsdException w:name="Medium Grid 2 Accent 6" w:uiPriority="68"/>
+                    <w:lsdException w:name="Medium Grid 3 Accent 6" w:uiPriority="69"/>
+                    <w:lsdException w:name="Dark List Accent 6" w:uiPriority="70"/>
+                    <w:lsdException w:name="Colorful Shading Accent 6" w:uiPriority="71"/>
+                    <w:lsdException w:name="Colorful List Accent 6" w:uiPriority="72"/>
+                    <w:lsdException w:name="Colorful Grid Accent 6" w:uiPriority="73"/>
+                    <w:lsdException w:name="Subtle Emphasis" w:uiPriority="19" w:qFormat="1"/>
+                    <w:lsdException w:name="Intense Emphasis" w:uiPriority="21" w:qFormat="1"/>
+                    <w:lsdException w:name="Subtle Reference" w:uiPriority="31" w:qFormat="1"/>
+                    <w:lsdException w:name="Intense Reference" w:uiPriority="32" w:qFormat="1"/>
+                    <w:lsdException w:name="Book Title" w:uiPriority="33" w:qFormat="1"/>
+                    <w:lsdException w:name="Bibliography" w:semiHidden="1" w:uiPriority="37" w:unhideWhenUsed="1"/>
+                    <w:lsdException w:name="TOC Heading" w:semiHidden="1" w:uiPriority="39" w:unhideWhenUsed="1" w:qFormat="1"/>
+                </w:latentStyles>
+                <w:style w:type="paragraph" w:default="1" w:styleId="a">
+                    <w:name w:val="Normal"/>
+                    <w:qFormat/>
+                    <w:rsid w:val="00097880"/>
+                    <w:pPr>
+                        <w:widowControl w:val="0"/>
+                        <w:jc w:val="both"/>
+                    </w:pPr>
+                    <w:rPr>
+                        <w:kern w:val="2"/>
+                        <w:sz w:val="21"/>
+                        <w:szCs w:val="24"/>
+                    </w:rPr>
+                </w:style>
+                <w:style w:type="character" w:default="1" w:styleId="a0">
+                    <w:name w:val="Default Paragraph Font"/>
+                    <w:uiPriority w:val="1"/>
+                    <w:semiHidden/>
+                    <w:unhideWhenUsed/>
+                </w:style>
+                <w:style w:type="table" w:default="1" w:styleId="a1">
+                    <w:name w:val="Normal Table"/>
+                    <w:uiPriority w:val="99"/>
+                    <w:semiHidden/>
+                    <w:unhideWhenUsed/>
+                    <w:tblPr>
+                        <w:tblInd w:w="0" w:type="dxa"/>
+                        <w:tblCellMar>
+                            <w:top w:w="0" w:type="dxa"/>
+                            <w:left w:w="108" w:type="dxa"/>
+                            <w:bottom w:w="0" w:type="dxa"/>
+                            <w:right w:w="108" w:type="dxa"/>
+                        </w:tblCellMar>
+                    </w:tblPr>
+                </w:style>
+                <w:style w:type="numbering" w:default="1" w:styleId="a2">
+                    <w:name w:val="No List"/>
+                    <w:uiPriority w:val="99"/>
+                    <w:semiHidden/>
+                    <w:unhideWhenUsed/>
+                </w:style>
+                <w:style w:type="paragraph" w:styleId="a3">
+                    <w:name w:val="header"/>
+                    <w:basedOn w:val="a"/>
+                    <w:rsid w:val="00097880"/>
+                    <w:pPr>
+                        <w:pBdr>
+                            <w:bottom w:val="single" w:sz="6" w:space="1" w:color="auto"/>
+                        </w:pBdr>
+                        <w:tabs>
+                            <w:tab w:val="center" w:pos="4153"/>
+                            <w:tab w:val="right" w:pos="8306"/>
+                        </w:tabs>
+                        <w:snapToGrid w:val="0"/>
+                        <w:jc w:val="center"/>
+                    </w:pPr>
+                    <w:rPr>
+                        <w:sz w:val="18"/>
+                        <w:szCs w:val="18"/>
+                    </w:rPr>
+                </w:style>
+                <w:style w:type="paragraph" w:styleId="a4">
+                    <w:name w:val="footer"/>
+                    <w:basedOn w:val="a"/>
+                    <w:link w:val="a5"/>
+                    <w:uiPriority w:val="99"/>
+                    <w:rsid w:val="00097880"/>
+                    <w:pPr>
+                        <w:tabs>
+                            <w:tab w:val="center" w:pos="4153"/>
+                            <w:tab w:val="right" w:pos="8306"/>
+                        </w:tabs>
+                        <w:snapToGrid w:val="0"/>
+                        <w:jc w:val="left"/>
+                    </w:pPr>
+                    <w:rPr>
+                        <w:sz w:val="18"/>
+                        <w:szCs w:val="18"/>
+                    </w:rPr>
+                </w:style>
+                <w:style w:type="paragraph" w:styleId="a6">
+                    <w:name w:val="Plain Text"/>
+                    <w:basedOn w:val="a"/>
+                    <w:rsid w:val="00097880"/>
+                    <w:rPr>
+                        <w:rFonts w:ascii="宋体" w:hAnsi="Courier New" w:cs="Courier New"/>
+                        <w:szCs w:val="21"/>
+                    </w:rPr>
+                </w:style>
+                <w:style w:type="paragraph" w:customStyle="1" w:styleId="MSMincho">
+                    <w:name w:val="MS Mincho"/>
+                    <w:basedOn w:val="a"/>
+                    <w:rsid w:val="00097880"/>
+                    <w:rPr>
+                        <w:rFonts w:ascii="MS Mincho" w:eastAsia="MS Mincho" w:hAnsi="MS Mincho"/>
+                        <w:sz w:val="24"/>
+                    </w:rPr>
+                </w:style>
+                <w:style w:type="paragraph" w:customStyle="1" w:styleId="1">
+                    <w:name w:val="1"/>
+                    <w:basedOn w:val="a"/>
+                    <w:rsid w:val="00097880"/>
+                    <w:pPr>
+                        <w:widowControl/>
+                        <w:jc w:val="left"/>
+                    </w:pPr>
+                    <w:rPr>
+                        <w:noProof/>
+                        <w:kern w:val="0"/>
+                        <w:sz w:val="24"/>
+                        <w:lang w:eastAsia="de-DE"/>
+                    </w:rPr>
+                </w:style>
+                <w:style w:type="character" w:customStyle="1" w:styleId="a5">
+                    <w:name w:val="页脚字符"/>
+                    <w:basedOn w:val="a0"/>
+                    <w:link w:val="a4"/>
+                    <w:uiPriority w:val="99"/>
+                    <w:rsid w:val="00070B9E"/>
+                    <w:rPr>
+                        <w:kern w:val="2"/>
+                        <w:sz w:val="18"/>
+                        <w:szCs w:val="18"/>
+                    </w:rPr>
+                </w:style>
+            </w:styles>
+        </pkg:xmlData>
+    </pkg:part>
+    <pkg:part pkg:name="/docProps/app.xml" pkg:contentType="application/vnd.openxmlformats-officedocument.extended-properties+xml" pkg:padding="256">
+        <pkg:xmlData>
+            <Properties xmlns="http://schemas.openxmlformats.org/officeDocument/2006/extended-properties" xmlns:vt="http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes">
+                <Template>Normal.dotm</Template>
+                <TotalTime>11</TotalTime>
+                <Pages>1</Pages>
+                <Words>17</Words>
+                <Characters>102</Characters>
+                <Application>Microsoft Macintosh Word</Application>
+                <DocSecurity>0</DocSecurity>
+                <Lines>1</Lines>
+                <Paragraphs>1</Paragraphs>
+                <ScaleCrop>false</ScaleCrop>
+                <Company>Lenovo (Beijing) Limited</Company>
+                <LinksUpToDate>false</LinksUpToDate>
+            <CharactersWithSpaces>118</CharactersWithSpaces>
+            <SharedDoc>false</SharedDoc>
+            <HyperlinksChanged>false</HyperlinksChanged>
+            <AppVersion>14.0000</AppVersion>
+        </Properties>
+    </pkg:xmlData>
+</pkg:part>
+</pkg:package>

+ 35 - 0
cqb-paper/src/main/java/com/qmth/cqb/paper/service/ExtractConfigFileService.java

@@ -0,0 +1,35 @@
+package com.qmth.cqb.paper.service;
+
+import javax.servlet.http.HttpServletResponse;
+
+import cn.com.qmth.examcloud.common.uac.entity.AccessUser;
+
+import com.qmth.cqb.paper.dto.ExportPaperInfoModel;
+import com.qmth.cqb.paper.model.ExtractConfig;
+
+/**
+ * @author  	chenken
+ * @date    	2017年7月31日 下午6:03:26
+ * @company 	QMTH
+ * @description 调卷规则--文件处理service
+ */
+public interface ExtractConfigFileService {
+	/**
+	 * 保存调卷规则,生成试卷文件
+	 */
+	public void saveExtractConfigAndBuildPaperFile(ExtractConfig extractConfig,String orgName,AccessUser accessUser)  throws Exception;
+	
+	/**
+	 * 导出考试下的试卷信息  校验
+	 * @param exportModel
+	 * @param response
+	 * @throws Exception
+	 */
+	public void exportExamPaperInfoCheck(ExportPaperInfoModel exportModel,HttpServletResponse response)  throws Exception ;
+	/**
+	 * 导出考试下的试卷信息
+	 * @param exportModel
+	 */
+	public void exportExamPaperInfo(ExportPaperInfoModel exportModel,HttpServletResponse response)  throws Exception ;
+}
+

+ 7 - 21
cqb-paper/src/main/java/com/qmth/cqb/paper/service/ExtractConfigService.java

@@ -3,13 +3,12 @@ package com.qmth.cqb.paper.service;
 import java.util.List;
 import java.util.Map;
 
-import javax.servlet.http.HttpServletResponse;
+
 
 import org.springframework.data.domain.Page;
 
 import cn.com.qmth.examcloud.common.uac.entity.AccessUser;
 
-import com.qmth.cqb.paper.dto.ExportPaperInfoModel;
 import com.qmth.cqb.paper.model.ExtractConfig;
 import com.qmth.cqb.paper.model.Paper;
 
@@ -40,18 +39,17 @@ public interface ExtractConfigService {
 	 * @param orgName		机构名称
 	 * @throws Exception
 	 */
-	public void saveExtractConfig(ExtractConfig extractConfig,String orgName,AccessUser accessUser) throws Exception;
+	public Map<String, String> saveExtractConfig(ExtractConfig extractConfig,String orgName,AccessUser accessUser) throws Exception;
 	/**
 	 * 按照设定调卷规则生成一套试卷
-	 * 1.根据extractConfigId取出调卷规则
-	 * 2.根据ExamPaper集合得出每个类型下应该抽取的试卷,并返回 试卷类型--->试卷的map
-	 * 3.根据小题乱序和选项乱序规则,重组试卷
-	 * 4.得到试卷类型--->试卷ID的map,设置到finishedPaperIdMap属性中
-	 * 5.如果 是第一次生成试卷,保存finishedPaperIdMap
+	 * 1.根据ExamPaper集合得出每个类型下应该抽取的试卷,并返回 试卷类型--->试卷的map
+	 * 2.根据小题乱序和选项乱序规则,重组试卷
+	 * 3.得到试卷类型--->试卷ID的map,设置到finishedPaperIdMap属性中
+	 * 4.如果 是第一次生成试卷,保存finishedPaperIdMap
 	 * @param extractConfigId	规则 ID
 	 * @return 类型--->试卷ID的Map集合
 	 */
-	public Map<String, String> makePaperByConfig(String extractConfigId);
+	public Map<String, String> makePaperByConfig(ExtractConfig extractConfig);
 	/**
 	 * 根据给定试卷重组试卷,生成新的试卷
 	 * @param paper					给定的试卷
@@ -84,18 +82,6 @@ public interface ExtractConfigService {
 	 * @return
 	 */
 	public boolean checkIsAllQbjectiveQuestion(String paperId);
-	/**
-	 * 导出考试下的试卷信息  校验
-	 * @param exportModel
-	 * @param response
-	 * @throws Exception
-	 */
-	public void exportExamPaperInfoCheck(ExportPaperInfoModel exportModel,HttpServletResponse response)  throws Exception ;
-	/**
-	 * 导出考试下的试卷信息
-	 * @param exportModel
-	 */
-	public void exportExamPaperInfo(ExportPaperInfoModel exportModel,HttpServletResponse response)  throws Exception ;
 	/**
 	 * 分页查询调卷规则
 	 * @param currentPage

+ 3 - 3
cqb-paper/src/main/java/com/qmth/cqb/paper/service/export/ExportPaperAbstractService.java

@@ -150,6 +150,7 @@ public abstract class ExportPaperAbstractService {
 	
 	//石油大学模板
 	protected static Template SYDX_TEMPLATE_PAPER;
+	protected static Template SYDX_TEMPLATE_ANSWER;
 
 	@Value("${upyun.bucketName}")
 	protected String bucketName;
@@ -190,6 +191,7 @@ public abstract class ExportPaperAbstractService {
 			TJDX_TEMPLATE_ANSWER = CONFIGURATION.getTemplate("tjdx_answer_template.ftl", ENCODING);
 			
 			SYDX_TEMPLATE_PAPER = CONFIGURATION.getTemplate("sydx_paper_template.ftl", ENCODING);
+			SYDX_TEMPLATE_ANSWER = CONFIGURATION.getTemplate("sydx_answer_template.ftl", ENCODING);
 		} catch (Exception e) {
 			e.printStackTrace();
 		}
@@ -897,9 +899,7 @@ public abstract class ExportPaperAbstractService {
 				QuesStructType quesStructType = paperDetailExp.getPaperDetailUnits().get(0).getQuestionType();
 				if(typeNum.getQuestionType()==quesStructType){
 					if(paperDetailExp.getUnitCount()>typeNum.getQuantity()){
-						throw new RuntimeException("试卷:"+paperExp.getName()
-								+"中"+quesStructType.getName()+"的数量:"+paperDetailExp.getUnitCount()
-								+ ",大于试卷结构导出设置的数量:"+typeNum.getQuantity()+",不符合试卷结构导出规则");
+						throw new RuntimeException("课程最大题量超出设定范围,请核实后重新设置导出规则!");
 					}
 				}
 			}

+ 4 - 4
cqb-paper/src/main/java/com/qmth/cqb/paper/service/export/SydxExportPaperService.java

@@ -102,16 +102,16 @@ public class SydxExportPaperService extends ExportPaperAbstractService{
         	if(exportStructure==null){
         		//上传试卷
         		uploadPaperOrAnswerFile(exportPaperExp,extractConfig,accessUser,currNum,SYDX_TEMPLATE_PAPER,ExamFileType.PAPER);
-	        	//上传答案----石油大学无答案模板
-	        	//uploadAnswerWord(paperExp,extractConfig,paperId,accessUser,currNum);
+	        	//上传答案
+        		uploadPaperOrAnswerFile(exportPaperExp,extractConfig,accessUser,currNum,SYDX_TEMPLATE_ANSWER,ExamFileType.ANSWER);
         	}else if(exportStructure!=null&&exportStructure.getExportType()==ExportType.NORMAL){
         		List<QuestionTypeNum> questionTypeNums = exportStructure.getQuestionTypeNums();
         		//检查试卷中客观题的数量是否大于试卷导出设置中的设置的数量
         		checkObjectiveDetailsNum(exportPaperStructureExp,objectiveDetails,questionTypeNums);
 	    		//上传试卷
         		uploadPaperOrAnswerFile(exportPaperExp,extractConfig,accessUser,currNum,SYDX_TEMPLATE_PAPER,ExamFileType.PAPER);
-	        	//上传答案----石油大学无答案模板
-	        	//uploadAnswerWord(paperExp,extractConfig,paperId,accessUser,currNum);
+	        	//上传答案
+        		uploadPaperOrAnswerFile(exportPaperExp,extractConfig,accessUser,currNum,SYDX_TEMPLATE_ANSWER,ExamFileType.ANSWER);
 				//上传试卷结构   不能在上传试卷和答案之前
         		uploadPaperStructure(exportPaperStructureExp,extractConfig,accessUser,currNum,questionTypeNums);
         	}else if(exportStructure!=null&&exportStructure.getExportType()==ExportType.ONLINE){

+ 1 - 1
cqb-paper/src/main/java/com/qmth/cqb/paper/service/impl/ExportStructureServiceImpl.java

@@ -105,7 +105,7 @@ public class ExportStructureServiceImpl implements ExportStructureService {
 			for(QuestionTypeNum questionTypeNum:questionTypeNums){
 				if(questionTypeNum.getQuantity()==null){
 					//结构设置不完整
-					throw new RuntimeException("试卷结构导出设置不完整");
+					throw new RuntimeException("试卷结构导出设置不完整,请核实后重新设置导出规则!");
 				}
 			}
 		}

+ 281 - 0
cqb-paper/src/main/java/com/qmth/cqb/paper/service/impl/ExtractConfigFileServiceImpl.java

@@ -0,0 +1,281 @@
+package com.qmth.cqb.paper.service.impl;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.Map.Entry;
+
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.commons.io.FileUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Service;
+
+import cn.com.qmth.examcloud.common.dto.core.ExamCourseDto;
+import cn.com.qmth.examcloud.common.uac.entity.AccessUser;
+import cn.com.qmth.examcloud.common.util.excel.ExcelWriter;
+
+import com.qmth.cqb.paper.dao.ExportServiceManageRepo;
+import com.qmth.cqb.paper.dao.ExtractConfigRepo;
+import com.qmth.cqb.paper.dto.ExportPaperInfoModel;
+import com.qmth.cqb.paper.dto.ObjectiveQuestionStructure;
+import com.qmth.cqb.paper.dto.PaperDetailExp;
+import com.qmth.cqb.paper.dto.PaperDetailUnitExp;
+import com.qmth.cqb.paper.dto.PaperExp;
+import com.qmth.cqb.paper.dto.SubjectiveQuestionStructure;
+import com.qmth.cqb.paper.model.ExamFile;
+import com.qmth.cqb.paper.model.ExportServiceManage;
+import com.qmth.cqb.paper.model.ExportStructure;
+import com.qmth.cqb.paper.model.ExtractConfig;
+import com.qmth.cqb.paper.model.QuestionTypeNum;
+import com.qmth.cqb.paper.rpc.ExamCourseClient;
+import com.qmth.cqb.paper.service.ExamFileService;
+import com.qmth.cqb.paper.service.ExportStructureService;
+import com.qmth.cqb.paper.service.ExtractConfigFileService;
+import com.qmth.cqb.paper.service.ExtractConfigService;
+import com.qmth.cqb.paper.service.export.ExportPaperAbstractService;
+import com.qmth.cqb.utils.FileDisposeUtil;
+import com.qmth.cqb.utils.SpringContextUtils;
+import com.qmth.cqb.utils.enums.ExamFileType;
+import com.qmth.cqb.utils.enums.ExportType;
+import com.qmth.cqb.utils.enums.ExportWay;
+
+/**
+ * @author  	chenken
+ * @date    	2017年7月31日 下午6:03:46
+ * @company 	QMTH
+ * @description ExtractConfigFileServiceImpl.java
+ */
+@Service("extractConfigFileService")
+public class ExtractConfigFileServiceImpl implements ExtractConfigFileService {
+	
+	private static final Logger logger = LoggerFactory.getLogger(ExtractConfigFileServiceImpl.class);
+	
+    @Autowired
+    private ExamCourseClient examCourseClient;
+    
+    @Autowired
+    private ExportStructureService exportStructureService;
+    
+    @Autowired
+    private ExtractConfigService extractConfigService;
+    
+    @Autowired
+    private ExamFileService examFileService;
+    
+    @Autowired
+    private ExportServiceManageRepo exportServiceManageRepo;
+    
+    @Autowired
+    private ExtractConfigRepo extractConfigRepo;
+    
+	@Value("${upyun.downloadUrl}")
+	protected String downloadUrl;
+	
+	@Value("${upyun.downloadDirectory}")
+	private String downloadDirectory;
+	
+	@Value("${upyun.zipDirectory}")
+	private String zipDirectory;
+	
+	@Override
+	public void saveExtractConfigAndBuildPaperFile(ExtractConfig extractConfig,String orgName,AccessUser accessUser) throws Exception {
+		//查询试卷导出设置
+		ExportStructure exportStructure = exportStructureService.findStructureByExamId(extractConfig.getExamId()+"");
+		//生成试卷
+		Map<String, String> finishedPaperIdMap = extractConfigService.saveExtractConfig(extractConfig, orgName, accessUser);
+		Set<Entry<String,String>> entry = finishedPaperIdMap.entrySet();
+		Iterator<Entry<String,String>> iterator = entry.iterator();
+		while(iterator.hasNext()){
+			String paperId = iterator.next().getValue();
+			accessUser.setRootOrgName(orgName);
+			uploadPaperFile(extractConfig,paperId,exportStructure,accessUser);
+		}
+		extractConfig.setFinishedPaperIdMap(finishedPaperIdMap);
+    	extractConfig.setIfFinish((short)1);
+    	extractConfigRepo.save(extractConfig);
+	}
+	
+	/**
+	 * 生成并上传试卷文件
+	 * @param extractConfig
+	 * @param paperId
+	 * @param exportStructure
+	 * @param accessUser
+	 * @throws Exception
+	 */
+	private void uploadPaperFile(ExtractConfig extractConfig,String paperId,ExportStructure exportStructure,AccessUser accessUser) throws Exception {
+		ExportServiceManage esm = exportServiceManageRepo.findByOrgName(accessUser.getRootOrgName());
+    	ExportPaperAbstractService exportPaperAbstractService = (ExportPaperAbstractService) SpringContextUtils.getBeanById(esm.getExportServiceName());
+    	exportPaperAbstractService.uploadFile(extractConfig,paperId,exportStructure,accessUser);
+	}
+	
+    @Override
+	public void exportExamPaperInfoCheck(ExportPaperInfoModel exportModel,HttpServletResponse response) throws Exception {
+    	ExportStructure exportStructure = exportStructureService.findStructureByExamId(exportModel.getExamId()+"");
+		//如果是批量导出
+		if(exportModel.getExportWay()==ExportWay.BATCH){
+			if(exportStructure==null){
+				throw new RuntimeException("该考试下的试卷结构导出设置未制定,不能导出");
+			}
+			//查询该考试下是否所有课程都制定了调卷规则
+			checkAllCourseByExamId(exportModel.getExamId());
+		}
+	}
+
+	@Override
+	public void exportExamPaperInfo(ExportPaperInfoModel exportModel,HttpServletResponse response) throws Exception {
+		//创建试卷和压缩文件 文件夹
+		FileDisposeUtil.createDirectory(downloadDirectory);
+		//创建压缩文件的文件夹
+		FileDisposeUtil.createDirectory(zipDirectory);
+		//如果是批量导出,首先检查该考试下的所有课程是否都制定了调卷规则
+		List<String> paperIds = new ArrayList<String>();
+		ExportStructure exportStructure = exportStructureService.findStructureByExamId(exportModel.getExamId()+"");
+		//如果是普通类型的批量导出,并且选择了导出试卷结构
+		if(exportModel.getExportContentList().contains(ExamFileType.PAPER_STRUCTURE_OBJECTIVE.name())
+				&&exportModel.getExportWay()==ExportWay.BATCH
+					&&exportStructure.getExportType()==ExportType.NORMAL){
+			paperIds = checkAllCourseByExamId(exportModel.getExamId());
+			//生成试卷结构到downloadDirectory目录
+			if(paperIds.size()>0){
+				//创建试卷结构Excel文件
+				makePaperStructure(exportStructure.getExamName(),paperIds,exportStructure);
+			}
+		}
+		//根据条件获取到文件下载路径,下载文件到服务器的downloadDirectory文件夹
+		List<ExamFile> examFiles = examFileService.findExamFileListByExportPaperInfoModel(exportModel);
+		if(examFiles!=null&&examFiles.size()>0){
+			for(ExamFile examFile:examFiles){
+				FileDisposeUtil.saveUrlAs(downloadUrl+examFile.getFilePath(),downloadDirectory+File.separator+examFile.getFileName());
+			}
+		}
+		//创建压缩文件名称
+		String zipFileName = exportStructure.getExamId();
+		//将downloadDirectory文件夹压缩成zip文件,存放到zipDirectory文件夹中
+		FileDisposeUtil.fileToZip(downloadDirectory,zipDirectory,zipFileName);
+		//下载zip文件到客户端
+		FileDisposeUtil.downloadFile(zipFileName+".zip",zipDirectory+File.separator+zipFileName+".zip",response);
+		//删除文件夹
+		FileUtils.deleteQuietly(new File(downloadDirectory));
+		FileUtils.deleteQuietly(new File(zipDirectory));
+	}
+	
+	/**
+	 * 查询该考试下是否所有课程都制定了调卷规则
+	 * @param examId
+	 */
+	private List<String> checkAllCourseByExamId(String examId) {
+		List<String> paperIdList = new ArrayList<String>();
+		List<ExamCourseDto> examCourseDtoList = examCourseClient.findExamCourseByExamId(examId);
+		for(ExamCourseDto examCourseDto:examCourseDtoList){
+			ExtractConfig condition = new ExtractConfig();
+			condition.setExamId(examCourseDto.getExamId());
+			condition.setCourseCode(examCourseDto.getCourseCode());
+			ExtractConfig extractConfig = extractConfigService.findConfig(condition);
+			if(extractConfig==null){
+				throw new RuntimeException("该考试下的课程“"+condition.getCourseName()+"”没有制定调卷规则,不能批量导出,请保存调卷规则生成文件");
+			}
+			
+			Map<String,String> finishedPaperIdMap = extractConfig.getFinishedPaperIdMap();
+			if(extractConfig.getIfFinish()==0){
+				throw new RuntimeException("该考试下的课程“"+extractConfig.getCourseName()+"”考试文件没有生成,不能批量导出,请保存调卷规则生成文件");
+			}
+			
+			checkExamFileExists(examId,examCourseDto);
+			
+			Set<Entry<String,String>> entry = finishedPaperIdMap.entrySet();
+			Iterator<Entry<String,String>> iterator = entry.iterator();
+			while(iterator.hasNext()){
+				String paperId = iterator.next().getValue();
+				paperIdList.add(paperId);
+			}
+		}
+		return paperIdList;
+	}
+	
+	/**
+	 * 检查试卷文件是否存在
+	 * @param examId
+	 * @param examCourseDto
+	 */
+	private void checkExamFileExists(String examId,ExamCourseDto examCourseDto){
+		ExamFile examFileCondition = new ExamFile();
+		examFileCondition.setExamId(examId);
+		examFileCondition.setCourseId(examCourseDto.getCourseCode());
+		
+		List<ExamFile> examfiles = examFileService.findExamFileListByExamFile(examFileCondition);
+		
+		//检查是否都生成了试卷文件
+		boolean paperFlag = false;
+		for(ExamFile examFile:examfiles){
+			if(examFile.getExamFileType()==ExamFileType.PAPER){
+				paperFlag = true;
+				continue;
+			}
+		}
+		if(!paperFlag){
+			throw new RuntimeException("该考试下的课程“"+examCourseDto.getCourseName()+"”考试文件没有生成,不能批量导出,请重新保存调卷规则生成");
+		}
+	}
+	
+	/**
+	 * 将该考试下的所有课程试卷的结构生成到一张Excel表中
+	 * @param examName
+	 * @param paperIds
+	 * @param exportStructure
+	 * @throws Exception
+	 */
+	private void makePaperStructure(String examName,List<String> paperIds,ExportStructure exportStructure) throws Exception{
+		logger.info("正在批量生成试卷结构...");
+		List<QuestionTypeNum> questionTypeNums = exportStructure.getQuestionTypeNums();
+		
+		List<ObjectiveQuestionStructure> objectiveQuestionStructureList = new ArrayList<ObjectiveQuestionStructure>();
+		
+		List<SubjectiveQuestionStructure> subjectiveQuestionStructureList = new ArrayList<SubjectiveQuestionStructure>();
+		
+		ExportServiceManage esm = exportServiceManageRepo.findByOrgName(exportStructure.getOrgName());
+    	ExportPaperAbstractService exportPaperAbstractService = (ExportPaperAbstractService) SpringContextUtils.getBeanById(esm.getExportServiceName());
+		
+		for(String paperId:paperIds){
+			PaperExp paperExp = exportPaperAbstractService.initExportPaper(paperId);
+			List<PaperDetailExp> objectiveDetails = paperExp.getObjectiveDetails();
+			//根据设置补齐客观题
+			exportPaperAbstractService.fillObjectiveQuestions(objectiveDetails, questionTypeNums);
+			List<ObjectiveQuestionStructure> objectiveList = new ArrayList<ObjectiveQuestionStructure>();
+	    	for(PaperDetailExp paperDetailExp:objectiveDetails){
+	    		for(PaperDetailUnitExp unit:paperDetailExp.getPaperDetailUnits()){
+	    			objectiveList.add(new ObjectiveQuestionStructure(paperExp,paperDetailExp,unit));
+	    		}
+	    	}
+	    	objectiveQuestionStructureList.addAll(objectiveList);
+			
+	    	List<PaperDetailExp> subjectiveDetails = paperExp.getSubjectiveDetails();
+	    	List<SubjectiveQuestionStructure> subjectiveList = new ArrayList<SubjectiveQuestionStructure>();
+	    	for(PaperDetailExp paperDetailExp:subjectiveDetails){
+	    		for(PaperDetailUnitExp unit:paperDetailExp.getPaperDetailUnits()){
+	    			subjectiveList.add(new SubjectiveQuestionStructure(paperExp,paperDetailExp,unit));
+	    		}
+	    	}
+	    	subjectiveQuestionStructureList.addAll(subjectiveList);
+		}
+		
+		ExcelWriter objectiveExcelExporter = new ExcelWriter(ObjectiveQuestionStructure.class); 
+    	FileOutputStream out1 = new FileOutputStream(downloadDirectory+"\\"+examName+"_客观题.xlsx");
+    	objectiveExcelExporter.write(examName+"_客观题.xlsx",objectiveQuestionStructureList,out1);
+    	
+    	ExcelWriter subjectiveExcelExporter = new ExcelWriter(SubjectiveQuestionStructure.class); 
+    	FileOutputStream out2 = new FileOutputStream(downloadDirectory+"\\"+examName+"_主观题.xlsx");
+    	subjectiveExcelExporter.write(examName+"_主观题.xlsx",subjectiveQuestionStructureList,out2);
+    	
+    	logger.info("批量生成试卷结构完成");
+	}
+
+}

+ 4 - 198
cqb-paper/src/main/java/com/qmth/cqb/paper/service/impl/ExtractConfigServiceImpl.java

@@ -1,26 +1,20 @@
 package com.qmth.cqb.paper.service.impl;
 
-import java.io.File;
-import java.io.FileOutputStream;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
-import java.util.Map.Entry;
 import java.util.Random;
 import java.util.Set;
 
-import javax.servlet.http.HttpServletResponse;
 
-import org.apache.commons.io.FileUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.nlpcn.commons.lang.util.StringUtil;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
 import org.springframework.data.domain.Example;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.PageImpl;
@@ -41,46 +35,28 @@ import cn.com.qmth.examcloud.common.dto.question.SubQuestionDto;
 import cn.com.qmth.examcloud.common.dto.question.enums.QuesStructType;
 import cn.com.qmth.examcloud.common.uac.entity.AccessUser;
 import cn.com.qmth.examcloud.common.util.GsonUtil;
-import cn.com.qmth.examcloud.common.util.excel.ExcelWriter;
 
 import com.qmth.cqb.paper.dao.ExportServiceManageRepo;
 import com.qmth.cqb.paper.dao.ExtractConfigRepo;
 import com.qmth.cqb.paper.dao.PaperDetailRepo;
 import com.qmth.cqb.paper.dao.PaperDetailUnitRepo;
 import com.qmth.cqb.paper.dao.PaperRepo;
-import com.qmth.cqb.paper.dto.ExportPaperInfoModel;
-import com.qmth.cqb.paper.dto.ObjectiveQuestionStructure;
 import com.qmth.cqb.paper.dto.PageExamCourse;
-import com.qmth.cqb.paper.dto.PaperDetailExp;
-import com.qmth.cqb.paper.dto.PaperDetailUnitExp;
-import com.qmth.cqb.paper.dto.PaperExp;
-import com.qmth.cqb.paper.dto.SubjectiveQuestionStructure;
-import com.qmth.cqb.paper.model.ExamFile;
 import com.qmth.cqb.paper.model.ExamPaper;
-import com.qmth.cqb.paper.model.ExportServiceManage;
-import com.qmth.cqb.paper.model.ExportStructure;
 import com.qmth.cqb.paper.model.ExtractConfig;
 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.paper.model.QuestionTypeNum;
 import com.qmth.cqb.paper.rpc.ExamCourseClient;
-import com.qmth.cqb.paper.service.ExamFileService;
 import com.qmth.cqb.paper.service.ExportStructureService;
 import com.qmth.cqb.paper.service.ExtractConfigService;
 import com.qmth.cqb.paper.service.PaperDetailUnitService;
 import com.qmth.cqb.paper.service.PaperService;
-import com.qmth.cqb.paper.service.export.ExportPaperAbstractService;
-import com.qmth.cqb.paper.service.export.SxsfExportPaperService;
 import com.qmth.cqb.question.dao.QuesRepo;
 import com.qmth.cqb.question.model.QuesOption;
 import com.qmth.cqb.question.model.Question;
 import com.qmth.cqb.utils.BeanCopierUtil;
 import com.qmth.cqb.utils.CommonUtils;
-import com.qmth.cqb.utils.FileDisposeUtil;
-import com.qmth.cqb.utils.SpringContextUtils;
-import com.qmth.cqb.utils.enums.ExportType;
-import com.qmth.cqb.utils.enums.ExportWay;
 import com.qmth.cqb.utils.enums.PaperType;
 
 /**
@@ -122,36 +98,12 @@ public class ExtractConfigServiceImpl implements ExtractConfigService {
     @Autowired
     private ExportServiceManageRepo exportServiceManageRepo;
     
-    @Autowired
-    private ExamFileService examFileService;
-    
     @Autowired
     private ExportStructureService exportStructureService;
     
     @Autowired
     private ExamCourseClient examCourseClient;
     
-    @Autowired
-    private SxsfExportPaperService sxsfExportPaperService;
-    
-    @Value("${upyun.bucketName}")
-	private String bucketName;
-	
-	@Value("${upyun.userName}")
-	private String userName;
-	
-	@Value("${upyun.password}")
-	private String password;
-	
-	@Value("${upyun.downloadUrl}")
-	protected String downloadUrl;
-	
-	@Value("${upyun.downloadDirectory}")
-	private String downloadDirectory;
-	
-	@Value("${upyun.zipDirectory}")
-	private String zipDirectory;
-    
 	@Override
 	public ExtractConfig findConfig(ExtractConfig condition) {
 		if(condition.getExamId()==null){
@@ -165,9 +117,7 @@ public class ExtractConfigServiceImpl implements ExtractConfigService {
 	}
 
 	@Override
-	public void saveExtractConfig(ExtractConfig extractConfig,String orgName,AccessUser accessUser) throws Exception {
-		//查询试卷导出设置
-		ExportStructure exportStructure = exportStructureService.findStructureByExamId(extractConfig.getExamId()+"");
+	public Map<String, String> saveExtractConfig(ExtractConfig extractConfig,String orgName,AccessUser accessUser) throws Exception {
 		List<ExamPaper> examPapers = extractConfig.getExamPaperList();
 		for(int i=0;i<examPapers.size();i++){
 			ExamPaper examPaper = examPapers.get(i);
@@ -176,23 +126,7 @@ public class ExtractConfigServiceImpl implements ExtractConfigService {
 			examPaper.setPaper(paper);
 		}
 		extractConfig.setOrgName(orgName);
-		extractConfig = extractConfigRepo.save(extractConfig);
-		//生成试卷
-		Map<String, String> paperMap =  makePaperByConfig(extractConfig.getId());
-		//将试卷生成Word后上传至又拍云
-		Set<Entry<String,String>> entry = paperMap.entrySet();
-		Iterator<Entry<String,String>> iterator = entry.iterator();
-		while(iterator.hasNext()){
-			String paperId = iterator.next().getValue();
-			accessUser.setRootOrgName(orgName);
-			uploadPaperFile(extractConfig,paperId,exportStructure,accessUser);
-		}
-	}
-
-	private void uploadPaperFile(ExtractConfig extractConfig,String paperId,ExportStructure exportStructure,AccessUser accessUser) throws Exception {
-		ExportServiceManage esm = exportServiceManageRepo.findByOrgName(accessUser.getRootOrgName());
-    	ExportPaperAbstractService exportPaperAbstractService = (ExportPaperAbstractService) SpringContextUtils.getBeanById(esm.getExportServiceName());
-    	exportPaperAbstractService.uploadFile(extractConfig,paperId,exportStructure,accessUser);
+		return makePaperByConfig(extractConfig);
 	}
 
 	@Override
@@ -266,10 +200,8 @@ public class ExtractConfigServiceImpl implements ExtractConfigService {
 	}
 
 	@Override
-	public Map<String, String> makePaperByConfig(String extractConfigId) {
+	public Map<String, String> makePaperByConfig(ExtractConfig extractConfig) {
 		Map<String, String> finishedPaperIdMap = new HashMap<String, String>();
-		//取出调卷规则
-		ExtractConfig extractConfig = this.findConfigById(extractConfigId);
 		if(extractConfig==null){
 			throw new RuntimeException("调卷规则不存在");
 		}
@@ -286,9 +218,6 @@ public class ExtractConfigServiceImpl implements ExtractConfigService {
 							        				 extractConfig.getScrambling_the_option_order());
         	finishedPaperIdMap.put(key, newPaper.getId());
         }
-    	extractConfig.setFinishedPaperIdMap(finishedPaperIdMap);
-    	extractConfig.setIfFinish((short)1);
-    	extractConfigRepo.save(extractConfig);
         return finishedPaperIdMap;
 	}
 
@@ -340,7 +269,7 @@ public class ExtractConfigServiceImpl implements ExtractConfigService {
 	private Map<String,Paper> getExamPaperByProbability(List<ExamPaper> examPaperList){
 		Map<String,Paper> paperByTypeMap = new HashMap<String,Paper>();
 		if(examPaperList == null || examPaperList.size() == 0) {
-       	 	return null;  
+			throw new RuntimeException("可供抽取的试卷集合为空,无法抽取试卷"); 
         }
 		Map<String,List<ExamPaper>> examPaperMap = new HashMap<String,List<ExamPaper>>();
 		for(int i = 0;i<examPaperList.size();i++){
@@ -665,129 +594,6 @@ public class ExtractConfigServiceImpl implements ExtractConfigService {
         return newQuesOptions;
     }
     
-    @Override
-	public void exportExamPaperInfoCheck(ExportPaperInfoModel exportModel,HttpServletResponse response) throws Exception {
-    	ExportStructure exportStructure = exportStructureService.findStructureByExamId(exportModel.getExamId()+"");
-		//如果是批量导出
-		if(exportModel.getExportWay()==ExportWay.BATCH){
-			if(exportStructure==null){
-				throw new RuntimeException("该考试下的试卷结构导出设置未制定,不能导出");
-			}
-			//查询该考试下是否所有课程都制定了调卷规则
-			checkAllCourseByExamId(exportModel.getExamId());
-		}
-	}
-
-	@Override
-	public void exportExamPaperInfo(ExportPaperInfoModel exportModel,HttpServletResponse response) throws Exception {
-		//创建试卷和压缩文件 文件夹
-		FileDisposeUtil.createDirectory(downloadDirectory);
-		//创建压缩文件的文件夹
-		FileDisposeUtil.createDirectory(zipDirectory);
-		//如果是批量导出,首先检查该考试下的所有课程是否都制定了调卷规则
-		List<String> paperIds = new ArrayList<String>();
-		ExportStructure exportStructure = exportStructureService.findStructureByExamId(exportModel.getExamId()+"");
-		//如果是批量导出
-		if(exportModel.getExportWay()==ExportWay.BATCH){
-			if(exportStructure==null){
-				throw new RuntimeException("该考试下的试卷结构导出设置未制定,不能导出");
-			}
-			if(exportStructure.getExportType()==ExportType.NORMAL){
-				paperIds = checkAllCourseByExamId(exportModel.getExamId());
-				//生成试卷结构到downloadDirectory目录
-				if(paperIds.size()>0){
-					//创建试卷结构Excel文件
-					makePaperStructure(exportStructure.getExamName(),paperIds,exportStructure);
-				}
-			}
-		}
-		//根据条件获取到文件下载路径,下载文件到服务器的downloadDirectory文件夹
-		List<ExamFile> examFiles = examFileService.findExamFileListByExportPaperInfoModel(exportModel);
-		if(examFiles!=null&&examFiles.size()>0){
-			for(ExamFile examFile:examFiles){
-				FileDisposeUtil.saveUrlAs(downloadUrl+examFile.getFilePath(),downloadDirectory+File.separator+examFile.getFileName());
-			}
-		}
-		//创建压缩文件名称
-		String zipFileName = exportStructure.getExamId();
-		//将downloadDirectory文件夹压缩成zip文件,存放到zipDirectory文件夹中
-		FileDisposeUtil.fileToZip(downloadDirectory,zipDirectory,zipFileName);
-		//下载zip文件到客户端
-		FileDisposeUtil.downloadFile(zipFileName+".zip",zipDirectory+File.separator+zipFileName+".zip",response);
-		//删除文件夹
-		FileUtils.deleteQuietly(new File(downloadDirectory));
-		FileUtils.deleteQuietly(new File(zipDirectory));
-	}
-	
-	/**
-	 * 查询该考试下是否所有课程都制定了调卷规则
-	 * @param examId
-	 */
-	private List<String> checkAllCourseByExamId(String examId) {
-		List<String> paperIdList = new ArrayList<String>();
-		List<ExamCourseDto> examCourseDtoList = examCourseClient.findExamCourseByExamId(examId);
-		for(ExamCourseDto examCourseDto:examCourseDtoList){
-			ExtractConfig extractConfig = new ExtractConfig();
-			extractConfig.setExamId(examCourseDto.getExamId());
-			extractConfig.setExamType(examCourseDto.getExamType().name());
-			extractConfig.setCourseCode(examCourseDto.getCourseCode());
-			extractConfig = findConfig(extractConfig);
-			Map<String,String> finishedPaperIdMap = extractConfig.getFinishedPaperIdMap();
-			if(extractConfig==null||finishedPaperIdMap==null){
-				throw new RuntimeException("该考试下的课程“"+extractConfig.getCourseName()+"”没有制定调卷规则或考试文件没有生成,不能批量导出");
-			}
-			Set<Entry<String,String>> entry = finishedPaperIdMap.entrySet();
-			Iterator<Entry<String,String>> iterator = entry.iterator();
-			while(iterator.hasNext()){
-				String paperId = iterator.next().getValue();
-				paperIdList.add(paperId);
-			}
-		}
-		return paperIdList;
-	}
-	
-	private void makePaperStructure(String examName,List<String> paperIds,ExportStructure exportStructure) throws Exception{
-		List<QuestionTypeNum> questionTypeNums = exportStructure.getQuestionTypeNums();
-		
-		List<ObjectiveQuestionStructure> objectiveQuestionStructureList = new ArrayList<ObjectiveQuestionStructure>();
-		
-		List<SubjectiveQuestionStructure> subjectiveQuestionStructureList = new ArrayList<SubjectiveQuestionStructure>();
-		
-		ExportServiceManage esm = exportServiceManageRepo.findByOrgName(exportStructure.getOrgName());
-    	ExportPaperAbstractService exportPaperAbstractService = (ExportPaperAbstractService) SpringContextUtils.getBeanById(esm.getExportServiceName());
-		
-		for(String paperId:paperIds){
-			PaperExp paperExp = exportPaperAbstractService.initExportPaper(paperId);
-			List<PaperDetailExp> objectiveDetails = paperExp.getObjectiveDetails();
-			//根据设置补齐客观题
-			exportPaperAbstractService.fillObjectiveQuestions(objectiveDetails, questionTypeNums);
-			List<ObjectiveQuestionStructure> objectiveList = new ArrayList<ObjectiveQuestionStructure>();
-	    	for(PaperDetailExp paperDetailExp:objectiveDetails){
-	    		for(PaperDetailUnitExp unit:paperDetailExp.getPaperDetailUnits()){
-	    			objectiveList.add(new ObjectiveQuestionStructure(paperExp,paperDetailExp,unit));
-	    		}
-	    	}
-	    	objectiveQuestionStructureList.addAll(objectiveList);
-			
-	    	List<PaperDetailExp> subjectiveDetails = paperExp.getSubjectiveDetails();
-	    	List<SubjectiveQuestionStructure> subjectiveList = new ArrayList<SubjectiveQuestionStructure>();
-	    	for(PaperDetailExp paperDetailExp:subjectiveDetails){
-	    		for(PaperDetailUnitExp unit:paperDetailExp.getPaperDetailUnits()){
-	    			subjectiveList.add(new SubjectiveQuestionStructure(paperExp,paperDetailExp,unit));
-	    		}
-	    	}
-	    	subjectiveQuestionStructureList.addAll(subjectiveList);
-		}
-		
-		ExcelWriter objectiveExcelExporter = new ExcelWriter(ObjectiveQuestionStructure.class); 
-    	FileOutputStream out1 = new FileOutputStream(downloadDirectory+"\\"+examName+"_客观题.xlsx");
-    	objectiveExcelExporter.write(examName+"_客观题.xlsx",objectiveQuestionStructureList,out1);
-    	
-    	ExcelWriter subjectiveExcelExporter = new ExcelWriter(SubjectiveQuestionStructure.class); 
-    	FileOutputStream out2 = new FileOutputStream(downloadDirectory+"\\"+examName+"_主观题.xlsx");
-    	subjectiveExcelExporter.write(examName+"_主观题.xlsx",subjectiveQuestionStructureList,out2);
-	}
-
 	@Override
 	public Page<ExtractConfig> findPageExtractConfig(int currentPage,int pageSize, Long examId, String courseNo) {
 		String examCourseJson = examCourseClient.findPageExamCourse(examId,courseNo,currentPage,pageSize);

+ 10 - 17
cqb-paper/src/main/java/com/qmth/cqb/paper/web/ExtractConfigController.java

@@ -32,6 +32,7 @@ import cn.com.qmth.examcloud.common.util.ErrorMsg;
 
 import com.qmth.cqb.paper.dto.ExportPaperInfoModel;
 import com.qmth.cqb.paper.model.ExtractConfig;
+import com.qmth.cqb.paper.service.ExtractConfigFileService;
 import com.qmth.cqb.paper.service.ExtractConfigService;
 import com.qmth.cqb.utils.enums.ExportWay;
 
@@ -51,6 +52,9 @@ public class ExtractConfigController {
 	@Autowired
 	private ExtractConfigService extractConfigService;
 	
+	@Autowired
+	private ExtractConfigFileService extractConfigFileService;
+	
 	@ApiOperation(value = "根据考试ID和课程ID获取调卷规则", notes = "根据考试ID和课程ID获取调卷规则")
     @GetMapping(value = "/findPageExtractConfig/{currentPage}/{pageSize}")
 	public ResponseEntity findPageExtractConfig(@PathVariable int currentPage,
@@ -89,9 +93,9 @@ public class ExtractConfigController {
 											@PathVariable String orgName,
 											@RequestBody ExtractConfig extractConfig){
 		try{
-			AccessUser user = (AccessUser) request.getAttribute("accessUser");
-			extractConfig.setOrgId(user.getRootOrgId()+"");
-			extractConfigService.saveExtractConfig(extractConfig,orgName,user);
+			AccessUser accessUser = (AccessUser) request.getAttribute("accessUser");
+			extractConfig.setOrgId(accessUser.getRootOrgId()+"");
+			extractConfigFileService.saveExtractConfigAndBuildPaperFile(extractConfig, orgName, accessUser);
 			return new ResponseEntity<Object>(HttpStatus.OK);
 		}catch(Exception e){
 			e.printStackTrace();
@@ -99,17 +103,6 @@ public class ExtractConfigController {
 		}
 	}
 	
-	@ApiOperation(value = "根据调卷规则生成试卷", notes = "根据调卷规则生成试卷")
-    @PutMapping(value = "/makePaperByConfig/{id}")
-	public ResponseEntity makePaperByConfig(@PathVariable String id){
-		try{
-			extractConfigService.makePaperByConfig(id);
-			return new ResponseEntity(HttpStatus.OK);
-		}catch(Exception e){
-			return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR);
-		}
-	}
-	
 	@ApiOperation(value = "抽取试卷", notes = "抽取试卷")
     @GetMapping(value = "/extract/{exam_id}/{course_code}/{group_code}")
     public ResponseEntity extract(@PathVariable Long exam_id, @PathVariable String course_code,@PathVariable String group_code) {
@@ -179,7 +172,7 @@ public class ExtractConfigController {
 		}
 		exportModel.setExportContentList(list);
 		try {
-			extractConfigService.exportExamPaperInfo(exportModel,response);
+			extractConfigFileService.exportExamPaperInfo(exportModel,response);
 		} catch (Exception e) {
 			logger.error("Method:exportExamPaperInfo"+e.getMessage());
 			e.printStackTrace();
@@ -195,7 +188,7 @@ public class ExtractConfigController {
 		exportModel.setExportWay(ExportWay.strToEnum(exportWay));
 		exportModel.setExamId(examId);
 		try {
-			extractConfigService.exportExamPaperInfoCheck(exportModel,response);
+			extractConfigFileService.exportExamPaperInfoCheck(exportModel,response);
 			return new ResponseEntity<String>(HttpStatus.OK);
 		} catch (Exception e) {
 			logger.error("Method:exportExamPaperInfoCheck"+e.getMessage());
@@ -220,7 +213,7 @@ public class ExtractConfigController {
 		}
 		exportModel.setExportContentList(list);
 		try {
-			extractConfigService.exportExamPaperInfo(exportModel,response);
+			extractConfigFileService.exportExamPaperInfo(exportModel,response);
 		} catch (Exception e) {
 			logger.error("Method:exportExamPaperInfo"+e.getMessage());
 			e.printStackTrace();

+ 15 - 0
cqb-paper/src/main/java/com/qmth/cqb/paper/web/PaperDetailController.java

@@ -1,9 +1,11 @@
 package com.qmth.cqb.paper.web;
 
 import java.util.List;
+import java.util.Map;
 
 import javax.servlet.http.HttpServletRequest;
 
+import org.apache.commons.lang.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.ResponseEntity;
@@ -13,7 +15,10 @@ import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.multipart.MultipartFile;
+import org.springframework.web.multipart.commons.CommonsMultipartFile;
 
 import com.qmth.cqb.paper.dao.PaperDetailRepo;
 import com.qmth.cqb.paper.dao.PaperRepo;
@@ -128,4 +133,14 @@ public class PaperDetailController {
     public ResponseEntity getPaperDetailsByPaperId(@PathVariable String paperId) {
         return new ResponseEntity(paperService.findPaperDetailsById(paperId), HttpStatus.OK);
     }
+    
+    
+    @ApiOperation(value = "上传音频文件", notes = "上传音频文件")
+    @PostMapping(value = "/uploadRadio")
+    public ResponseEntity uploadRadio(List<MultipartFile> files,HttpServletRequest request){
+    	for(MultipartFile file:files){
+    		System.out.println("名称:"+file.getOriginalFilename()+",大小:"+file.getSize());
+    	}
+    	return null;
+    }
 }

+ 1 - 1
cqb-starter/src/main/resources/application-dev.properties

@@ -3,7 +3,7 @@ spring.data.mongodb.uri=mongodb://192.168.1.99:27017/comm-ques-bank
 spring.data.mongodb.grid-fs-database=comm-ques-bank
 spring.data.mongodb.database=comm-ques-bank
 eureka.client.serviceUrl.defaultZone=http://192.168.1.99:1111/eureka/
-spring.application.name=ExamCloud-service-question
+spring.application.name=chenken-ExamCloud-service-question
 
 spring.redis.host=192.168.1.99
 spring.redis.port=6379

+ 0 - 7
cqb-starter/src/test/java/com/qmth/cqb/ExtractConfigServiceTest.java

@@ -67,13 +67,6 @@ public class ExtractConfigServiceTest {
 		extractConfig.setExamPaperList(examPaperList);
 		extractConfigService.saveExtractConfig(extractConfig,"机构名称");*/
 	}
-	/**
-	 * 测试根据调卷规则ID生成试卷
-	 */
-	@Test
-	public void testMakePaperByConfig(){
-		extractConfigService.makePaperByConfig("58f6d77aaa9e290d805befa3");
-	}
 	
 	private List<ExamPaper> buildOnlineExamPaper(){
 		List<ExamPaper> examPaperList = new ArrayList<ExamPaper>();