⚡ 调整金蝶财务应付单/付款申请推送逻辑

- awrp_src_code 拼接付款申请号与结算明细单据号(去重)
- 分录金额直接取结算金额(含税/不含税),移除按申请付款金额分摊逻辑
- 往来类型/往来户改由合同取值:客户合同传 bd_customer,其余 bd_supplier;
  往来户取合同乙方并关联客商档案取客商编码,未维护时拦截报错
- 币种 RMB 统一映射为 CNY
- 金蝶请求 DTO 统一增加 @JsonInclude(NON_NULL),布尔字段默认 false
- A102-2 仅传必填字段,非必传字段注释保留;isincludetax/ispricetotal 传 true
This commit is contained in:
刘泉佳
2026-09-17 22:37:07 +08:00
parent 25a5b63ecc
commit d0c5483d8b
52 changed files with 191 additions and 75 deletions
@@ -38,12 +38,24 @@ public final class KingdeeBfiConstant {
/** 往来类型:供应商(付款申请与财务应付单共用)。 */ /** 往来类型:供应商(付款申请与财务应付单共用)。 */
public static final String BFI_SUPPLIER_ASSTACT_TYPE = "bd_supplier"; public static final String BFI_SUPPLIER_ASSTACT_TYPE = "bd_supplier";
/** 往来类型:客户(财务应付单按合同类别为客户合同时使用)。 */
public static final String BFI_CUSTOMER_ASSTACT_TYPE = "bd_customer";
/** 来源单据类型:上游合同(有合同时传 awrp_src_bt)。 */ /** 来源单据类型:上游合同(有合同时传 awrp_src_bt)。 */
public static final String BFI_CONTRACT_SRC_BT = "awrp_contract_info"; public static final String BFI_CONTRACT_SRC_BT = "awrp_contract_info";
/** 无项目时传的项目编码占位值。 */ /** 无项目时传的项目编码占位值。 */
public static final String BFI_PROJECT_NUMBER_NONE = "999"; public static final String BFI_PROJECT_NUMBER_NONE = "999";
/** 联调默认物料编码:金蝶测试档案值,真实货物类型档案编码与金蝶对齐后替换。 */
public static final String BFI_AP_BILL_MATERIAL_NUMBER_TEST = "SP0324";
/** 联调默认计量单位编码:金蝶测试档案值,档案维护计量单位编码后替换。 */
public static final String BFI_AP_BILL_MEASUREUNIT_NUMBER_TEST = "TON";
/** 联调默认项目编码:金蝶测试档案值,项目档案与金蝶对齐后替换。 */
public static final String BFI_AP_BILL_PROJECT_NUMBER_TEST = "999";
/** 付款类型编码:正式付款(结算付款)。 */ /** 付款类型编码:正式付款(结算付款)。 */
public static final String BFI_PAYMENT_TYPE_FORMAL = "201"; public static final String BFI_PAYMENT_TYPE_FORMAL = "201";
@@ -734,9 +734,9 @@ public class PaymentApplicationServiceImpl extends BaseServiceImpl<PaymentApplic
BfiPayApplySaveEntryDTO entry = new BfiPayApplySaveEntryDTO(); BfiPayApplySaveEntryDTO entry = new BfiPayApplySaveEntryDTO();
entry.setEPaymenttypeNumber("settlement_payment".equals(entity.getPaymentType()) ? KingdeeBfiConstant.BFI_PAYMENT_TYPE_FORMAL : KingdeeBfiConstant.BFI_PAYMENT_TYPE_PREPAY); entry.setEPaymenttypeNumber("settlement_payment".equals(entity.getPaymentType()) ? KingdeeBfiConstant.BFI_PAYMENT_TYPE_FORMAL : KingdeeBfiConstant.BFI_PAYMENT_TYPE_PREPAY);
entry.setEAsstacttype(KingdeeBfiConstant.BFI_SUPPLIER_ASSTACT_TYPE); entry.setEAsstacttype(bfiAsstactType(contract));
// 供应商编码 // 往来户.编码:合同乙方关联客商档案客商编码
entry.setEAsstactNumber(bfiSupplierCode(entity)); entry.setEAsstactNumber(bfiAsstactNumber(contract));
entry.setEAssacct(entity.getBankAccount()); entry.setEAssacct(entity.getBankAccount());
entry.setEBebankNumber(entity.getBankName()); entry.setEBebankNumber(entity.getBankName());
// 应付金额 // 应付金额
@@ -772,7 +772,7 @@ public class PaymentApplicationServiceImpl extends BaseServiceImpl<PaymentApplic
/** /**
* 推送金蝶财务应付单(A102-2 财务应付单保存,正式结算付款第一步),仅校验保存成功。 * 推送金蝶财务应付单(A102-2 财务应付单保存,正式结算付款第一步),仅校验保存成功。
* 明细分录按结算明细货物编码+计量单位分组推送,金额为各组分配后的申请付款金额。 * 明细分录按结算明细货物编码+计量单位分组推送,金额取各组结算金额(含税/不含税)。
* *
* @param entity 付款申请实体 * @param entity 付款申请实体
* @param entryGroups 结算明细聚合出的应付单分录组 * @param entryGroups 结算明细聚合出的应付单分录组
@@ -797,10 +797,10 @@ public class PaymentApplicationServiceImpl extends BaseServiceImpl<PaymentApplic
param.setOrgNumber(orgNumber); param.setOrgNumber(orgNumber);
// 【必填】单据日期 // 【必填】单据日期
param.setBizdate(billDateText); param.setBizdate(billDateText);
// 【必填】往来类型(bd_supplier:供应商) // 【必填】往来类型:合同类别为“客户合同”时为 bd_customer(客户),否则 bd_supplier(供应商)
param.setAsstacttype(KingdeeBfiConstant.BFI_SUPPLIER_ASSTACT_TYPE); param.setAsstacttype(bfiAsstactType(contract));
// 【必填】往来户.编码 // 【必填】往来户.编码:合同乙方关联客商档案客商编码
param.setAsstactNumber(bfiSupplierCode(entity)); param.setAsstactNumber(bfiAsstactNumber(contract));
// 【必填】付款方式(CASH:现购, CREDIT:赊购) // 【必填】付款方式(CASH:现购, CREDIT:赊购)
param.setPurmode(KingdeeBfiConstant.BFI_AP_BILL_PUR_MODE_CASH); param.setPurmode(KingdeeBfiConstant.BFI_AP_BILL_PUR_MODE_CASH);
// 【必填】结算币别.货币代码 // 【必填】结算币别.货币代码
@@ -813,17 +813,18 @@ public class PaymentApplicationServiceImpl extends BaseServiceImpl<PaymentApplic
param.setPaypropertyNumber(KingdeeBfiConstant.BFI_AP_BILL_PAY_PROPERTY); param.setPaypropertyNumber(KingdeeBfiConstant.BFI_AP_BILL_PAY_PROPERTY);
// TODO 待确认:结算方式编码(settlementtype_number)与税率编码(taxrateid_number)需金蝶侧确认后补充,当前不传 // TODO 待确认:结算方式编码(settlementtype_number)与税率编码(taxrateid_number)需金蝶侧确认后补充,当前不传
// 录入含税价(非必传) // 录入含税价(非必传)
// param.setIsincludetax(true); param.setIsincludetax(true);
// 录入总价,为 true 后可不录入单价(非必传) // 录入总价,为 true 后可不录入单价(非必传)
// param.setIspricetotal(true); param.setIspricetotal(true);
param.setIsintax(false);
// 汇率表.编码(非必传) // 汇率表.编码(非必传)
param.setExratetableNumber(bfiPayApplyExratetable); // param.setExratetableNumber(bfiPayApplyExratetable);
// 汇率日期(非必传) // 汇率日期(非必传)
param.setExratedate(billDateText); // param.setExratedate(billDateText);
// 往来单位名称(非必传) // 往来单位名称(非必传)
// param.setAsstactname(entity.getPayeeName()); // param.setAsstactname(entity.getPayeeName());
// 备注(非必传) // 备注(非必传)
param.setRemark(entity.getPaymentNo() + (Func.isEmpty(entity.getSettlementNo()) ? "" : " " + entity.getSettlementNo())); // param.setRemark(entity.getPaymentNo() + (Func.isEmpty(entity.getSettlementNo()) ? "" : " " + entity.getSettlementNo()));
// 【必填】外部系统编号(候选键) // 【必填】外部系统编号(候选键)
param.setAwrpSrcSys(bfiPayApplySrcSys); param.setAwrpSrcSys(bfiPayApplySrcSys);
// 【必填】外部系统来源单据号(候选键):付款申请号_结算明细单据号1_单据号2... // 【必填】外部系统来源单据号(候选键):付款申请号_结算明细单据号1_单据号2...
@@ -832,11 +833,11 @@ public class PaymentApplicationServiceImpl extends BaseServiceImpl<PaymentApplic
awrpSrcCodeParts.addAll(documentNos); awrpSrcCodeParts.addAll(documentNos);
param.setAwrpSrcCode(String.join("_", awrpSrcCodeParts)); param.setAwrpSrcCode(String.join("_", awrpSrcCodeParts));
// 来源单据(非必传,有上游合同时传 awrp_contract_info) // 来源单据(非必传,有上游合同时传 awrp_contract_info)
param.setAwrpSrcBt(KingdeeBfiConstant.BFI_CONTRACT_SRC_BT); // param.setAwrpSrcBt(KingdeeBfiConstant.BFI_CONTRACT_SRC_BT);
// 上游外部系统单据号/上游合同号(非必传) // 上游外部系统单据号/上游合同号(非必传)
if (Func.isNotEmpty(entity.getContractNo())) { // if (Func.isNotEmpty(entity.getContractNo())) {
param.setAwrpSrcConNo(entity.getContractNo()); // param.setAwrpSrcConNo(entity.getContractNo());
} // }
// 【必填】外部单据类型 // 【必填】外部单据类型
param.setAwrpSrcType(KingdeeBfiConstant.BFI_AP_BILL_SRC_TYPE); param.setAwrpSrcType(KingdeeBfiConstant.BFI_AP_BILL_SRC_TYPE);
@@ -851,14 +852,24 @@ public class PaymentApplicationServiceImpl extends BaseServiceImpl<PaymentApplic
entry.setMeasureunitNumber(entryGroup.measureunitNumber()); entry.setMeasureunitNumber(entryGroup.measureunitNumber());
// 【必填】数量:组内结算明细运输数量合计,无吨位数据时兜底 1 // 【必填】数量:组内结算明细运输数量合计,无吨位数据时兜底 1
entry.setQuantity(entryGroup.quantity().compareTo(BigDecimal.ZERO) > 0 ? entryGroup.quantity() : BigDecimal.ONE); entry.setQuantity(entryGroup.quantity().compareTo(BigDecimal.ZERO) > 0 ? entryGroup.quantity() : BigDecimal.ONE);
// 应付金额(含税)(非必传):按组内结算金额占比分配的申请付款金额 // 应付金额(含税):组内结算金额(含税)合计
entry.setEPricetaxtotal(entryGroup.amount()); entry.setEPricetaxtotal(entryGroup.amount());
// 【必填】项目.项目编码 // 金额(不含税):组内结算金额(不含税)合计
entry.setProjectNumber(bfiProjectNumber(entity)); entry.setEAmount(entryGroup.amountNoTax());
// 【必填】项目.项目编码(联调期临时传金蝶测试档案值)
entry.setProjectNumber(KingdeeBfiConstant.BFI_AP_BILL_PROJECT_NUMBER_TEST);
// 【必填】外部系统来源分录标识(候选键),A103-1 下推时以 awrp_finapbill_entryid 关联此行 // 【必填】外部系统来源分录标识(候选键),A103-1 下推时以 awrp_finapbill_entryid 关联此行
entry.setAwrpEntryCode(entity.getPaymentNo() + "-" + (index + 1)); entry.setAwrpEntryCode(entity.getPaymentNo() + "-" + (index + 1));
if (true){
// 【必填】物料编码.编码:结算明细货物类型匹配货物类型档案货物编码
entry.setMaterialNumber(KingdeeBfiConstant.BFI_AP_BILL_MATERIAL_NUMBER_TEST);
// 【必填】计量单位.编码:货物费用行运费计算单位(快照 price_unit,档案暂无编码字段暂传单位名称)
entry.setMeasureunitNumber(KingdeeBfiConstant.BFI_AP_BILL_MEASUREUNIT_NUMBER_TEST);
}
// 分录备注(非必传) // 分录备注(非必传)
entry.setERemark(entity.getRemark()); // entry.setERemark(entity.getRemark());
detailentry.add(entry); detailentry.add(entry);
} }
param.setDetailentry(detailentry); param.setDetailentry(detailentry);
@@ -866,6 +877,11 @@ public class PaymentApplicationServiceImpl extends BaseServiceImpl<PaymentApplic
// 付款计划 planentity 不传,由金蝶按明细自动汇总生成 // 付款计划 planentity 不传,由金蝶按明细自动汇总生成
// TODO 待业务确认:存在预付款抵扣时是否需传预付信息 preentry(y_billtype/y_billid/y_settleamt),本期不传、后续迭代 // TODO 待业务确认:存在预付款抵扣时是否需传预付信息 preentry(y_billtype/y_billid/y_settleamt),本期不传、后续迭代
// 调试
// if (true) {
// param.setm
// }
BfiBillSaveResultVO saveResult = bfiService.saveApBill(param); BfiBillSaveResultVO saveResult = bfiService.saveApBill(param);
// 应付单id不落库,后续如需可经 A102-4 按防重键(awrp_src_sys + awrp_src_code)查询 // 应付单id不落库,后续如需可经 A102-4 按防重键(awrp_src_sys + awrp_src_code)查询
requireBfiSaveSuccess(saveResult, "推送金蝶财务应付单"); requireBfiSaveSuccess(saveResult, "推送金蝶财务应付单");
@@ -873,7 +889,7 @@ public class PaymentApplicationServiceImpl extends BaseServiceImpl<PaymentApplic
/** /**
* 推送金蝶付款申请(A103-1 应付下推付款申请,正式结算付款第二步),返回星瀚付款申请单id。 * 推送金蝶付款申请(A103-1 应付下推付款申请,正式结算付款第二步),返回星瀚付款申请单id。
* 付款申请分录与财务应付单明细分录一一对应,金额为各组分配后的申请付款金额。 * 付款申请分录与财务应付单明细分录一一对应,申请金额取各组结算金额(含税)。
* *
* @param entity 付款申请实体 * @param entity 付款申请实体
* @param entryGroups 结算明细聚合出的应付单分录组 * @param entryGroups 结算明细聚合出的应付单分录组
@@ -909,7 +925,7 @@ public class PaymentApplicationServiceImpl extends BaseServiceImpl<PaymentApplic
entry.setEAssacct(entity.getBankAccount()); entry.setEAssacct(entity.getBankAccount());
// TODO 待确认:往来银行为必填编码(e_bebank_number),当前暂传银行名称,待建立银行档案编码映射后调整 // TODO 待确认:往来银行为必填编码(e_bebank_number),当前暂传银行名称,待建立银行档案编码映射后调整
entry.setEBebankNumber(entity.getBankName()); entry.setEBebankNumber(entity.getBankName());
// 申请金额:与对应应付单分录分配金额保持一致 // 申请金额:与对应应付单分录结算金额(含税)保持一致
entry.setEApplyamount(entryGroup.amount()); entry.setEApplyamount(entryGroup.amount());
entry.setEExpaydate(applyDateText); entry.setEExpaydate(applyDateText);
entry.setProjectNumber(bfiProjectNumber(entity)); entry.setProjectNumber(bfiProjectNumber(entity));
@@ -929,17 +945,17 @@ public class PaymentApplicationServiceImpl extends BaseServiceImpl<PaymentApplic
* @param materialNumber 物料编码(货物类型档案货物编码) * @param materialNumber 物料编码(货物类型档案货物编码)
* @param measureunitNumber 计量单位编码(运费计算单位,档案暂无编码字段暂传单位名称) * @param measureunitNumber 计量单位编码(运费计算单位,档案暂无编码字段暂传单位名称)
* @param quantity 组内运输数量合计 * @param quantity 组内运输数量合计
* @param baseAmount 组内结算金额(含税)合计,作为申请金额分配基数 * @param amount 组内结算金额(含税)合计,对应明细应付金额 e_pricetaxtotal
* @param amount 分配后的申请付款金额 * @param amountNoTax 组内结算金额(不含税)合计,对应明细金额 e_amount
*/ */
private record BfiEntryGroup(String materialNumber, String measureunitNumber, BigDecimal quantity, private record BfiEntryGroup(String materialNumber, String measureunitNumber, BigDecimal quantity,
BigDecimal baseAmount, BigDecimal amount) { BigDecimal amount, BigDecimal amountNoTax) {
} }
/** /**
* 应付单分录解析结果 * 应付单分录解析结果
* *
* @param entryGroups 结算明细聚合出的应付单分录组(已分配金额) * @param entryGroups 结算明细聚合出的应付单分录组(金额取结算金额含税/不含税)
* @param documentNos 结算明细单据号(去重、保持行序),用于拼接外部系统来源单据号 * @param documentNos 结算明细单据号(去重、保持行序),用于拼接外部系统来源单据号
*/ */
private record BfiEntryGroupResult(List<BfiEntryGroup> entryGroups, List<String> documentNos) { private record BfiEntryGroupResult(List<BfiEntryGroup> entryGroups, List<String> documentNos) {
@@ -949,10 +965,10 @@ public class PaymentApplicationServiceImpl extends BaseServiceImpl<PaymentApplic
* 解析付款申请关联的正式结算明细,按货物编码+计量单位聚合为应付单分录组。 * 解析付款申请关联的正式结算明细,按货物编码+计量单位聚合为应付单分录组。
* <p>物料编码:货物费用行/结算明细货物类型(支持“、”分隔多类型)匹配货物类型档案货物编码; * <p>物料编码:货物费用行/结算明细货物类型(支持“、”分隔多类型)匹配货物类型档案货物编码;
* 计量单位:快照运费计算单位(历史快照为空时兜底数量单位),档案暂无编码字段暂以单位名称作为编码。 * 计量单位:快照运费计算单位(历史快照为空时兜底数量单位),档案暂无编码字段暂以单位名称作为编码。
* 申请付款金额按各组结算金额占比分配,尾差计入最后一组分录。</p> * 分录金额直接取结算金额(含税/不含税),不按申请付款金额分摊。</p>
* *
* @param entity 付款申请实体 * @param entity 付款申请实体
* @return 应付单分录解析结果(已分配金额的分录组 + 结算明细单据号) * @return 应付单分录解析结果(分录组 + 结算明细单据号)
*/ */
private BfiEntryGroupResult resolveBfiEntryGroups(PaymentApplication entity) { private BfiEntryGroupResult resolveBfiEntryGroups(PaymentApplication entity) {
List<FormalSettlementDetail> settlementDetails = formalSettlementDetails(entity); List<FormalSettlementDetail> settlementDetails = formalSettlementDetails(entity);
@@ -974,51 +990,23 @@ public class PaymentApplicationServiceImpl extends BaseServiceImpl<PaymentApplic
for (FormalSettlementDetailFee detailFee : detailFees) { for (FormalSettlementDetailFee detailFee : detailFees) {
collectEntryGroups(groupMap, cargoCodeByName, detailFee.getCargoType(), collectEntryGroups(groupMap, cargoCodeByName, detailFee.getCargoType(),
resolveMeasureunitNumber(null, detailFee.getQuantityUnit()), resolveMeasureunitNumber(null, detailFee.getQuantityUnit()),
money(detailFee.getSettlementAmountTax()), money(detailFee.getTransportQuantity()), money(detailFee.getSettlementAmountTax()), money(detailFee.getSettlementAmountNoTax()),
money(detailFee.getTransportQuantity()),
"货物费用[" + Func.toStr(detailFee.getCargoName()) + " 第" + Func.toStr(detailFee.getLineNo()) + "行]"); "货物费用[" + Func.toStr(detailFee.getCargoName()) + " 第" + Func.toStr(detailFee.getLineNo()) + "行]");
} }
} else { } else {
for (FormalSettlementDetail settlementDetail : settlementDetails) { for (FormalSettlementDetail settlementDetail : settlementDetails) {
collectEntryGroups(groupMap, cargoCodeByName, settlementDetail.getCargoType(), collectEntryGroups(groupMap, cargoCodeByName, settlementDetail.getCargoType(),
resolveMeasureunitNumber(null, settlementDetail.getQuantityUnit()), resolveMeasureunitNumber(null, settlementDetail.getQuantityUnit()),
money(settlementDetail.getSettlementAmountTax()), money(settlementDetail.getTransportQuantity()), money(settlementDetail.getSettlementAmountTax()), money(settlementDetail.getSettlementAmountNoTax()),
money(settlementDetail.getTransportQuantity()),
"结算明细[" + Func.toStr(settlementDetail.getDocumentNo()) + " 第" + Func.toStr(settlementDetail.getLineNo()) + "行]"); "结算明细[" + Func.toStr(settlementDetail.getDocumentNo()) + " 第" + Func.toStr(settlementDetail.getLineNo()) + "行]");
} }
} }
if (groupMap.isEmpty()) { if (groupMap.isEmpty()) {
throw new ServiceException("推送金蝶财务应付单失败:结算明细未解析出任何分录组,请检查货物类型维护"); throw new ServiceException("推送金蝶财务应付单失败:结算明细未解析出任何分录组,请检查货物类型维护");
} }
// 申请付款金额按各组结算金额占比分配(保留 2 位小数、向下取整,尾差计入最后一组);无结算金额时均摊 return new BfiEntryGroupResult(new ArrayList<>(groupMap.values()), documentNos);
return new BfiEntryGroupResult(allocateEntryAmounts(groupMap, money(entity.getAppliedAmount()).setScale(2, RoundingMode.HALF_UP)), documentNos);
}
/**
* 申请付款金额按各组结算金额占比分配到分录组(保留 2 位小数、向下取整,尾差计入最后一组);
* 各组结算金额合计为 0 时按组数均摊
*
* @param groupMap 分录组(按物料编码+计量单位聚合,保持行序)
* @param appliedAmount 申请付款金额(已按 2 位小数格式化)
* @return 应付单分录组(已分配金额)
*/
private List<BfiEntryGroup> allocateEntryAmounts(LinkedHashMap<String, BfiEntryGroup> groupMap, BigDecimal appliedAmount) {
List<BfiEntryGroup> groups = new ArrayList<>(groupMap.values());
BigDecimal totalBaseAmount = groups.stream().map(BfiEntryGroup::baseAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
List<BfiEntryGroup> entryGroups = new ArrayList<>(groups.size());
BigDecimal allocatedAmount = BigDecimal.ZERO;
for (int index = 0; index < groups.size(); index++) {
BfiEntryGroup group = groups.get(index);
BigDecimal amount;
if (index == groups.size() - 1) {
amount = appliedAmount.subtract(allocatedAmount);
} else if (totalBaseAmount.compareTo(BigDecimal.ZERO) > 0) {
amount = appliedAmount.multiply(group.baseAmount()).divide(totalBaseAmount, 2, RoundingMode.DOWN);
} else {
amount = appliedAmount.divide(BigDecimal.valueOf(groups.size()), 2, RoundingMode.DOWN);
}
allocatedAmount = allocatedAmount.add(amount);
entryGroups.add(new BfiEntryGroup(group.materialNumber(), group.measureunitNumber(), group.quantity(), group.baseAmount(), amount));
}
return entryGroups;
} }
/** /**
@@ -1028,18 +1016,20 @@ public class PaymentApplicationServiceImpl extends BaseServiceImpl<PaymentApplic
* @param cargoCodeByName 货物类型名称->货物编码映射 * @param cargoCodeByName 货物类型名称->货物编码映射
* @param cargoType 货物类型(支持“、”分隔多类型) * @param cargoType 货物类型(支持“、”分隔多类型)
* @param measureunitNumber 计量单位编码(运费计算单位,档案暂无编码字段暂传单位名称) * @param measureunitNumber 计量单位编码(运费计算单位,档案暂无编码字段暂传单位名称)
* @param baseAmount 结算金额(含税),作为申请金额分配基数 * @param amount 结算金额(含税)
* @param amountNoTax 结算金额(不含税)
* @param quantity 运输数量 * @param quantity 运输数量
* @param sourceDesc 来源行描述,用于异常提示 * @param sourceDesc 来源行描述,用于异常提示
*/ */
private void collectEntryGroups(LinkedHashMap<String, BfiEntryGroup> groupMap, Map<String, String> cargoCodeByName, private void collectEntryGroups(LinkedHashMap<String, BfiEntryGroup> groupMap, Map<String, String> cargoCodeByName,
String cargoType, String measureunitNumber, BigDecimal baseAmount, BigDecimal quantity, String cargoType, String measureunitNumber, BigDecimal amount, BigDecimal amountNoTax,
String sourceDesc) { BigDecimal quantity, String sourceDesc) {
List<String> cargoNames = splitCargoTypes(cargoType); List<String> cargoNames = splitCargoTypes(cargoType);
if (Func.isBlank(measureunitNumber)) { if (Func.isBlank(measureunitNumber)) {
throw new ServiceException("推送金蝶财务应付单失败:" + sourceDesc + "计量单位为空,请先维护运费计算单位"); throw new ServiceException("推送金蝶财务应付单失败:" + sourceDesc + "计量单位为空,请先维护运费计算单位");
} }
List<BigDecimal> baseShares = splitEqually(baseAmount, cargoNames.size()); List<BigDecimal> amountShares = splitEqually(amount, cargoNames.size());
List<BigDecimal> amountNoTaxShares = splitEqually(amountNoTax, cargoNames.size());
List<BigDecimal> quantityShares = splitEqually(quantity, cargoNames.size()); List<BigDecimal> quantityShares = splitEqually(quantity, cargoNames.size());
for (int index = 0; index < cargoNames.size(); index++) { for (int index = 0; index < cargoNames.size(); index++) {
String cargoName = cargoNames.get(index); String cargoName = cargoNames.get(index);
@@ -1048,9 +1038,9 @@ public class PaymentApplicationServiceImpl extends BaseServiceImpl<PaymentApplic
throw new ServiceException("推送金蝶财务应付单失败:" + sourceDesc + "货物类型[" + cargoName + "]未在货物类型档案中维护编码,请补充后重试"); throw new ServiceException("推送金蝶财务应付单失败:" + sourceDesc + "货物类型[" + cargoName + "]未在货物类型档案中维护编码,请补充后重试");
} }
groupMap.merge(materialNumber + "/" + measureunitNumber, groupMap.merge(materialNumber + "/" + measureunitNumber,
new BfiEntryGroup(materialNumber, measureunitNumber, quantityShares.get(index), baseShares.get(index), BigDecimal.ZERO), new BfiEntryGroup(materialNumber, measureunitNumber, quantityShares.get(index), amountShares.get(index), amountNoTaxShares.get(index)),
(left, right) -> new BfiEntryGroup(left.materialNumber(), left.measureunitNumber(), (left, right) -> new BfiEntryGroup(left.materialNumber(), left.measureunitNumber(),
left.quantity().add(right.quantity()), left.baseAmount().add(right.baseAmount()), BigDecimal.ZERO)); left.quantity().add(right.quantity()), left.amount().add(right.amount()), left.amountNoTax().add(right.amountNoTax())));
} }
} }
@@ -1207,7 +1197,9 @@ public class PaymentApplicationServiceImpl extends BaseServiceImpl<PaymentApplic
private String bfiCurrency(ContractManage contract) { private String bfiCurrency(ContractManage contract) {
if (Func.isBlank(contract.getSettlementCurrency())) throw new ServiceException("推送金蝶付款申请失败,合同结算币种不能为空"); if (Func.isBlank(contract.getSettlementCurrency())) throw new ServiceException("推送金蝶付款申请失败,合同结算币种不能为空");
return contract.getSettlementCurrency(); // 金蝶币别代码为 CNY,合同结算币种维护为 RMB 时统一映射
String currency = contract.getSettlementCurrency();
return "RMB".equalsIgnoreCase(currency) ? "CNY" : currency;
} }
private String bfiApplyCause(String paymentType) { private String bfiApplyCause(String paymentType) {
@@ -1226,12 +1218,24 @@ public class PaymentApplicationServiceImpl extends BaseServiceImpl<PaymentApplic
.map(DictBiz::getDictValue).findFirst().orElse(paymentMethod); .map(DictBiz::getDictValue).findFirst().orElse(paymentMethod);
} }
private String bfiSupplierCode(PaymentApplication entity) { /** 财务应付单往来类型:合同类别为“客户合同”时为 bd_customer(客户),否则 bd_supplier(供应商) */
if (Func.isEmpty(entity.getPayeeName())) throw new ServiceException("推送金蝶付款申请失败,收款方不能为空"); private String bfiAsstactType(ContractManage contract) {
return "客户合同".equals(contract.getContractCategory())
? KingdeeBfiConstant.BFI_CUSTOMER_ASSTACT_TYPE : KingdeeBfiConstant.BFI_SUPPLIER_ASSTACT_TYPE;
}
/** 财务应付单往来户.编码:合同乙方关联客商档案取客商编码,未维护时拦截 */
private String bfiAsstactNumber(ContractManage contract) {
if (Func.isBlank(contract.getPartyB())) {
throw new ServiceException("推送金蝶财务应付单失败,合同乙方不能为空,请检查合同[" + Func.toStr(contract.getContractNo()) + "]乙方信息");
}
CustomerArchive customer = customerArchiveMapper.selectOne(Wrappers.<CustomerArchive>lambdaQuery() CustomerArchive customer = customerArchiveMapper.selectOne(Wrappers.<CustomerArchive>lambdaQuery()
.and(wrapper -> wrapper.eq(CustomerArchive::getFullName, entity.getPayeeName()).or().eq(CustomerArchive::getShortName, entity.getPayeeName())) .and(wrapper -> wrapper.eq(CustomerArchive::getFullName, contract.getPartyB()).or().eq(CustomerArchive::getShortName, contract.getPartyB()))
.eq(CustomerArchive::getIsDeleted, 0).last("limit 1")); .eq(CustomerArchive::getIsDeleted, 0).last("limit 1"));
return customer == null || Func.isEmpty(customer.getCustomerCode()) ? entity.getPayeeName() : customer.getCustomerCode(); if (customer == null || Func.isBlank(customer.getCustomerCode())) {
throw new ServiceException("推送金蝶财务应付单失败,合同乙方[" + contract.getPartyB() + "]未在客商档案中维护客商编码,请补充后重试");
}
return customer.getCustomerCode();
} }
private String bfiProjectNumber(PaymentApplication entity) { private String bfiProjectNumber(PaymentApplication entity) {
@@ -25,6 +25,7 @@
*/ */
package org.springblade.thirdparty.bfi.pojo.dto; package org.springblade.thirdparty.bfi.pojo.dto;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Data; import lombok.Data;
import java.io.Serial; import java.io.Serial;
@@ -42,6 +43,7 @@ import java.util.List;
* @author Chill * @author Chill
*/ */
@Data @Data
@JsonInclude(JsonInclude.Include.NON_NULL)
public class BfiApBillQueryDTO implements Serializable { public class BfiApBillQueryDTO implements Serializable {
@Serial @Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@@ -25,6 +25,7 @@
*/ */
package org.springblade.thirdparty.bfi.pojo.dto; package org.springblade.thirdparty.bfi.pojo.dto;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Data; import lombok.Data;
import java.io.Serial; import java.io.Serial;
@@ -37,6 +38,7 @@ import java.util.List;
* @author Chill * @author Chill
*/ */
@Data @Data
@JsonInclude(JsonInclude.Include.NON_NULL)
public class BfiApBillSaveBodyDTO implements Serializable { public class BfiApBillSaveBodyDTO implements Serializable {
@Serial @Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@@ -25,6 +25,7 @@
*/ */
package org.springblade.thirdparty.bfi.pojo.dto; package org.springblade.thirdparty.bfi.pojo.dto;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data; import lombok.Data;
@@ -87,6 +88,7 @@ import java.util.List;
* @author Chill * @author Chill
*/ */
@Data @Data
@JsonInclude(JsonInclude.Include.NON_NULL)
public class BfiApBillSaveDTO implements Serializable { public class BfiApBillSaveDTO implements Serializable {
@Serial @Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@@ -25,6 +25,7 @@
*/ */
package org.springblade.thirdparty.bfi.pojo.dto; package org.springblade.thirdparty.bfi.pojo.dto;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data; import lombok.Data;
@@ -38,6 +39,7 @@ import java.math.BigDecimal;
* @author Chill * @author Chill
*/ */
@Data @Data
@JsonInclude(JsonInclude.Include.NON_NULL)
public class BfiApBillSaveEntryDTO implements Serializable { public class BfiApBillSaveEntryDTO implements Serializable {
@Serial @Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@@ -82,9 +84,9 @@ public class BfiApBillSaveEntryDTO implements Serializable {
*/ */
private BigDecimal discountrate; private BigDecimal discountrate;
/** /**
* 赠品 * 赠品,默认 false
*/ */
private Boolean ispresent; private Boolean ispresent = Boolean.FALSE;
/** /**
* 税率.编码,城矿传 V13(BfiConstant.TAX_RATE_V13) * 税率.编码,城矿传 V13(BfiConstant.TAX_RATE_V13)
*/ */
@@ -25,6 +25,7 @@
*/ */
package org.springblade.thirdparty.bfi.pojo.dto; package org.springblade.thirdparty.bfi.pojo.dto;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data; import lombok.Data;
@@ -38,6 +39,7 @@ import java.math.BigDecimal;
* @author Chill * @author Chill
*/ */
@Data @Data
@JsonInclude(JsonInclude.Include.NON_NULL)
public class BfiApBillSavePlanDTO implements Serializable { public class BfiApBillSavePlanDTO implements Serializable {
@Serial @Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@@ -25,6 +25,7 @@
*/ */
package org.springblade.thirdparty.bfi.pojo.dto; package org.springblade.thirdparty.bfi.pojo.dto;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data; import lombok.Data;
@@ -38,6 +39,7 @@ import java.math.BigDecimal;
* @author Chill * @author Chill
*/ */
@Data @Data
@JsonInclude(JsonInclude.Include.NON_NULL)
public class BfiApBillSavePreEntryDTO implements Serializable { public class BfiApBillSavePreEntryDTO implements Serializable {
@Serial @Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@@ -25,6 +25,7 @@
*/ */
package org.springblade.thirdparty.bfi.pojo.dto; package org.springblade.thirdparty.bfi.pojo.dto;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Data; import lombok.Data;
import java.io.Serial; import java.io.Serial;
@@ -42,6 +43,7 @@ import java.util.List;
* @author Chill * @author Chill
*/ */
@Data @Data
@JsonInclude(JsonInclude.Include.NON_NULL)
public class BfiArBillQueryDTO implements Serializable { public class BfiArBillQueryDTO implements Serializable {
@Serial @Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@@ -25,6 +25,7 @@
*/ */
package org.springblade.thirdparty.bfi.pojo.dto; package org.springblade.thirdparty.bfi.pojo.dto;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Data; import lombok.Data;
import java.io.Serial; import java.io.Serial;
@@ -37,6 +38,7 @@ import java.util.List;
* @author Chill * @author Chill
*/ */
@Data @Data
@JsonInclude(JsonInclude.Include.NON_NULL)
public class BfiArBillSaveBodyDTO implements Serializable { public class BfiArBillSaveBodyDTO implements Serializable {
@Serial @Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@@ -25,6 +25,7 @@
*/ */
package org.springblade.thirdparty.bfi.pojo.dto; package org.springblade.thirdparty.bfi.pojo.dto;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data; import lombok.Data;
@@ -88,6 +89,7 @@ import java.util.List;
* @author Chill * @author Chill
*/ */
@Data @Data
@JsonInclude(JsonInclude.Include.NON_NULL)
public class BfiArBillSaveDTO implements Serializable { public class BfiArBillSaveDTO implements Serializable {
@Serial @Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@@ -25,6 +25,7 @@
*/ */
package org.springblade.thirdparty.bfi.pojo.dto; package org.springblade.thirdparty.bfi.pojo.dto;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data; import lombok.Data;
@@ -38,6 +39,7 @@ import java.math.BigDecimal;
* @author Chill * @author Chill
*/ */
@Data @Data
@JsonInclude(JsonInclude.Include.NON_NULL)
public class BfiArBillSaveEntryDTO implements Serializable { public class BfiArBillSaveEntryDTO implements Serializable {
@Serial @Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@@ -25,6 +25,7 @@
*/ */
package org.springblade.thirdparty.bfi.pojo.dto; package org.springblade.thirdparty.bfi.pojo.dto;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data; import lombok.Data;
@@ -38,6 +39,7 @@ import java.math.BigDecimal;
* @author Chill * @author Chill
*/ */
@Data @Data
@JsonInclude(JsonInclude.Include.NON_NULL)
public class BfiArBillSavePlanDTO implements Serializable { public class BfiArBillSavePlanDTO implements Serializable {
@Serial @Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@@ -25,6 +25,7 @@
*/ */
package org.springblade.thirdparty.bfi.pojo.dto; package org.springblade.thirdparty.bfi.pojo.dto;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Data; import lombok.Data;
import java.io.Serial; import java.io.Serial;
@@ -36,6 +37,7 @@ import java.io.Serializable;
* @author Chill * @author Chill
*/ */
@Data @Data
@JsonInclude(JsonInclude.Include.NON_NULL)
public class BfiBaseDTO implements Serializable { public class BfiBaseDTO implements Serializable {
@Serial @Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@@ -25,6 +25,7 @@
*/ */
package org.springblade.thirdparty.bfi.pojo.dto; package org.springblade.thirdparty.bfi.pojo.dto;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Data; import lombok.Data;
import java.io.Serial; import java.io.Serial;
@@ -41,6 +42,7 @@ import java.io.Serializable;
* @author Chill * @author Chill
*/ */
@Data @Data
@JsonInclude(JsonInclude.Include.NON_NULL)
public class BfiClaimAnnounceQueryDTO implements Serializable { public class BfiClaimAnnounceQueryDTO implements Serializable {
@Serial @Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@@ -25,6 +25,7 @@
*/ */
package org.springblade.thirdparty.bfi.pojo.dto; package org.springblade.thirdparty.bfi.pojo.dto;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Data; import lombok.Data;
import java.io.Serial; import java.io.Serial;
@@ -37,6 +38,7 @@ import java.util.List;
* @author Chill * @author Chill
*/ */
@Data @Data
@JsonInclude(JsonInclude.Include.NON_NULL)
public class BfiClaimPushBodyDTO implements Serializable { public class BfiClaimPushBodyDTO implements Serializable {
@Serial @Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@@ -25,6 +25,7 @@
*/ */
package org.springblade.thirdparty.bfi.pojo.dto; package org.springblade.thirdparty.bfi.pojo.dto;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data; import lombok.Data;
@@ -61,6 +62,7 @@ import java.util.List;
* @author Chill * @author Chill
*/ */
@Data @Data
@JsonInclude(JsonInclude.Include.NON_NULL)
public class BfiClaimPushDTO implements Serializable { public class BfiClaimPushDTO implements Serializable {
@Serial @Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@@ -25,6 +25,7 @@
*/ */
package org.springblade.thirdparty.bfi.pojo.dto; package org.springblade.thirdparty.bfi.pojo.dto;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data; import lombok.Data;
@@ -38,6 +39,7 @@ import java.math.BigDecimal;
* @author Chill * @author Chill
*/ */
@Data @Data
@JsonInclude(JsonInclude.Include.NON_NULL)
public class BfiClaimPushEntryDTO implements Serializable { public class BfiClaimPushEntryDTO implements Serializable {
@Serial @Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@@ -25,6 +25,7 @@
*/ */
package org.springblade.thirdparty.bfi.pojo.dto; package org.springblade.thirdparty.bfi.pojo.dto;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data; import lombok.Data;
@@ -37,6 +38,7 @@ import java.io.Serializable;
* @author Chill * @author Chill
*/ */
@Data @Data
@JsonInclude(JsonInclude.Include.NON_NULL)
public class BfiCustomerBankEntryDTO implements Serializable { public class BfiCustomerBankEntryDTO implements Serializable {
@Serial @Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@@ -25,6 +25,7 @@
*/ */
package org.springblade.thirdparty.bfi.pojo.dto; package org.springblade.thirdparty.bfi.pojo.dto;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data; import lombok.Data;
@@ -39,6 +40,7 @@ import java.io.Serializable;
* @author Chill * @author Chill
*/ */
@Data @Data
@JsonInclude(JsonInclude.Include.NON_NULL)
public class BfiCustomerGroupEntryDTO implements Serializable { public class BfiCustomerGroupEntryDTO implements Serializable {
@Serial @Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@@ -25,6 +25,7 @@
*/ */
package org.springblade.thirdparty.bfi.pojo.dto; package org.springblade.thirdparty.bfi.pojo.dto;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data; import lombok.Data;
@@ -37,6 +38,7 @@ import java.io.Serializable;
* @author Chill * @author Chill
*/ */
@Data @Data
@JsonInclude(JsonInclude.Include.NON_NULL)
public class BfiCustomerLinkmanEntryDTO implements Serializable { public class BfiCustomerLinkmanEntryDTO implements Serializable {
@Serial @Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@@ -25,6 +25,7 @@
*/ */
package org.springblade.thirdparty.bfi.pojo.dto; package org.springblade.thirdparty.bfi.pojo.dto;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data; import lombok.Data;
@@ -38,6 +39,7 @@ import java.util.List;
* @author Chill * @author Chill
*/ */
@Data @Data
@JsonInclude(JsonInclude.Include.NON_NULL)
public class BfiCustomerQueryDTO implements Serializable { public class BfiCustomerQueryDTO implements Serializable {
@Serial @Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@@ -25,6 +25,7 @@
*/ */
package org.springblade.thirdparty.bfi.pojo.dto; package org.springblade.thirdparty.bfi.pojo.dto;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Data; import lombok.Data;
import java.io.Serial; import java.io.Serial;
@@ -37,6 +38,7 @@ import java.util.List;
* @author Chill * @author Chill
*/ */
@Data @Data
@JsonInclude(JsonInclude.Include.NON_NULL)
public class BfiCustomerSaveBodyDTO implements Serializable { public class BfiCustomerSaveBodyDTO implements Serializable {
@Serial @Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@@ -25,6 +25,7 @@
*/ */
package org.springblade.thirdparty.bfi.pojo.dto; package org.springblade.thirdparty.bfi.pojo.dto;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data; import lombok.Data;
@@ -67,6 +68,7 @@ import java.util.List;
* @author Chill * @author Chill
*/ */
@Data @Data
@JsonInclude(JsonInclude.Include.NON_NULL)
public class BfiCustomerSaveDTO implements Serializable { public class BfiCustomerSaveDTO implements Serializable {
@Serial @Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@@ -25,6 +25,7 @@
*/ */
package org.springblade.thirdparty.bfi.pojo.dto; package org.springblade.thirdparty.bfi.pojo.dto;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Data; import lombok.Data;
import java.io.Serial; import java.io.Serial;
@@ -36,6 +37,7 @@ import java.io.Serializable;
* @author Chill * @author Chill
*/ */
@Data @Data
@JsonInclude(JsonInclude.Include.NON_NULL)
public class BfiExchangeRateQueryDTO implements Serializable { public class BfiExchangeRateQueryDTO implements Serializable {
@Serial @Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@@ -25,6 +25,7 @@
*/ */
package org.springblade.thirdparty.bfi.pojo.dto; package org.springblade.thirdparty.bfi.pojo.dto;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data; import lombok.Data;
@@ -46,6 +47,7 @@ import java.io.Serializable;
* @author Chill * @author Chill
*/ */
@Data @Data
@JsonInclude(JsonInclude.Include.NON_NULL)
public class BfiInvoiceApplyOpenApiBodyDTO implements Serializable { public class BfiInvoiceApplyOpenApiBodyDTO implements Serializable {
@Serial @Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@@ -25,6 +25,7 @@
*/ */
package org.springblade.thirdparty.bfi.pojo.dto; package org.springblade.thirdparty.bfi.pojo.dto;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data; import lombok.Data;
@@ -37,6 +38,7 @@ import java.io.Serializable;
* @author Chill * @author Chill
*/ */
@Data @Data
@JsonInclude(JsonInclude.Include.NON_NULL)
public class BfiInvoiceApplyOpenApiQueryDTO implements Serializable { public class BfiInvoiceApplyOpenApiQueryDTO implements Serializable {
@Serial @Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@@ -25,6 +25,7 @@
*/ */
package org.springblade.thirdparty.bfi.pojo.dto; package org.springblade.thirdparty.bfi.pojo.dto;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Data; import lombok.Data;
import java.io.Serial; import java.io.Serial;
@@ -42,6 +43,7 @@ import java.util.List;
* @author Chill * @author Chill
*/ */
@Data @Data
@JsonInclude(JsonInclude.Include.NON_NULL)
public class BfiInvoiceApplyQueryDTO implements Serializable { public class BfiInvoiceApplyQueryDTO implements Serializable {
@Serial @Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@@ -25,6 +25,7 @@
*/ */
package org.springblade.thirdparty.bfi.pojo.dto; package org.springblade.thirdparty.bfi.pojo.dto;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Data; import lombok.Data;
import java.io.Serial; import java.io.Serial;
@@ -37,6 +38,7 @@ import java.util.List;
* @author Chill * @author Chill
*/ */
@Data @Data
@JsonInclude(JsonInclude.Include.NON_NULL)
public class BfiInvoiceApplySaveBodyDTO implements Serializable { public class BfiInvoiceApplySaveBodyDTO implements Serializable {
@Serial @Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@@ -25,6 +25,7 @@
*/ */
package org.springblade.thirdparty.bfi.pojo.dto; package org.springblade.thirdparty.bfi.pojo.dto;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data; import lombok.Data;
@@ -82,6 +83,7 @@ import java.util.List;
* @author Chill * @author Chill
*/ */
@Data @Data
@JsonInclude(JsonInclude.Include.NON_NULL)
public class BfiInvoiceApplySaveDTO implements Serializable { public class BfiInvoiceApplySaveDTO implements Serializable {
@Serial @Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@@ -25,6 +25,7 @@
*/ */
package org.springblade.thirdparty.bfi.pojo.dto; package org.springblade.thirdparty.bfi.pojo.dto;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data; import lombok.Data;
@@ -38,6 +39,7 @@ import java.math.BigDecimal;
* @author Chill * @author Chill
*/ */
@Data @Data
@JsonInclude(JsonInclude.Include.NON_NULL)
public class BfiInvoiceApplySaveEntryDTO implements Serializable { public class BfiInvoiceApplySaveEntryDTO implements Serializable {
@Serial @Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@@ -25,6 +25,7 @@
*/ */
package org.springblade.thirdparty.bfi.pojo.dto; package org.springblade.thirdparty.bfi.pojo.dto;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data; import lombok.Data;
@@ -55,6 +56,7 @@ import java.util.List;
* @author Chill * @author Chill
*/ */
@Data @Data
@JsonInclude(JsonInclude.Include.NON_NULL)
public class BfiInvoiceAssignBodyDTO implements Serializable { public class BfiInvoiceAssignBodyDTO implements Serializable {
@Serial @Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@@ -25,6 +25,7 @@
*/ */
package org.springblade.thirdparty.bfi.pojo.dto; package org.springblade.thirdparty.bfi.pojo.dto;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data; import lombok.Data;
@@ -38,6 +39,7 @@ import java.util.List;
* @author Chill * @author Chill
*/ */
@Data @Data
@JsonInclude(JsonInclude.Include.NON_NULL)
public class BfiInvoiceAssignItemDTO implements Serializable { public class BfiInvoiceAssignItemDTO implements Serializable {
@Serial @Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@@ -25,6 +25,7 @@
*/ */
package org.springblade.thirdparty.bfi.pojo.dto; package org.springblade.thirdparty.bfi.pojo.dto;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data; import lombok.Data;
@@ -37,6 +38,7 @@ import java.io.Serializable;
* @author Chill * @author Chill
*/ */
@Data @Data
@JsonInclude(JsonInclude.Include.NON_NULL)
public class BfiInvoiceAssignRefDTO implements Serializable { public class BfiInvoiceAssignRefDTO implements Serializable {
@Serial @Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@@ -25,6 +25,7 @@
*/ */
package org.springblade.thirdparty.bfi.pojo.dto; package org.springblade.thirdparty.bfi.pojo.dto;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data; import lombok.Data;
@@ -44,6 +45,7 @@ import java.io.Serializable;
* @author Chill * @author Chill
*/ */
@Data @Data
@JsonInclude(JsonInclude.Include.NON_NULL)
public class BfiInvoiceDownloadDTO implements Serializable { public class BfiInvoiceDownloadDTO implements Serializable {
@Serial @Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@@ -25,6 +25,7 @@
*/ */
package org.springblade.thirdparty.bfi.pojo.dto; package org.springblade.thirdparty.bfi.pojo.dto;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Data; import lombok.Data;
import java.io.Serial; import java.io.Serial;
@@ -47,6 +48,7 @@ import java.util.Map;
* @author Chill * @author Chill
*/ */
@Data @Data
@JsonInclude(JsonInclude.Include.NON_NULL)
public class BfiInvoicePoolQueryDTO implements Serializable { public class BfiInvoicePoolQueryDTO implements Serializable {
@Serial @Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@@ -25,6 +25,7 @@
*/ */
package org.springblade.thirdparty.bfi.pojo.dto; package org.springblade.thirdparty.bfi.pojo.dto;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Data; import lombok.Data;
import java.io.Serial; import java.io.Serial;
@@ -37,6 +38,7 @@ import java.util.List;
* @author Chill * @author Chill
*/ */
@Data @Data
@JsonInclude(JsonInclude.Include.NON_NULL)
public class BfiPayApplyPushBodyDTO implements Serializable { public class BfiPayApplyPushBodyDTO implements Serializable {
@Serial @Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@@ -25,6 +25,7 @@
*/ */
package org.springblade.thirdparty.bfi.pojo.dto; package org.springblade.thirdparty.bfi.pojo.dto;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data; import lombok.Data;
@@ -38,6 +39,7 @@ import java.util.List;
* @author Chill * @author Chill
*/ */
@Data @Data
@JsonInclude(JsonInclude.Include.NON_NULL)
public class BfiPayApplyPushDTO implements Serializable { public class BfiPayApplyPushDTO implements Serializable {
@Serial @Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@@ -25,6 +25,7 @@
*/ */
package org.springblade.thirdparty.bfi.pojo.dto; package org.springblade.thirdparty.bfi.pojo.dto;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data; import lombok.Data;
@@ -38,6 +39,7 @@ import java.math.BigDecimal;
* @author Chill * @author Chill
*/ */
@Data @Data
@JsonInclude(JsonInclude.Include.NON_NULL)
public class BfiPayApplyPushEntryDTO implements Serializable { public class BfiPayApplyPushEntryDTO implements Serializable {
@Serial @Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@@ -25,6 +25,7 @@
*/ */
package org.springblade.thirdparty.bfi.pojo.dto; package org.springblade.thirdparty.bfi.pojo.dto;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Data; import lombok.Data;
import java.io.Serial; import java.io.Serial;
@@ -37,6 +38,7 @@ import java.util.List;
* @author Chill * @author Chill
*/ */
@Data @Data
@JsonInclude(JsonInclude.Include.NON_NULL)
public class BfiPayApplyQueryDTO implements Serializable { public class BfiPayApplyQueryDTO implements Serializable {
@Serial @Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@@ -25,6 +25,7 @@
*/ */
package org.springblade.thirdparty.bfi.pojo.dto; package org.springblade.thirdparty.bfi.pojo.dto;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Data; import lombok.Data;
import java.io.Serial; import java.io.Serial;
@@ -37,6 +38,7 @@ import java.util.List;
* @author Chill * @author Chill
*/ */
@Data @Data
@JsonInclude(JsonInclude.Include.NON_NULL)
public class BfiPayApplySaveBodyDTO implements Serializable { public class BfiPayApplySaveBodyDTO implements Serializable {
@Serial @Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@@ -25,6 +25,7 @@
*/ */
package org.springblade.thirdparty.bfi.pojo.dto; package org.springblade.thirdparty.bfi.pojo.dto;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data; import lombok.Data;
@@ -38,6 +39,7 @@ import java.util.List;
* @author Chill * @author Chill
*/ */
@Data @Data
@JsonInclude(JsonInclude.Include.NON_NULL)
public class BfiPayApplySaveDTO implements Serializable { public class BfiPayApplySaveDTO implements Serializable {
@Serial @Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@@ -25,6 +25,7 @@
*/ */
package org.springblade.thirdparty.bfi.pojo.dto; package org.springblade.thirdparty.bfi.pojo.dto;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data; import lombok.Data;
@@ -38,6 +39,7 @@ import java.math.BigDecimal;
* @author Chill * @author Chill
*/ */
@Data @Data
@JsonInclude(JsonInclude.Include.NON_NULL)
public class BfiPayApplySaveEntryDTO implements Serializable { public class BfiPayApplySaveEntryDTO implements Serializable {
@Serial @Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@@ -25,6 +25,7 @@
*/ */
package org.springblade.thirdparty.bfi.pojo.dto; package org.springblade.thirdparty.bfi.pojo.dto;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Data; import lombok.Data;
import java.io.Serial; import java.io.Serial;
@@ -37,6 +38,7 @@ import java.util.List;
* @author Chill * @author Chill
*/ */
@Data @Data
@JsonInclude(JsonInclude.Include.NON_NULL)
public class BfiPayBillQueryDTO implements Serializable { public class BfiPayBillQueryDTO implements Serializable {
@Serial @Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@@ -25,6 +25,7 @@
*/ */
package org.springblade.thirdparty.bfi.pojo.dto; package org.springblade.thirdparty.bfi.pojo.dto;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data; import lombok.Data;
@@ -43,6 +44,7 @@ import java.util.List;
* @author Chill * @author Chill
*/ */
@Data @Data
@JsonInclude(JsonInclude.Include.NON_NULL)
public class BfiRecBillQueryDTO implements Serializable { public class BfiRecBillQueryDTO implements Serializable {
@Serial @Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@@ -25,6 +25,7 @@
*/ */
package org.springblade.thirdparty.bfi.pojo.dto; package org.springblade.thirdparty.bfi.pojo.dto;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Data; import lombok.Data;
import java.io.Serial; import java.io.Serial;
@@ -41,6 +42,7 @@ import java.io.Serializable;
* @author Chill * @author Chill
*/ */
@Data @Data
@JsonInclude(JsonInclude.Include.NON_NULL)
public class BfiReceivedInvoiceQueryDTO implements Serializable { public class BfiReceivedInvoiceQueryDTO implements Serializable {
@Serial @Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@@ -25,6 +25,7 @@
*/ */
package org.springblade.thirdparty.bfi.pojo.dto; package org.springblade.thirdparty.bfi.pojo.dto;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Data; import lombok.Data;
import java.io.Serial; import java.io.Serial;
@@ -37,6 +38,7 @@ import java.util.List;
* @author Chill * @author Chill
*/ */
@Data @Data
@JsonInclude(JsonInclude.Include.NON_NULL)
public class BfiReceivedInvoiceSaveBodyDTO implements Serializable { public class BfiReceivedInvoiceSaveBodyDTO implements Serializable {
@Serial @Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@@ -25,6 +25,7 @@
*/ */
package org.springblade.thirdparty.bfi.pojo.dto; package org.springblade.thirdparty.bfi.pojo.dto;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data; import lombok.Data;
@@ -81,6 +82,7 @@ import java.util.List;
* @author Chill * @author Chill
*/ */
@Data @Data
@JsonInclude(JsonInclude.Include.NON_NULL)
public class BfiReceivedInvoiceSaveDTO implements Serializable { public class BfiReceivedInvoiceSaveDTO implements Serializable {
@Serial @Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@@ -25,6 +25,7 @@
*/ */
package org.springblade.thirdparty.bfi.pojo.dto; package org.springblade.thirdparty.bfi.pojo.dto;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data; import lombok.Data;
@@ -38,6 +39,7 @@ import java.math.BigDecimal;
* @author Chill * @author Chill
*/ */
@Data @Data
@JsonInclude(JsonInclude.Include.NON_NULL)
public class BfiReceivedInvoiceSaveEntryDTO implements Serializable { public class BfiReceivedInvoiceSaveEntryDTO implements Serializable {
@Serial @Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@@ -25,6 +25,7 @@
*/ */
package org.springblade.thirdparty.bfi.pojo.dto; package org.springblade.thirdparty.bfi.pojo.dto;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
@@ -39,6 +40,7 @@ import java.io.Serializable;
*/ */
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@JsonInclude(JsonInclude.Include.NON_NULL)
public class BfiTokenDTO extends BfiBaseDTO { public class BfiTokenDTO extends BfiBaseDTO {
@Serial @Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@@ -25,6 +25,7 @@
*/ */
package org.springblade.thirdparty.bfi.pojo.dto; package org.springblade.thirdparty.bfi.pojo.dto;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
@@ -39,6 +40,7 @@ import java.io.Serializable;
*/ */
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@JsonInclude(JsonInclude.Include.NON_NULL)
public class BfiVerifyTokenDTO extends BfiBaseDTO { public class BfiVerifyTokenDTO extends BfiBaseDTO {
@Serial @Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@@ -25,6 +25,7 @@
*/ */
package org.springblade.thirdparty.bfi.pojo.dto; package org.springblade.thirdparty.bfi.pojo.dto;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
@@ -39,6 +40,7 @@ import java.io.Serializable;
*/ */
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@JsonInclude(JsonInclude.Include.NON_NULL)
public class BfiWithdrawTokenDTO extends BfiBaseDTO { public class BfiWithdrawTokenDTO extends BfiBaseDTO {
@Serial @Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;