From 8243fe8dae1bafa6c1a6d7b078488971fa531725 Mon Sep 17 00:00:00 2001 From: yuxueliang0813 <407010292@qq.com> Date: Fri, 4 Jul 2025 11:36:44 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=B6=E6=AC=BE=E5=8D=95=E4=BB=8E=E8=A7=84?= =?UTF-8?q?=E5=88=99=E6=90=BA=E5=B8=A6=E5=AE=A2=E6=88=B7=E6=A0=87=E8=AE=B0?= =?UTF-8?q?=EF=BC=9B=E6=89=8B=E5=8A=A8=E5=92=8C=E5=AE=9A=E6=97=B6=E6=8B=89?= =?UTF-8?q?=E5=8F=96sap=E7=9A=84=E5=90=88=E4=BD=9C=E9=93=B6=E8=A1=8C?= =?UTF-8?q?=E7=B1=BB=E5=9E=8B=E4=B8=BA=E7=A9=BA=EF=BC=8C=E5=A6=82=E6=9E=9C?= =?UTF-8?q?=E4=BE=9B=E5=BA=94=E5=95=86=E5=8F=AA=E6=9C=89=E4=B8=80=E4=B8=AA?= =?UTF-8?q?=E8=B4=A6=E5=8F=B7=E5=88=99=E6=90=BA=E5=B8=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fi/fi/plugin/form/SappzFormPlugin.java | 80 +++++++++++----- .../plugin/operate/RecBillSaveOperation.java | 9 +- .../task/QuerySapCreatePayApplyTask.java | 96 ++++++++++++------- .../fi/webapi/ApplyAdjustBillControler.java | 84 ++++++++++------ 4 files changed, 182 insertions(+), 87 deletions(-) diff --git a/main/java/shjh/jhzj7/fi/fi/plugin/form/SappzFormPlugin.java b/main/java/shjh/jhzj7/fi/fi/plugin/form/SappzFormPlugin.java index 8c0a64e..50f2f47 100644 --- a/main/java/shjh/jhzj7/fi/fi/plugin/form/SappzFormPlugin.java +++ b/main/java/shjh/jhzj7/fi/fi/plugin/form/SappzFormPlugin.java @@ -580,34 +580,64 @@ public class SappzFormPlugin extends AbstractFormPlugin { String assacct = (String) this.getModel().getValue("shjh_description", selectRow);//合作银行类型 DynamicObjectCollection bankentrys = party.getDynamicObjectCollection("entry_bank");//银行信息分录 if (!bankentrys.isEmpty()) { - boolean ispp = false; - for (DynamicObject bankentry : bankentrys) { - if (assacct.equals(bankentry.getString("shjh_banktype"))) { - ispp = true; - String bankaccount = bankentry.getString("bankaccount"); - DynamicObject bank = bankentry.getDynamicObject("bank"); - String accountname = bankentry.getString("accountname"); - // 检查银行账号,开户银行,账户名称是否为空 - if (bankaccount == null || bankaccount.trim().isEmpty()) { - handleError("同步失败,凭证号:" + fkBillNum + "的银行账号为空(供应商)", fkBillNum, apimenthod, null); - this.getView().showMessage("同步失败,凭证号:" + fkBillNum + "的银行账号为空(供应商)"); - return; + boolean ispp = false;//sap合作银行类型是否与金蝶供应商银行账号匹配 + //如果sap的合作银行类型为空,再判断供应商银行分录是否只有一个,只有一个时,携带此银行 + if(EsbUtils.isEmpty(assacct) && bankentrys.size() == 1){ + DynamicObject bankentry = bankentrys.get(0); + String bankaccount = bankentry.getString("bankaccount"); + DynamicObject bank = bankentry.getDynamicObject("bank"); + String accountname = bankentry.getString("accountname"); + // 检查银行账号,开户银行,账户名称是否为空 + if (bankaccount == null || bankaccount.trim().isEmpty()) { + handleError("同步失败,凭证号:" + fkBillNum + "的银行账号为空(供应商)", fkBillNum, apimenthod, null); + this.getView().showMessage("同步失败,凭证号:" + fkBillNum + "的银行账号为空(供应商)"); + return; + } + if (null == bank) { + handleError("同步失败,凭证号:" + fkBillNum + "的开户银行为空(供应商)", fkBillNum, apimenthod, null); + this.getView().showMessage("同步失败,凭证号:" + fkBillNum + "的开户银行为空(供应商)"); + return; + } + if (accountname == null || accountname.trim().isEmpty()) { + handleError("同步失败,凭证号:" + fkBillNum + "的账户名称为空(供应商)", fkBillNum, apimenthod, null); + this.getView().showMessage("同步失败,凭证号:" + fkBillNum + "的账户名称为空(供应商)"); + return; + } + ap_payapply_entry.set("e_assacct", bankaccount);//银行账号 + ap_payapply_entry.set("e_bebank", bank);//开户银行 + ap_payapply_entry.set("shjh_asstactrealname", accountname);//账户名称 + ispp = true; + }else if(!EsbUtils.isEmpty(assacct) && bankentrys.size() > 1){ + for (DynamicObject bankentry : bankentrys) { + if (assacct.equals(bankentry.getString("shjh_banktype"))) { + String bankaccount = bankentry.getString("bankaccount"); + DynamicObject bank = bankentry.getDynamicObject("bank"); + String accountname = bankentry.getString("accountname"); + // 检查银行账号,开户银行,账户名称是否为空 + if (bankaccount == null || bankaccount.trim().isEmpty()) { + handleError("同步失败,凭证号:" + fkBillNum + "的银行账号为空(供应商)", fkBillNum, apimenthod, null); + this.getView().showMessage("同步失败,凭证号:" + fkBillNum + "的银行账号为空(供应商)"); + return; + } + if (null == bank) { + handleError("同步失败,凭证号:" + fkBillNum + "的开户银行为空(供应商)", fkBillNum, apimenthod, null); + this.getView().showMessage("同步失败,凭证号:" + fkBillNum + "的开户银行为空(供应商)"); + return; + } + if (accountname == null || accountname.trim().isEmpty()) { + handleError("同步失败,凭证号:" + fkBillNum + "的账户名称为空(供应商)", fkBillNum, apimenthod, null); + this.getView().showMessage("同步失败,凭证号:" + fkBillNum + "的账户名称为空(供应商)"); + return; + } + ap_payapply_entry.set("e_assacct", bankaccount);//银行账号 + ap_payapply_entry.set("e_bebank", bank);//开户银行 + ap_payapply_entry.set("shjh_asstactrealname", accountname);//账户名称 + ispp = true; + break; } - if (null == bank) { - handleError("同步失败,凭证号:" + fkBillNum + "的开户银行为空(供应商)", fkBillNum, apimenthod, null); - this.getView().showMessage("同步失败,凭证号:" + fkBillNum + "的开户银行为空(供应商)"); - return; - } - if (accountname == null || accountname.trim().isEmpty()) { - handleError("同步失败,凭证号:" + fkBillNum + "的账户名称为空(供应商)", fkBillNum, apimenthod, null); - this.getView().showMessage("同步失败,凭证号:" + fkBillNum + "的账户名称为空(供应商)"); - return; - } - ap_payapply_entry.set("e_assacct", bankaccount);//银行账号 - ap_payapply_entry.set("e_bebank", bank);//开户银行 - ap_payapply_entry.set("shjh_asstactrealname", accountname);//账户名称 } } + if (!ispp) { handleError("同步失败,凭证号:" + fkBillNum + "的合作银行类型无匹配数据(供应商)", fkBillNum, apimenthod, null); this.getView().showMessage("同步失败,凭证号:" + fkBillNum + "的合作银行类型无匹配数据(供应商)"); diff --git a/main/java/shjh/jhzj7/fi/fi/plugin/operate/RecBillSaveOperation.java b/main/java/shjh/jhzj7/fi/fi/plugin/operate/RecBillSaveOperation.java index 92b6fac..b0b6cd1 100644 --- a/main/java/shjh/jhzj7/fi/fi/plugin/operate/RecBillSaveOperation.java +++ b/main/java/shjh/jhzj7/fi/fi/plugin/operate/RecBillSaveOperation.java @@ -124,7 +124,8 @@ public class RecBillSaveOperation extends AbstractOperationServicePlugIn impleme bill.set("shjh_dfhm", oppunit);//收款单备注字段 bill.set("payertype", "bd_customer");//付款人类型:客户 // 2025/6/18 优化: 先根据规则指定的付款人赋值 - if (bill.getString("payername")==null || "".equals(bill.getString("payername")) || bill.getLong("payer")==0L) { + //判断收款单是否从规则和客户映射表取过数据,如果取过了,则设置为true;没取过,则取值 + if (!bill.getBoolean("shjh_xdgzkh")) { carryCustomerRule(entry,bill,oppunit,companyId); // DynamicObject ePayerid = entry.getDynamicObject("e_payerid"); // if (null != ePayerid) { @@ -609,6 +610,7 @@ public class RecBillSaveOperation extends AbstractOperationServicePlugIn impleme DynamicObject shjhCustomer = shjhDfhmcust.getDynamicObject("shjh_customer"); if (null != shjhCustomer) { bill.set("payer", shjhCustomer.getPkValue()); //付款人id + bill.set("payernumber", shjhCustomer.getString("number")); //付款人编码 bill.set("payername", shjhCustomer.getString("name")); //付款人名称 } } else { @@ -616,6 +618,7 @@ public class RecBillSaveOperation extends AbstractOperationServicePlugIn impleme DynamicObject ePayerid = entry.getDynamicObject("e_payerid"); if (null != ePayerid) { bill.set("payer", ePayerid.getPkValue()); //付款人id + bill.set("payernumber", ePayerid.getString("number")); //付款人编码 bill.set("payername", ePayerid.getString("name")); //付款人名称 } else { //3.规则生单未配置客户——>取收款入账中心客户 @@ -627,12 +630,14 @@ public class RecBillSaveOperation extends AbstractOperationServicePlugIn impleme if (null != bd_customer ) { if (bd_customer.length==1){ bill.set("payer", bd_customer[0].getPkValue()); //付款人id + bill.set("payernumber", bd_customer[0].getString("number")); //付款人编码 bill.set("payername", bd_customer[0].getString("name")); //付款人名称 }else if (bd_customer.length>1){ for (int i = 0; i < bd_customer.length; i++) { DynamicObjectCollection dynamicObjectCollection = bd_customer[i].getDynamicObjectCollection("shjh_entry_five"); if (dynamicObjectCollection.size()!=0){ bill.set("payer", bd_customer[i].getPkValue()); //付款人id + bill.set("payernumber", bd_customer[i].getString("number")); //付款人编码 bill.set("payername", bd_customer[i].getString("name")); //付款人名称 break; } @@ -645,11 +650,13 @@ public class RecBillSaveOperation extends AbstractOperationServicePlugIn impleme DynamicObject bdCustomer = BusinessDataServiceHelper.loadSingle("bd_customer", qFilter1.toArray()); if (null != bdCustomer) { bill.set("payer", bdCustomer.getPkValue()); //付款人id + bill.set("payernumber", bdCustomer.getString("number")); //付款人编码 bill.set("payername", bdCustomer.getString("name")); //付款人名称 } } } } + bill.set("shjh_xdgzkh", true);//设置收款单标记位 从规则携带客户等信息 为true } } } \ No newline at end of file diff --git a/main/java/shjh/jhzj7/fi/fi/plugin/task/QuerySapCreatePayApplyTask.java b/main/java/shjh/jhzj7/fi/fi/plugin/task/QuerySapCreatePayApplyTask.java index 9caa063..13e0968 100644 --- a/main/java/shjh/jhzj7/fi/fi/plugin/task/QuerySapCreatePayApplyTask.java +++ b/main/java/shjh/jhzj7/fi/fi/plugin/task/QuerySapCreatePayApplyTask.java @@ -41,36 +41,35 @@ public class QuerySapCreatePayApplyTask extends AbstractTask { private final static Log logger = LogFactory.getLog(QuerySapCreatePayApplyTask.class); @Override public void execute(RequestContext requestContext, Map map) throws KDException { - // 获取临期天数并转换 - String lq = (String) map.get("临期_后"); String lq1 = (String) map.get("临期_前"); - + String lq = (String) map.get("临期_后"); // 检查是否有有效的临期数据 if (StringUtils.isEmpty(lq) && StringUtils.isEmpty(lq1)) { return; } - - // 获取当前日期 + //获取当前日期 LocalDate currentDate = LocalDate.now(); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd"); + int daysBefore = Integer.parseInt(lq1);//临期_前 + int daysAfter = Integer.parseInt(lq);//临期_后 + int totalDays = daysBefore + daysAfter;//总天数,后面按照每30天调用一次接口 + //计算按照30天为一个循环,需要循环的次数 // 计算开始日期(临期_前表示今天之前的天数) LocalDate startDate = currentDate; if (StringUtils.isNotEmpty(lq1)) { - int daysBefore = Integer.parseInt(lq1); startDate = currentDate.minusDays(daysBefore); } // 计算结束日期(临期_后表示今天之后的天数) LocalDate endDate = currentDate; if (StringUtils.isNotEmpty(lq)) { - int daysAfter = Integer.parseInt(lq); endDate = currentDate.plusDays(daysAfter); } String formattedoldDate = startDate.format(formatter); // 开始日期 - String formattedNewDate = endDate.format(formatter); // 结束日期 + String formattedNewDate = endDate.format(formatter); // 结束日期 JSONArray IT_LIST = new JSONArray(); // 添加SAP应付凭到期日过滤条件 @@ -121,7 +120,7 @@ public class QuerySapCreatePayApplyTask extends AbstractTask { */ private Map getPayapply(JSONArray IT_ITEMs){ Map bills = new HashMap<>(); - JSONObject it_list; + JSONObject it_list;//sap单个应付凭证 String shjh_payee = "";//往来类型 String shjh_payeebanknum = "";//往来户名称 // 定义往来类型和对应值的映射 @@ -332,31 +331,60 @@ public class QuerySapCreatePayApplyTask extends AbstractTask { DynamicObjectCollection bankentrys = party.getDynamicObjectCollection("entry_bank");//银行信息分录 if (!bankentrys.isEmpty()) { boolean ispp = false;//sap合作银行类型是否与金蝶供应商银行账号匹配 - for (DynamicObject bankentry : bankentrys) { - if (assacct.equals(bankentry.getString("shjh_banktype"))) { - ispp = true; - String bankaccount = bankentry.getString("bankaccount"); - DynamicObject bank = bankentry.getDynamicObject("bank"); - String accountname = bankentry.getString("accountname"); - // 检查银行账号,开户银行,账户名称是否为空 - if (bankaccount == null || bankaccount.trim().isEmpty()) { - logger.error("同步失败,凭证号:" + fkBillNum + "的银行账号为空(供应商)"); - JhzjUtils.saveLog(fkBillNum, apimenthod, it_list.toJSONString(), "同步失败,凭证号:" + fkBillNum + "的银行账号为空(供应商)", false, "API"); - continue; + //如果sap的合作银行类型为空,再判断供应商银行分录是否只有一个,只有一个时,携带此银行 + if(EsbUtils.isEmpty(assacct) && bankentrys.size() == 1){ + DynamicObject bankentry = bankentrys.get(0); + String bankaccount = bankentry.getString("bankaccount"); + DynamicObject bank = bankentry.getDynamicObject("bank"); + String accountname = bankentry.getString("accountname"); + // 检查银行账号,开户银行,账户名称是否为空 + if (bankaccount == null || bankaccount.trim().isEmpty()) { + logger.error("同步失败,凭证号:" + fkBillNum + "的银行账号为空(供应商)"); + JhzjUtils.saveLog(fkBillNum, apimenthod, it_list.toJSONString(), "同步失败,凭证号:" + fkBillNum + "的银行账号为空(供应商)", false, "API"); + continue; + } + if (null == bank) { + logger.error("同步失败,凭证号:" + fkBillNum + "的开户银行为空(供应商)"); + JhzjUtils.saveLog(fkBillNum, apimenthod, it_list.toJSONString(), "同步失败,凭证号:" + fkBillNum + "的开户银行为空(供应商)", false, "API"); + continue; + } + if (accountname == null || accountname.trim().isEmpty()) { + logger.error("同步失败,凭证号:" + fkBillNum + "的账户名称为空(供应商)"); + JhzjUtils.saveLog(fkBillNum, apimenthod, it_list.toJSONString(), "同步失败,凭证号:" + fkBillNum + "的账户名称为空(供应商)", false, "API"); + continue; + } + ap_payapply_entry.set("e_assacct", bankaccount);//银行账号 + ap_payapply_entry.set("e_bebank", bank);//开户银行 + ap_payapply_entry.set("shjh_asstactrealname", accountname);//账户名称 + ispp = true; + }else if(!EsbUtils.isEmpty(assacct) && bankentrys.size() > 1){ + for (DynamicObject bankentry : bankentrys) { + if (assacct.equals(bankentry.getString("shjh_banktype"))) { + String bankaccount = bankentry.getString("bankaccount"); + DynamicObject bank = bankentry.getDynamicObject("bank"); + String accountname = bankentry.getString("accountname"); + // 检查银行账号,开户银行,账户名称是否为空 + if (bankaccount == null || bankaccount.trim().isEmpty()) { + logger.error("同步失败,凭证号:" + fkBillNum + "的银行账号为空(供应商)"); + JhzjUtils.saveLog(fkBillNum, apimenthod, it_list.toJSONString(), "同步失败,凭证号:" + fkBillNum + "的银行账号为空(供应商)", false, "API"); + continue; + } + if (null == bank) { + logger.error("同步失败,凭证号:" + fkBillNum + "的开户银行为空(供应商)"); + JhzjUtils.saveLog(fkBillNum, apimenthod, it_list.toJSONString(), "同步失败,凭证号:" + fkBillNum + "的开户银行为空(供应商)", false, "API"); + continue; + } + if (accountname == null || accountname.trim().isEmpty()) { + logger.error("同步失败,凭证号:" + fkBillNum + "的账户名称为空(供应商)"); + JhzjUtils.saveLog(fkBillNum, apimenthod, it_list.toJSONString(), "同步失败,凭证号:" + fkBillNum + "的账户名称为空(供应商)", false, "API"); + continue; + } + ap_payapply_entry.set("e_assacct", bankaccount);//银行账号 + ap_payapply_entry.set("e_bebank", bank);//开户银行 + ap_payapply_entry.set("shjh_asstactrealname", accountname);//账户名称 + ispp = true; + break; } - if (null == bank) { - logger.error("同步失败,凭证号:" + fkBillNum + "的开户银行为空(供应商)"); - JhzjUtils.saveLog(fkBillNum, apimenthod, it_list.toJSONString(), "同步失败,凭证号:" + fkBillNum + "的开户银行为空(供应商)", false, "API"); - continue; - } - if (accountname == null || accountname.trim().isEmpty()) { - logger.error("同步失败,凭证号:" + fkBillNum + "的账户名称为空(供应商)"); - JhzjUtils.saveLog(fkBillNum, apimenthod, it_list.toJSONString(), "同步失败,凭证号:" + fkBillNum + "的账户名称为空(供应商)", false, "API"); - continue; - } - ap_payapply_entry.set("e_assacct", bankaccount);//银行账号 - ap_payapply_entry.set("e_bebank", bank);//开户银行 - ap_payapply_entry.set("shjh_asstactrealname", accountname);//账户名称 } } if (!ispp) { @@ -370,7 +398,7 @@ public class QuerySapCreatePayApplyTask extends AbstractTask { continue; } }else { - //客户 + //客户 默认取第一行银行信息 DynamicObjectCollection entryBank = party.getDynamicObjectCollection("entry_bank"); if (!entryBank.isEmpty()) { DynamicObject bankentry = entryBank.get(0); diff --git a/main/java/shjh/jhzj7/fi/fi/webapi/ApplyAdjustBillControler.java b/main/java/shjh/jhzj7/fi/fi/webapi/ApplyAdjustBillControler.java index 1097087..188381e 100644 --- a/main/java/shjh/jhzj7/fi/fi/webapi/ApplyAdjustBillControler.java +++ b/main/java/shjh/jhzj7/fi/fi/webapi/ApplyAdjustBillControler.java @@ -81,7 +81,7 @@ public class ApplyAdjustBillControler { if (org == null) { return handleErrorAndReturn(apiResultExt, "同步失败,调整单号:" + fkBillNum + "的组织编码不存在", fkBillNum, jsonBodyString); } - + //todo 目前费控传过来的行号是整数,前面没有0 需要自动补全 String sapuniquevalue = companyNum + year + voucherNum + voucherLineNum; // SAP应付凭证ID DynamicObject ap_payapply = BusinessDataServiceHelper.loadSingle(AP_PAYAPPLY, new QFilter[]{new QFilter("shjh_sapuniquevalue", QCP.equals, sapuniquevalue)}); @@ -703,34 +703,64 @@ public class ApplyAdjustBillControler { if ("供应商".equals(asstacttype)) { DynamicObjectCollection bankentrys = party.getDynamicObjectCollection("entry_bank");//银行信息分录 if (!bankentrys.isEmpty()) { - boolean ispp = false; - for (DynamicObject bankentry : bankentrys) { - if (assacct.equals(bankentry.getString("shjh_banktype"))) { - ispp = true; - String bankaccount = bankentry.getString("bankaccount"); - DynamicObject bank = bankentry.getDynamicObject("bank"); - String accountname = bankentry.getString("accountname"); - // 检查银行账号,开户银行,账户名称是否为空 - if (bankaccount == null || bankaccount.trim().isEmpty()) { - log.error("同步失败,凭证号:" + fkBillNum + "的银行账号为空(供应商)"); - JhzjUtils.saveLog(fkBillNum, apimenthod, it_list.toJSONString(), "同步失败,凭证号:" + fkBillNum + "的银行账号为空(供应商)", false, "API"); - return "同步失败,凭证号:" + fkBillNum + "的银行账号为空(供应商)"; + boolean ispp = false;//sap合作银行类型是否与金蝶供应商银行账号匹配 + //如果sap的合作银行类型为空,再判断供应商银行分录是否只有一个,只有一个时,携带此银行 + if(EsbUtils.isEmpty(assacct) && bankentrys.size() == 1){ + DynamicObject bankentry = bankentrys.get(0); + String bankaccount = bankentry.getString("bankaccount"); + DynamicObject bank = bankentry.getDynamicObject("bank"); + String accountname = bankentry.getString("accountname"); + // 检查银行账号,开户银行,账户名称是否为空 + if (bankaccount == null || bankaccount.trim().isEmpty()) { + log.error("同步失败,凭证号:" + fkBillNum + "的银行账号为空(供应商)"); + JhzjUtils.saveLog(fkBillNum, apimenthod, it_list.toJSONString(), "同步失败,凭证号:" + fkBillNum + "的银行账号为空(供应商)", false, "API"); + return "同步失败,凭证号:" + fkBillNum + "的银行账号为空(供应商)"; + } + if (null == bank) { + log.error("同步失败,凭证号:" + fkBillNum + "的开户银行为空(供应商)"); + JhzjUtils.saveLog(fkBillNum, apimenthod, it_list.toJSONString(), "同步失败,凭证号:" + fkBillNum + "的开户银行为空(供应商)", false, "API"); + return "同步失败,凭证号:" + fkBillNum + "的开户银行为空(供应商)"; + } + if (accountname == null || accountname.trim().isEmpty()) { + log.error("同步失败,凭证号:" + fkBillNum + "的账户名称为空(供应商)"); + JhzjUtils.saveLog(fkBillNum, apimenthod, it_list.toJSONString(), "同步失败,凭证号:" + fkBillNum + "的账户名称为空(供应商)", false, "API"); + return "同步失败,凭证号:" + fkBillNum + "的账户名称为空(供应商)"; + } + ap_payapply_entry.set("e_assacct", bankaccount);//银行账号 + ap_payapply_entry.set("e_bebank", bank);//开户银行 + ap_payapply_entry.set("shjh_asstactrealname", accountname);//账户名称 + ispp = true; + }else if(!EsbUtils.isEmpty(assacct) && bankentrys.size() > 1){ + for (DynamicObject bankentry : bankentrys) { + if (assacct.equals(bankentry.getString("shjh_banktype"))) { + String bankaccount = bankentry.getString("bankaccount"); + DynamicObject bank = bankentry.getDynamicObject("bank"); + String accountname = bankentry.getString("accountname"); + // 检查银行账号,开户银行,账户名称是否为空 + if (bankaccount == null || bankaccount.trim().isEmpty()) { + log.error("同步失败,凭证号:" + fkBillNum + "的银行账号为空(供应商)"); + JhzjUtils.saveLog(fkBillNum, apimenthod, it_list.toJSONString(), "同步失败,凭证号:" + fkBillNum + "的银行账号为空(供应商)", false, "API"); + return "同步失败,凭证号:" + fkBillNum + "的银行账号为空(供应商)"; + } + if (null == bank) { + log.error("同步失败,凭证号:" + fkBillNum + "的开户银行为空(供应商)"); + JhzjUtils.saveLog(fkBillNum, apimenthod, it_list.toJSONString(), "同步失败,凭证号:" + fkBillNum + "的开户银行为空(供应商)", false, "API"); + return "同步失败,凭证号:" + fkBillNum + "的开户银行为空(供应商)"; + } + if (accountname == null || accountname.trim().isEmpty()) { + log.error("同步失败,凭证号:" + fkBillNum + "的账户名称为空(供应商)"); + JhzjUtils.saveLog(fkBillNum, apimenthod, it_list.toJSONString(), "同步失败,凭证号:" + fkBillNum + "的账户名称为空(供应商)", false, "API"); + return "同步失败,凭证号:" + fkBillNum + "的账户名称为空(供应商)"; + } + ap_payapply_entry.set("e_assacct", bankaccount);//银行账号 + ap_payapply_entry.set("e_bebank", bank);//开户银行 + ap_payapply_entry.set("shjh_asstactrealname", accountname);//账户名称 + ispp = true; + break; } - if (null == bank) { - log.error("同步失败,凭证号:" + fkBillNum + "的开户银行为空(供应商)"); - JhzjUtils.saveLog(fkBillNum, apimenthod, it_list.toJSONString(), "同步失败,凭证号:" + fkBillNum + "的开户银行为空(供应商)", false, "API"); - return "同步失败,凭证号:" + fkBillNum + "的开户银行为空(供应商)"; - } - if (accountname == null || accountname.trim().isEmpty()) { - log.error("同步失败,凭证号:" + fkBillNum + "的账户名称为空(供应商)"); - JhzjUtils.saveLog(fkBillNum, apimenthod, it_list.toJSONString(), "同步失败,凭证号:" + fkBillNum + "的账户名称为空(供应商)", false, "API"); - return "同步失败,凭证号:" + fkBillNum + "的账户名称为空(供应商)"; - } - ap_payapply_entry.set("e_assacct", bankaccount);//银行账号 - ap_payapply_entry.set("e_bebank", bank);//开户银行 - ap_payapply_entry.set("shjh_asstactrealname", accountname);//账户名称 } } + if (!ispp) { log.error("同步失败,凭证号:" + fkBillNum + "的合作银行类型无匹配数据(供应商)"); JhzjUtils.saveLog(fkBillNum, apimenthod, it_list.toJSONString(), "同步失败,凭证号:" + fkBillNum + "的合作银行类型无匹配数据(供应商)", false, "API"); @@ -816,7 +846,7 @@ public class ApplyAdjustBillControler { * @param ap_payapply 付款申请单的动态对象 * @param uuid 单据号 */ - public static void setPaymentType(DynamicObject ap_payapply, String uuid) { + public void setPaymentType(DynamicObject ap_payapply, String uuid) { // String paymentTypeName = "1221020200".equals(accountingsubject) ? "对私付款" : "对公付款"; // QFilter Q9 = new QFilter("name", QCP.equals, paymentTypeName); // DynamicObject paytype = BusinessDataServiceHelper.loadSingle(CAS_PAYMENTBILLTYPE, new QFilter[]{Q9});