فهرست منبع

跳过页码数添加配置

xy 2 هفته پیش
والد
کامیت
5216418bde

+ 5 - 1
build-uat/update.sql

@@ -1673,4 +1673,8 @@ COMMENT ON COLUMN "PRESSURE2_BOILER_TASK_ORDER_ITEM_REPORT"."IMAGE_NAME" IS '附
 COMMENT ON COLUMN "PRESSURE2_BOILER_TASK_ORDER_ITEM_REPORT"."VIDEO_NAME" IS '附件视频名称';
 COMMENT ON COLUMN "PRESSURE2_BOILER_TASK_ORDER_ITEM_REPORT"."ATTACHMENT_NAME" IS '附件文件名称';
 
---已加
+--已加
+
+--20260624
+ALTER TABLE "PRESSURE2_DYNAMIC_TB" ADD COLUMN "SKIP_PAGE_COUNT" INT DEFAULT (0);
+COMMENT ON COLUMN "PRESSURE2_DYNAMIC_TB"."SKIP_PAGE_COUNT" IS '跳过的页码数';

+ 3 - 0
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/admin/dynamictb/vo/DynamicTbRespVO.java

@@ -79,4 +79,7 @@ public class DynamicTbRespVO {
 
     @Schema(description = "复制续页配置")
     private JSONObject copyConfig;
+
+    @Schema(description = "跳过页码数:生成报告时跳过前N页不添加页码,默认0")
+    private Integer skipPageCount;
 }

+ 3 - 0
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/admin/dynamictb/vo/DynamicTbSaveReqVO.java

@@ -54,4 +54,7 @@ public class DynamicTbSaveReqVO {
 
     @Schema(description = "复制续页配置")
     private Object copyConfig;
+
+    @Schema(description = "跳过页码数:生成报告时跳过前N页不添加页码,默认0")
+    private Integer skipPageCount;
 }

+ 5 - 0
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/dal/dataobject/dynamictb/DynamicTbDO.java

@@ -93,4 +93,9 @@ public class DynamicTbDO extends BaseDO {
      * 复制续页配置
      */
     private String copyConfig;
+
+    /**
+     * 跳过页码数:生成报告时跳过前N页不添加页码,默认0
+     */
+    private Integer skipPageCount;
 }

+ 23 - 2
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/boilertaskorder/BoilerTaskOrderServiceImpl.java

@@ -138,6 +138,7 @@ import cn.start.tz.module.pressure2.service.boilertaskorderoperation.BoilerTaskO
 import cn.start.tz.module.pressure2.service.boilertaskordersecuritycheck.BoilerTaskOrderSecurityCheckService;
 import cn.start.tz.module.pressure2.service.common.RedisService;
 import cn.start.tz.module.pressure2.service.costfield.CostFieldService;
+import cn.start.tz.module.pressure2.service.dynamictb.DynamicTbService;
 import cn.start.tz.module.pressure2.service.dynamictbcol.DynamicTbColService;
 import cn.start.tz.module.pressure2.service.dynamictbins.DynamicTbInsService;
 import cn.start.tz.module.pressure2.service.dynamictbval.DynamicTbValService;
@@ -5975,6 +5976,25 @@ public class BoilerTaskOrderServiceImpl extends ServiceImpl<BoilerTaskOrderMappe
     @Resource
     private PdfService pdfService;
 
