收款单从规则携带客户标记;手动和定时拉取sap的合作银行类型为空,如果供应商只有一个账号则携带
This commit is contained in:
		
							parent
							
								
									887d2f761c
								
							
						
					
					
						commit
						8243fe8dae
					
				|  | @ -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 + "的合作银行类型无匹配数据(供应商)"); | ||||
|  |  | |||
|  | @ -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 | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | @ -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<String, Object> 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<String, DynamicObject> getPayapply(JSONArray IT_ITEMs){ | ||||
|         Map<String, DynamicObject> 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); | ||||
|  |  | |||
|  | @ -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}); | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue