diff --git a/main/java/shjh/jhzj7/fi/fi/plugin/operate/PayBillSubmitOperation.java b/main/java/shjh/jhzj7/fi/fi/plugin/operate/PayBillSubmitOperation.java index b36477a..47266f3 100644 --- a/main/java/shjh/jhzj7/fi/fi/plugin/operate/PayBillSubmitOperation.java +++ b/main/java/shjh/jhzj7/fi/fi/plugin/operate/PayBillSubmitOperation.java @@ -140,16 +140,31 @@ public class PayBillSubmitOperation extends AbstractOperationServicePlugIn imple IT_ITEM.put("BUZEI", dynamicObject.getString("shjh_voucherentrynum"));//会计凭证中的行项目数 setAmount(dynamicObject, IT_ITEM, bill);//设置金额 String payeetype = bill.getString("payeetype");//收款人类型 + String payeebanknum = bill.getString("payeebanknum");//收款银行账号 + String bvtyp = ""; if ("bd_supplier".equals(payeetype) || "bd_customer".equals(payeetype)) { - String number = getNumber(bill); - if (StringUtils.isNotEmpty(number)) { - IT_ITEM.put("LIFNR", number);//供应商或债权人的帐号 - }else { - IT_ITEM.put("LIFNR", "");//供应商或债权人的帐号 + DynamicObject dy = getNumber(bill); + if (null != dy) { + String number = dy.getString("number");//供应商或债权人的帐号 + if (StringUtils.isNotEmpty(number)) { + IT_ITEM.put("LIFNR", number);//供应商或债权人的帐号 + }else { + IT_ITEM.put("LIFNR", "");//供应商或债权人的帐号 + } + if ("bd_supplier".equals(payeetype)) { + DynamicObjectCollection entryBanks = dy.getDynamicObjectCollection("entry_bank"); + for (DynamicObject entryBank : entryBanks) { + if (payeebanknum.equals(entryBank.getString("bankaccount"))) { + bvtyp = entryBank.getString("shjh_banktype");//合作银行类型 + break; + } + } + } } } // IT_ITEM.put("LIFNR", "0001002765");//供应商或债权人的帐号 - IT_ITEM.put("ZWLYH", bill.getString("payeebanknum"));//往来银行 + IT_ITEM.put("ZWLYH",payeebanknum);//往来银行 + IT_ITEM.put("BVTYP",bvtyp);//合作银行类型 IT_ITEM.put("ZJDDJID", ""+bill.getPkValue());//金蝶单据ID IT_ITEM.put("ZJDDJBH", bill.getString("billno"));//金蝶单据编号 IT_ITEMS.add(IT_ITEM); @@ -163,16 +178,13 @@ public class PayBillSubmitOperation extends AbstractOperationServicePlugIn imple * 获取客户/供应商编码 * @return 编码 */ - private String getNumber(DynamicObject bill){ + private DynamicObject getNumber(DynamicObject bill){ String payeeformid = bill.getString("payeeformid");//收款人基础资料标识 String payee = bill.getString("payee");//收款人ID if (StringUtils.isNotEmpty(payeeformid) ) { - DynamicObject bd_supplier = BusinessDataServiceHelper.loadSingle(payee, payeeformid); - if (null != bd_supplier) { - return bd_supplier.getString("number");// 供应商编码_收款人类型为供应商,取收款人编码 - } + return BusinessDataServiceHelper.loadSingle(payee, payeeformid);// 供应商编码_收款人类型为供应商,取收款人编码 } - return ""; + return null; } private JSONObject setAmount(DynamicObject dynamicObject, JSONObject IT_ITEM, DynamicObject bill){