|
@@ -72,9 +72,9 @@ public class PDQuarterlyReportParser<T extends QuarterlyReportData> extends Abst
|
|
|
List<String> texts = this.getTableColTexts(table, 0);
|
|
|
// 主要财务指标或份额变动
|
|
|
if (CollUtil.containsAny(texts, ReportParseUtils.SHARE_CHANGE_COLUMN_NAMES)) {
|
|
|
- sci = splitTables(table, 5, sci, this.shareChangeTables, spanningPageShareChangeTableMap);
|
|
|
+ sci = this.splitTables(table, 5, sci, this.shareChangeTables, spanningPageShareChangeTableMap);
|
|
|
} else if (CollUtil.containsAny(texts, ReportParseUtils.FINANCIAL_INDICATORS_COLUMN_NAMES)) {
|
|
|
- fi = splitTables(table, 10, fi, this.financialIndicatorsTables, spanningPageFinancialIndicatorsTableMap);
|
|
|
+ fi = this.splitTables(table, 10, fi, this.financialIndicatorsTables, spanningPageFinancialIndicatorsTableMap);
|
|
|
}
|
|
|
} else if (colCount == 4) {
|
|
|
// 行业配置
|
|
@@ -291,53 +291,4 @@ public class PDQuarterlyReportParser<T extends QuarterlyReportData> extends Abst
|
|
|
}
|
|
|
return details;
|
|
|
}
|
|
|
-
|
|
|
- /**
|
|
|
- * 判断表格是否需要合并并且把需要合并的表格放在一个索引对应的map中(主要处理有分级基金数据表格,不处理可能会把数据绑定到错误的分级基金中)
|
|
|
- *
|
|
|
- * @param table 待判断的表格
|
|
|
- * @param rowCount 判断依据(一个完整的表格有多少行)
|
|
|
- * @param index 当前完整表格所在的索引位置
|
|
|
- * @param tables 不需要合并的表格集合
|
|
|
- * @param spanningPageTableMap 需要合并的表格数据
|
|
|
- * @return /
|
|
|
- */
|
|
|
- protected int splitTables(Table table, int rowCount, int index,
|
|
|
- List<Table> tables, Map<Integer, List<Table>> spanningPageTableMap) {
|
|
|
- if (table.getRowCount() == rowCount) {
|
|
|
- index++;
|
|
|
- tables.add(table);
|
|
|
- } else {
|
|
|
- List<Table> tempList = spanningPageTableMap.getOrDefault(index, ListUtil.list(true));
|
|
|
- tempList.add(table);
|
|
|
- spanningPageTableMap.putIfAbsent(index, tempList);
|
|
|
- if (tempList.size() == 2) {
|
|
|
- index++;
|
|
|
- }
|
|
|
- }
|
|
|
- return index;
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 把跨页的表格合并为一个并且插入到数据集合中的特定位置
|
|
|
- *
|
|
|
- * @param tables 数据集合
|
|
|
- * @param spanningPageTableMap 跨页的表格对象
|
|
|
- */
|
|
|
- protected void handleSpanningPageTables(List<Table> tables,
|
|
|
- Map<Integer, List<Table>> spanningPageTableMap) {
|
|
|
- // 跨页的份额变动记录表(包括表头一共有5行)
|
|
|
- for (Map.Entry<Integer, List<Table>> entry : spanningPageTableMap.entrySet()) {
|
|
|
- List<Table> spanningPageShareChangeTables = entry.getValue();
|
|
|
- Table master = spanningPageShareChangeTables.get(0);
|
|
|
- Table slave = spanningPageShareChangeTables.get(1);
|
|
|
- int rowCount = master.getRowCount();
|
|
|
- for (int j = 0; j < slave.getRowCount(); j++) {
|
|
|
- for (int k = 0; k < slave.getColCount(); k++) {
|
|
|
- master.add(slave.getCell(j, k), rowCount + j, k);
|
|
|
- }
|
|
|
- }
|
|
|
- tables.add(entry.getKey(), master);
|
|
|
- }
|
|
|
- }
|
|
|
}
|