Browse Source

工商银行数据导入-账号对应卡号

master
583641232@qq.com 1 year ago
parent
commit
58137f2877
  1. 8
      cas-system/src/main/java/com/inscloudtech/bankStatementAnalysis/domain/ImportOpeningAccountInfo.java
  2. 2
      cas-system/src/main/java/com/inscloudtech/bankStatementAnalysis/helper/HelperUtil.java
  3. 58
      cas-system/src/main/java/com/inscloudtech/bankStatementAnalysis/helper/ICBCDataAnalysisHelper.java
  4. 1
      cas-system/src/main/java/com/inscloudtech/bankStatementAnalysis/service/impl/ImportServiceImpl.java
  5. 2
      cas-system/src/main/java/com/inscloudtech/datacenter/domain/OpeningAccountInfo.java
  6. 2
      cas-system/src/main/java/com/inscloudtech/datacenter/service/IndexInitService.java

8
cas-system/src/main/java/com/inscloudtech/bankStatementAnalysis/domain/ImportOpeningAccountInfo.java

@ -19,9 +19,11 @@ import java.math.BigDecimal;
* 导入银行流水开户信息模板 * 导入银行流水开户信息模板
*/ */
@Data @Data
@IndexName(BankStatementConstants.IMPORT_TEMPLATE_OPENING_ACCOUNT) @IndexName(BankStatementConstants.IMPORT_TEMPLATE_OPENING_ACCOUNT)
public class ImportOpeningAccountInfo { public class ImportOpeningAccountInfo {
@ExcelIgnore
@IndexId(type = IdType.CUSTOMIZE) @IndexId(type = IdType.CUSTOMIZE)
private String id; private String id;
@ -35,8 +37,8 @@ public class ImportOpeningAccountInfo {
@ExcelProperty({"客户账号","客户主账号", "主账号", "卡号", "账号","卡号或帐号"}) @ExcelProperty({"客户账号","客户主账号", "主账号", "卡号", "账号","卡号或帐号"})
private String accountNumber; private String accountNumber;
@ExcelProperty({"账号对应卡号"})
private String account2CardNumber;
@ExcelProperty(value = "账号对应卡号")
private String accountCardNumber;
@ExcelProperty({"子账号"}) @ExcelProperty({"子账号"})
private String accountNumberItem; private String accountNumberItem;
@ -63,8 +65,10 @@ public class ImportOpeningAccountInfo {
@ExcelProperty({"开户行","开户机构", "开户机构名称"}) @ExcelProperty({"开户行","开户机构", "开户机构名称"})
private String accountOpeningInstitution; private String accountOpeningInstitution;
@ExcelIgnore
private String caseId; private String caseId;
@ExcelIgnore
private String bankName; private String bankName;
/** /**

2
cas-system/src/main/java/com/inscloudtech/bankStatementAnalysis/helper/HelperUtil.java

@ -1004,7 +1004,7 @@ public class HelperUtil {
public static String generateMD5Id4OAI(OpeningAccountInfo oai, String caseId) { public static String generateMD5Id4OAI(OpeningAccountInfo oai, String caseId) {
String uniqueKey = caseId + oai.getBankName()+oai.getName()+oai.getAccountNumber()+oai.getIdNo()+oai.getPhone()+oai.getOpeningAccountDate()+ String uniqueKey = caseId + oai.getBankName()+oai.getName()+oai.getAccountNumber()+oai.getIdNo()+oai.getPhone()+oai.getOpeningAccountDate()+
oai.getClosingDate()+oai.getStatus()+oai.getCustomerId()+oai.getAccount2CardNumber();
oai.getClosingDate()+oai.getStatus()+oai.getCustomerId()+oai.getAccountCardNumber();
return generateMD5(uniqueKey); return generateMD5(uniqueKey);
} }

58
cas-system/src/main/java/com/inscloudtech/bankStatementAnalysis/helper/ICBCDataAnalysisHelper.java

@ -200,8 +200,10 @@ public class ICBCDataAnalysisHelper {
List<ICBCCreditCardBankStatementEntry> entityList = List<ICBCCreditCardBankStatementEntry> entityList =
HelperUtil.getEntityList(creditCardBankStatementMapper, ICBCCreditCardBankStatementEntry.class); HelperUtil.getEntityList(creditCardBankStatementMapper, ICBCCreditCardBankStatementEntry.class);
List<OpeningAccountInfo> oaiData = importService.getOAIData(caseId, BANK_NAME); List<OpeningAccountInfo> oaiData = importService.getOAIData(caseId, BANK_NAME);
Map<String, OpeningAccountInfo> nameAccMap = new HashMap<>(); Map<String, OpeningAccountInfo> nameAccMap = new HashMap<>();
Map<String, OpeningAccountInfo> cardNumberAccMap = new HashMap<>(); Map<String, OpeningAccountInfo> cardNumberAccMap = new HashMap<>();
Map<String, OpeningAccountInfo> accountNumberAccMap = new HashMap<>();
Map<String, OpeningAccountInfo> account2CardNumberMap = new HashMap<>(); Map<String, OpeningAccountInfo> account2CardNumberMap = new HashMap<>();
for (OpeningAccountInfo entry : oaiData) { for (OpeningAccountInfo entry : oaiData) {
@ -213,8 +215,11 @@ public class ICBCDataAnalysisHelper {
cardNumberAccMap.put(entry.getAccountNumber(), entry); cardNumberAccMap.put(entry.getAccountNumber(), entry);
} }
if (StrUtil.isNotEmpty(entry.getAccount2CardNumber())) {
account2CardNumberMap.put(entry.getAccount2CardNumber(), entry);
if (StrUtil.isNotEmpty(entry.getCustomerId())) {
accountNumberAccMap.put(entry.getCustomerId(), entry);
}
if (StrUtil.isNotEmpty(entry.getAccountCardNumber())) {
account2CardNumberMap.put(entry.getAccountCardNumber(), entry);
} }
} }
@ -230,19 +235,39 @@ public class ICBCDataAnalysisHelper {
bs.setBankName(BANK_NAME); bs.setBankName(BANK_NAME);
bs.setCardNumber(entry.getCardNumber()); bs.setCardNumber(entry.getCardNumber());
bs.setCardHolderName(entry.getCardHolderName()); bs.setCardHolderName(entry.getCardHolderName());
if (StrUtil.isEmpty(bs.getCardHolderName())) {
// 从开户信息中获取数据
OpeningAccountInfo acc = cardNumberAccMap.getOrDefault(entry.getCardNumber(), null);
if (acc != null) {
bs.setCardHolderName(acc.getName());
bs.setIdCardNo(acc.getIdNo());
}else {
acc = account2CardNumberMap.getOrDefault(entry.getCardNumber(), null);
if (acc != null) {
bs.setCardHolderName(acc.getName());
bs.setIdCardNo(acc.getIdNo());
}
String cardNumber = entry.getCardNumber();
String accountNumber = entry.getAccountNumber();
if (StrUtil.isEmpty(entry.getCardHolderName())) {
if (cardNumberAccMap.containsKey(cardNumber)) {
OpeningAccountInfo info = cardNumberAccMap.get(cardNumber);
bs.setCardHolderName(info.getName());
bs.setIdCardNo(info.getIdNo());
} else if (cardNumberAccMap.containsKey(accountNumber)) {
OpeningAccountInfo info = cardNumberAccMap.get(accountNumber);
bs.setCardHolderName(info.getName());
bs.setIdCardNo(info.getIdNo());
} else if(accountNumberAccMap.containsKey(cardNumber)){
OpeningAccountInfo info = accountNumberAccMap.get(cardNumber);
bs.setCardHolderName(info.getName());
bs.setIdCardNo(info.getIdNo());
} else if(accountNumberAccMap.containsKey(accountNumber)){
OpeningAccountInfo info = accountNumberAccMap.get(accountNumber);
bs.setCardHolderName(info.getName());
bs.setIdCardNo(info.getIdNo());
} else if(account2CardNumberMap.containsKey(accountNumber)){
OpeningAccountInfo info = account2CardNumberMap.get(accountNumber);
bs.setCardHolderName(info.getName());
bs.setIdCardNo(info.getIdNo());
}else if(account2CardNumberMap.containsKey(cardNumber)){
OpeningAccountInfo info = account2CardNumberMap.get(cardNumber);
bs.setCardHolderName(info.getName());
bs.setIdCardNo(info.getIdNo());
} }
}else { }else {
// 从开户信息中获取数据 // 从开户信息中获取数据
OpeningAccountInfo acc = nameAccMap.getOrDefault(entry.getCardHolderName(), null); OpeningAccountInfo acc = nameAccMap.getOrDefault(entry.getCardHolderName(), null);
@ -251,6 +276,7 @@ public class ICBCDataAnalysisHelper {
} }
} }
bs.setCounterpartyName(entry.getCounterpartyName()); bs.setCounterpartyName(entry.getCounterpartyName());
bs.setCounterpartIdCardNo(null); bs.setCounterpartIdCardNo(null);
bs.setCounterpartyAccount(entry.getCounterpartyAccount()); bs.setCounterpartyAccount(entry.getCounterpartyAccount());
@ -345,8 +371,8 @@ public class ICBCDataAnalysisHelper {
if (StrUtil.isNotEmpty(entry.getCustomerId())) { if (StrUtil.isNotEmpty(entry.getCustomerId())) {
accountNumberAccMap.put(entry.getCustomerId(), entry); accountNumberAccMap.put(entry.getCustomerId(), entry);
} }
if (StrUtil.isNotEmpty(entry.getAccount2CardNumber())) {
account2CardNumberMap.put(entry.getAccount2CardNumber(), entry);
if (StrUtil.isNotEmpty(entry.getAccountCardNumber())) {
account2CardNumberMap.put(entry.getAccountCardNumber(), entry);
} }
} }

1
cas-system/src/main/java/com/inscloudtech/bankStatementAnalysis/service/impl/ImportServiceImpl.java

@ -19,6 +19,7 @@ import com.aspose.cells.Cell;
import com.aspose.cells.Cells; import com.aspose.cells.Cells;
import com.aspose.cells.Workbook; import com.aspose.cells.Workbook;
import com.aspose.cells.Worksheet; import com.aspose.cells.Worksheet;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.inscloudtech.bankStatementAnalysis.domain.HeadField; import com.inscloudtech.bankStatementAnalysis.domain.HeadField;
import com.inscloudtech.bankStatementAnalysis.domain.ImportOpeningAccountInfo; import com.inscloudtech.bankStatementAnalysis.domain.ImportOpeningAccountInfo;
import com.inscloudtech.bankStatementAnalysis.domain.ReadDto; import com.inscloudtech.bankStatementAnalysis.domain.ReadDto;

2
cas-system/src/main/java/com/inscloudtech/datacenter/domain/OpeningAccountInfo.java

@ -72,7 +72,7 @@ public class OpeningAccountInfo implements Serializable {
*/ */
@ExcelProperty(value = "账号对应卡号") @ExcelProperty(value = "账号对应卡号")
@DeduplicationField @DeduplicationField
private String account2CardNumber;
private String accountCardNumber;
/** /**

2
cas-system/src/main/java/com/inscloudtech/datacenter/service/IndexInitService.java

@ -11,7 +11,7 @@ public class IndexInitService {
public static final String OPENING_ACCOUNT_INFO_INDEX = "dc_opening_account_info"; public static final String OPENING_ACCOUNT_INFO_INDEX = "dc_opening_account_info";
public static final String OPENING_ACCOUNT_INFO_MAPPING = "{\"properties\":{\"accountNumber\":{\"type\":\"text\",\"fields\":{\"keyword\":{\"type\":\"keyword\",\"ignore_above\":256}}}," + public static final String OPENING_ACCOUNT_INFO_MAPPING = "{\"properties\":{\"accountNumber\":{\"type\":\"text\",\"fields\":{\"keyword\":{\"type\":\"keyword\",\"ignore_above\":256}}}," +
"\"customerId\":{\"type\":\"text\",\"fields\":{\"keyword\":{\"type\":\"keyword\",\"ignore_above\":256}}}," + "\"customerId\":{\"type\":\"text\",\"fields\":{\"keyword\":{\"type\":\"keyword\",\"ignore_above\":256}}}," +
"\"account2CardNumber\":{\"type\":\"text\",\"fields\":{\"keyword\":{\"type\":\"keyword\",\"ignore_above\":256}}}," +
"\"accountCardNumber\":{\"type\":\"text\",\"fields\":{\"keyword\":{\"type\":\"keyword\",\"ignore_above\":256}}}," +
"\"accountOpeningInstitution\":{\"type\":\"text\",\"fields\":{\"keyword\":{\"type\":\"keyword\",\"ignore_above\":256}}},\"address\":{\"type\":\"text\",\"fields\":{\"keyword\":{\"type\":\"keyword\",\"ignore_above\":256}}},\"analysisResultId\":{\"type\":\"text\",\"fields\":{\"keyword\":{\"type\":\"keyword\",\"ignore_above\":256}}},\"balance\":{\"type\":\"scaled_float\",\"scaling_factor\":100.0},\"bankName\":{\"type\":\"text\",\"fields\":{\"keyword\":{\"type\":\"keyword\",\"ignore_above\":256}},\"fielddata\":true},\"bgColor\":{\"type\":\"text\",\"fields\":{\"keyword\":{\"type\":\"keyword\",\"ignore_above\":256}}},\"bgc\":{\"type\":\"text\",\"fields\":{\"keyword\":{\"type\":\"keyword\",\"ignore_above\":256}}},\"caseId\":{\"type\":\"text\",\"fields\":{\"keyword\":{\"type\":\"keyword\",\"ignore_above\":256}}},\"closingDate\":{\"type\":\"text\",\"fields\":{\"keyword\":{\"type\":\"keyword\",\"ignore_above\":256}},\"fielddata\":true},\"createTime\":{\"type\":\"long\"},\"freezeDate\":{\"type\":\"text\",\"fields\":{\"keyword\":{\"type\":\"keyword\",\"ignore_above\":256}},\"fielddata\":true},\"freezeInfo\":{\"type\":\"text\",\"fields\":{\"keyword\":{\"type\":\"keyword\",\"ignore_above\":256}}},\"idNo\":{\"type\":\"text\",\"fields\":{\"keyword\":{\"type\":\"keyword\",\"ignore_above\":256}},\"fielddata\":true},\"idType\":{\"type\":\"text\",\"fields\":{\"keyword\":{\"type\":\"keyword\",\"ignore_above\":256}},\"fielddata\":true},\"ids\":{\"type\":\"text\"},\"name\":{\"type\":\"text\",\"fields\":{\"keyword\":{\"type\":\"keyword\",\"ignore_above\":256}},\"fielddata\":true},\"newAccountNumber\":{\"type\":\"text\",\"fields\":{\"keyword\":{\"type\":\"keyword\",\"ignore_above\":256}}},\"onlineBankingSigningInfo\":{\"type\":\"text\",\"fields\":{\"keyword\":{\"type\":\"keyword\",\"ignore_above\":256}}},\"openingAccountDate\":{\"type\":\"text\",\"fields\":{\"keyword\":{\"type\":\"keyword\",\"ignore_above\":256}},\"fielddata\":true},\"phone\":{\"type\":\"text\",\"fields\":{\"keyword\":{\"type\":\"keyword\",\"ignore_above\":256}}},\"remark\":{\"type\":\"text\",\"fields\":{\"keyword\":{\"type\":\"keyword\",\"ignore_above\":256}}},\"revokeList\":{\"type\":\"text\"},\"sId\":{\"type\":\"text\",\"fields\":{\"keyword\":{\"type\":\"keyword\",\"ignore_above\":256}}},\"status\":{\"type\":\"text\",\"fields\":{\"keyword\":{\"type\":\"keyword\",\"ignore_above\":256}},\"fielddata\":true},\"type\":{\"type\":\"text\",\"fields\":{\"keyword\":{\"type\":\"keyword\",\"ignore_above\":256}},\"fielddata\":true}}}"; "\"accountOpeningInstitution\":{\"type\":\"text\",\"fields\":{\"keyword\":{\"type\":\"keyword\",\"ignore_above\":256}}},\"address\":{\"type\":\"text\",\"fields\":{\"keyword\":{\"type\":\"keyword\",\"ignore_above\":256}}},\"analysisResultId\":{\"type\":\"text\",\"fields\":{\"keyword\":{\"type\":\"keyword\",\"ignore_above\":256}}},\"balance\":{\"type\":\"scaled_float\",\"scaling_factor\":100.0},\"bankName\":{\"type\":\"text\",\"fields\":{\"keyword\":{\"type\":\"keyword\",\"ignore_above\":256}},\"fielddata\":true},\"bgColor\":{\"type\":\"text\",\"fields\":{\"keyword\":{\"type\":\"keyword\",\"ignore_above\":256}}},\"bgc\":{\"type\":\"text\",\"fields\":{\"keyword\":{\"type\":\"keyword\",\"ignore_above\":256}}},\"caseId\":{\"type\":\"text\",\"fields\":{\"keyword\":{\"type\":\"keyword\",\"ignore_above\":256}}},\"closingDate\":{\"type\":\"text\",\"fields\":{\"keyword\":{\"type\":\"keyword\",\"ignore_above\":256}},\"fielddata\":true},\"createTime\":{\"type\":\"long\"},\"freezeDate\":{\"type\":\"text\",\"fields\":{\"keyword\":{\"type\":\"keyword\",\"ignore_above\":256}},\"fielddata\":true},\"freezeInfo\":{\"type\":\"text\",\"fields\":{\"keyword\":{\"type\":\"keyword\",\"ignore_above\":256}}},\"idNo\":{\"type\":\"text\",\"fields\":{\"keyword\":{\"type\":\"keyword\",\"ignore_above\":256}},\"fielddata\":true},\"idType\":{\"type\":\"text\",\"fields\":{\"keyword\":{\"type\":\"keyword\",\"ignore_above\":256}},\"fielddata\":true},\"ids\":{\"type\":\"text\"},\"name\":{\"type\":\"text\",\"fields\":{\"keyword\":{\"type\":\"keyword\",\"ignore_above\":256}},\"fielddata\":true},\"newAccountNumber\":{\"type\":\"text\",\"fields\":{\"keyword\":{\"type\":\"keyword\",\"ignore_above\":256}}},\"onlineBankingSigningInfo\":{\"type\":\"text\",\"fields\":{\"keyword\":{\"type\":\"keyword\",\"ignore_above\":256}}},\"openingAccountDate\":{\"type\":\"text\",\"fields\":{\"keyword\":{\"type\":\"keyword\",\"ignore_above\":256}},\"fielddata\":true},\"phone\":{\"type\":\"text\",\"fields\":{\"keyword\":{\"type\":\"keyword\",\"ignore_above\":256}}},\"remark\":{\"type\":\"text\",\"fields\":{\"keyword\":{\"type\":\"keyword\",\"ignore_above\":256}}},\"revokeList\":{\"type\":\"text\"},\"sId\":{\"type\":\"text\",\"fields\":{\"keyword\":{\"type\":\"keyword\",\"ignore_above\":256}}},\"status\":{\"type\":\"text\",\"fields\":{\"keyword\":{\"type\":\"keyword\",\"ignore_above\":256}},\"fielddata\":true},\"type\":{\"type\":\"text\",\"fields\":{\"keyword\":{\"type\":\"keyword\",\"ignore_above\":256}},\"fielddata\":true}}}";
public static final String TRANSACTION_PARTNER_INDEX = "dc_transaction_partner"; public static final String TRANSACTION_PARTNER_INDEX = "dc_transaction_partner";

Loading…
Cancel
Save