✨ 金蝶财务应付单明细分录推送税率(taxrate)

This commit is contained in:
刘泉佳
2026-11-05 00:05:35 +08:00
parent 23c0d66037
commit af3487a7da
2 changed files with 12 additions and 5 deletions
@@ -381,6 +381,8 @@ public class KingdeeApBillSyncSupport {
entry.setEPricetaxtotal(entryGroup.amount()); entry.setEPricetaxtotal(entryGroup.amount());
// 金额(不含税):结算明细行结算金额(不含税),结算合计费用项行无不含税金额不传 // 金额(不含税):结算明细行结算金额(不含税),结算合计费用项行无不含税金额不传
entry.setEAmount(entryGroup.amountNoTax()); entry.setEAmount(entryGroup.amountNoTax());
// 税率(%):合同计费方案规则税率(按税率拆行维度),未配置税率/结算合计费用项行不送,金蝶按默认带出
entry.setTaxrate(entryGroup.taxRate());
// 【必填】项目.项目编码:开关开启取项目档案真实编码(金蝶档案须已存在且编码一致),未关联项目兜底 999 // 【必填】项目.项目编码:开关开启取项目档案真实编码(金蝶档案须已存在且编码一致),未关联项目兜底 999
entry.setProjectNumber(this.kingdeeProjectNumber(settlement.getProjectId(), context)); entry.setProjectNumber(this.kingdeeProjectNumber(settlement.getProjectId(), context));
// 【必填】外部系统来源分录标识(候选键):结算明细行取单据号,结算合计费用项行取结算单号-费用类型-费用项拼接 // 【必填】外部系统来源分录标识(候选键):结算明细行取单据号,结算合计费用项行取结算单号-费用类型-费用项拼接
@@ -560,9 +562,9 @@ public class KingdeeApBillSyncSupport {
// 分录唯一标识:单据号-货物序号-费用大类-税率(税率未配置不拼) // 分录唯一标识:单据号-货物序号-费用大类-税率(税率未配置不拼)
String entryCode = entryCodePrefix + "-" + split.getCategory().getLabel() + split.taxRateSuffix(); String entryCode = entryCodePrefix + "-" + split.getCategory().getLabel() + split.taxRateSuffix();
entryGroups.add(new BfiEntryGroup(materialNumber, entryCode, quantity, price, amount, entryGroups.add(new BfiEntryGroup(materialNumber, entryCode, quantity, price, amount,
amountNoTax, cargoName, vehicleNo, context.settlement().getId())); amountNoTax, cargoName, vehicleNo, context.settlement().getId(), split.getTaxRate()));
log.info("金蝶应付单分录生成:来源[{}],分录标识[{}],物料编码[{}],数量[{}],单价[{}],含税金额[{}],不含税金额[{}]", log.info("金蝶应付单分录生成:来源[{}],分录标识[{}],物料编码[{}],数量[{}],单价[{}],含税金额[{}],不含税金额[{}],税率[{}]",
sourceDesc, entryCode, materialNumber, quantity, price, amount, amountNoTax); sourceDesc, entryCode, materialNumber, quantity, price, amount, amountNoTax, split.getTaxRate());
} }
} }
@@ -594,7 +596,7 @@ public class KingdeeApBillSyncSupport {
String entryCode = settlement.getFormalSettlementNo() + "-" String entryCode = settlement.getFormalSettlementNo() + "-"
+ (Func.isBlank(feeItem) ? feeType : feeType + "-" + feeItem); + (Func.isBlank(feeItem) ? feeType : feeType + "-" + feeItem);
entryGroups.add(new BfiEntryGroup(materialNumber, entryCode, quantity, price, amount, entryGroups.add(new BfiEntryGroup(materialNumber, entryCode, quantity, price, amount,
null, null, null, settlement.getId())); null, null, null, settlement.getId(), null));
log.info("金蝶应付单分录生成:来源[{}],分录标识[{}],物料编码[{}],数量[{}],单价[{}],含税金额[{}]", log.info("金蝶应付单分录生成:来源[{}],分录标识[{}],物料编码[{}],数量[{}],单价[{}],含税金额[{}]",
sourceDesc, entryCode, materialNumber, quantity, price, amount); sourceDesc, entryCode, materialNumber, quantity, price, amount);
} }
@@ -1297,10 +1299,11 @@ public class KingdeeApBillSyncSupport {
* @param transportGoods 运输货物(金蝶接口新字段 awrp_transport):结算明细货物名称,结算合计费用项行为 null 不传 * @param transportGoods 运输货物(金蝶接口新字段 awrp_transport):结算明细货物名称,结算合计费用项行为 null 不传
* @param vehicleNo 车号(金蝶接口新字段 awrp_lpn):结算明细车号,结算合计费用项行为 null 不传 * @param vehicleNo 车号(金蝶接口新字段 awrp_lpn):结算明细车号,结算合计费用项行为 null 不传
* @param formalSettlementId 分录所属正式结算单id(多结算单付款申请 A103-1 按结算单勾稽各自应付单) * @param formalSettlementId 分录所属正式结算单id(多结算单付款申请 A103-1 按结算单勾稽各自应付单)
* @param taxRate 该行税率(%)(合同计费方案规则税率,按税率拆行维度),无税率组/结算合计费用项行为 null 不传
*/ */
public record BfiEntryGroup(String materialNumber, String entryCode, public record BfiEntryGroup(String materialNumber, String entryCode,
BigDecimal quantity, BigDecimal price, BigDecimal amount, BigDecimal amountNoTax, BigDecimal quantity, BigDecimal price, BigDecimal amount, BigDecimal amountNoTax,
String transportGoods, String vehicleNo, Long formalSettlementId) { String transportGoods, String vehicleNo, Long formalSettlementId, BigDecimal taxRate) {
} }
/** /**
@@ -102,6 +102,10 @@ public class BfiApBillSaveEntryDTO implements Serializable {
*/ */
@JsonProperty("taxrateid_number") @JsonProperty("taxrateid_number")
private String taxrateidNumber; private String taxrateidNumber;
/**
* 税率(%),取合同计费方案规则税率数值(如 9 表示 9%),未取到税率不送
*/
private BigDecimal taxrate;
/** /**
* 核心单据行号 * 核心单据行号
*/ */