From 8b98e33daa2bce459bf8fe808d64bb1072f5e9dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E6=B3=89=E4=BD=B3?= <1107186916@qq.com> Date: Mon, 28 Sep 2026 00:44:10 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8DA801-3=E6=94=B6?= =?UTF-8?q?=E7=A5=A8=E5=8D=95=E5=AE=9A=E6=97=B6=E5=9B=9E=E5=86=99=E6=8C=89?= =?UTF-8?q?=E5=8F=91=E7=A5=A8=E5=8F=B7=E5=8C=B9=E9=85=8D=E9=98=B2=E9=87=8D?= =?UTF-8?q?=E9=94=AE=E5=AF=BC=E8=87=B4=E5=9B=9E=E5=86=99=E5=A4=B1=E6=95=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 回写查询集与命中查找改用收票登记id(String.valueOf(receipt.getId())), 与A303-2落库的awrp_src_code及243d5be已修复的推送预检/A302-6路径同源; 原按发票号匹配永远查不到TMS自推单据,异常回收/指定补偿/单号补登全部静默失效。 同步修正queryReceivedInvoiceBySrcCodes过时javadoc(发票号码→收票登记id)。 --- .../transport/service/impl/InvoiceReceiptServiceImpl.java | 7 ++++--- .../support/KingdeeReceivedInvoiceSyncSupport.java | 4 ++-- 2 files changed, 6 insertions(+), 5 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 a6262440..5ca63c56 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 @@ -904,12 +904,13 @@ public class InvoiceReceiptServiceImpl extends BaseServiceImpl failures = new ArrayList<>(); for (Map.Entry> entry : receiptsByBuyer.entrySet()) { - Set invoiceNos = entry.getValue().stream().map(InvoiceReceipt::getInvoiceNo) + // 匹配键须与 A303-2 落库的 awrp_src_code 同源(收票登记id),按发票号匹配将永远查不到自推单据 + Set srcCodes = entry.getValue().stream().map(receipt -> String.valueOf(receipt.getId())) .collect(Collectors.toCollection(LinkedHashSet::new)); Map matched = kingdeeReceivedInvoiceSyncSupport - .queryReceivedInvoiceBySrcCodes(entry.getKey(), invoiceNos, windowStart, windowEnd); + .queryReceivedInvoiceBySrcCodes(entry.getKey(), srcCodes, windowStart, windowEnd); for (InvoiceReceipt receipt : entry.getValue()) { - BfiReceivedInvoiceVO row = matched.get(receipt.getInvoiceNo()); + BfiReceivedInvoiceVO row = matched.get(String.valueOf(receipt.getId())); // 窗口内查不到不判为删除(金蝶修改时间延迟/滑窗),保持现状由人工重推兜底 if (row == null) { continue; diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/support/KingdeeReceivedInvoiceSyncSupport.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/support/KingdeeReceivedInvoiceSyncSupport.java index 7844082e..a8fc564e 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/support/KingdeeReceivedInvoiceSyncSupport.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/support/KingdeeReceivedInvoiceSyncSupport.java @@ -93,10 +93,10 @@ public class KingdeeReceivedInvoiceSyncSupport { * 契约无来源单据号查询参数,防重键匹配在返回行上进行;查询失败中断本轮,由任务层记录异常 * * @param buyerName 购方名称(接口必填,取镜像受票单位) - * @param srcCodes 待匹配的收票单防重键(发票号码)集合 + * @param srcCodes 待匹配的收票单防重键(收票登记id,与 A303-2 的 awrp_src_code 同源)集合 * @param windowStart 修改时间-开始(窗口不超一个月,调用方控制) * @param windowEnd 修改时间-结束 - * @return 发票号码 -> 收票单行(同键多行取修改时间最新) + * @return 防重键(收票登记id) -> 收票单行(同键多行取修改时间最新) */ public Map queryReceivedInvoiceBySrcCodes(String buyerName, Collection srcCodes, LocalDateTime windowStart, LocalDateTime windowEnd) {