2、修改供应商接口接收银行账号信息(相同账号不同联行号) 3、付款申请单获取sap应付凭证时携带供应商账号在原有基础上增加判断,如果银行状态是“E”,则不能使用
This commit is contained in:
parent
362c23e82c
commit
9e88a03b69
|
|
@ -605,6 +605,12 @@ public class SappzFormPlugin extends AbstractFormPlugin {
|
||||||
builder.append("同步失败,凭证号:" + fkBillNum + "的账户名称为空(供应商)"+"\n");
|
builder.append("同步失败,凭证号:" + fkBillNum + "的账户名称为空(供应商)"+"\n");
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
//20250814开发培训时沟通:判断银行的账号状态,如果是E 则代表已被sap删了,不可使用
|
||||||
|
if("E".equalsIgnoreCase(bankentry.getString("shjh_bankstatus"))){
|
||||||
|
handleError("同步失败,凭证号:" + fkBillNum + "的账户状态为E,不可使用", fkBillNum, apimenthod, null);
|
||||||
|
builder.append("同步失败,凭证号:" + fkBillNum + "的账户状态为E,不可使用"+"\n");
|
||||||
|
continue;
|
||||||
|
}
|
||||||
ap_payapply_entry.set("e_assacct", bankaccount);//银行账号
|
ap_payapply_entry.set("e_assacct", bankaccount);//银行账号
|
||||||
ap_payapply_entry.set("e_bebank", bank);//开户银行
|
ap_payapply_entry.set("e_bebank", bank);//开户银行
|
||||||
ap_payapply_entry.set("shjh_asstactrealname", accountname);//账户名称
|
ap_payapply_entry.set("shjh_asstactrealname", accountname);//账户名称
|
||||||
|
|
@ -631,6 +637,12 @@ public class SappzFormPlugin extends AbstractFormPlugin {
|
||||||
builder.append("同步失败,凭证号:" + fkBillNum + "的账户名称为空(供应商)"+"\n");
|
builder.append("同步失败,凭证号:" + fkBillNum + "的账户名称为空(供应商)"+"\n");
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
//20250814开发培训时沟通:判断银行的账号状态,如果是E 则代表已被sap删了,不可使用
|
||||||
|
if("E".equalsIgnoreCase(bankentry.getString("shjh_bankstatus"))){
|
||||||
|
handleError("同步失败,凭证号:" + fkBillNum + "的账户状态为E,不可使用", fkBillNum, apimenthod, null);
|
||||||
|
builder.append("同步失败,凭证号:" + fkBillNum + "的账户状态为E,不可使用"+"\n");
|
||||||
|
continue;
|
||||||
|
}
|
||||||
ap_payapply_entry.set("e_assacct", bankaccount);//银行账号
|
ap_payapply_entry.set("e_assacct", bankaccount);//银行账号
|
||||||
ap_payapply_entry.set("e_bebank", bank);//开户银行
|
ap_payapply_entry.set("e_bebank", bank);//开户银行
|
||||||
ap_payapply_entry.set("shjh_asstactrealname", accountname);//账户名称
|
ap_payapply_entry.set("shjh_asstactrealname", accountname);//账户名称
|
||||||
|
|
|
||||||
|
|
@ -161,7 +161,9 @@ public class PayBillSubmitOperation extends AbstractOperationServicePlugIn imple
|
||||||
if ("bd_supplier".equals(payeetype)) {
|
if ("bd_supplier".equals(payeetype)) {
|
||||||
DynamicObjectCollection entryBanks = dy.getDynamicObjectCollection("entry_bank");
|
DynamicObjectCollection entryBanks = dy.getDynamicObjectCollection("entry_bank");
|
||||||
for (DynamicObject entryBank : entryBanks) {
|
for (DynamicObject entryBank : entryBanks) {
|
||||||
if (payeebanknum.equals(entryBank.getString("bankaccount"))) {
|
if (payeebanknum.equals(entryBank.getString("bankaccount")) &&
|
||||||
|
!"E".equalsIgnoreCase(entryBank.getString("shjh_bankstatus"))) {
|
||||||
|
//20250814开发培训时沟通:账号相同且账号状态不是E 获取到对应的合作银行类型 如果是E代表账号已被sap删除,不可用
|
||||||
bvtyp = entryBank.getString("shjh_banktype");//合作银行类型
|
bvtyp = entryBank.getString("shjh_banktype");//合作银行类型
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -388,6 +388,12 @@ public class QuerySapCreatePayApplyTask extends AbstractTask {
|
||||||
JhzjUtils.saveLog(fkBillNum, apimenthod, it_list.toJSONString(), "同步失败,凭证号:" + fkBillNum + "的账户名称为空(供应商)", false, "API");
|
JhzjUtils.saveLog(fkBillNum, apimenthod, it_list.toJSONString(), "同步失败,凭证号:" + fkBillNum + "的账户名称为空(供应商)", false, "API");
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
//20250814开发培训时沟通:判断银行的账号状态,如果是E 则代表已被sap删了,不可使用
|
||||||
|
if("E".equalsIgnoreCase(bankentry.getString("shjh_bankstatus"))){
|
||||||
|
logger.error("同步失败,凭证号:" + fkBillNum + "的账户状态为E,不可使用");
|
||||||
|
JhzjUtils.saveLog(fkBillNum, apimenthod, it_list.toJSONString(), "同步失败,凭证号:" + fkBillNum + "的账户状态为E,不可使用", false, "API");
|
||||||
|
continue;
|
||||||
|
}
|
||||||
ap_payapply_entry.set("e_assacct", bankaccount);//银行账号
|
ap_payapply_entry.set("e_assacct", bankaccount);//银行账号
|
||||||
ap_payapply_entry.set("e_bebank", bank);//开户银行
|
ap_payapply_entry.set("e_bebank", bank);//开户银行
|
||||||
ap_payapply_entry.set("shjh_asstactrealname", accountname);//账户名称
|
ap_payapply_entry.set("shjh_asstactrealname", accountname);//账户名称
|
||||||
|
|
@ -414,6 +420,12 @@ public class QuerySapCreatePayApplyTask extends AbstractTask {
|
||||||
JhzjUtils.saveLog(fkBillNum, apimenthod, it_list.toJSONString(), "同步失败,凭证号:" + fkBillNum + "的账户名称为空(供应商)", false, "API");
|
JhzjUtils.saveLog(fkBillNum, apimenthod, it_list.toJSONString(), "同步失败,凭证号:" + fkBillNum + "的账户名称为空(供应商)", false, "API");
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
//20250814开发培训时沟通:判断银行的账号状态,如果是E 则代表已被sap删了,不可使用
|
||||||
|
if("E".equalsIgnoreCase(bankentry.getString("shjh_bankstatus"))){
|
||||||
|
logger.error("同步失败,凭证号:" + fkBillNum + "的账户状态为E,不可使用");
|
||||||
|
JhzjUtils.saveLog(fkBillNum, apimenthod, it_list.toJSONString(), "同步失败,凭证号:" + fkBillNum + "的账户状态为E,不可使用", false, "API");
|
||||||
|
continue;
|
||||||
|
}
|
||||||
ap_payapply_entry.set("e_assacct", bankaccount);//银行账号
|
ap_payapply_entry.set("e_assacct", bankaccount);//银行账号
|
||||||
ap_payapply_entry.set("e_bebank", bank);//开户银行
|
ap_payapply_entry.set("e_bebank", bank);//开户银行
|
||||||
ap_payapply_entry.set("shjh_asstactrealname", accountname);//账户名称
|
ap_payapply_entry.set("shjh_asstactrealname", accountname);//账户名称
|
||||||
|
|
|
||||||
|
|
@ -726,6 +726,12 @@ public class ApplyAdjustBillControler {
|
||||||
JhzjUtils.saveLog(fkBillNum, apimenthod, it_list.toJSONString(), "同步失败,凭证号:" + fkBillNum + "的账户名称为空(供应商)", false, "API");
|
JhzjUtils.saveLog(fkBillNum, apimenthod, it_list.toJSONString(), "同步失败,凭证号:" + fkBillNum + "的账户名称为空(供应商)", false, "API");
|
||||||
return "同步失败,凭证号:" + fkBillNum + "的账户名称为空(供应商)";
|
return "同步失败,凭证号:" + fkBillNum + "的账户名称为空(供应商)";
|
||||||
}
|
}
|
||||||
|
//20250814开发培训时沟通:判断银行的账号状态,如果是E 则代表已被sap删了,不可使用
|
||||||
|
if("E".equalsIgnoreCase(bankentry.getString("shjh_bankstatus"))){
|
||||||
|
log.error("同步失败,凭证号:" + fkBillNum + "的账户状态为E,不可使用");
|
||||||
|
JhzjUtils.saveLog(fkBillNum, apimenthod, it_list.toJSONString(), "同步失败,凭证号:" + fkBillNum + "的账户状态为E,不可使用", false, "API");
|
||||||
|
return "同步失败,凭证号:" + fkBillNum + "的账户状态为E,不可使用";
|
||||||
|
}
|
||||||
ap_payapply_entry.set("e_assacct", bankaccount);//银行账号
|
ap_payapply_entry.set("e_assacct", bankaccount);//银行账号
|
||||||
ap_payapply_entry.set("e_bebank", bank);//开户银行
|
ap_payapply_entry.set("e_bebank", bank);//开户银行
|
||||||
ap_payapply_entry.set("shjh_asstactrealname", accountname);//账户名称
|
ap_payapply_entry.set("shjh_asstactrealname", accountname);//账户名称
|
||||||
|
|
@ -752,6 +758,12 @@ public class ApplyAdjustBillControler {
|
||||||
JhzjUtils.saveLog(fkBillNum, apimenthod, it_list.toJSONString(), "同步失败,凭证号:" + fkBillNum + "的账户名称为空(供应商)", false, "API");
|
JhzjUtils.saveLog(fkBillNum, apimenthod, it_list.toJSONString(), "同步失败,凭证号:" + fkBillNum + "的账户名称为空(供应商)", false, "API");
|
||||||
return "同步失败,凭证号:" + fkBillNum + "的账户名称为空(供应商)";
|
return "同步失败,凭证号:" + fkBillNum + "的账户名称为空(供应商)";
|
||||||
}
|
}
|
||||||
|
//20250814开发培训时沟通:判断银行的账号状态,如果是E 则代表已被sap删了,不可使用
|
||||||
|
if("E".equalsIgnoreCase(bankentry.getString("shjh_bankstatus"))){
|
||||||
|
log.error("同步失败,凭证号:" + fkBillNum + "的账户状态为E,不可使用");
|
||||||
|
JhzjUtils.saveLog(fkBillNum, apimenthod, it_list.toJSONString(), "同步失败,凭证号:" + fkBillNum + "的账户状态为E,不可使用", false, "API");
|
||||||
|
return "同步失败,凭证号:" + fkBillNum + "的账户状态为E,不可使用";
|
||||||
|
}
|
||||||
ap_payapply_entry.set("e_assacct", bankaccount);//银行账号
|
ap_payapply_entry.set("e_assacct", bankaccount);//银行账号
|
||||||
ap_payapply_entry.set("e_bebank", bank);//开户银行
|
ap_payapply_entry.set("e_bebank", bank);//开户银行
|
||||||
ap_payapply_entry.set("shjh_asstactrealname", accountname);//账户名称
|
ap_payapply_entry.set("shjh_asstactrealname", accountname);//账户名称
|
||||||
|
|
|
||||||
|
|
@ -165,21 +165,17 @@ public class SupplierControler {
|
||||||
//联行号为空,不处理
|
//联行号为空,不处理
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
if(EsbUtils.isEmpty(json_bank.getString("banknumber"))){
|
||||||
|
//银行账号为空,不处理
|
||||||
|
continue;
|
||||||
|
}
|
||||||
bebankinfo = BusinessDataServiceHelper.loadSingleFromCache(bebankName,"id,number",new QFilter[]{new QFilter("number","=",bankcode)});
|
bebankinfo = BusinessDataServiceHelper.loadSingleFromCache(bebankName,"id,number",new QFilter[]{new QFilter("number","=",bankcode)});
|
||||||
if(bebankinfo == null){
|
if(bebankinfo == null){
|
||||||
//联行号在金蝶中无对应记录,不处理
|
//联行号在金蝶中无对应记录,不处理
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
//供应商银行账户对象从现有集合中查找,查找不到,则新增
|
//供应商银行账户对象从现有集合中查找,查找不到,则新增
|
||||||
bankinfo = getBankInfo(doc_bank,json_bank.getString("banknumber"));
|
bankinfo = getBankInfo(doc_bank,json_bank.getString("banknumber"),bankcode);
|
||||||
if(bankinfo == null && "E".equals(json_bank.getString("bankstatus"))){
|
|
||||||
//如果本次入参银行账户未在系统生成,且sap是删除的,我方不接收
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if(EsbUtils.isEmpty(json_bank.getString("banknumber"))){
|
|
||||||
//银行账号为空,不处理
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if(bankinfo == null){
|
if(bankinfo == null){
|
||||||
bankinfo = doc_bank.addNew();
|
bankinfo = doc_bank.addNew();
|
||||||
}
|
}
|
||||||
|
|
@ -255,10 +251,12 @@ public class SupplierControler {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private DynamicObject getBankInfo(DynamicObjectCollection doc_bank, String banknumber){
|
private DynamicObject getBankInfo(DynamicObjectCollection doc_bank, String banknumber, String bankcode){
|
||||||
//从当前供应商的银行账户集合中获取对应的账户的对象
|
//从当前供应商的银行账户集合中获取对应的账户的对象-以银行账号为主键来判断
|
||||||
|
//20250814开发培训时沟通:以银行账号+联行号为主键来判断,应对在sap上某个账号更换了银行或者银行搬迁造成联行号变动,从而sap需要传相同账号不同联行号的两个账号数据(I和E)
|
||||||
for (DynamicObject bankinfo : doc_bank) {
|
for (DynamicObject bankinfo : doc_bank) {
|
||||||
if(banknumber.equals(bankinfo.getString("bankaccount"))){
|
if(banknumber.equals(bankinfo.getString("bankaccount"))
|
||||||
|
&& bankcode.equals(bankinfo.getString("bank.number"))){
|
||||||
return bankinfo;
|
return bankinfo;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue