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) {