|
@@ -8,6 +8,7 @@ import cn.hutool.core.util.StrUtil;
|
|
import com.simuwang.base.common.exception.APIException;
|
|
import com.simuwang.base.common.exception.APIException;
|
|
import com.simuwang.base.mapper.EmailFieldMappingMapper;
|
|
import com.simuwang.base.mapper.EmailFieldMappingMapper;
|
|
import com.simuwang.base.pojo.dos.EmailFieldMappingDO;
|
|
import com.simuwang.base.pojo.dos.EmailFieldMappingDO;
|
|
|
|
+import com.simuwang.daq.dto.MonthlyReportNavInfo;
|
|
import com.simuwang.daq.dto.ReportFundInfo;
|
|
import com.simuwang.daq.dto.ReportFundInfo;
|
|
import com.simuwang.daq.dto.ReportInfo;
|
|
import com.simuwang.daq.dto.ReportInfo;
|
|
import com.smppw.common.pojo.ValueLabelVO;
|
|
import com.smppw.common.pojo.ValueLabelVO;
|
|
@@ -19,7 +20,6 @@ import technology.tabula.*;
|
|
import technology.tabula.extractors.SpreadsheetExtractionAlgorithm;
|
|
import technology.tabula.extractors.SpreadsheetExtractionAlgorithm;
|
|
|
|
|
|
import java.io.IOException;
|
|
import java.io.IOException;
|
|
-import java.sql.Struct;
|
|
|
|
import java.util.Calendar;
|
|
import java.util.Calendar;
|
|
import java.util.List;
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
import java.util.Map;
|
|
@@ -33,11 +33,11 @@ import java.util.stream.Collectors;
|
|
* @description pdf格式的月报解析
|
|
* @description pdf格式的月报解析
|
|
*/
|
|
*/
|
|
@Component("monthly-report:pdf")
|
|
@Component("monthly-report:pdf")
|
|
-public class PDMonthlyReportParser extends AbstractReportParser {
|
|
|
|
|
|
+public class PDMonthlyReportParser extends AbstractReportParser<MonthlyReportNavInfo> {
|
|
private final EmailFieldMappingMapper fieldMappingMapper;
|
|
private final EmailFieldMappingMapper fieldMappingMapper;
|
|
|
|
+ private final List<Table> extNavTables = ListUtil.list(true);
|
|
private String reportName = null;
|
|
private String reportName = null;
|
|
private Table baseInfoTable = null;
|
|
private Table baseInfoTable = null;
|
|
- private List<Table> extNavTables = ListUtil.list(true);
|
|
|
|
private List<ValueLabelVO> fieldMapper = null;
|
|
private List<ValueLabelVO> fieldMapper = null;
|
|
|
|
|
|
public PDMonthlyReportParser(EmailFieldMappingMapper fieldMappingMapper) {
|
|
public PDMonthlyReportParser(EmailFieldMappingMapper fieldMappingMapper) {
|
|
@@ -108,9 +108,32 @@ public class PDMonthlyReportParser extends AbstractReportParser {
|
|
}
|
|
}
|
|
// 匹配字段清洗字段
|
|
// 匹配字段清洗字段
|
|
ReportFundInfo reportFundInfo = new ReportFundInfo();
|
|
ReportFundInfo reportFundInfo = new ReportFundInfo();
|
|
- baseInfoMap.forEach((k, v) -> {
|
|
|
|
|
|
+ this.buildInfo(baseInfoMap, reportFundInfo);
|
|
|
|
+ return reportFundInfo;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ protected List<MonthlyReportNavInfo> parseExtInfo() {
|
|
|
|
+ List<MonthlyReportNavInfo> exts = ListUtil.list(false);
|
|
|
|
+ List<Table> extNavTables = this.extNavTables;
|
|
|
|
+ for (Table extNavTable : extNavTables) {
|
|
|
|
+ Map<String, Object> extInfoMap = MapUtil.newHashMap(16);
|
|
|
|
+ for (int i = 0; i < extNavTable.getColCount(); i++) {
|
|
|
|
+ String key = extNavTable.getCell(0, i).getText();
|
|
|
|
+ String value = extNavTable.getCell(1, i).getText();
|
|
|
|
+ extInfoMap.put(key, value);
|
|
|
|
+ }
|
|
|
|
+ MonthlyReportNavInfo navInfo = new MonthlyReportNavInfo();
|
|
|
|
+ buildInfo(extInfoMap, navInfo);
|
|
|
|
+ exts.add(navInfo);
|
|
|
|
+ }
|
|
|
|
+ return exts;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ private void buildInfo(Map<String, Object> extInfoMap, Object info) {
|
|
|
|
+ extInfoMap.forEach((k, v) -> {
|
|
String fieldValue = StrUtil.toStringOrNull(v);
|
|
String fieldValue = StrUtil.toStringOrNull(v);
|
|
- if (fieldValue.contains("-")) {
|
|
|
|
|
|
+ if (fieldValue.startsWith("-") || fieldValue.endsWith("-")) {
|
|
fieldValue = null;
|
|
fieldValue = null;
|
|
}
|
|
}
|
|
if (fieldValue != null) {
|
|
if (fieldValue != null) {
|
|
@@ -120,28 +143,22 @@ public class PDMonthlyReportParser extends AbstractReportParser {
|
|
String fieldName = vo.getValue();
|
|
String fieldName = vo.getValue();
|
|
List<String> labels = StrUtil.split(vo.getLabel(), ",");
|
|
List<String> labels = StrUtil.split(vo.getLabel(), ",");
|
|
if (labels.contains(k)) {
|
|
if (labels.contains(k)) {
|
|
- ReflectUtil.setFieldValue(reportFundInfo, fieldName, fieldValue);
|
|
|
|
|
|
+ ReflectUtil.setFieldValue(info, fieldName, fieldValue);
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
for (String label : labels) {
|
|
for (String label : labels) {
|
|
if (k.contains(label)) {
|
|
if (k.contains(label)) {
|
|
- ReflectUtil.setFieldValue(reportFundInfo, fieldName, fieldValue);
|
|
|
|
|
|
+ ReflectUtil.setFieldValue(info, fieldName, fieldValue);
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
});
|
|
});
|
|
- return reportFundInfo;
|
|
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
- protected void parseExtInfo() {
|
|
|
|
-
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- @Override
|
|
|
|
- protected void saveResult() {
|
|
|
|
-
|
|
|
|
|
|
+ protected void saveResult(ReportInfo reportInfo, ReportFundInfo reportFundInfo, List<MonthlyReportNavInfo> exts) {
|
|
|
|
+ System.out.println("保存数据!");
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|