perf: 优化金蝶付款处理查询按外部来源单据编号精确过滤
This commit is contained in:
+1
-1
@@ -254,7 +254,7 @@ public class BfiProperties {
|
||||
private long lockLeaseSeconds = 1800;
|
||||
|
||||
/**
|
||||
* A103-4 付款处理查询业务日期窗口天数,默认 60
|
||||
* A103-4 付款处理查询业务日期窗口天数(接口必填参数,按 awrp_sourcebillno 精确过滤单据),默认 60
|
||||
*/
|
||||
private int queryWindowDays = 60;
|
||||
}
|
||||
|
||||
+75
-53
@@ -952,20 +952,28 @@ public class PaymentApplicationServiceImpl extends BaseServiceImpl<PaymentApplic
|
||||
}
|
||||
|
||||
/**
|
||||
* 金蝶付款结果回写主体:A103-2 付款申请单查询回填 + A103-4 付款处理查询补付款记录,
|
||||
* 由 {@link #syncKingdeePaymentResult()} 在分布式锁保护下调用
|
||||
* 金蝶付款结果回写主体,由 {@link #syncKingdeePaymentResult()} 在分布式锁保护下调用,执行流程:
|
||||
* <pre>
|
||||
* ① 圈定待回写付款申请:审批通过且金蝶状态为 已生成/付款中/生成失败(终态已付款/已关闭不再轮询),
|
||||
* 生成失败单据一并纳入:金蝶侧已生成说明上次推送实际成功(如下推超时但远端已落单、本地事务回滚),
|
||||
* 查得即回填纠正为已生成,避免人工重推产生重复单据,未查得则保持生成失败等待人工重推;
|
||||
* ② A103-2 付款申请单查询回填:按 paymentNo(awrp_src_code)分批查询,同一来源单号取最近修改一条,
|
||||
* 回填金蝶单号/内码/同步状态/已付金额并联动预结算与正式结算付款记录;连续两轮查询未命中按金蝶反审核删除解锁;
|
||||
* ③ A103-4 付款处理查询补付款记录:付款中/已付款单据 + 已付款无付款记录单据(补偿),
|
||||
* 按付款组织 + awrp_sourcebillno(金蝶单据号)数组精确查询,双键勾稽后回填付款记录;
|
||||
* ④ 汇总执行摘要:各计数随流程累计,单笔失败仅计数不中断整轮
|
||||
* </pre>
|
||||
*
|
||||
* @return 执行摘要
|
||||
*/
|
||||
private String executePaymentResultSync() {
|
||||
// ① 待回写付款申请:审批通过且金蝶状态为 已生成/付款中/生成失败(终态已付款/已关闭不再轮询)。
|
||||
// 生成失败单据一并纳入勾稽:金蝶侧已生成说明上次推送实际成功(如下推请求超时但远端已落单、本地事务回滚),
|
||||
// 查到即回填纠正为已生成,避免人工重新推送产生重复单据;未查到则保持生成失败等待异常处理后重新推送
|
||||
// ① 待回写付款申请:审批通过且金蝶状态为 已生成/付款中/生成失败(终态已付款/已关闭不再轮询)
|
||||
List<PaymentApplication> applications = list(Wrappers.<PaymentApplication>lambdaQuery()
|
||||
.eq(PaymentApplication::getApprovalStatus, TransportBusiConstant.APPROVED)
|
||||
.in(PaymentApplication::getKingdeeStatus, KingdeeBfiConstant.KINGDEE_STATUS_SYNCED,
|
||||
KingdeeBfiConstant.KINGDEE_STATUS_PAYING, KingdeeBfiConstant.KINGDEE_STATUS_FAILED)
|
||||
.orderByAsc(PaymentApplication::getId));
|
||||
// 自代理:applyPayApplyResult/applyPayBillRecord 带单据级事务,跨方法调用确保注解生效,单笔失败仅回滚自身
|
||||
IPaymentApplicationService self = SpringUtil.getBean(IPaymentApplicationService.class);
|
||||
int updated = 0;
|
||||
int failed = 0;
|
||||
@@ -975,19 +983,22 @@ public class PaymentApplicationServiceImpl extends BaseServiceImpl<PaymentApplic
|
||||
// ② A103-2 付款申请单查询:按 paymentNo(awrp_src_code)分批查询,同一来源单号取最近修改的一条
|
||||
List<String> paymentNos = applications.stream()
|
||||
.map(PaymentApplication::getPaymentNo).filter(Func::isNotEmpty).distinct().toList();
|
||||
batchForeach(paymentNos, PAY_RESULT_QUERY_BATCH, batch ->
|
||||
payApplyMap.putAll(latestPayApplyBySrcCode(queryPayApplyPages(batch))));
|
||||
this.batchForeach(paymentNos, PAY_RESULT_QUERY_BATCH, batch ->
|
||||
payApplyMap.putAll(this.latestPayApplyBySrcCode(this.queryPayApplyPages(batch))));
|
||||
// 逐单回写:查得即回填并清零消失计数;未查得累计消失轮次(批次其余单据正常返回,排除服务整体故障)
|
||||
for (PaymentApplication application : applications) {
|
||||
BfiPayApplyVO payApply = payApplyMap.get(application.getPaymentNo());
|
||||
if (payApply == null) {
|
||||
// 金蝶侧未查得已推送单据(查询批次其余单据正常返回,排除服务整体故障):
|
||||
// 累计消失轮次,连续两轮视为金蝶已反审核删除,解锁置失败交人工核实重推
|
||||
this.handlePayApplyMissed(application);
|
||||
continue;
|
||||
}
|
||||
clearPayApplyMissKey(application.getId());
|
||||
this.clearPayApplyMissKey(application.getId());
|
||||
try {
|
||||
if (self.applyPayApplyResult(application, payApply)) paidCount++;
|
||||
// 返回 true 表示付款完成(终态),预结算/正式结算联动由 applyPayApplyResult 内部处理
|
||||
if (self.applyPayApplyResult(application, payApply)) {
|
||||
paidCount++;
|
||||
}
|
||||
updated++;
|
||||
} catch (Exception exception) {
|
||||
failed++;
|
||||
@@ -995,7 +1006,9 @@ public class PaymentApplicationServiceImpl extends BaseServiceImpl<PaymentApplic
|
||||
}
|
||||
}
|
||||
}
|
||||
// ③ A103-4 付款处理查询:付款中/已付款单据 + 已付款但尚无付款记录的单据(补偿),回填付款记录
|
||||
// ③ A103-4 付款处理查询补付款记录:
|
||||
// 候选一:本轮 A103-2 查得付款中/已付款(paystatus != Unpaid)的轮询单据;
|
||||
// 候选二:已付款终态但尚无真实付款记录的单据(上轮付款记录回填失败的补偿)
|
||||
Map<Long, PaymentApplication> recordCandidates = new LinkedHashMap<>();
|
||||
for (PaymentApplication application : applications) {
|
||||
BfiPayApplyVO payApply = payApplyMap.get(application.getPaymentNo());
|
||||
@@ -1006,18 +1019,19 @@ public class PaymentApplicationServiceImpl extends BaseServiceImpl<PaymentApplic
|
||||
list(Wrappers.<PaymentApplication>lambdaQuery()
|
||||
.eq(PaymentApplication::getApprovalStatus, TransportBusiConstant.APPROVED)
|
||||
.eq(PaymentApplication::getKingdeeStatus, KingdeeBfiConstant.KINGDEE_STATUS_PAID))
|
||||
.stream().filter(application -> realRecordCount(application.getId()) == 0)
|
||||
.stream().filter(application -> this.realRecordCount(application.getId()) == 0)
|
||||
.forEach(application -> recordCandidates.putIfAbsent(application.getId(), application));
|
||||
int recordWritten = 0;
|
||||
int recordFailed = 0;
|
||||
if (!recordCandidates.isEmpty()) {
|
||||
// 按付款组织分组(org_number 接口必传):优先取 A103-2 返回的付款组织编码,
|
||||
// 兜底按合同关联项目解析(已付款补偿候选不在本轮 A103-2 返回内,须走兜底)
|
||||
Map<String, List<PaymentApplication>> orgGroups = new LinkedHashMap<>();
|
||||
for (PaymentApplication application : recordCandidates.values()) {
|
||||
BfiPayApplyVO payApply = payApplyMap.get(application.getPaymentNo());
|
||||
String orgNumber = payApply == null ? null : payApply.getPayorgNumber();
|
||||
if (Func.isBlank(orgNumber)) {
|
||||
try {
|
||||
// A103-4 付款人(公司)编码必填:优先取 A103-2 返回付款组织编码,兜底按合同关联项目解析
|
||||
KingdeeSyncContext context = KingdeeSyncContext.empty();
|
||||
orgNumber = kingdeeApBillSyncSupport.bfiOrgNumber(
|
||||
kingdeeApBillSyncSupport.requireContract(application.getContractId(), context), context);
|
||||
@@ -1028,26 +1042,25 @@ public class PaymentApplicationServiceImpl extends BaseServiceImpl<PaymentApplic
|
||||
}
|
||||
orgGroups.computeIfAbsent(orgNumber, key -> new ArrayList<>()).add(application);
|
||||
}
|
||||
// 以付款处理单源单id/源单编号建立索引,与本地金蝶单据id/单据编号勾稽
|
||||
Map<String, BfiPayBillVO> payBillBySourceId = new HashMap<>();
|
||||
Map<String, BfiPayBillVO> payBillBySourceNumber = new HashMap<>();
|
||||
for (String orgNumber : orgGroups.keySet()) {
|
||||
for (BfiPayBillVO payBill : queryPayBillPages(orgNumber)) {
|
||||
if (Func.isEmpty(payBill.getBillno())) continue;
|
||||
if (payBill.getSourcebillid() != null) {
|
||||
payBillBySourceId.put(String.valueOf(payBill.getSourcebillid()), payBill);
|
||||
}
|
||||
if (Func.isNotEmpty(payBill.getSourcebillnumber())) {
|
||||
payBillBySourceNumber.put(payBill.getSourcebillnumber(), payBill);
|
||||
}
|
||||
}
|
||||
// 按组织 + 金蝶单据号(awrp_sourcebillno 支持数组)分批精确查询付款处理单,结果汇总后统一勾稽
|
||||
List<BfiPayBillVO> payBills = new ArrayList<>();
|
||||
for (Map.Entry<String, List<PaymentApplication>> orgEntry : orgGroups.entrySet()) {
|
||||
List<String> kingdeeBillNos = orgEntry.getValue().stream()
|
||||
.map(PaymentApplication::getKingdeeBillNo).filter(Func::isNotEmpty).distinct().toList();
|
||||
this.batchForeach(kingdeeBillNos, PAY_RESULT_QUERY_BATCH,
|
||||
batch -> payBills.addAll(this.queryPayBillPages(orgEntry.getKey(), batch)));
|
||||
}
|
||||
// 逐单勾稽回填:双键匹配(源单id=付款申请金蝶单据内码 / 源单编号=金蝶单据号),未匹配保持现状等下一轮
|
||||
for (PaymentApplication application : recordCandidates.values()) {
|
||||
BfiPayBillVO payBill = matchPayBill(application, payBillBySourceId, payBillBySourceNumber);
|
||||
if (payBill == null) {
|
||||
if (Func.isBlank(application.getKingdeeBillNo())) {
|
||||
log.warn("付款申请[{}]付款处理查询跳过,金蝶单据编号为空", application.getPaymentNo());
|
||||
continue;
|
||||
}
|
||||
try {
|
||||
BfiPayBillVO payBill = this.matchPayBill(application, payBills);
|
||||
if (payBill == null) {
|
||||
continue;
|
||||
}
|
||||
self.applyPayBillRecord(application, payBill);
|
||||
recordWritten++;
|
||||
} catch (Exception exception) {
|
||||
@@ -1072,7 +1085,7 @@ public class PaymentApplicationServiceImpl extends BaseServiceImpl<PaymentApplic
|
||||
if (payApply.getId() != null) {
|
||||
entity.setKingdeeBillId(String.valueOf(payApply.getId()));
|
||||
}
|
||||
String kingdeeStatus = kingdeeResultStatus(payApply);
|
||||
String kingdeeStatus = this.kingdeeResultStatus(payApply);
|
||||
entity.setKingdeeStatus(kingdeeStatus);
|
||||
// 已付金额:A103-2 分录 e_paidamt 汇总;分录缺失且已付款时兜底取申请金额
|
||||
BigDecimal previousPaid = entity.getPaidAmount();
|
||||
@@ -1082,7 +1095,7 @@ public class PaymentApplicationServiceImpl extends BaseServiceImpl<PaymentApplic
|
||||
.reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||
entity.setPaidAmount(paidAmount.setScale(2, RoundingMode.HALF_UP));
|
||||
} else if (KingdeeBfiConstant.KINGDEE_STATUS_PAID.equals(kingdeeStatus)) {
|
||||
entity.setPaidAmount(money(entity.getAppliedAmount()).setScale(2, RoundingMode.HALF_UP));
|
||||
entity.setPaidAmount(this.money(entity.getAppliedAmount()).setScale(2, RoundingMode.HALF_UP));
|
||||
}
|
||||
// HCS 履约付款记录推进:金蝶实际付款推进(首次付款或金额变化)后置待同步,扫描任务凭
|
||||
// hcs_perf_fd_id 判定走向——未建过履约记录走 C108-1 新建,已建走 C108-2 更新实际金额
|
||||
@@ -1095,14 +1108,14 @@ public class PaymentApplicationServiceImpl extends BaseServiceImpl<PaymentApplic
|
||||
updateById(entity);
|
||||
if (KingdeeBfiConstant.KINGDEE_STATUS_PAID.equals(kingdeeStatus)) {
|
||||
// 付款完成:联动履约付款数据(预结算预付记录、正式结算付款记录)
|
||||
syncPreSettlementAdvance(entity, "paid", money(entity.getAppliedAmount()));
|
||||
syncFormalSettlementPayments(entity);
|
||||
this.syncPreSettlementAdvance(entity, "paid", this.money(entity.getAppliedAmount()));
|
||||
this.syncFormalSettlementPayments(entity);
|
||||
return true;
|
||||
}
|
||||
// 生成失败单据勾稽确认金蝶已生成(已生成/付款中):与推送成功同语义,提前落预付记录回显预付信息
|
||||
if (KingdeeBfiConstant.KINGDEE_STATUS_SYNCED.equals(kingdeeStatus)
|
||||
|| KingdeeBfiConstant.KINGDEE_STATUS_PAYING.equals(kingdeeStatus)) {
|
||||
syncPreSettlementAdvance(entity, TransportBusiConstant.APPROVED, money(entity.getPaidAmount()));
|
||||
this.syncPreSettlementAdvance(entity, TransportBusiConstant.APPROVED, this.money(entity.getPaidAmount()));
|
||||
}
|
||||
return false;
|
||||
}
|
||||
@@ -1128,7 +1141,7 @@ public class PaymentApplicationServiceImpl extends BaseServiceImpl<PaymentApplic
|
||||
if (payBill.getActpayamt() != null) {
|
||||
record.setPaidAmount(payBill.getActpayamt().setScale(2, RoundingMode.HALF_UP));
|
||||
}
|
||||
record.setPaidDate(parseKingdeeDate(payBill.getPaydate()));
|
||||
record.setPaidDate(this.parseKingdeeDate(payBill.getPaydate()));
|
||||
record.setKingdeeBillNo(billNo);
|
||||
// 付款处理单查询结果整体留档(凭证号、银行流水、电子回单等信息),便于追溯
|
||||
record.setVoucherJson(JsonUtil.toJson(payBill));
|
||||
@@ -1199,7 +1212,7 @@ public class PaymentApplicationServiceImpl extends BaseServiceImpl<PaymentApplic
|
||||
continue;
|
||||
}
|
||||
BfiPayApplyVO existing = latestBySrcCode.get(payApply.getAwrpSrcCode());
|
||||
if (existing == null || strCompare(payApply.getModifytime(), existing.getModifytime()) > 0) {
|
||||
if (existing == null || this.strCompare(payApply.getModifytime(), existing.getModifytime()) > 0) {
|
||||
latestBySrcCode.put(payApply.getAwrpSrcCode(), payApply);
|
||||
}
|
||||
}
|
||||
@@ -1207,7 +1220,7 @@ public class PaymentApplicationServiceImpl extends BaseServiceImpl<PaymentApplic
|
||||
}
|
||||
|
||||
private BfiPayApplyVO queryLatestPayApply(String paymentNo) {
|
||||
return latestPayApplyBySrcCode(queryPayApplyPages(List.of(paymentNo))).get(paymentNo);
|
||||
return this.latestPayApplyBySrcCode(this.queryPayApplyPages(List.of(paymentNo))).get(paymentNo);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1219,7 +1232,7 @@ public class PaymentApplicationServiceImpl extends BaseServiceImpl<PaymentApplic
|
||||
* @return 星瀚付款申请单id,金蝶未生成返回 null
|
||||
*/
|
||||
private String reconcileExistPayApply(PaymentApplication entity) {
|
||||
BfiPayApplyVO existPayApply = queryLatestPayApply(entity.getPaymentNo());
|
||||
BfiPayApplyVO existPayApply = this.queryLatestPayApply(entity.getPaymentNo());
|
||||
if (existPayApply == null || existPayApply.getId() == null) {
|
||||
return null;
|
||||
}
|
||||
@@ -1247,21 +1260,27 @@ public class PaymentApplicationServiceImpl extends BaseServiceImpl<PaymentApplic
|
||||
}
|
||||
|
||||
/**
|
||||
* A103-4 分页查询:按付款人(公司)编码 + 业务日期窗口,自动翻页
|
||||
* A103-4 分页查询:按付款组织 + 外部来源单据编号(付款申请金蝶单据号)数组精确查询,自动翻页。
|
||||
* <p>
|
||||
* 窗口天数取 Nacos thirdParty.bfi.payResult.queryWindowDays(默认 60)
|
||||
* 业务日期窗口与付款组织为接口必填参数,窗口天数取 Nacos thirdParty.bfi.payResult.queryWindowDays
|
||||
* (默认 60),仅用于满足必填要求;awrp_sourcebillno 精确过滤后仅返回目标单据的付款处理单,
|
||||
* 不再拉取组织内全量数据做内存勾稽
|
||||
*
|
||||
* @param orgNumber 付款人(公司)编码
|
||||
* @param orgNumber 付款人(公司)编码,接口必传
|
||||
* @param awrpSourceBillnos 付款申请金蝶单据号批次
|
||||
* @return 付款处理单列表
|
||||
*/
|
||||
private List<BfiPayBillVO> queryPayBillPages(String orgNumber) {
|
||||
private List<BfiPayBillVO> queryPayBillPages(String orgNumber, List<String> awrpSourceBillnos) {
|
||||
LocalDate endDate = LocalDate.now();
|
||||
int windowDays = Math.max(bfiProperties.getPayResult().getQueryWindowDays(), 1);
|
||||
LocalDate beginDate = endDate.minusDays(windowDays);
|
||||
BfiPayBillQueryDTO param = new BfiPayBillQueryDTO();
|
||||
// 接口必填参数:付款组织编码 + 业务日期窗口(beigin_bizdate/end_bizdate,金蝶侧拼写如此)
|
||||
param.setOrgNumber(List.of(orgNumber));
|
||||
param.setBeginBizdate(beginDate.format(DateTimeFormatter.ISO_LOCAL_DATE));
|
||||
param.setEndBizdate(endDate.format(DateTimeFormatter.ISO_LOCAL_DATE));
|
||||
// 精确过滤参数:待回填单据的金蝶单据号数组(sourcebillnumber 与之同源)
|
||||
param.setAwrpSourceBillno(awrpSourceBillnos);
|
||||
return BfiUtil.queryAllPages(pageNo -> {
|
||||
param.setPageNo(pageNo);
|
||||
param.setPageSize(PAY_RESULT_PAGE_SIZE);
|
||||
@@ -1270,21 +1289,24 @@ public class PaymentApplicationServiceImpl extends BaseServiceImpl<PaymentApplic
|
||||
}
|
||||
|
||||
/**
|
||||
* 以金蝶付款处理单源单id(=付款申请单星瀚id)/源单编号(=付款申请单单据编号)勾稽匹配
|
||||
* 以金蝶付款处理单源单id(=付款申请单星瀚id)/源单编号(=付款申请单单据编号)勾稽匹配,
|
||||
* 防止按单号查询返回非本单数据(如金蝶侧查询异常返回他单)
|
||||
*
|
||||
* @param application 付款申请实体
|
||||
* @param payBillBySourceId 源单id索引
|
||||
* @param payBillBySourceNumber 源单编号索引
|
||||
* @param application 付款申请实体
|
||||
* @param payBills 按本单金蝶单据号查询返回的付款处理单列表
|
||||
* @return 匹配的付款处理单,未匹配返回 null
|
||||
*/
|
||||
private BfiPayBillVO matchPayBill(PaymentApplication application, Map<String, BfiPayBillVO> payBillBySourceId,
|
||||
Map<String, BfiPayBillVO> payBillBySourceNumber) {
|
||||
if (Func.isNotEmpty(application.getKingdeeBillId())
|
||||
&& payBillBySourceId.containsKey(application.getKingdeeBillId())) {
|
||||
return payBillBySourceId.get(application.getKingdeeBillId());
|
||||
}
|
||||
if (Func.isNotEmpty(application.getKingdeeBillNo())) {
|
||||
return payBillBySourceNumber.get(application.getKingdeeBillNo());
|
||||
private BfiPayBillVO matchPayBill(PaymentApplication application, List<BfiPayBillVO> payBills) {
|
||||
for (BfiPayBillVO payBill : payBills) {
|
||||
if (payBill.getSourcebillid() != null
|
||||
&& Func.isNotEmpty(application.getKingdeeBillId())
|
||||
&& String.valueOf(payBill.getSourcebillid()).equals(application.getKingdeeBillId())) {
|
||||
return payBill;
|
||||
}
|
||||
if (Func.isNotEmpty(payBill.getSourcebillnumber())
|
||||
&& payBill.getSourcebillnumber().equals(application.getKingdeeBillNo())) {
|
||||
return payBill;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
+6
-4
@@ -220,10 +220,11 @@ public interface IBfiClient {
|
||||
* @param accessToken 访问令牌,通过 getToken 获取
|
||||
* @param pageNo 页码,从1开始
|
||||
* @param pageSize 页数
|
||||
* @param beginBizdate 开始业务日期
|
||||
* @param endBizdate 结束业务日期
|
||||
* @param beginBizdate 开始业务日期,必传
|
||||
* @param endBizdate 结束业务日期,必传
|
||||
* @param billno 单据编号
|
||||
* @param orgNumber 付款人(公司).编码
|
||||
* @param orgNumber 付款人(公司).编码,必传,支持多个
|
||||
* @param awrpSourceBillno 外部来源单据编号(付款申请金蝶单据号),支持多个,精确过滤付款处理单
|
||||
* @return 付款处理分页数据
|
||||
*/
|
||||
@GetMapping(PAY_BILL_QUERY_URL)
|
||||
@@ -233,7 +234,8 @@ public interface IBfiClient {
|
||||
@RequestParam("beigin_bizdate") String beginBizdate,
|
||||
@RequestParam("end_bizdate") String endBizdate,
|
||||
@RequestParam(value = "billno", required = false) List<String> billno,
|
||||
@RequestParam("org_number") List<String> orgNumber);
|
||||
@RequestParam("org_number") List<String> orgNumber,
|
||||
@RequestParam(value = "awrp_sourcebillno", required = false) List<String> awrpSourceBillno);
|
||||
|
||||
/**
|
||||
* A902-1 客户查询
|
||||
|
||||
+5
-1
@@ -64,7 +64,11 @@ public class BfiPayBillQueryDTO implements Serializable {
|
||||
*/
|
||||
private List<String> billno;
|
||||
/**
|
||||
* 付款人(公司).编码
|
||||
* 付款人(公司).编码,必传,支持多个
|
||||
*/
|
||||
private List<String> orgNumber;
|
||||
/**
|
||||
* 外部来源单据编号(付款申请金蝶单据号),支持多个,精确过滤付款处理单
|
||||
*/
|
||||
private List<String> awrpSourceBillno;
|
||||
}
|
||||
|
||||
+3
-1
@@ -294,6 +294,7 @@ public class BfiServiceImpl implements IBfiService {
|
||||
if (param == null || param.getPageNo() == null || param.getPageSize() == null) {
|
||||
throw new BfiException("查询BFI付款处理失败,分页参数不能为空");
|
||||
}
|
||||
// 接口必填参数:业务日期范围 + 付款组织编码;awrp_sourcebillno 可选,精确过滤付款处理单
|
||||
if (StringUtil.isBlank(param.getBeginBizdate()) || StringUtil.isBlank(param.getEndBizdate())) {
|
||||
throw new BfiException("查询BFI付款处理失败,业务日期范围不能为空");
|
||||
}
|
||||
@@ -302,7 +303,8 @@ public class BfiServiceImpl implements IBfiService {
|
||||
}
|
||||
String accessToken = getAccessToken();
|
||||
BfiResultVO<BfiPageVO<BfiPayBillVO>> result = commonCall("付款处理查询", () -> client.payBillQuery(accessToken,
|
||||
param.getPageNo(), param.getPageSize(), param.getBeginBizdate(), param.getEndBizdate(), param.getBillno(), param.getOrgNumber()));
|
||||
param.getPageNo(), param.getPageSize(), param.getBeginBizdate(), param.getEndBizdate(), param.getBillno(),
|
||||
param.getOrgNumber(), param.getAwrpSourceBillno()));
|
||||
return result.getData();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user