“mitao”
2026-05-16 881332a25bcbbe3bebb696f6d0728fba559ef635
feat:安全检查报告模版
4个文件已修改
34 ■■■■■ 已修改文件
admin-server/src/main/java/com/estate/expert/admin/stat/report/builder/SystemReportBuilder.java 1 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin-server/src/main/java/com/estate/expert/admin/stat/report/data/ReportDataBase.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin-server/src/main/java/com/estate/expert/admin/stat/report/render/CheckInfoTablePolicy.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin-server/src/main/resources/templates/第三方评估报告new.docx 补丁 | 查看 | 原始文档 | blame | 历史
admin-server/src/main/java/com/estate/expert/admin/stat/report/builder/SystemReportBuilder.java
@@ -87,7 +87,6 @@
     */
    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());
admin-server/src/main/java/com/estate/expert/admin/stat/report/data/ReportDataBase.java
@@ -68,6 +68,9 @@
        result.put("报告编号", template.getNumber() + "-" + String.format("%08d", reportId));
        result.put("报告日期", reportDate);
        result.put("报告日期中文", reportDate.format(DateTimeFormatter.ofPattern("yyyy年M月d日")));
        result.put("报告年份", reportDate.getYear());
        result.put("报告月份", reportDate.getMonthValue());
        result.put("报告日期日", reportDate.getDayOfMonth());
        result.put("公司名称", "四川信立隆第三方评估咨询有限公司");
        return result;
    }
@@ -186,7 +189,7 @@
        }
        info.put("工程类型", project.getType().getDesc());
        info.put("工程规模", project.getProjectCost());
        info.put("工程规模", StringUtils.hasText(project.getScale()) ? project.getScale() : project.getProjectCost());
        if (projectInfo != null) {
            info.put("项目简介", projectInfo.getDetail());
admin-server/src/main/java/com/estate/expert/admin/stat/report/render/CheckInfoTablePolicy.java
@@ -25,22 +25,38 @@
        List<JSONObject> categories = (List<JSONObject>) data;
        int headerRowIndex = table.getRow(0).getTableCells().size() == 1 ? 1 : 0;
        var title = table.getRow(0).getCell(0).getText();
        boolean isErrorSummary = title.contains("问题汇总表");
        boolean isErrorSummary = title.contains("问题汇总表") || title.contains("问题清单");
        if(isErrorSummary){
//            renderErrors(categories, table);
        }
        int colCnt = table.getRow(1).getTableCells().size();
        String colTitle = table.getRow(1).getCell(1).getText();
        int colCnt = table.getRow(headerRowIndex).getTableCells().size();
        String colTitle = table.getRow(headerRowIndex).getCell(1).getText();
        int errorSummaryInsertIndex = headerRowIndex + 1;
        for(var category : categories) {
            var checkInfos = category.getJSONArray("分项");
            for(var checkInfo : checkInfos) {
                var info = (JSONObject) checkInfo;
                switch (colCnt)
                {
                    case 2: {
                        // 分项得分结果,去掉权重/评价列后只保留名称与得分
                        var row = table.insertNewTableRow(table.getRows().size() - 1);
                        RenderHelper.renderCell(row, info.getString("类别"));
                        RenderHelper.renderCell(row, info.containsKey("得分")
                                ? info.getString("得分")
                                : info.getString("模糊得分"));
                    }break;
                    case 3: {
                        if(colTitle.equals("分项风险评价")) {
                        if(colTitle.equals("分项")) {
                            // 检查问题分布,去掉百分比列
                            var row = table.insertNewTableRow(table.getRows().size() -1);
                            RenderHelper.renderCell(row, info.getString("序号"));
                            RenderHelper.renderCell(row, info.getString("类别"));
                            RenderHelper.renderCell(row, info.getString("问题数量"));
                        } else if(colTitle.equals("分项风险评价")) {
                            //分项评估结果,样式0
                            var row = table.insertNewTableRow(table.getRows().size()-1);
                            RenderHelper.renderCell(row, info.getString("类别"));
@@ -75,7 +91,7 @@
                                var highLevelColor = RenderHelper.highLevelColor(errors);
                                for(var error : errors){
                                    var e = (JSONObject) error;
                                    var row = table.insertNewTableRow(table.getRows().size());
                                    var row = table.insertNewTableRow(errorSummaryInsertIndex++);
                                    var errorLevel = e.getString("隐患等级");
                                    var textColor = RenderHelper.getErrorLevelColor(errorLevel);
                                    RenderHelper.renderCell(row, info.getString("类别"), highLevelColor);
@@ -101,7 +117,7 @@
                                var highLevelColor = RenderHelper.highLevelColor(errors);
                                for(var error : errors){
                                    var e = (JSONObject) error;
                                    var row = table.insertNewTableRow(table.getRows().size());
                                    var row = table.insertNewTableRow(errorSummaryInsertIndex++);
                                    var errorLevel = e.getString("隐患等级");
                                    var textColor = RenderHelper.getErrorLevelColor(errorLevel);
admin-server/src/main/resources/templates/第三方评估报告new.docx
Binary files differ