From 18f7454063dbdebd5a15f9c30e4b6432cd9e85aa Mon Sep 17 00:00:00 2001 From: "583641232@qq.com" <583641232@qq.com> Date: Tue, 8 Oct 2024 18:05:10 +0800 Subject: [PATCH] =?UTF-8?q?:sparkles:=20=20=20=E5=A4=AE=E5=9C=B0=E7=B3=BB?= =?UTF-8?q?=E7=BB=9F-=E6=96=B0=E6=A8=A1=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../helper/CGSAnalysisHelper.java | 206 +++++++++--------- 1 file changed, 103 insertions(+), 103 deletions(-) diff --git a/cas-system/src/main/java/com/inscloudtech/bankStatementAnalysis/helper/CGSAnalysisHelper.java b/cas-system/src/main/java/com/inscloudtech/bankStatementAnalysis/helper/CGSAnalysisHelper.java index 65f7c85..c67951c 100644 --- a/cas-system/src/main/java/com/inscloudtech/bankStatementAnalysis/helper/CGSAnalysisHelper.java +++ b/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 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 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 getBSReadListener(List bsList,String bankName,String caseId) { + private ReadListener getBSReadListener(List bsList,String bankName,String caseId,String sourceFile) { return new ReadListener() { @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 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 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 dest = HelperUtil.getDest(bsList); + HelperUtil.batchInsert2Es(dest, caseId); - if (bsList.size() >= batchSize) { - List 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();