客商接口优化

This commit is contained in:
yuxueliang0813 2025-05-08 18:16:35 +08:00
parent b96ca9810f
commit 24870a2075
3 changed files with 66 additions and 22 deletions

View File

@ -156,7 +156,7 @@ public class CustomerControler {
currentCus.set("bizpartner_phone",json_body.getString("telnum"));//联系电话
//处理 客户组5
handleFive(customerfivesJson,currentCus.getDynamicObjectCollection("shjh_entry_five"),cusnumber);
//TODO 银行信息
//处理银行-新增-员工类客户不需要处理
if(!"M400".equals(type)){
handleBank(banksJson,currentCus.getDynamicObjectCollection("entry_bank"),cusnumber);
}
@ -182,7 +182,7 @@ public class CustomerControler {
if(customerfivesJson == null){
return;
}
doc_five.clear();
// doc_five.clear();
JSONObject json_body;
DynamicObject fiveinfo;
for (int i = 0; i < customerfivesJson.size(); i++) {
@ -203,14 +203,16 @@ public class CustomerControler {
if(banksJson == null){
return;
}
doc_bank.clear();
JSONObject json_body;
DynamicObject bankinfo;
DynamicObject bebankinfo;
for (int i = 0; i < banksJson.size(); i++) {
json_body = banksJson.getJSONObject(i);
if(cusnumber.equals(json_body.getString("code"))){
bankinfo = doc_bank.addNew();
bankinfo = getBankInfo(doc_bank,json_body.getString("banknumber"));
if(bankinfo == null){
bankinfo = doc_bank.addNew();
}
bankinfo.set("bankaccount",json_body.getString("banknumber"));//银行账号
bankinfo.set("accountname",json_body.getString("acctname"));//账户名称
//根据详细分机银行 查找对应的行名行号
@ -219,11 +221,20 @@ public class CustomerControler {
bankinfo.set("bank",bebankinfo.getLong("id"));//开户银行-行名行号 根据入参查找
}
bankinfo.set("currency", JhzjUtils.CNY);//币别 默认人民币
// bankinfo.set("isdefault_bank",1);
}
}
if(!doc_bank.isEmpty()){
doc_bank.get(0).set("isdefault_bank",1);
doc_bank.get(0).set("isdefault_bank",true);
}
}
private DynamicObject getBankInfo(DynamicObjectCollection doc_bank, String banknumber){
//从当前客户的银行账户集合中获取对应的账户的对象
for (DynamicObject bankinfo : doc_bank) {
if(banknumber.equals(bankinfo.getString("bankaccount"))){
return bankinfo;
}
}
return null;
}
}

View File

@ -149,7 +149,6 @@ public class SupplierControler {
//处理银行信息-分表
if(banksJson != null){
doc_bank = currentSup.getDynamicObjectCollection("entry_bank");
doc_bank.clear();
for (int j = 0; j < banksJson.size(); j++) {
json_bank = banksJson.getJSONObject(j);
if(!supnumber.equals(json_bank.getString("code"))){
@ -157,32 +156,46 @@ public class SupplierControler {
}
bankcode = json_bank.getString("bankcode");
if(EsbUtils.isEmpty(bankcode)){
log.error(String.format("供应商行名行号为空异常:%s", json_bank.toJSONString()));
itemInfo = new JSONObject();
itemInfo.put("code",supnumber);
itemInfo.put("error","行名行号入参值为空");
itemsJson.add(itemInfo);
//联行号为空不处理
// log.error(String.format("供应商行名行号为空异常:%s", json_bank.toJSONString()));
// itemInfo = new JSONObject();
// itemInfo.put("code",supnumber);
// itemInfo.put("error","行名行号入参值为空");
// itemsJson.add(itemInfo);
continue;
}
bebankinfo = BusinessDataServiceHelper.loadSingleFromCache(bebankName,"id,number",new QFilter[]{new QFilter("number","=",bankcode)});
if(bebankinfo == null){
log.error(String.format("供应商行名行号未匹配:%s", json_bank.toJSONString()));
itemInfo = new JSONObject();
itemInfo.put("code",supnumber);
itemInfo.put("error","供应商行名行号未匹配");
itemsJson.add(itemInfo);
//联行号在金蝶中无对应记录不处理
continue;
}
bankinfo = doc_bank.addNew();
// if(bebankinfo == null){
// log.error(String.format("供应商行名行号未匹配:%s", json_bank.toJSONString()));
// itemInfo = new JSONObject();
// itemInfo.put("code",supnumber);
// itemInfo.put("error","供应商行名行号未匹配");
// itemsJson.add(itemInfo);
// continue;
// }
//供应商银行账户对象从现有集合中查找查找不到则新增
bankinfo = getBankInfo(doc_bank,json_bank.getString("banknumber"));
if(bankinfo == null && "E".equals(json_bank.getString("bankstatus"))){
//如果本次入参银行账户未在系统生成且sap是删除的我方不接收
continue;
}
if(bankinfo == null){
bankinfo = doc_bank.addNew();
}
bankinfo.set("bankaccount",json_bank.getString("banknumber"));//银行账号
bankinfo.set("accountname",json_bank.getString("acctname"));//账户名称
bankinfo.set("bank",bebankinfo.getLong("id"));//开户银行-行名行号 根据入参查找
bankinfo.set("currency",JhzjUtils.CNY);//币别 默认人民币
bankinfo.set("shjh_banktype",json_bank.getString("banktype"));//合作银行类型
bankinfo.set("shjh_bankstatus",json_bank.getString("bankstatus"));//账户状态
}
if(!doc_bank.isEmpty()){
//首行账户作为默认
if(j == 0){
bankinfo.set("isdefault_bank",1);
}
doc_bank.get(0).set("isdefault_bank",true);
}
}
//处理 sap公司信息 结算方式 统驭科目
@ -223,11 +236,21 @@ public class SupplierControler {
}
}
private DynamicObject getBankInfo(DynamicObjectCollection doc_bank, String banknumber){
//从当前供应商的银行账户集合中获取对应的账户的对象
for (DynamicObject bankinfo : doc_bank) {
if(banknumber.equals(bankinfo.getString("bankaccount"))){
return bankinfo;
}
}
return null;
}
private void handleSAPCompany(JSONArray companysJson,DynamicObjectCollection doc_sap,String supnumber){
if(companysJson == null){
return;
}
doc_sap.clear();
// doc_sap.clear();
JSONObject json_body;
DynamicObject fiveinfo;
for (int i = 0; i < companysJson.size(); i++) {

View File

@ -134,6 +134,16 @@ public class SupplierModel implements Serializable {
private String banknumber;
@ApiParam(value="合作银行类型",position=6)
private String banktype;
@ApiParam(value="账户状态",position=7)
private String bankstatus;
public String getBankstatus() {
return bankstatus;
}
public void setBankstatus(String bankstatus) {
this.bankstatus = bankstatus;
}
public String getCode() {
return code;