From 454209511b03cb06cfd14e1c0d5e81b5f3dfea93 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E6=B3=89=E4=BD=B3?= <1107186916@qq.com> Date: Wed, 30 Sep 2026 15:16:09 +0800 Subject: [PATCH] =?UTF-8?q?chore:=20=E8=A1=A5=E5=85=85=E9=87=91=E8=9D=B6?= =?UTF-8?q?=E6=94=B6=E7=A5=A8=E5=8D=95=E7=BB=93=E6=9E=9C=E5=9B=9E=E5=86=99?= =?UTF-8?q?=E5=AE=9A=E6=97=B6=E4=BB=BB=E5=8A=A1=E6=97=A5=E5=BF=97=E4=B8=8E?= =?UTF-8?q?=E6=96=B9=E6=B3=95=E8=AF=B4=E6=98=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/InvoiceReceiptServiceImpl.java | 20 +++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/InvoiceReceiptServiceImpl.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/InvoiceReceiptServiceImpl.java index 4697bd5b..823337ea 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/InvoiceReceiptServiceImpl.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/InvoiceReceiptServiceImpl.java @@ -971,12 +971,22 @@ public class InvoiceReceiptServiceImpl extends BaseServiceImpl匹配与容错说明: + * ① 匹配键为收票登记 id,与 A303-2 落库的 awrp_src_code 同源,按发票号匹配将永远查不到自推单据; + * ② 查询窗口为近 {@code receivedResultWindowDays} 天(至少 1 天),窗口内查不到不判为金蝶侧已删除 + * (金蝶修改时间延迟/滑窗),保持现状由人工重推兜底; + * ③ 单笔回写异常仅记入失败明细不中断整轮,结束时汇总进执行摘要; + * ④ 由 {@link #syncKingdeeReceivedInvoiceResult()} 在分布式锁保护下调用,防多实例并发重跑。 * * @return 执行摘要 */ private String executeReceivedInvoiceResultSync() { + long startMillis = System.currentTimeMillis(); List pendingReceipts = list(Wrappers.lambdaQuery() .in(InvoiceReceipt::getKingdeePushStatus, KingdeeBfiConstant.RECEIVED_PUSH_PUSHED, KingdeeBfiConstant.RECEIVED_PUSH_ASSIGNED) @@ -984,8 +994,13 @@ public class InvoiceReceiptServiceImpl extends BaseServiceImpl KingdeeBfiConstant.RECEIVED_PUSH_PUSHED.equals(receipt.getKingdeePushStatus())).count(); + log.info("金蝶收票单结果回写开始:待回写收票登记{}笔(pushed待指定补偿 {} 笔,assigned待单号补登 {} 笔)", + pendingReceipts.size(), pushedCount, pendingReceipts.size() - pushedCount); List mirrorIds = pendingReceipts.stream().map(InvoiceReceipt::getKingdeeInvoicePoolId) .filter(Objects::nonNull).distinct().toList(); Map mirrorById = invoicePoolMapper.selectBatchIds(mirrorIds).stream() @@ -1057,6 +1072,7 @@ public class InvoiceReceiptServiceImpl extends BaseServiceImpl