From af3487a7da5cb2cfea5bdab02ef5d80796363956 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E6=B3=89=E4=BD=B3?= <1107186916@qq.com> Date: Thu, 5 Nov 2026 00:05:35 +0800 Subject: [PATCH] =?UTF-8?q?:sparkles:=20=E9=87=91=E8=9D=B6=E8=B4=A2?= =?UTF-8?q?=E5=8A=A1=E5=BA=94=E4=BB=98=E5=8D=95=E6=98=8E=E7=BB=86=E5=88=86?= =?UTF-8?q?=E5=BD=95=E6=8E=A8=E9=80=81=E7=A8=8E=E7=8E=87(taxrate)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../transport/support/KingdeeApBillSyncSupport.java | 13 ++++++++----- .../bfi/pojo/dto/BfiApBillSaveEntryDTO.java | 4 ++++ 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/support/KingdeeApBillSyncSupport.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/support/KingdeeApBillSyncSupport.java index ee0018ea..82e0b0e3 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/support/KingdeeApBillSyncSupport.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/support/KingdeeApBillSyncSupport.java @@ -381,6 +381,8 @@ public class KingdeeApBillSyncSupport { entry.setEPricetaxtotal(entryGroup.amount()); // 金额(不含税):结算明细行结算金额(不含税),结算合计费用项行无不含税金额不传 entry.setEAmount(entryGroup.amountNoTax()); + // 税率(%):合同计费方案规则税率(按税率拆行维度),未配置税率/结算合计费用项行不送,金蝶按默认带出 + entry.setTaxrate(entryGroup.taxRate()); // 【必填】项目.项目编码:开关开启取项目档案真实编码(金蝶档案须已存在且编码一致),未关联项目兜底 999 entry.setProjectNumber(this.kingdeeProjectNumber(settlement.getProjectId(), context)); // 【必填】外部系统来源分录标识(候选键):结算明细行取单据号,结算合计费用项行取结算单号-费用类型-费用项拼接 @@ -560,9 +562,9 @@ public class KingdeeApBillSyncSupport { // 分录唯一标识:单据号-货物序号-费用大类-税率(税率未配置不拼) String entryCode = entryCodePrefix + "-" + split.getCategory().getLabel() + split.taxRateSuffix(); entryGroups.add(new BfiEntryGroup(materialNumber, entryCode, quantity, price, amount, - amountNoTax, cargoName, vehicleNo, context.settlement().getId())); - log.info("金蝶应付单分录生成:来源[{}],分录标识[{}],物料编码[{}],数量[{}],单价[{}],含税金额[{}],不含税金额[{}]", - sourceDesc, entryCode, materialNumber, quantity, price, amount, amountNoTax); + amountNoTax, cargoName, vehicleNo, context.settlement().getId(), split.getTaxRate())); + log.info("金蝶应付单分录生成:来源[{}],分录标识[{}],物料编码[{}],数量[{}],单价[{}],含税金额[{}],不含税金额[{}],税率[{}]", + sourceDesc, entryCode, materialNumber, quantity, price, amount, amountNoTax, split.getTaxRate()); } } @@ -594,7 +596,7 @@ public class KingdeeApBillSyncSupport { String entryCode = settlement.getFormalSettlementNo() + "-" + (Func.isBlank(feeItem) ? feeType : feeType + "-" + feeItem); entryGroups.add(new BfiEntryGroup(materialNumber, entryCode, quantity, price, amount, - null, null, null, settlement.getId())); + null, null, null, settlement.getId(), null)); log.info("金蝶应付单分录生成:来源[{}],分录标识[{}],物料编码[{}],数量[{}],单价[{}],含税金额[{}]", sourceDesc, entryCode, materialNumber, quantity, price, amount); } @@ -1297,10 +1299,11 @@ public class KingdeeApBillSyncSupport { * @param transportGoods 运输货物(金蝶接口新字段 awrp_transport):结算明细货物名称,结算合计费用项行为 null 不传 * @param vehicleNo 车号(金蝶接口新字段 awrp_lpn):结算明细车号,结算合计费用项行为 null 不传 * @param formalSettlementId 分录所属正式结算单id(多结算单付款申请 A103-1 按结算单勾稽各自应付单) + * @param taxRate 该行税率(%)(合同计费方案规则税率,按税率拆行维度),无税率组/结算合计费用项行为 null 不传 */ public record BfiEntryGroup(String materialNumber, String entryCode, BigDecimal quantity, BigDecimal price, BigDecimal amount, BigDecimal amountNoTax, - String transportGoods, String vehicleNo, Long formalSettlementId) { + String transportGoods, String vehicleNo, Long formalSettlementId, BigDecimal taxRate) { } /** diff --git a/blade-third-party-api/blade-bfi-api/src/main/java/org/springblade/thirdparty/bfi/pojo/dto/BfiApBillSaveEntryDTO.java b/blade-third-party-api/blade-bfi-api/src/main/java/org/springblade/thirdparty/bfi/pojo/dto/BfiApBillSaveEntryDTO.java index 7810ec0e..1ef2004e 100644 --- a/blade-third-party-api/blade-bfi-api/src/main/java/org/springblade/thirdparty/bfi/pojo/dto/BfiApBillSaveEntryDTO.java +++ b/blade-third-party-api/blade-bfi-api/src/main/java/org/springblade/thirdparty/bfi/pojo/dto/BfiApBillSaveEntryDTO.java @@ -102,6 +102,10 @@ public class BfiApBillSaveEntryDTO implements Serializable { */ @JsonProperty("taxrateid_number") private String taxrateidNumber; + /** + * 税率(%),取合同计费方案规则税率数值(如 9 表示 9%),未取到税率不送 + */ + private BigDecimal taxrate; /** * 核心单据行号 */