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 58e7b40..0062416 100644 --- a/main/java/shjh/jhzj7/fi/fi/plugin/operate/RecBillSaveOperation.java +++ b/main/java/shjh/jhzj7/fi/fi/plugin/operate/RecBillSaveOperation.java @@ -124,47 +124,49 @@ public class RecBillSaveOperation extends AbstractOperationServicePlugIn impleme bill.set("shjh_dfhm", oppunit);//收款单备注字段 bill.set("payertype", "bd_customer");//付款人类型:客户 // 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); - //新增收款入账中心-资金组织&&映射表组织过滤 - qFilter.and(new QFilter("shjh_org.id",QCP.equals,companyId)); - //对方户名与客户名称映射表 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 - DynamicObject bdCustomer = BusinessDataServiceHelper.loadSingle("bd_customer", qFilter1.toArray()); - if (null != bdCustomer) { - bill.set("payer", bdCustomer.getPkValue()); //付款人id - bill.set("payername", bdCustomer.getString("name")); //付款人名称 - } - } - } - + if (bill.getString("payername")==null || "".equals(bill.getString("payername")) || bill.getLong("payer")==0L) { + carryCustomerRule(entry,bill,oppunit,companyId); +// 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); +// //新增收款入账中心-资金组织&&映射表组织过滤 +// qFilter.and(new QFilter("shjh_org.id", QCP.equals, companyId)); +// //对方户名与客户名称映射表 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 +// 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");//收款单的业务大类 @@ -584,4 +586,52 @@ public class RecBillSaveOperation extends AbstractOperationServicePlugIn impleme return true; // 客户不属于任何允许的客户组 } + + + /** + * 1.先看取映射表按钮是否打开,打开——>取映射表中客户 + * 2.映射表中未配置客户——>取规则生单中客户 + * 3.规则生单未配置客户——>取收款入账中心客户 + * 4.以上都未配置——>不确定客户 + */ + private void carryCustomerRule(DynamicObject entry,DynamicObject bill,String oppunit,Long companyId){ + //1.先看取映射表按钮是否打开,打开——>取映射表中客户 + boolean shjhEGetcustomer = entry.getBoolean("shjh_e_getcustomer"); //取规则得映射表客户标记 + if (shjhEGetcustomer) { + QFilter qFilter = new QFilter("shjh_dfhm", QCP.equals, oppunit); + //新增收款入账中心-资金组织&&映射表组织过滤 + qFilter.and(new QFilter("shjh_org.id", QCP.equals, companyId)); + //对方户名与客户名称映射表 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 { + //2.映射表中未配置客户——>取规则生单中客户 + DynamicObject ePayerid = entry.getDynamicObject("e_payerid"); + if (null != ePayerid) { + bill.set("payer", ePayerid.getPkValue()); //付款人id + bill.set("payername", ePayerid.getString("name")); //付款人名称 + } else { + //3.规则生单未配置客户——>取收款入账中心客户 + 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 { + //4.规则生单未配置客户——>默认不确定客户 + 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")); //付款人名称 + } + } + } + } + } + } } \ No newline at end of file