diff --git a/inspect-main/inspect-main-task/src/main/java/com/inspect/resultmain/controller/DonghuanReportExportController.java b/inspect-main/inspect-main-task/src/main/java/com/inspect/resultmain/controller/DonghuanReportExportController.java index fb570a6..fb03cf6 100644 --- a/inspect-main/inspect-main-task/src/main/java/com/inspect/resultmain/controller/DonghuanReportExportController.java +++ b/inspect-main/inspect-main-task/src/main/java/com/inspect/resultmain/controller/DonghuanReportExportController.java @@ -61,9 +61,12 @@ import java.util.zip.ZipOutputStream; * + 仿宋_GB2312 16pt 浅蓝副标题 + 封面签署表(初审/校对/审核/巡检日期) *
+ * 注意:标题从「标题 2」开始,「标题 1」留给报告标题/上层文档不使用,
+ * 因此样式与大纲级别都比编号级别高一级(见 {@link #HEADING_LEVEL_OFFSET})。
+ */
+ private static final String[] HEADING_STYLE_ID = {"Heading2", "Heading3", "Heading4", "Heading5"};
+ /**
+ * 标题级别起始偏移:标题从「标题 2」开始(一级留出),所以段落样式、大纲级别 = 编号级别 + 1;
+ * 编号本身仍是一级「一、」、二级「(一)」…(编号级别不变,字体字号也不变)。
+ */
+ private static final int HEADING_LEVEL_OFFSET = 1;
/**
* 创建章节标题的多级自动编号定义(与机器人巡检报告模板一致),返回 numId。
@@ -682,7 +698,8 @@ public class DonghuanReportExportController extends BaseController {
}
/**
- * 章节标题段落:多级自动编号 + 大纲级别;一级标题黑体三号,二级及以下仿宋_GB2312 三号(与模板一致)。
+ * 章节标题段落:挂「标题 1 / 标题 2 …」段落样式 + 多级自动编号 + 大纲级别;
+ * 一级标题黑体三号,二级及以下仿宋_GB2312 三号(与模板一致)。
*
* @param level 编号级别,取 {@link #LVL_1} / {@link #LVL_2} / {@link #LVL_3} / {@link #LVL_4}
*/
@@ -690,6 +707,8 @@ public class DonghuanReportExportController extends BaseController {
BigInteger numId, int before, int after) {
String font = (level == LVL_1) ? FONT_HEAD : FONT_BODY;
XWPFParagraph p = addPara(doc, text, font, SZ_HEAD_THIRD, false, false, null, null, before, after);
+ // 段落样式(正文=默认 Normal,标题=标题 1/2/3/4),与模板一样通过样式体现层级
+ p.setStyle(HEADING_STYLE_ID[Math.min(level, HEADING_STYLE_ID.length - 1)]);
setHeadingNumbering(p, level, numId);
setFirstLineIndentOneChar(p, SZ_HEAD_THIRD); // 标题首行缩进 1 字符
setKeepNext(p);
@@ -704,8 +723,9 @@ public class DonghuanReportExportController extends BaseController {
ilvl.setVal(BigInteger.valueOf(level));
CTDecimalNumber numIdNum = numPr.isSetNumId() ? numPr.getNumId() : numPr.addNewNumId();
numIdNum.setVal(numId);
+ // 大纲级别 = 编号级别 + 偏移(标题从「标题 2」开始,故 +1),与段落样式级别保持一致
CTDecimalNumber outlineLvl = pPr.isSetOutlineLvl() ? pPr.getOutlineLvl() : pPr.addNewOutlineLvl();
- outlineLvl.setVal(BigInteger.valueOf(level));
+ outlineLvl.setVal(BigInteger.valueOf(level + HEADING_LEVEL_OFFSET));
}
/**
diff --git a/inspect-main/inspect-main-task/src/main/resources/report/wordparts/styles.xml b/inspect-main/inspect-main-task/src/main/resources/report/wordparts/styles.xml
index 3eb86c3..f44e33a 100644
--- a/inspect-main/inspect-main-task/src/main/resources/report/wordparts/styles.xml
+++ b/inspect-main/inspect-main-task/src/main/resources/report/wordparts/styles.xml
@@ -1,2 +1,2 @@
-