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 a8f797d..6cb31c8 100644 --- a/main/java/shjh/jhzj7/fi/fi/plugin/operate/RecBillSaveOperation.java +++ b/main/java/shjh/jhzj7/fi/fi/plugin/operate/RecBillSaveOperation.java @@ -122,21 +122,35 @@ public class RecBillSaveOperation extends AbstractOperationServicePlugIn impleme String oppunit = beiIntelpay.getString("oppunit");//收款入账中心的对方户名 bill.set("shjh_dfhm", oppunit);//收款单备注字段 bill.set("payertype", "bd_customer");//付款人类型:客户 - DynamicObject bd_customer = BusinessDataServiceHelper.loadSingle("bd_customer", new QFilter[]{new QFilter("name", QCP.equals, oppunit)}); - if (null != bd_customer) { - bill.set("payer", bd_customer.getPkValue()); //付款人id - bill.set("payername", bd_customer.getString("name")); //付款人名称 - } else { - boolean shjhEGetcustomer = entry.getBoolean("shjh_e_getcustomer"); //取规则得映射表客户标记 - if (shjhEGetcustomer) { - QFilter qFilter = new QFilter("shjh_dfhm", QCP.equals, oppunit); - //对方户名与客户名称映射表 shjh_dfhmcust - DynamicObject shjhDfhmcust = BusinessDataServiceHelper.loadSingle("shjh_dfhmcust", qFilter.toArray()); - if (null != shjhDfhmcust) { - DynamicObject shjhCustomer = shjhDfhmcust.getDynamicObject("shjh_customer"); - if (null != shjhCustomer) { - bill.set("payer", shjhCustomer.getPkValue()); //付款人id - bill.set("payername", shjhCustomer.getString("name")); //付款人名称 + // 2025/6/18 优化: 先根据规则指定的付款人赋值 + DynamicObject ePayerid = entry.getDynamicObject("e_payerid"); + if (null != ePayerid) { + bill.set("payer", ePayerid.getPkValue()); //付款人id + bill.set("payername", ePayerid.getString("name")); //付款人名称 + }else { + DynamicObject bd_customer = BusinessDataServiceHelper.loadSingle("bd_customer", new QFilter[]{new QFilter("name", QCP.equals, oppunit)}); + if (null != bd_customer) { + bill.set("payer", bd_customer.getPkValue()); //付款人id + bill.set("payername", bd_customer.getString("name")); //付款人名称 + } else { + boolean shjhEGetcustomer = entry.getBoolean("shjh_e_getcustomer"); //取规则得映射表客户标记 + if (shjhEGetcustomer) { + QFilter qFilter = new QFilter("shjh_dfhm", QCP.equals, oppunit); + //对方户名与客户名称映射表 shjh_dfhmcust + DynamicObject shjhDfhmcust = BusinessDataServiceHelper.loadSingle("shjh_dfhmcust", qFilter.toArray()); + if (null != shjhDfhmcust) { + DynamicObject shjhCustomer = shjhDfhmcust.getDynamicObject("shjh_customer"); + if (null != shjhCustomer) { + bill.set("payer", shjhCustomer.getPkValue()); //付款人id + bill.set("payername", shjhCustomer.getString("name")); //付款人名称 + } + }else { + QFilter qFilter1 = new QFilter("number", QCP.equals, "1042086"); //4000042 + DynamicObject bdCustomer = BusinessDataServiceHelper.loadSingle("bd_customer", qFilter1.toArray()); + if (null != bdCustomer) { + bill.set("payer", bdCustomer.getPkValue()); //付款人id + bill.set("payername", bdCustomer.getString("name")); //付款人名称 + } } }else { QFilter qFilter1 = new QFilter("number", QCP.equals, "1042086"); //4000042 @@ -146,16 +160,9 @@ public class RecBillSaveOperation extends AbstractOperationServicePlugIn impleme bill.set("payername", bdCustomer.getString("name")); //付款人名称 } } - }else { - QFilter qFilter1 = new QFilter("number", QCP.equals, "1042086"); //4000042 - DynamicObject bdCustomer = BusinessDataServiceHelper.loadSingle("bd_customer", qFilter1.toArray()); - if (null != bdCustomer) { - bill.set("payer", bdCustomer.getPkValue()); //付款人id - bill.set("payername", bdCustomer.getString("name")); //付款人名称 - } } - } + } DynamicObject shjhBizbig = (DynamicObject) bill.get("shjh_bizebig");//收款单的业务大类 if (null == shjhBizbig) {