|
@@ -96,7 +96,7 @@ public class NavEmailParser extends AbstractEmailParser {
|
|
|
}
|
|
|
|
|
|
private List<EmailFundNavDTO> parsePackageFile(EmailContentInfoDTO emailContentInfoDTO, String fileName, String filePath, Map<String, List<String>> emailFieldMap) {
|
|
|
- String destPath = filePath.substring(0, filePath.indexOf(fileName)) + fileName.replaceAll(".zip","").replaceAll(".ZIP","") ;
|
|
|
+ String destPath = filePath.substring(0, filePath.indexOf(fileName)) + fileName.replaceAll(".zip", "").replaceAll(".ZIP", "");
|
|
|
log.info("压缩包地址:{},解压后文件地址:{}", filePath, destPath);
|
|
|
List<String> dir = ExcelUtil.extractCompressedFiles(filePath, destPath);
|
|
|
List<EmailFundNavDTO> emailFundNavDTOList = CollUtil.newArrayList();
|
|
@@ -220,7 +220,7 @@ public class NavEmailParser extends AbstractEmailParser {
|
|
|
// 创建一个新的Excel工作簿
|
|
|
Workbook workbook = new XSSFWorkbook();
|
|
|
Sheet sheet = workbook.createSheet("Sheet1");
|
|
|
- writeDataToSheet(sheet, rows);
|
|
|
+ ExcelUtil.writeDataToSheet(sheet, rows);
|
|
|
// 将Excel工作簿写入输出流
|
|
|
workbook.write(outputStream);
|
|
|
} catch (Exception e) {
|
|
@@ -327,10 +327,10 @@ public class NavEmailParser extends AbstractEmailParser {
|
|
|
|
|
|
// pdf解析到的值带有",",比如:"10,656,097.37"
|
|
|
String assetNet = fieldValueMap.get(EmailFieldConst.ASSET_NET);
|
|
|
- fundNavDTO.setAssetNet(numberDataHandler(assetNet));
|
|
|
+ fundNavDTO.setAssetNet(ExcelUtil.numberDataStripCommas(assetNet));
|
|
|
|
|
|
String assetShares = fieldValueMap.get(EmailFieldConst.ASSET_NET);
|
|
|
- fundNavDTO.setAssetNet(numberDataHandler(assetShares));
|
|
|
+ fundNavDTO.setAssetNet(ExcelUtil.numberDataStripCommas(assetShares));
|
|
|
|
|
|
return fundNavDTO;
|
|
|
}
|
|
@@ -359,17 +359,16 @@ public class NavEmailParser extends AbstractEmailParser {
|
|
|
// 正常净值文件格式
|
|
|
if (StrUtil.isNotBlank(priceDate) && !priceDate.contains("-")) {
|
|
|
// 处理日期yyyyMMdd格式 -> 转成yyyy-MM-dd
|
|
|
- priceDate = priceDate.replace("年","").replace("月","").replace("日","");
|
|
|
+ priceDate = priceDate.replace("年", "").replace("月", "").replace("日", "");
|
|
|
priceDate = DateUtil.format(DateUtil.parse(priceDate, DateConst.YYYYMMDD), DateConst.YYYY_MM_DD);
|
|
|
}
|
|
|
emailFundNavDTO.setPriceDate(priceDate);
|
|
|
- String fundName = columnFieldMap.get(EmailFieldConst.FUND_NAME) != null && sheetRow.getCell(columnFieldMap.get(EmailFieldConst.FUND_NAME)).getStringCellValue() != null ?
|
|
|
- ExcelUtil.getCellValue(sheetRow.getCell(columnFieldMap.get(EmailFieldConst.FUND_NAME))) : null;
|
|
|
+ String fundName = ExcelUtil.getPriorityFieldValue(sheetRow, columnFieldMap.get(EmailFieldConst.LEVEL_FUND_NAME), columnFieldMap.get(EmailFieldConst.FUND_NAME));
|
|
|
emailFundNavDTO.setFundName(fundName);
|
|
|
|
|
|
- String registerNumber = columnFieldMap.get(EmailFieldConst.REGISTER_NUMBER) != null && sheetRow.getCell(columnFieldMap.get(EmailFieldConst.REGISTER_NUMBER)) != null ?
|
|
|
- ExcelUtil.getCellValue(sheetRow.getCell(columnFieldMap.get(EmailFieldConst.REGISTER_NUMBER))) : null;
|
|
|
+ String registerNumber = ExcelUtil.getPriorityFieldValue(sheetRow, columnFieldMap.get(EmailFieldConst.LEVEL_REGISTER_NUMBER), columnFieldMap.get(EmailFieldConst.REGISTER_NUMBER));
|
|
|
emailFundNavDTO.setRegisterNumber(registerNumber);
|
|
|
+
|
|
|
emailFundNavDTO.setNav(nav);
|
|
|
emailFundNavDTO.setCumulativeNavWithdrawal(cumulativeNavWithdrawal);
|
|
|
String virtualNav = columnFieldMap.get(EmailFieldConst.VIRTUAL_NAV) != null && sheetRow.getCell(columnFieldMap.get(EmailFieldConst.VIRTUAL_NAV)) != null ?
|
|
@@ -378,28 +377,16 @@ public class NavEmailParser extends AbstractEmailParser {
|
|
|
|
|
|
String assetNet = columnFieldMap.get(EmailFieldConst.ASSET_NET) != null && sheetRow.getCell(columnFieldMap.get(EmailFieldConst.ASSET_NET)) != null ?
|
|
|
ExcelUtil.getCellValue(sheetRow.getCell(columnFieldMap.get(EmailFieldConst.ASSET_NET))) : null;
|
|
|
- emailFundNavDTO.setAssetNet(numberDataHandler(assetNet));
|
|
|
+ emailFundNavDTO.setAssetNet(ExcelUtil.numberDataStripCommas(assetNet));
|
|
|
|
|
|
String assetShares = columnFieldMap.get(EmailFieldConst.ASSET_SHARE) != null && sheetRow.getCell(columnFieldMap.get(EmailFieldConst.ASSET_SHARE)) != null ?
|
|
|
ExcelUtil.getCellValue(sheetRow.getCell(columnFieldMap.get(EmailFieldConst.ASSET_SHARE))) : null;
|
|
|
- emailFundNavDTO.setAssetShare(numberDataHandler(assetShares));
|
|
|
+ emailFundNavDTO.setAssetShare(ExcelUtil.numberDataStripCommas(assetShares));
|
|
|
|
|
|
fundNavDTOList.add(emailFundNavDTO);
|
|
|
return fundNavDTOList;
|
|
|
}
|
|
|
|
|
|
- private String numberDataHandler(String numberData) {
|
|
|
- if (StrUtil.isBlank(numberData)) {
|
|
|
- return null;
|
|
|
- }
|
|
|
- // pdf解析到的值带有",",比如:"10,656,097.37"
|
|
|
- String data = numberData.replaceAll(",", "");
|
|
|
- if (!StringUtil.isNumeric(data)) {
|
|
|
- return null;
|
|
|
- }
|
|
|
- return data;
|
|
|
- }
|
|
|
-
|
|
|
private EmailFundNavDTO buildParentNav(Row sheetRow, Map<String, Integer> columnFieldMap, String priceDate) {
|
|
|
EmailFundNavDTO emailFundNavDTO = new EmailFundNavDTO();
|
|
|
String nav = columnFieldMap.get(EmailFieldConst.PARENT_NAV) != null && sheetRow.getCell(columnFieldMap.get(EmailFieldConst.PARENT_NAV)) != null ?
|
|
@@ -411,7 +398,7 @@ public class NavEmailParser extends AbstractEmailParser {
|
|
|
}
|
|
|
if (StrUtil.isNotBlank(priceDate) && !priceDate.contains("-")) {
|
|
|
// 处理日期yyyyMMdd格式 -> 转成yyyy-MM-dd
|
|
|
- priceDate = priceDate.replace("年","").replace("月","").replace("日","");
|
|
|
+ priceDate = priceDate.replace("年", "").replace("月", "").replace("日", "");
|
|
|
priceDate = DateUtil.format(DateUtil.parse(priceDate, DateConst.YYYYMMDD), DateConst.YYYY_MM_DD);
|
|
|
}
|
|
|
emailFundNavDTO.setPriceDate(priceDate);
|
|
@@ -429,11 +416,11 @@ public class NavEmailParser extends AbstractEmailParser {
|
|
|
|
|
|
String assetNet = columnFieldMap.get(EmailFieldConst.PARENT_ASSET_NET) != null && sheetRow.getCell(columnFieldMap.get(EmailFieldConst.PARENT_ASSET_NET)) != null ?
|
|
|
ExcelUtil.getCellValue(sheetRow.getCell(columnFieldMap.get(EmailFieldConst.PARENT_ASSET_NET))) : null;
|
|
|
- emailFundNavDTO.setAssetNet(numberDataHandler(assetNet));
|
|
|
+ emailFundNavDTO.setAssetNet(ExcelUtil.numberDataStripCommas(assetNet));
|
|
|
|
|
|
String assetShares = columnFieldMap.get(EmailFieldConst.PARENT_ASSET_SHARE) != null && sheetRow.getCell(columnFieldMap.get(EmailFieldConst.PARENT_ASSET_SHARE)) != null ?
|
|
|
ExcelUtil.getCellValue(sheetRow.getCell(columnFieldMap.get(EmailFieldConst.PARENT_ASSET_SHARE))) : null;
|
|
|
- emailFundNavDTO.setAssetNet(numberDataHandler(assetShares));
|
|
|
+ emailFundNavDTO.setAssetNet(ExcelUtil.numberDataStripCommas(assetShares));
|
|
|
|
|
|
return emailFundNavDTO;
|
|
|
}
|
|
@@ -551,19 +538,4 @@ public class NavEmailParser extends AbstractEmailParser {
|
|
|
}
|
|
|
return null;
|
|
|
}
|
|
|
-
|
|
|
- private void writeDataToSheet(Sheet sheet, Elements rows) {
|
|
|
- int rowSize = rows.size();
|
|
|
- for (int rowNum = 0; rowNum < rowSize; rowNum++) {
|
|
|
- Row sheetRow = sheet.createRow(rowNum);
|
|
|
-
|
|
|
- Element elementRow = rows.get(rowNum);
|
|
|
- Elements cells = elementRow.select("td");
|
|
|
- int cellSize = cells.size();
|
|
|
- for (int cellNum = 0; cellNum < cellSize; cellNum++) {
|
|
|
- Cell sheetRowCell = sheetRow.createCell(cellNum);
|
|
|
- sheetRowCell.setCellValue(cells.get(cellNum).text());
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
}
|