Browse Source

央地系统-新模板

master
583641232@qq.com 11 months ago
parent
commit
18f7454063
  1. 206
      cas-system/src/main/java/com/inscloudtech/bankStatementAnalysis/helper/CGSAnalysisHelper.java

206
cas-system/src/main/java/com/inscloudtech/bankStatementAnalysis/helper/CGSAnalysisHelper.java

@ -65,12 +65,13 @@ public class CGSAnalysisHelper {
for (File excelFile : excelFileList) {
String bankName = "";
try {
String excelFileName = excelFile.getAbsolutePath();
if(excelFileName.contains("金融理财")){
continue;
}
String bankName = "";
if(excelFileName.contains("_")){
int count = countString(excelFileName, "_");
@ -84,29 +85,29 @@ public class CGSAnalysisHelper {
List<CGSOpenAccountInfo> baseInfoList = new ArrayList<>();
String sourceFile = HelperUtil.getSourceFileName(excelFileName,BANK_NAME);
for (int sheetNo = 0; sheetNo < wb.getWorksheets().getCount(); sheetNo++) {
try {
Worksheet worksheet = wb.getWorksheets().get(sheetNo);
String worksheetName = worksheet.getName();
if(worksheetName.equals("交易流水信息")){
saveBS(wb,sheetNo,excelFileName,bankName,caseId);
} else if(worksheetName.equals("客户基本信息")){
getBaseInfo(wb,sheetNo,excelFileName,baseInfoList);
} else if(worksheetName.equals("账户基本信息")){
saveOpenInfo(wb,sheetNo,excelFileName,baseInfoList,bankName);
} else if(worksheetName.equals("查询反馈结果") || worksheetName.equals("强制措施信息")
|| worksheetName.equals("账户共有权信息")|| worksheetName.equals("关联子账户信息")){
continue;
}else {
throw new TemplateNotFindException(sourceFile + BankStatementConstants.NAME_WITH_SHEET_NAME+ worksheetName);
for (int sheetNo = 0; sheetNo < wb.getWorksheets().getCount(); sheetNo++) {
try {
Worksheet worksheet = wb.getWorksheets().get(sheetNo);
String worksheetName = worksheet.getName();
if(worksheetName.equals("交易流水信息")){
saveBS(wb,sheetNo,excelFileName,bankName,caseId,sourceFile);
} else if(worksheetName.equals("客户基本信息")){
getBaseInfo(wb,sheetNo,excelFileName,baseInfoList);
} else if(worksheetName.equals("账户基本信息")){
saveOpenInfo(wb,sheetNo,excelFileName,baseInfoList,bankName);
} else if(worksheetName.equals("查询反馈结果") || worksheetName.equals("强制措施信息")
|| worksheetName.equals("账户共有权信息")|| worksheetName.equals("关联子账户信息")){
continue;
}else {
throw new TemplateNotFindException(sourceFile + BankStatementConstants.NAME_WITH_SHEET_NAME+ worksheetName);
}
}catch (Exception e){
importResultService.record(caseId,bankName,e);
}
}
}catch (Exception e){
importResultService.record(caseId,BANK_NAME,e);
}
importResultService.record(caseId,bankName,e);
}
}catch (Exception e){
importResultService.record(caseId,BANK_NAME,e);
}
}
}
@ -203,27 +204,26 @@ public class CGSAnalysisHelper {
}
}
void saveBS(Workbook wb,int sheetNo, String excelFileName,String bankName,String caseId){
void saveBS(Workbook wb,int sheetNo, String excelFileName,String bankName,String caseId,String sourceFile){
Cells cells = wb.getWorksheets().get(sheetNo).getCells();
Cell cell = AsposeUtil.getCell(cells, "交易时间");
if (cell == null) {
return;
}
int headRowNum = cell.getRow() + 1;
int headRowNum = cell.getRow() + 1;
List<CGSBankStatement> bsList = new ArrayList<>();
try (ExcelReader reader = EasyExcel.read(excelFileName).build()) {
ReadSheet sheet = EasyExcel.readSheet(sheetNo)
.headRowNumber(headRowNum)
.head(CGSBankStatement.class)
.registerReadListener(getBSReadListener(bsList,bankName,caseId))
.registerReadListener(getBSReadListener(bsList,bankName,caseId,sourceFile))
.build();
reader.read(sheet);
} catch (Exception e) {
log.error("读取央地系统数据失败", e);
throw new ImportDataFailedException(e.getMessage(), excelFileName);
throw new ImportDataFailedException(e.getMessage(), sourceFile);
}
}
@ -242,7 +242,7 @@ public class CGSAnalysisHelper {
};
}
private ReadListener<CGSBankStatement> getBSReadListener(List<CGSBankStatement> bsList,String bankName,String caseId) {
private ReadListener<CGSBankStatement> getBSReadListener(List<CGSBankStatement> bsList,String bankName,String caseId,String sourceFile) {
return new ReadListener<CGSBankStatement>() {
@Override
public void invoke(CGSBankStatement data, AnalysisContext context) {
@ -265,8 +265,9 @@ public class CGSAnalysisHelper {
String.format("解析交易时间错误,无法将【%s】格式化为【%s】", transTime, format), new Exception());
}
}catch (Exception e){
importResultService.record(caseId,bankName,e);
importResultService.record(caseId,bankName,e,sourceFile);
}
data.setSourceFile(sourceFile);
data.setBankName(bankName);
data.setId(IdUtil.objectId());
bsList.add(data);
@ -360,100 +361,99 @@ public class CGSAnalysisHelper {
for (CGSBankStatement entity : cgsBankStatementList) {
String sourceFile = entity.getSourceFile();
try {
// 流水
String cardNumber = entity.getCardNumber();
if(StrUtil.isEmpty(cardNumber)){
continue;
}
// 流水
String cardNumber = entity.getCardNumber();
if(StrUtil.isEmpty(cardNumber)){
continue;
}
BankStatement bs = new BankStatement();
bs.setBankName(entity.getBankName());
bs.setCardHolderName(entity.getCardHolderName());
if (groupByCardNumber.containsKey(cardNumber)) {
List<OpeningAccountInfo> abcCustomerInfoEntities = groupByCardNumber.get(cardNumber);
OpeningAccountInfo oai = abcCustomerInfoEntities.get(0);
bs.setIdCardNo(oai.getIdNo());
if(StrUtil.isNotEmpty(oai.getName())){
bs.setCardHolderName(oai.getName());
BankStatement bs = new BankStatement();
bs.setBankName(entity.getBankName());
bs.setCardHolderName(entity.getCardHolderName());
if (groupByCardNumber.containsKey(cardNumber)) {
List<OpeningAccountInfo> abcCustomerInfoEntities = groupByCardNumber.get(cardNumber);
OpeningAccountInfo oai = abcCustomerInfoEntities.get(0);
bs.setIdCardNo(oai.getIdNo());
if(StrUtil.isNotEmpty(oai.getName())){
bs.setCardHolderName(oai.getName());
}
bs.setPhone(oai.getPhone());
}
bs.setPhone(oai.getPhone());
}
bs.setCardNumber(cardNumber);
// 4 交易时间
String transTime = entity.getTransTime();
bs.setCardNumber(cardNumber);
// 4 交易时间
String transTime = entity.getTransTime();
if (StringUtils.isNotEmpty(transTime)) {
bs.setTransactionTime(DateUtil.parse(transTime, format));
}
if (StringUtils.isNotEmpty(transTime)) {
bs.setTransactionTime(DateUtil.parse(transTime, format));
}
// 2交易金额
// 借贷标记来计算
//
String creditMark = entity.getCreditMark();
if (StrUtil.isNotEmpty(creditMark)) {
BigDecimal transactionAmount = NumberUtil.toBigDecimal(entity.getTransactionAmount());
if (creditMark.equalsIgnoreCase("进")) {
bs.setTransactionAmount(transactionAmount);
} else {
bs.setTransactionAmount(BigDecimal.ZERO.subtract(transactionAmount));
// 2交易金额
// 借贷标记来计算
//
String creditMark = entity.getCreditMark();
if (StrUtil.isNotEmpty(creditMark)) {
BigDecimal transactionAmount = NumberUtil.toBigDecimal(entity.getTransactionAmount());
if (creditMark.equalsIgnoreCase("进")) {
bs.setTransactionAmount(transactionAmount);
} else {
bs.setTransactionAmount(BigDecimal.ZERO.subtract(transactionAmount));
}
} else { // 没有借贷标志说明交易金额是零
bs.setTransactionAmount(BigDecimal.ZERO);
}
} else { // 没有借贷标志说明交易金额是零
bs.setTransactionAmount(BigDecimal.ZERO);
}
// 3 余额
bs.setBalance(entity.getBalance());
// 3 余额
bs.setBalance(entity.getBalance());
//去重
String uniqueKey = bs.getCardHolderName()+bs.getIdCardNo()+bs.getCardNumber()+bs.getTransactionTime()+bs.getTransactionAmount()+
bs.getBalance();
if (uniqueKeySet.contains(uniqueKey)) {
continue;
}
uniqueKeySet.add(uniqueKey);
//去重
String uniqueKey = bs.getCardHolderName()+bs.getIdCardNo()+bs.getCardNumber()+bs.getTransactionTime()+bs.getTransactionAmount()+
bs.getBalance();
if (uniqueKeySet.contains(uniqueKey)) {
continue;
}
uniqueKeySet.add(uniqueKey);
// 1 货币类型
bs.setTransCurrencyType(Constants.CURRENCY_TYPE_CHINA);
// 1 货币类型
bs.setTransCurrencyType(Constants.CURRENCY_TYPE_CHINA);
bs.setCounterpartyName(entity.getCounterpartyName());
bs.setCounterpartyBankName(entity.getCounterpartyBankName());
bs.setCounterpartyAccount(entity.getCounterpartyAccount());
bs.setTransactionInstitutions(entity.getTransactionSituation());
bs.setSummary(entity.getTransSummary());
bs.setTransRemark(entity.getTransRemark());
bs.setTransChannel(entity.getTransChannel());
bs.setCounterpartyName(entity.getCounterpartyName());
bs.setCounterpartyBankName(entity.getCounterpartyBankName());
bs.setCounterpartyAccount(entity.getCounterpartyAccount());
bs.setTransactionInstitutions(entity.getTransactionSituation());
bs.setSummary(entity.getTransSummary());
bs.setTransRemark(entity.getTransRemark());
bs.setTransChannel(entity.getTransChannel());
String md5Id = HelperUtil.generateMD5Id(bs,caseId);
//未导入数据内部去重
if(HelperUtil.deduplication(md5Id,uniqueKeySet)){
continue;
}
String md5Id = HelperUtil.generateMD5Id(bs,caseId);
//未导入数据内部去重
if(HelperUtil.deduplication(md5Id,uniqueKeySet)){
continue;
}
bs.setSourceFile(entity.getSourceFile());
bs.setId(md5Id);
bs.setCaseId(caseId);
try {
BeanUtils.beanAttributeValueTrim(bs);
} catch (Exception e) {
e.printStackTrace();
}
bsList.add(bs);
bs.setSourceFile(entity.getSourceFile());
bs.setId(md5Id);
bs.setCaseId(caseId);
try {
BeanUtils.beanAttributeValueTrim(bs);
} catch (Exception e) {
e.printStackTrace();
}
bsList.add(bs);
HelperUtil.extractPlateNumber(bs,plateNumberInfoList);
if (bsList.size() >= batchSize) {
List<BankStatement> dest = HelperUtil.getDest(bsList);
HelperUtil.batchInsert2Es(dest, caseId);
if (bsList.size() >= batchSize) {
List<BankStatement> dest = HelperUtil.getDest(bsList);
HelperUtil.batchInsert2Es(dest, caseId);
bsList = ListUtils.newArrayListWithExpectedSize(batchSize);
bsList = ListUtils.newArrayListWithExpectedSize(batchSize);
}
} catch (Exception e) {
importResultService.record(caseId, entity.getBankName(), e,sourceFile);
}
} catch (Exception e) {
importResultService.record(caseId, BANK_NAME, e,sourceFile);
}
}
uniqueKeySet.clear();

Loading…
Cancel
Save