1821349743@qq.com
2023-04-17 1156a6e9619864201de922f4cfa93f6db989ff2e
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
package com.product.server.report.entity;
 
import cn.hutool.core.util.NumberUtil;
import com.product.common.lang.StringUtils;
 
import java.util.HashMap;
import java.util.Map;
 
/**
 * @Author cheng
 * @Date 2023/4/3 11:34
 * @Desc 报表单元格
 */
public class ReportColumn {
    //跨列
    private int colspan = 1;
    //跨行
    private int rowspan = 1;
    //单元格内容
    private String content;
    //穿透字段
    private boolean penetrate;
    //子报表
    private boolean subReport;
    //穿透属性
    private String penetrateProperty;
    //子报表属性
    private String subReportProperty;
    //单元格宽度 px
    private int columnWidth;
 
    private Map<String, String> otherParams = new HashMap<>();
 
    public void replace(String key, String value) {
        if (!otherParams.isEmpty()) {
            Map<String, String> otherParams = this.otherParams;
            this.otherParams = new HashMap<>();
            otherParams.forEach((k, v) -> {
                if ("rowspan".equals(v) && NumberUtil.isNumber(value) && k.equals(key)) {
                    this.rowspan = NumberUtil.parseInt(value);
                }
                this.otherParams.put(k.replace(key, value), v.replace(key, value));
            });
        }
        if (!StringUtils.isEmpty(subReportProperty)) {
            subReportProperty = subReportProperty.replace(key, value);
        }
        if (!StringUtils.isEmpty(penetrateProperty)) {
            penetrateProperty = penetrateProperty.replace(key, value);
        }
        if (!StringUtils.isEmpty(content)) {
            content = content.replace(key, value);
        }
    }
 
    public void addProperty(String key, String value) {
        otherParams.put(key, value);
    }
 
    public int getColspan() {
        return colspan;
    }
 
    public void setColspan(int colspan) {
        this.colspan = colspan;
    }
 
    public int getRowspan() {
        return rowspan;
    }
 
    public void setRowspan(int rowspan) {
        this.rowspan = rowspan;
    }
 
    public String getContent() {
        return getContent(false);
    }
 
    public String getContent(boolean emptyChar) {
        if (emptyChar) {
            return this.content == null ? "" : this.content;
        }
        return this.content;
    }
 
    public void setContent(String content) {
        this.content = content;
    }
 
    public boolean isPenetrate() {
        return penetrate;
    }
 
    public void setPenetrate(boolean penetrate) {
        this.penetrate = penetrate;
    }
 
    public boolean isSubReport() {
        return subReport;
    }
 
    public void setSubReport(boolean subReport) {
        this.subReport = subReport;
    }
 
    public String getPenetrateProperty() {
        return penetrateProperty;
    }
 
    public void setPenetrateProperty(String penetrateProperty) {
        this.penetrateProperty = penetrateProperty;
    }
 
    public String getSubReportProperty() {
        return subReportProperty;
    }
 
    public void setSubReportProperty(String subReportProperty) {
        this.subReportProperty = subReportProperty;
    }
 
    public int getColumnWidth() {
        return columnWidth;
    }
 
    public void setColumnWidth(int columnWidth) {
        this.columnWidth = columnWidth;
    }
}