fix: 金蝶A801-5黑名单查询补必填分页参数并循环翻页取全量,查询异常上抛阻断客商提审
- BfiBlacklistQueryDTO 补 pageNo/pageSize 必填字段,pageSize 取值范围[1,2000] - BfiConstant 新增 BLACKLIST_QUERY_PAGE_SIZE=2000,IBfiClient.blacklistQuery 返回契约改为 BfiPageVO 分页结构 - BfiServiceImpl.queryBlacklist 复用 BfiUtil.queryAllPages 循环翻页聚合全量黑名单 - CustomerArchiveServiceImpl.validateBlacklist 移除吞异常放行逻辑,金蝶查询失败直接上抛 BfiException 阻断提审
This commit is contained in:
+2
-9
@@ -1054,7 +1054,7 @@ public class CustomerArchiveServiceImpl extends BaseServiceImpl<CustomerArchiveM
|
|||||||
* 国资委黑名单校验(A801-5):客商提审进入准入审批前实时查询金蝶黑名单,
|
* 国资委黑名单校验(A801-5):客商提审进入准入审批前实时查询金蝶黑名单,
|
||||||
* 按统一社会信用代码精确匹配;命中禁止交易类(A)硬拦截,
|
* 按统一社会信用代码精确匹配;命中禁止交易类(A)硬拦截,
|
||||||
* 风险警示类(B)默认放行告警、可经 {@code thirdparty.bfi.blacklist.blockRiskWarning} 配置拦截,
|
* 风险警示类(B)默认放行告警、可经 {@code thirdparty.bfi.blacklist.blockRiskWarning} 配置拦截,
|
||||||
* 其他类别放行告警;黑名单查询异常不阻断准入(放行并记录错误日志),金蝶可用性口径待联调确认
|
* 其他类别放行告警;金蝶黑名单查询异常时向上抛出,阻断提审
|
||||||
*
|
*
|
||||||
* @param customer 客商
|
* @param customer 客商
|
||||||
*/
|
*/
|
||||||
@@ -1063,14 +1063,7 @@ public class CustomerArchiveServiceImpl extends BaseServiceImpl<CustomerArchiveM
|
|||||||
if (Func.isEmpty(creditCode)) {
|
if (Func.isEmpty(creditCode)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
List<BfiBlacklistVO> blacklist;
|
List<BfiBlacklistVO> blacklist = bfiService.queryBlacklist("1");
|
||||||
try {
|
|
||||||
blacklist = bfiService.queryBlacklist("1");
|
|
||||||
} catch (Exception exception) {
|
|
||||||
log.error("查询金蝶黑名单失败,黑名单校验放行,fullName={},unifiedCreditCode={}",
|
|
||||||
customer.getFullName(), creditCode, exception);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
String code = creditCode.trim().toUpperCase();
|
String code = creditCode.trim().toUpperCase();
|
||||||
BfiBlacklistVO hit = blacklist.stream()
|
BfiBlacklistVO hit = blacklist.stream()
|
||||||
.filter(item -> Func.isNotEmpty(item.getNumber()) && code.equals(item.getNumber().trim().toUpperCase()))
|
.filter(item -> Func.isNotEmpty(item.getNumber()) && code.equals(item.getNumber().trim().toUpperCase()))
|
||||||
|
|||||||
+5
@@ -84,6 +84,11 @@ public class BfiConstant {
|
|||||||
*/
|
*/
|
||||||
public static final long TOKEN_EXPIRE_BUFFER_MILLIS = 120_000L;
|
public static final long TOKEN_EXPIRE_BUFFER_MILLIS = 120_000L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A801-5 黑名单查询页大小上限,取值范围[1, 2000]的正整数
|
||||||
|
*/
|
||||||
|
public static final int BLACKLIST_QUERY_PAGE_SIZE = 2000;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A303-5 开票申请发票查询 接口编码,固定值
|
* A303-5 开票申请发票查询 接口编码,固定值
|
||||||
*/
|
*/
|
||||||
|
|||||||
+3
-3
@@ -153,14 +153,14 @@ public interface IBfiClient {
|
|||||||
BfiResultVO<BfiPageVO<BfiExchangeRateVO>> forexQuery(@RequestHeader(BfiConstant.HEADER_ACCESS_TOKEN) String accessToken, @SpringQueryMap BfiExchangeRateQueryDTO param);
|
BfiResultVO<BfiPageVO<BfiExchangeRateVO>> forexQuery(@RequestHeader(BfiConstant.HEADER_ACCESS_TOKEN) String accessToken, @SpringQueryMap BfiExchangeRateQueryDTO param);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A801-5 黑名单查询
|
* A801-5 黑名单查询(分页,pageSize 取值范围[1, 2000]的正整数)
|
||||||
*
|
*
|
||||||
* @param accessToken 访问令牌,通过 getToken 获取
|
* @param accessToken 访问令牌,通过 getToken 获取
|
||||||
* @param param 请求参数
|
* @param param 请求参数
|
||||||
* @return 黑名单列表
|
* @return 黑名单分页数据
|
||||||
*/
|
*/
|
||||||
@GetMapping(BLACKLIST_QUERY_URL)
|
@GetMapping(BLACKLIST_QUERY_URL)
|
||||||
BfiResultVO<List<BfiBlacklistVO>> blacklistQuery(@RequestHeader(BfiConstant.HEADER_ACCESS_TOKEN) String accessToken, @SpringQueryMap BfiBlacklistQueryDTO param);
|
BfiResultVO<BfiPageVO<BfiBlacklistVO>> blacklistQuery(@RequestHeader(BfiConstant.HEADER_ACCESS_TOKEN) String accessToken, @SpringQueryMap BfiBlacklistQueryDTO param);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A103-1 付款申请保存(根据星瀚应付下推付款申请)
|
* A103-1 付款申请保存(根据星瀚应付下推付款申请)
|
||||||
|
|||||||
+10
@@ -46,4 +46,14 @@ public class BfiBlacklistQueryDTO implements Serializable {
|
|||||||
* 使用状态[1:可用, 0:禁用]
|
* 使用状态[1:可用, 0:禁用]
|
||||||
*/
|
*/
|
||||||
private String enable;
|
private String enable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 【必填】页码,从1开始
|
||||||
|
*/
|
||||||
|
private Integer pageNo;
|
||||||
|
/**
|
||||||
|
* 【必填】页大小
|
||||||
|
*/
|
||||||
|
private Integer pageSize;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+5
-2
@@ -229,8 +229,11 @@ public class BfiServiceImpl implements IBfiService {
|
|||||||
BfiBlacklistQueryDTO param = new BfiBlacklistQueryDTO();
|
BfiBlacklistQueryDTO param = new BfiBlacklistQueryDTO();
|
||||||
param.setEnable(enable);
|
param.setEnable(enable);
|
||||||
String accessToken = getAccessToken();
|
String accessToken = getAccessToken();
|
||||||
BfiResultVO<List<BfiBlacklistVO>> result = commonCall("黑名单查询", () -> client.blacklistQuery(accessToken, param));
|
return BfiUtil.queryAllPages(pageNo -> {
|
||||||
return result.getData() != null ? result.getData() : List.of();
|
param.setPageNo(pageNo);
|
||||||
|
param.setPageSize(BfiConstant.BLACKLIST_QUERY_PAGE_SIZE);
|
||||||
|
return commonCall("黑名单查询", () -> client.blacklistQuery(accessToken, param)).getData();
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
Reference in New Issue
Block a user