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):客商提审进入准入审批前实时查询金蝶黑名单,
|
||||
* 按统一社会信用代码精确匹配;命中禁止交易类(A)硬拦截,
|
||||
* 风险警示类(B)默认放行告警、可经 {@code thirdparty.bfi.blacklist.blockRiskWarning} 配置拦截,
|
||||
* 其他类别放行告警;黑名单查询异常不阻断准入(放行并记录错误日志),金蝶可用性口径待联调确认
|
||||
* 其他类别放行告警;金蝶黑名单查询异常时向上抛出,阻断提审
|
||||
*
|
||||
* @param customer 客商
|
||||
*/
|
||||
@@ -1063,14 +1063,7 @@ public class CustomerArchiveServiceImpl extends BaseServiceImpl<CustomerArchiveM
|
||||
if (Func.isEmpty(creditCode)) {
|
||||
return;
|
||||
}
|
||||
List<BfiBlacklistVO> blacklist;
|
||||
try {
|
||||
blacklist = bfiService.queryBlacklist("1");
|
||||
} catch (Exception exception) {
|
||||
log.error("查询金蝶黑名单失败,黑名单校验放行,fullName={},unifiedCreditCode={}",
|
||||
customer.getFullName(), creditCode, exception);
|
||||
return;
|
||||
}
|
||||
List<BfiBlacklistVO> blacklist = bfiService.queryBlacklist("1");
|
||||
String code = creditCode.trim().toUpperCase();
|
||||
BfiBlacklistVO hit = blacklist.stream()
|
||||
.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;
|
||||
|
||||
/**
|
||||
* A801-5 黑名单查询页大小上限,取值范围[1, 2000]的正整数
|
||||
*/
|
||||
public static final int BLACKLIST_QUERY_PAGE_SIZE = 2000;
|
||||
|
||||
/**
|
||||
* 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);
|
||||
|
||||
/**
|
||||
* A801-5 黑名单查询
|
||||
* A801-5 黑名单查询(分页,pageSize 取值范围[1, 2000]的正整数)
|
||||
*
|
||||
* @param accessToken 访问令牌,通过 getToken 获取
|
||||
* @param param 请求参数
|
||||
* @return 黑名单列表
|
||||
* @return 黑名单分页数据
|
||||
*/
|
||||
@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 付款申请保存(根据星瀚应付下推付款申请)
|
||||
|
||||
+10
@@ -46,4 +46,14 @@ public class BfiBlacklistQueryDTO implements Serializable {
|
||||
* 使用状态[1:可用, 0:禁用]
|
||||
*/
|
||||
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();
|
||||
param.setEnable(enable);
|
||||
String accessToken = getAccessToken();
|
||||
BfiResultVO<List<BfiBlacklistVO>> result = commonCall("黑名单查询", () -> client.blacklistQuery(accessToken, param));
|
||||
return result.getData() != null ? result.getData() : List.of();
|
||||
return BfiUtil.queryAllPages(pageNo -> {
|
||||
param.setPageNo(pageNo);
|
||||
param.setPageSize(BfiConstant.BLACKLIST_QUERY_PAGE_SIZE);
|
||||
return commonCall("黑名单查询", () -> client.blacklistQuery(accessToken, param)).getData();
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user