fix: 开票申请推送金蝶送申请金额(不含税)与申请税额,消除头明细0.01尾差校验失败

This commit is contained in:
刘泉佳
2026-11-05 11:52:32 +08:00
parent 21cf57a144
commit 3effc68fde
@@ -1011,11 +1011,14 @@ public class InvoiceApplicationServiceImpl extends BaseServiceImpl<InvoiceApplic
param.setCustomnameidNumber(Func.isBlank(customer.getSupplierCode()) ? customer.getCustomerCode() : customer.getSupplierCode());
// 【必填】项目.项目编码:开关开启取项目档案真实编码(金蝶档案须已存在且编码一致),未关联项目兜底 999
param.setAwrpProjectNumber(kingdeeApBillSyncSupport.kingdeeProjectNumber(entity.getProjectId(), kingdeeContext));
// ==================== 以下为非必填字段,先注释保留,联调确认后按需放开 ====================
// 申请金额(不含税):分录不含税合计(放开时需按分摊后分录汇总)
// param.setInvoiceamount(invoiceamount);
// 申请税额:分录税额合计(放开时需按分摊后分录汇总)
// param.setTotaltax(totaltax);
// 申请金额(不含税)/申请税额:按分录合计送出(金蝶按「头=明细合计」强校验,不送时金蝶自行推导,
// 与明细价税分离的舍入口径可能差 0.01 尾差导致保存被拒,2026-11-05 联调)
BigDecimal entryAmountNoTax = items.stream().map(BfiInvoiceApplySaveEntryDTO::getAmount)
.filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
BigDecimal entryTax = items.stream().map(BfiInvoiceApplySaveEntryDTO::getTax)
.filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
param.setInvoiceamount(entryAmountNoTax);
param.setTotaltax(entryTax);
// 数据来源:固定 3
// param.setBillsource("3");