|
@@ -3,6 +3,7 @@ package com.simuwang.daq.components;
|
|
import cn.hutool.core.collection.ListUtil;
|
|
import cn.hutool.core.collection.ListUtil;
|
|
import cn.hutool.core.map.MapUtil;
|
|
import cn.hutool.core.map.MapUtil;
|
|
import cn.hutool.core.util.StrUtil;
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
|
+import com.simuwang.base.common.enums.ReportType;
|
|
|
|
|
|
import java.util.Calendar;
|
|
import java.util.Calendar;
|
|
import java.util.List;
|
|
import java.util.List;
|
|
@@ -33,7 +34,11 @@ public final class ReportParseUtils {
|
|
static {
|
|
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("本期利润");
|
|
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("期末可供分配利润");
|
|
@@ -66,13 +71,17 @@ public final class ReportParseUtils {
|
|
// 以下为国际标准
|
|
// 以下为国际标准
|
|
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("房地产");
|
|
|
|
|
|
@@ -267,18 +276,13 @@ public final class ReportParseUtils {
|
|
if (string == null) {
|
|
if (string == null) {
|
|
return null;
|
|
return null;
|
|
}
|
|
}
|
|
- // 所有报告的正则识别方式
|
|
|
|
- String patterns = "年度|年报|季度|季报|季|月度|月报|月|年";
|
|
|
|
- // 编译正则表达式模式
|
|
|
|
- Pattern pattern = Pattern.compile(patterns);
|
|
|
|
- // 创建Matcher对象
|
|
|
|
- Matcher matcher = pattern.matcher(string);
|
|
|
|
- // 尝试匹配
|
|
|
|
- if (matcher.find()) {
|
|
|
|
- return matcher.group();
|
|
|
|
- } else {
|
|
|
|
- return null;
|
|
|
|
|
|
+ ReportType reportType = ReportType.MONTHLY;
|
|
|
|
+ if (StrUtil.containsAny(string, ReportType.QUARTERLY.getPatterns())) {
|
|
|
|
+ reportType = ReportType.QUARTERLY;
|
|
|
|
+ } else if (StrUtil.containsAny(string, ReportType.ANNUALLY.getPatterns())) {
|
|
|
|
+ reportType = ReportType.ANNUALLY;
|
|
}
|
|
}
|
|
|
|
+ return reportType.getLabel();
|
|
}
|
|
}
|
|
|
|
|
|
private static int getLastDayOfMonth(int year, int month) {
|
|
private static int getLastDayOfMonth(int year, int month) {
|