From 78e7243f324724160c42d22616c38fd83c714f24 Mon Sep 17 00:00:00 2001
From: “mitao” <“2763622819@qq.com”>
Date: 星期五, 15 五月 2026 10:42:24 +0800
Subject: [PATCH] feat:安全检查报告模版
---
admin-server/src/main/java/com/estate/expert/admin/stat/report/builder/SystemReportBuilder.java | 28 ++++++++++++++++++++++++----
1 files changed, 24 insertions(+), 4 deletions(-)
diff --git a/admin-server/src/main/java/com/estate/expert/admin/stat/report/builder/SystemReportBuilder.java b/admin-server/src/main/java/com/estate/expert/admin/stat/report/builder/SystemReportBuilder.java
index 0a24858..5ca7a91 100644
--- a/admin-server/src/main/java/com/estate/expert/admin/stat/report/builder/SystemReportBuilder.java
+++ b/admin-server/src/main/java/com/estate/expert/admin/stat/report/builder/SystemReportBuilder.java
@@ -13,7 +13,6 @@
import com.estate.expert.admin.stat.report.render.AbstractInfoTablePolicy;
import com.estate.expert.admin.stat.report.render.CheckInfoTablePolicy;
import com.estate.expert.admin.stat.report.render.CustomPictureRenderPolicy;
-import lombok.AllArgsConstructor;
import org.springframework.core.io.ClassPathResource;
import org.springframework.util.CollectionUtils;
@@ -24,10 +23,22 @@
/**
* 第三方评估报告构建器
*/
-@AllArgsConstructor
public class SystemReportBuilder implements ReportBuilderBase {
+ private static final String DEFAULT_TEMPLATE_FILE = "第三方评估报告.docx";
+
protected UserFileService userFileService;
+
+ private final String templateFile;
+
+ public SystemReportBuilder(UserFileService userFileService) {
+ this(userFileService, DEFAULT_TEMPLATE_FILE);
+ }
+
+ public SystemReportBuilder(UserFileService userFileService, String templateFile) {
+ this.userFileService = userFileService;
+ this.templateFile = templateFile;
+ }
/**
* 构建第三方评估报告
@@ -37,7 +48,7 @@
*/
@Override
public XWPFTemplate buildReport(JSONObject data, Map<String, Integer> templateConfig) {
- var res = new ClassPathResource("templates/第三方评估报告.docx");
+ var res = new ClassPathResource("templates/" + templateFile);
var viewConfig = templateConfig != null ? toViewConfig(templateConfig) : null;
var builder = initConfig(viewConfig);
@@ -77,6 +88,7 @@
private ConfigureBuilder initConfig(Map<String, Boolean> viewConfig){
ConfigureBuilder builder = Configure.builder();
builder.bind("data.设备信息", new LoopRowTableRenderPolicy());
+ builder.bind("data.设备分组信息", new LoopRowTableRenderPolicy());
builder.bind("data.评估结果.隐患等级分布.分项", new LoopRowTableRenderPolicy());
builder.bind("分项评估", new CheckInfoTablePolicy());
@@ -107,10 +119,15 @@
* @param dataMap 数据映射
*/
private void initChart(JSONObject data, Map<String, Object> dataMap){
- var checkCategories = data.getJSONObject("评估结果").getJSONArray("检查项");
+ var evalResult = data.getJSONObject("评估结果");
+ var checkCategories = evalResult.getJSONArray("检查项");
if(checkCategories == null) return;
+ var safetyCategories = new JSONArray();
for (var c : checkCategories){
var co = (JSONObject)c;
+ var name = co.getString("名称");
+ if(name != null && name.contains("安全"))
+ safetyCategories.add(co);
var pieChart = buildPieChart(co);
if(pieChart!=null)
co.put("问题分布饼图", pieChart);
@@ -118,6 +135,9 @@
if(barChart!=null)
co.put("问题分布直方图", barChart);
}
+ if(safetyCategories.isEmpty() && !checkCategories.isEmpty())
+ safetyCategories.add(checkCategories.get(0));
+ evalResult.put("安全检查项", safetyCategories);
}
/**
--
Gitblit v1.7.1