✨ 新增BFI客户基础资料接口(A902-1/A902-2)参数与返回实体

This commit is contained in:
刘泉佳
2026-09-16 18:32:29 +08:00
parent 345d8ebe38
commit 36de5ef72b
8 changed files with 806 additions and 0 deletions
@@ -0,0 +1,75 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.thirdparty.bfi.pojo.dto;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
/**
* 业财融合(BFI)A902-2 客户保存 银行信息分录
*
* @author Chill
*/
@Data
public class BfiCustomerBankEntryDTO implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 银行账号,候选键,城矿对应 b_customer_info.bank_account
*/
private String bankaccount;
/**
* 账户名称,城矿对应 b_customer_info.bank_name
*/
private String accountname;
/**
* 默认
*/
@JsonProperty("isdefault_bank")
private Boolean isdefaultBank;
/**
* 账户性质[0:公司, 1:个人],城矿传 0
*/
@JsonProperty("account_property")
private String accountProperty;
/**
* 国际银行账户号码
*/
private String iban;
/**
* 币种.货币代码,候选键,城矿传 CNY
*/
@JsonProperty("currency_number")
private String currencyNumber;
/**
* 开户银行.编码(行号),候选键
*/
@JsonProperty("bank_number")
private String bankNumber;
}
@@ -0,0 +1,55 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.thirdparty.bfi.pojo.dto;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
/**
* 业财融合(BFI)A902-2 客户保存 分类标准分录
* <p>
* 城矿固定传 standardid_number=JBFLBZ、groupid_number=1102(外部客户)
*
* @author Chill
*/
@Data
public class BfiCustomerGroupEntryDTO implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 分类标准.编码,城矿固定 JBFLBZ
*/
@JsonProperty("standardid_number")
private String standardidNumber;
/**
* 分类.编码,城矿传 1102(外部客户)
*/
@JsonProperty("groupid_number")
private String groupidNumber;
}
@@ -0,0 +1,64 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.thirdparty.bfi.pojo.dto;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
/**
* 业财融合(BFI)A902-2 客户保存 联系人信息分录
*
* @author Chill
*/
@Data
public class BfiCustomerLinkmanEntryDTO implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 名称,候选键
*/
private String contactperson;
/**
* 职务
*/
private String contactpersonpost;
/**
* 部门
*/
private String dept;
/**
* 联系电话,候选键
*/
private String phone;
/**
* 默认
*/
@JsonProperty("isdefault_linkman")
private Boolean isdefaultLinkman;
}
@@ -0,0 +1,85 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.thirdparty.bfi.pojo.dto;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
import java.util.List;
/**
* 业财融合(BFI)A902-1 客户查询参数
*
* @author Chill
*/
@Data
public class BfiCustomerQueryDTO implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 页码,从1开始
*/
private Integer pageNo;
/**
* 页数
*/
private Integer pageSize;
/**
* 使用状态[0:禁用, 1:可用]
*/
private String enable;
/**
* 数据状态[A:暂存, B:已提交, C:已审核]
*/
private String status;
/**
* 编码
*/
private List<String> number;
/**
* 创建组织.编码,城矿传 WCCK
*/
@JsonProperty("createorg_number")
private String createorgNumber;
/**
* 统一社会信用代码(个人填写身份证号或手机号)
*/
private List<String> societycreditcode;
/**
* 身份证号
*/
private List<String> idno;
/**
* 修改时间-开始,格式:yyyy-MM-dd HH:mm:ss,限定时间范围不可超过6个月
*/
private String modifytimeS;
/**
* 修改时间-结束,格式:yyyy-MM-dd HH:mm:ss
*/
private String modifytimeE;
}
@@ -0,0 +1,47 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.thirdparty.bfi.pojo.dto;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
import java.util.List;
/**
* 业财融合(BFI)A902-2 客户保存请求体,结构为 data 数组
*
* @author Chill
*/
@Data
public class BfiCustomerSaveBodyDTO implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 客户数据
*/
private List<BfiCustomerSaveDTO> data;
}
@@ -0,0 +1,204 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.thirdparty.bfi.pojo.dto;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
import java.util.List;
/**
* 业财融合(BFI)A902-2 客户保存参数
* <p>
* 请求示例:
* <pre>{@code
* {
* "data": [
* {
* "bizpartner_phone": "",
* "societycreditcode": "3253252",
* "awrp_cusfortrade": "A",
* "bankaccount": "test111114",
* "bizpartner_address": "test111114",
* "linkman": "",
* "bizfunction": "1,2,3,4",
* "artificialperson": "test111114",
* "accountname": "test111114",
* "fcusbeizhu": "",
* "name": "test111114",
* "postal_code": "",
* "type": "6",
* "entry_groupstandard": [
* {
* "standardid_number": "JBFLBZ",
* "groupid_number": "1102"
* }
* ]
* }
* ]
* }
* }</pre>
*
* @author Chill
*/
@Data
public class BfiCustomerSaveDTO implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 编码,不传由星瀚生成(如 Cus-20251230-0001)
*/
private String number;
/**
* 名称,城矿对应 b_customer_info.customer_name
*/
private String name;
/**
* 数据状态[A:暂存, B:已提交, C:已审核],城矿传 B
*/
private String status;
/**
* 伙伴类型[1:法人企业, 2:非法人企业, 3:非企业单位, 4:个人, 5:个体户, 6:民营企业, 7:非我区国有企业, 8:我区国有企业, 9:政府事业单位等, 10:农民专业合作社, 11:民政部门, 12:其他, 13:境外客商, 14:工会, 15:司法行政, 16:虚拟客商, 17:集体经济组织],需与财务确认,城矿常用 4/6/8/9/16
*/
private String type;
/**
* 详细地址,城矿对应 b_customer_info.registration_address
*/
@JsonProperty("bizpartner_address")
private String bizpartnerAddress;
/**
* 联系人,城矿对应 b_customer_info.contact_person
*/
private String linkman;
/**
* 联系电话,城矿对应 b_customer_info.contact_phone
*/
@JsonProperty("bizpartner_phone")
private String bizpartnerPhone;
/**
* 传真
*/
@JsonProperty("bizpartner_fax")
private String bizpartnerFax;
/**
* 统一社会信用代码(个人填写身份证号或手机号),候选键,城矿对应 b_customer_info.registration_code
*/
private String societycreditcode;
/**
* 纳税人识别号,统一社会信用代码存在时需推送
*/
@JsonProperty("tx_register_no")
private String txRegisterNo;
/**
* 法人代表,城矿对应 b_customer_info.legal_representative
*/
private String artificialperson;
/**
* 营业期限
*/
private String businessterm;
/**
* 经营范围
*/
private String businessscope;
/**
* 成立日期,格式:yyyy-MM-dd HH:mm:ss
*/
private String establishdate;
/**
* 业务职能,多选英文逗号隔开[1:销售, 2:结算, 3:付款, 4:收货],城矿全传 1,2,3,4
*/
private String bizfunction;
/**
* 电子邮箱,城矿对应 b_customer_info.email
*/
@JsonProperty("postal_code")
private String postalCode;
/**
* 身份证号,候选键
*/
private String idno;
/**
* 备注,城矿对应 b_customer_info.remarks
*/
private String fcusbeizhu;
/**
* 数据来源系统[XH:星瀚, WCY:物产云, JCZX:检测中心, NBERP:南北ERP, WCCK:城矿ERP, WY:维云(服务), CMS:合同系统, DTP:数据中台],城矿传 WCCK
*/
@JsonProperty("awrp_datasourcesys")
private String awrpDatasourcesys;
/**
* 是否为贸易客商[A:是, B:否],城矿传 A
*/
@JsonProperty("awrp_cusfortrade")
private String awrpCusfortrade;
/**
* 供应商编码
*/
@JsonProperty("awrp_supplierno")
private String awrpSupplierno;
/**
* 新客户编码
*/
@JsonProperty("awrp_newnumber")
private String awrpNewnumber;
/**
* 客户分组.编码,如 1102
*/
@JsonProperty("group_number")
private String groupNumber;
/**
* 创建组织.编码,城矿传 WCCK
*/
@JsonProperty("createorg_number")
private String createorgNumber;
/**
* 内部客户
*/
private Boolean chkisinternalcompany;
/**
* 内部业务单元.编码
*/
@JsonProperty("internal_company_number")
private String internalCompanyNumber;
/**
* 分类标准分录,城矿固定传 standardid_number=JBFLBZ、groupid_number=1102(外部客户)
*/
@JsonProperty("entry_groupstandard")
private List<BfiCustomerGroupEntryDTO> entryGroupstandard;
/**
* 银行信息分录,可不传
*/
@JsonProperty("entry_bank")
private List<BfiCustomerBankEntryDTO> entryBank;
/**
* 联系人信息分录,可不传
*/
@JsonProperty("entry_linkman")
private List<BfiCustomerLinkmanEntryDTO> entryLinkman;
}
@@ -0,0 +1,76 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.thirdparty.bfi.pojo.vo;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
/**
* 业财融合(BFI)A902-1 客户查询 银行信息分录
*
* @author Chill
*/
@Data
public class BfiCustomerBankVO implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* id
*/
@JsonSerialize(using = ToStringSerializer.class)
private Long id;
/**
* 分录行号
*/
private Integer seq;
/**
* 银行账号
*/
private String bankaccount;
/**
* 账户名称
*/
private String accountname;
/**
* 默认
*/
@JsonProperty("isdefault_bank")
private Boolean isdefaultBank;
/**
* 国际银行账户号码
*/
private String iban;
/**
* 账户性质[0:公司, 1:个人]
*/
@JsonProperty("account_property")
private String accountProperty;
}
@@ -0,0 +1,200 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.thirdparty.bfi.pojo.vo;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
import java.util.List;
/**
* 业财融合(BFI)A902-1 客户查询返回结果
* <p>
* 成功响应示例:
* <pre>{@code
* {
* "data": { "filter": "", "lastPage": false, "pageNo": 1, "pageSize": 2, "rows": [], "totalCount": 103 },
* "errorCode": "0",
* "message": null,
* "status": true
* }
* }</pre>
*
* @author Chill
*/
@Data
public class BfiCustomerVO implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* id
*/
@JsonSerialize(using = ToStringSerializer.class)
private Long id;
/**
* 编码
*/
private String number;
/**
* 名称
*/
private String name;
/**
* 数据状态[A:暂存, B:已提交, C:已审核]
*/
private String status;
/**
* 使用状态[0:禁用, 1:可用]
*/
private String enable;
/**
* 创建时间
*/
private String createtime;
/**
* 修改时间
*/
private String modifytime;
/**
* 统一社会信用代码(个人填写身份证号或手机号)
*/
private String societycreditcode;
/**
* 控制策略[1:逐级分配, 2:自由分配, 5:全局共享, 6:管控范围内共享, 7:私有]
*/
private String ctrlstrategy;
/**
* 伙伴类型[1:法人企业, 2:非法人企业, 3:非企业单位, 4:个人, 5:个体户, 18:中央企业, 19:中央部委, 6:民营企业, 7:非我区国有企业, 8:我区国有企业, 13:境外客商, 9:政府事业单位等, 10:农民专业合作社, 11:民政部门, 14:工会, 15:司法行政, 12:其他, 16:虚拟客商, 17:集体经济组织]
*/
private String type;
/**
* 业务职能[1:销售, 2:结算, 3:付款, 4:收货]
*/
private String bizfunction;
/**
* 电子邮箱
*/
@JsonProperty("postal_code")
private String postalCode;
/**
* 简称
*/
private String simplename;
/**
* 详细地址
*/
@JsonProperty("bizpartner_address")
private String bizpartnerAddress;
/**
* 联系人
*/
private String linkman;
/**
* 传真
*/
@JsonProperty("bizpartner_fax")
private String bizpartnerFax;
/**
* 联系电话
*/
@JsonProperty("bizpartner_phone")
private String bizpartnerPhone;
/**
* 纳税人识别号
*/
@JsonProperty("tx_register_no")
private String txRegisterNo;
/**
* 法人代表
*/
private String artificialperson;
/**
* 注册资本
*/
private String regcapital;
/**
* 营业期限
*/
private String businessterm;
/**
* 经营范围
*/
private String businessscope;
/**
* 成立日期
*/
private String establishdate;
/**
* 身份证号
*/
private String idno;
/**
* 简拼
*/
private String simplepinyin;
/**
* 备注
*/
private String fcusbeizhu;
/**
* 数据来源系统[XH:星瀚, WCY:物产云, JCZX:检测中心, NBERP:南北ERP, WCCK:城矿ERP, WY:维云(服务), CMS:合同系统, DTP:数据中台]
*/
@JsonProperty("awrp_datasourcesys")
private String awrpDatasourcesys;
/**
* 是否为贸易客商[A:是, B:否]
*/
@JsonProperty("awrp_cusfortrade")
private String awrpCusfortrade;
/**
* 审核日期
*/
private String approvedate;
/**
* 商务伙伴.编码
*/
@JsonProperty("bizpartner_number")
private String bizpartnerNumber;
/**
* 结算方式.编码
*/
@JsonProperty("settlementtypeid_number")
private String settlementtypeidNumber;
/**
* 收款条件.编码
*/
@JsonProperty("receivingcondid_number")
private String receivingcondidNumber;
/**
* 银行信息分录
*/
@JsonProperty("entry_bank")
private List<BfiCustomerBankVO> entryBank;
}