Commit 7aad1b01 by zhangxingmin

push

parent 62ab623c
......@@ -2,8 +2,11 @@ package com.yd.csf.api.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yd.base.feign.client.bank.ApiBankFeignClient;
import com.yd.base.feign.client.exchangerate.ApiExchangeRateFeignClient;
import com.yd.base.feign.request.bank.ApiBankListRequest;
import com.yd.base.feign.request.exchangerate.ApiExchangeRateConvertRequest;
import com.yd.base.feign.response.bank.ApiBankDetailResponse;
import com.yd.base.feign.response.exchangerate.ApiExchangeRateConvertResponse;
import com.yd.common.enums.CommonEnum;
import com.yd.common.exception.BusinessException;
......@@ -65,6 +68,9 @@ public class ApiPremiumReconciliationServiceImpl implements ApiPremiumReconcilia
@Autowired
private ApiSysDictFeignClient apiSysDictFeignClient;
@Autowired
private ApiBankFeignClient apiBankFeignClient;
/**
* 分页列表查询-保费对账记录信息
* @param request
......@@ -78,13 +84,41 @@ public class ApiPremiumReconciliationServiceImpl implements ApiPremiumReconcilia
// 获取缴费方式字典数据
Map<String, String> paymentMethodDictMap = getPaymentMethodDict();
// 翻译paymentMethod字段
// 获取所有银行ID,准备翻译银行名称
Set<String> bankBizIdSet = new HashSet<>();
// 收集所有银行ID并翻译缴费方式
if (iPage != null && !CollectionUtils.isEmpty(iPage.getRecords())) {
for (ApiPremiumReconciliationPageResponse item : iPage.getRecords()) {
// 翻译缴费方式
if (StringUtils.isNotBlank(item.getPaymentMethod())) {
String translated = translatePaymentMethod(item.getPaymentMethod(), paymentMethodDictMap);
item.setPaymentMethod(translated);
}
// 收集银行ID(payingBank字段)
if (StringUtils.isNotBlank(item.getPayingBank())) {
// 分割多个银行ID(用分号分隔)
String[] bankIds = item.getPayingBank().split(";");
for (String bankId : bankIds) {
if (StringUtils.isNotBlank(bankId.trim())) {
bankBizIdSet.add(bankId.trim());
}
}
}
}
}
// 翻译银行名称
if (!bankBizIdSet.isEmpty()) {
Map<String, String> bankNameMap = getBankNames(bankBizIdSet);
// 翻译银行名称字段
for (ApiPremiumReconciliationPageResponse item : iPage.getRecords()) {
if (StringUtils.isNotBlank(item.getPayingBank())) {
String translated = translateBankNames(item.getPayingBank(), bankNameMap);
item.setPayingBank(translated);
}
}
}
......@@ -119,6 +153,31 @@ public class ApiPremiumReconciliationServiceImpl implements ApiPremiumReconcilia
}
/**
* 获取银行名称映射
*/
private Map<String, String> getBankNames(Set<String> bankBizIdSet) {
Map<String, String> bankNameMap = new HashMap<>();
try {
ApiBankListRequest bankRequest = new ApiBankListRequest();
bankRequest.setBankBizIdList(new ArrayList<>(bankBizIdSet));
Result<List<ApiBankDetailResponse>> bankResult = apiBankFeignClient.list(bankRequest);
if (bankResult != null && bankResult.getCode() == 200 && !CollectionUtils.isEmpty(bankResult.getData())) {
for (ApiBankDetailResponse bankDetail : bankResult.getData()) {
// 优先使用银行简称,如果没有则使用银行全称
String bankName = StringUtils.isNotBlank(bankDetail.getBankShortName())
? bankDetail.getBankShortName()
: bankDetail.getBankName();
bankNameMap.put(bankDetail.getBankBizId(), bankName);
}
}
} catch (Exception e) {
log.error("获取银行名称失败", e);
}
return bankNameMap;
}
/**
* 翻译缴费方式
* 处理多个缴费方式(用分号分隔)的情况
*/
......@@ -149,6 +208,36 @@ public class ApiPremiumReconciliationServiceImpl implements ApiPremiumReconcilia
}
/**
* 翻译银行名称
* 处理多个银行(用分号分隔)的情况
*/
private String translateBankNames(String payingBank, Map<String, String> bankNameMap) {
if (StringUtils.isBlank(payingBank)) {
return payingBank;
}
String[] bankIds = payingBank.split(";");
StringBuilder translated = new StringBuilder();
for (int i = 0; i < bankIds.length; i++) {
String bankId = bankIds[i].trim();
String bankName = bankNameMap.get(bankId);
if (bankName != null) {
translated.append(bankName);
} else {
translated.append(bankId); // 如果找不到对应的银行,保留原ID
}
if (i < bankIds.length - 1) {
translated.append(";");
}
}
return translated.toString();
}
/**
* 添加-保费对账记录信息
* @param request
* @return
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment