Browse Source

fix: 动环巡检报告目录调整

yanyuan
wangguangyuan 2 weeks ago
parent
commit
f37f7bbecc
2 changed files with 26 additions and 6 deletions
  1. +25
    -5
      inspect-main/inspect-main-task/src/main/java/com/inspect/resultmain/controller/DonghuanReportExportController.java
  2. +1
    -1
      inspect-main/inspect-main-task/src/main/resources/report/wordparts/styles.xml

+ 25
- 5
inspect-main/inspect-main-task/src/main/java/com/inspect/resultmain/controller/DonghuanReportExportController.java View File

@ -61,9 +61,12 @@ import java.util.zip.ZipOutputStream;
* + 仿宋_GB2312 16pt 浅蓝副标题 + 封面签署表初审/校对/审核/巡检日期</li>
* <li>标题报告标题 方正小标宋简体 22pt二号不加粗一级标题黑体 16pt三号
* 二级标题仿宋_GB2312 16pt三号</li>
* <li><b>章节编号与模板一致标题使用 Word 多级自动编号 一级二级
* 三级1四级1 {@link #createHeadingNumbering}标题文字里不再写手写序号
* 各级标题带 outlineLvl 大纲级别Word 导航窗格与引用 目录可直接生成目录</b></li>
* <li><b>段落样式正文/表格用正文(Normal)章节标题用标题 2 / 标题 3
* 标题 1 留出不用给报告标题或上层文档</b>标题样式定义在
* {@code report/wordparts/styles.xml}heading 1~5自带大纲级别
* 导航窗格与引用 目录可直接生成目录标题同时使用 Word 多级自动编号 一级
* 二级三级1四级1 {@link #createHeadingNumbering}
* 编号级别不随标题样式级别变化标题文字里也不再写手写序号</li>
* <li><b>表格宽度通篇统一 {@link #TABLE_W} = 8844 twips= 版心宽与模板一致
* 列宽由 {@code COLS_*} 常量按总和 8844 分配tblLayout=fixed表格居中
* 保证所有表格左右边界完全对齐且不越出版心</b></li>
@ -641,6 +644,19 @@ public class DonghuanReportExportController extends BaseController {
STNumberFormat.DECIMAL, STNumberFormat.DECIMAL};
/** 各级编号字体(模板:一级黑体,其余仿宋_GB2312) */
private static final String[] HEADING_NUM_FONT = {FONT_HEAD, FONT_BODY, FONT_BODY, FONT_BODY};
/**
* 各级标题使用的段落样式 id定义在 {@code report/wordparts/styles.xml}
* 样式名沿用 Word 内置的 heading 1~5中文界面即标题 1~标题 5
* <p>
* 注意标题<b>标题 2开始</b>标题 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));
}
/**


+ 1
- 1
inspect-main/inspect-main-task/src/main/resources/report/wordparts/styles.xml
File diff suppressed because it is too large
View File


Loading…
Cancel
Save