|
@@ -26,64 +26,6 @@ import java.util.function.Function;
|
|
*/
|
|
*/
|
|
@Component(ReportParserConstant.PARSER_PDF_QUARTERLY)
|
|
@Component(ReportParserConstant.PARSER_PDF_QUARTERLY)
|
|
public class PDQuarterlyReportParser<T extends QuarterlyReportData> extends AbstractPDReportParser<T> {
|
|
public class PDQuarterlyReportParser<T extends QuarterlyReportData> extends AbstractPDReportParser<T> {
|
|
- protected static final List<String> INDUSTRY_COLUMN_NAMES = ListUtil.list(false);
|
|
|
|
- protected static final List<String> SHARE_CHANGE_COLUMN_NAMES = ListUtil.list(false);
|
|
|
|
- protected static final List<String> FINANCIAL_INDICATORS_COLUMN_NAMES = ListUtil.list(false);
|
|
|
|
-
|
|
|
|
- static {
|
|
|
|
- // 财务指标
|
|
|
|
- FINANCIAL_INDICATORS_COLUMN_NAMES.add("期末基金净资产");
|
|
|
|
- FINANCIAL_INDICATORS_COLUMN_NAMES.add("报告期期末单位净值");
|
|
|
|
- FINANCIAL_INDICATORS_COLUMN_NAMES.add("本期利润");
|
|
|
|
- FINANCIAL_INDICATORS_COLUMN_NAMES.add("本期已实现收益");
|
|
|
|
- FINANCIAL_INDICATORS_COLUMN_NAMES.add("期末可供分配利润");
|
|
|
|
- FINANCIAL_INDICATORS_COLUMN_NAMES.add("期末可供分配基金份额利润");
|
|
|
|
- FINANCIAL_INDICATORS_COLUMN_NAMES.add("基金份额累计净值增长率");
|
|
|
|
-
|
|
|
|
- // 中国证监会行业标准
|
|
|
|
- INDUSTRY_COLUMN_NAMES.add("农、林、牧、渔业");
|
|
|
|
- INDUSTRY_COLUMN_NAMES.add("采矿业");
|
|
|
|
- INDUSTRY_COLUMN_NAMES.add("制造业");
|
|
|
|
- INDUSTRY_COLUMN_NAMES.add("电力、热力、燃气及水生产和供应业");
|
|
|
|
- INDUSTRY_COLUMN_NAMES.add("建筑业");
|
|
|
|
- INDUSTRY_COLUMN_NAMES.add("批发和零售业");
|
|
|
|
- INDUSTRY_COLUMN_NAMES.add("交通运输、仓储和邮政业");
|
|
|
|
- INDUSTRY_COLUMN_NAMES.add("住宿和餐饮业");
|
|
|
|
- INDUSTRY_COLUMN_NAMES.add("信息传输、软件和信息技术服务业");
|
|
|
|
- INDUSTRY_COLUMN_NAMES.add("金融业");
|
|
|
|
- INDUSTRY_COLUMN_NAMES.add("房地产业");
|
|
|
|
- INDUSTRY_COLUMN_NAMES.add("租赁和商务服务业");
|
|
|
|
- INDUSTRY_COLUMN_NAMES.add("科学研究和技术服务业");
|
|
|
|
- INDUSTRY_COLUMN_NAMES.add("水利、环境和公共设施管理业");
|
|
|
|
- INDUSTRY_COLUMN_NAMES.add("居民服务、修理和其他服务业");
|
|
|
|
- INDUSTRY_COLUMN_NAMES.add("教育");
|
|
|
|
- INDUSTRY_COLUMN_NAMES.add("卫生和社会工作");
|
|
|
|
- INDUSTRY_COLUMN_NAMES.add("文化、体育和娱乐业");
|
|
|
|
- INDUSTRY_COLUMN_NAMES.add("综合");
|
|
|
|
-
|
|
|
|
- INDUSTRY_COLUMN_NAMES.add("港股通");
|
|
|
|
-
|
|
|
|
- // 以下为国际标准
|
|
|
|
- INDUSTRY_COLUMN_NAMES.add("能源");
|
|
|
|
- INDUSTRY_COLUMN_NAMES.add("原材料");
|
|
|
|
- INDUSTRY_COLUMN_NAMES.add("工业");
|
|
|
|
- INDUSTRY_COLUMN_NAMES.add("非日常生活消费品");
|
|
|
|
- INDUSTRY_COLUMN_NAMES.add("日常消费品");
|
|
|
|
- INDUSTRY_COLUMN_NAMES.add("医疗保健");
|
|
|
|
- INDUSTRY_COLUMN_NAMES.add("金融");
|
|
|
|
- INDUSTRY_COLUMN_NAMES.add("信息技术");
|
|
|
|
- INDUSTRY_COLUMN_NAMES.add("通讯服务");
|
|
|
|
- INDUSTRY_COLUMN_NAMES.add("公用事业");
|
|
|
|
- INDUSTRY_COLUMN_NAMES.add("房地产");
|
|
|
|
-
|
|
|
|
- // 份额变动表格识别列
|
|
|
|
- SHARE_CHANGE_COLUMN_NAMES.add("报告期期初基金份额总额");
|
|
|
|
- SHARE_CHANGE_COLUMN_NAMES.add("减:报告期期间基金总赎回份额");
|
|
|
|
- SHARE_CHANGE_COLUMN_NAMES.add("期末基金总份额/期末基金实缴总额");
|
|
|
|
- SHARE_CHANGE_COLUMN_NAMES.add("报告期期间基金拆分变动份额");
|
|
|
|
- SHARE_CHANGE_COLUMN_NAMES.add("报告期期间基金总申购份额");
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
protected List<Table> financialIndicatorsTables;
|
|
protected List<Table> financialIndicatorsTables;
|
|
protected List<Table> shareChangeTables;
|
|
protected List<Table> shareChangeTables;
|
|
protected List<Table> assetAllocationTables;
|
|
protected List<Table> assetAllocationTables;
|
|
@@ -116,9 +58,9 @@ public class PDQuarterlyReportParser<T extends QuarterlyReportData> extends Abst
|
|
// 用表格的第一列的数据判断是否份额变动记录
|
|
// 用表格的第一列的数据判断是否份额变动记录
|
|
List<String> texts = this.getTableColTexts(table, 0);
|
|
List<String> texts = this.getTableColTexts(table, 0);
|
|
// 主要财务指标或份额变动
|
|
// 主要财务指标或份额变动
|
|
- if (CollUtil.containsAny(texts, SHARE_CHANGE_COLUMN_NAMES)) {
|
|
|
|
|
|
+ if (CollUtil.containsAny(texts, ReportParseUtils.SHARE_CHANGE_COLUMN_NAMES)) {
|
|
this.shareChangeTables.add(table);
|
|
this.shareChangeTables.add(table);
|
|
- } else if (CollUtil.containsAny(texts, FINANCIAL_INDICATORS_COLUMN_NAMES)) {
|
|
|
|
|
|
+ } else if (CollUtil.containsAny(texts, ReportParseUtils.FINANCIAL_INDICATORS_COLUMN_NAMES)) {
|
|
this.financialIndicatorsTables.add(table);
|
|
this.financialIndicatorsTables.add(table);
|
|
}
|
|
}
|
|
} else if (colCount == 4) {
|
|
} else if (colCount == 4) {
|
|
@@ -127,7 +69,7 @@ public class PDQuarterlyReportParser<T extends QuarterlyReportData> extends Abst
|
|
} else if (colCount == 3) {
|
|
} else if (colCount == 3) {
|
|
// 用表格的第一列单元格判断是否资产配置表
|
|
// 用表格的第一列单元格判断是否资产配置表
|
|
List<String> texts = this.getTableColTexts(table, 0);
|
|
List<String> texts = this.getTableColTexts(table, 0);
|
|
- if (CollUtil.containsAny(texts, INDUSTRY_COLUMN_NAMES)) {
|
|
|
|
|
|
+ if (CollUtil.containsAny(texts, ReportParseUtils.INDUSTRY_COLUMN_NAMES)) {
|
|
this.investmentIndustryTables.add(table);
|
|
this.investmentIndustryTables.add(table);
|
|
} else {
|
|
} else {
|
|
this.assetAllocationTables.add(table);
|
|
this.assetAllocationTables.add(table);
|