From c8b45040e4163265952d82385e7f40ab1086ff6f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E8=B4=B5=E5=BC=BA?= Date: Tue, 12 Aug 2025 15:51:27 +0800 Subject: [PATCH] =?UTF-8?q?=E5=90=8C=E5=90=8D=E5=AE=A2=E6=88=B7=E6=90=BA?= =?UTF-8?q?=E5=B8=A6=E6=94=B9=E5=8A=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../plugin/operate/RecBillSaveOperation.java | 26 ++++++++++++------- 1 file changed, 17 insertions(+), 9 deletions(-) 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 d0d56d3..f3d494b 100644 --- a/main/java/shjh/jhzj7/fi/fi/plugin/operate/RecBillSaveOperation.java +++ b/main/java/shjh/jhzj7/fi/fi/plugin/operate/RecBillSaveOperation.java @@ -634,7 +634,7 @@ public class RecBillSaveOperation extends AbstractOperationServicePlugIn impleme } else { //3.规则生单未配置客户——>取收款入账中心客户 QFilter customerFilter = new QFilter("name", QCP.equals, oppunit); - customerFilter.and(new QFilter("group.name",QCP.not_equals,"员工")); + customerFilter.and(new QFilter("group.name", QCP.not_equals, "员工")); //可用状态 customerFilter.and(new QFilter("enable", QCP.equals, "1")); DynamicObject[] bd_customer = BusinessDataServiceHelper.load("bd_customer", "id,name", customerFilter.toArray()); @@ -647,28 +647,36 @@ public class RecBillSaveOperation extends AbstractOperationServicePlugIn impleme exitCustomerArray = true; } else { //存在多个客户,判断组织编码companyNumber是否在客户基础资料客户组5分录中的销售公司编码中配置 + List matchingCustomers = new ArrayList<>(); + for (int i = 0; i < bd_customer.length; i++) { Set numberSet = new HashSet<>(); DynamicObject customer = BusinessDataServiceHelper.loadSingle(bd_customer[i].getPkValue(), "bd_customer"); - if (customer!=null){ + if (customer != null) { DynamicObjectCollection dynamicObjectCollection = customer.getDynamicObjectCollection("shjh_entry_five"); if (dynamicObjectCollection != null && dynamicObjectCollection.size() != 0) { for (DynamicObject item : dynamicObjectCollection) { String saleCompanyNum = item.getString("shjh_salecompanynum"); - if (saleCompanyNum!=null && !"".equals(saleCompanyNum)){ + if (saleCompanyNum != null && !"".equals(saleCompanyNum)) { numberSet.add(saleCompanyNum); } } - if (numberSet.contains(companyNumber)){ - bill.set("payer", bd_customer[i].getPkValue()); //付款人id - bill.set("payernumber", bd_customer[i].getString("number")); //付款人编码 - bill.set("payername", bd_customer[i].getString("name")); //付款人名称 - exitCustomerArray = true; - break; + if (numberSet.contains(companyNumber)) { + matchingCustomers.add(bd_customer[i]); } } } } + // 处理匹配结果 + if (matchingCustomers.size() == 1) { + // 只有一个客户匹配,使用该客户 + bill.set("payer", matchingCustomers.get(0).getPkValue()); + bill.set("payernumber", matchingCustomers.get(0).getString("number")); + bill.set("payername", matchingCustomers.get(0).getString("name")); + exitCustomerArray = true; + } + // 多个客户都匹配,使用规则4的默认客户 + // 没有客户匹配,保持原样(将触发规则4处理) } } if (!exitCustomerArray) {