+    @Resource
+    private DynamicTbService dynamicTbService;
+
+    /**
+     * 获取主报告模板的跳过页码数(读取 PRESSURE2_DYNAMIC_TB.skip_page_count)
+     */
+    private int getMainReportSkipPageCount(List<BoilerTaskOrderItemReportDO> reportList) {
+        BoilerTaskOrderItemReportDO mainReport = reportList.stream()
+                .filter(r -> r.getReportType() != null && r.getReportType() == 100)
+                .findFirst().orElse(null);
+        if (mainReport != null && StrUtil.isNotBlank(mainReport.getReportTemplateId())) {
+            DynamicTbDO template = dynamicTbService.getById(mainReport.getReportTemplateId());
+            if (template != null && template.getSkipPageCount() != null) {
+                return template.getSkipPageCount();
+            }
+        }
+        return 0;
+    }
+
     @Override
     public byte[] getReportOutputStreamMerge(String orderItemId) {
 
@@ -6038,9 +6058,10 @@ public class BoilerTaskOrderServiceImpl extends ServiceImpl<BoilerTaskOrderMappe
             mergerUtility.setDestinationStream(mergeOutputStream);
             mergerUtility.mergeDocuments(null);
 
-            // 重新生成页码
+            // 重新生成页码:读取主报告模板的跳过页码数
             byte[] mergedPdfBytes = mergeOutputStream.toByteArray();
-            byte[] pdfWithPageNumbers = pdfService.addPageNumbersToPdf(mergedPdfBytes, 2);
+            int skipPages = getMainReportSkipPageCount(taskOrderReportDOS);
+            byte[] pdfWithPageNumbers = pdfService.addPageNumbersToPdf(mergedPdfBytes, skipPages);
             
             // 及时释放大对象引用
             mergedPdfBytes = null;

+ 24 - 2
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/pipetaskorder/PipeTaskOrderServiceImpl.java

@@ -136,6 +136,7 @@ import cn.start.tz.module.pressure2.service.boilerconnectrecordreport.BoilerConn
 import cn.start.tz.module.pressure2.service.boilertaskorderissuereport.BoilerTaskOrderIssueReportService;
 import cn.start.tz.module.pressure2.service.common.RedisService;
 import cn.start.tz.module.pressure2.service.costfield.CostFieldService;
+import cn.start.tz.module.pressure2.service.dynamictb.DynamicTbService;
 import cn.start.tz.module.pressure2.service.dynamictbcol.DynamicTbColService;
 import cn.start.tz.module.pressure2.service.dynamictbins.DynamicTbInsService;
 import cn.start.tz.module.pressure2.service.dynamictbval.DynamicTbValService;
@@ -5175,6 +5176,26 @@ public class PipeTaskOrderServiceImpl extends ServiceImpl<PipeTaskOrderMapper, P
     }
     @Resource
     private PdfService pdfService;
+
+    @Resource
+    private DynamicTbService dynamicTbService;
+
+    /**
+     * 获取主报告模板的跳过页码数(读取 PRESSURE2_DYNAMIC_TB.skip_page_count)
+     */
+    private int getMainReportSkipPageCount(List<PipeTaskOrderItemReportDO> reportList) {
+        PipeTaskOrderItemReportDO mainReport = reportList.stream()
+                .filter(r -> r.getReportType() != null && r.getReportType() == 100)
+                .findFirst().orElse(null);
+        if (mainReport != null && StrUtil.isNotBlank(mainReport.getReportTemplateId())) {
+            DynamicTbDO template = dynamicTbService.getById(mainReport.getReportTemplateId());
+            if (template != null && template.getSkipPageCount() != null) {
+                return template.getSkipPageCount();
+            }
+        }
+        return 0;
+    }
+
     @Override
     public byte[] getReportOutputStreamMerge(String orderId) {
 
@@ -5256,9 +5277,10 @@ public class PipeTaskOrderServiceImpl extends ServiceImpl<PipeTaskOrderMapper, P
             mergerUtility.setDestinationStream(mergeOutputStream);
             mergerUtility.mergeDocuments(null);
 
-            // 重新生成页码
+            // 重新生成页码:读取主报告模板的跳过页码数
             byte[] mergedPdfBytes = mergeOutputStream.toByteArray();
-            byte[] pdfWithPageNumbers = pdfService.addPageNumbersToPdf(mergedPdfBytes, 2);
+            int skipPages = getMainReportSkipPageCount(taskOrderReportDOS);
+            byte[] pdfWithPageNumbers = pdfService.addPageNumbersToPdf(mergedPdfBytes, skipPages);
             
             // 及时释放大对象引用
             mergedPdfBytes = null;