From c1ddb5ea2e868e063dcd6b32c31f0112058d2189 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E8=B4=B5=E5=BC=BA?= Date: Thu, 17 Apr 2025 15:50:07 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=B6=E6=AC=BE=E5=A4=84=E7=90=86=E4=BF=9D?= =?UTF-8?q?=E5=AD=98=E5=B8=A6=E5=87=BA=E8=B5=84=E9=87=91=E8=AE=A1=E5=88=92?= =?UTF-8?q?=E7=A7=91=E7=9B=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../plugin/operate/RecBillSaveOperation.java | 374 ++++++++++++++++++ .../operate/RecBillSubmitOperation.java | 264 ------------- 2 files changed, 374 insertions(+), 264 deletions(-) create mode 100644 main/java/shjh/jhzj7/fi/fi/plugin/operate/RecBillSaveOperation.java delete mode 100644 main/java/shjh/jhzj7/fi/fi/plugin/operate/RecBillSubmitOperation.java diff --git a/main/java/shjh/jhzj7/fi/fi/plugin/operate/RecBillSaveOperation.java b/main/java/shjh/jhzj7/fi/fi/plugin/operate/RecBillSaveOperation.java new file mode 100644 index 0000000..5ced289 --- /dev/null +++ b/main/java/shjh/jhzj7/fi/fi/plugin/operate/RecBillSaveOperation.java @@ -0,0 +1,374 @@ +package shjh.jhzj7.fi.fi.plugin.operate; + +import kd.bos.dataentity.entity.DynamicObject; +import kd.bos.dataentity.entity.DynamicObjectCollection; +import kd.bos.entity.plugin.AbstractOperationServicePlugIn; +import kd.bos.entity.plugin.args.AfterOperationArgs; +import kd.bos.logging.Log; +import kd.bos.logging.LogFactory; +import kd.bos.orm.query.QCP; +import kd.bos.orm.query.QFilter; +import kd.bos.servicehelper.BusinessDataServiceHelper; +import kd.bos.servicehelper.operation.SaveServiceHelper; +import kd.sdk.plugin.Plugin; + +import java.util.*; + +/** + * 单据操作插件 + * 收款处理提交自动带出资金计划科目 + */ +public class RecBillSaveOperation extends AbstractOperationServicePlugIn implements Plugin { + + private static final Log log = LogFactory.getLog(RecBillSaveOperation.class); + + @Override + public void afterExecuteOperationTransaction(AfterOperationArgs e) { + super.afterExecuteOperationTransaction(e); + //付款单提交之后 付款标识为被动付款,并且资金计划科目为空,从配置表(shjh_pay_account)携带资金计划科目 + DynamicObject[] dataEntities = e.getDataEntities(); + for (DynamicObject bill : dataEntities) { + bill = BusinessDataServiceHelper.loadSingle(bill.getPkValue(),"cas_recbill"); + DynamicObject planClass = bill.getDynamicObject("shjh_planclass"); + if (null == planClass) { + //根据配置表携带资金计划科目 + bill.set("shjh_planclass", xdMembersubject(bill)); + SaveServiceHelper.save(new DynamicObject[]{bill}); + } + } + } + + + private DynamicObject xdMembersubject(DynamicObject bill) { + // 收款单,系统自动根据配置表(shjh_pay_account)带出资金计划科目 + Date currentDate = new Date(); + QFilter qFilter = new QFilter("shjh_biztype", QCP.equals, "B"); // 业务类型:收款 + qFilter.and(new QFilter("status", QCP.equals, "C")); // 审核状态 + qFilter.and(new QFilter("shjh_begindate", QCP.less_equals, currentDate)); + qFilter.and(new QFilter("shjh_enddate", QCP.large_equals, currentDate)); + + + // 加载配置数据,并按优先级排序 + DynamicObject[] load = BusinessDataServiceHelper.load( + "shjh_pay_account", + "id,shjh_priority,shjh_companys,shjh_bbhzz,shjh_bizbig,shjh_bbhywdl,shjh_bizsmall,shjh_cc,shjh_yym,shjh_kjkm,shjh_bhkh,shjh_bbhkh,shjh_bhgys,shjh_bbhgys,shjh_bbhbz,shjh_khzw,shjh_membersubject", + qFilter.toArray(), + "shjh_priority" + ); + + if (load.length == 0) { + return null; // 无匹配配置,返回 null + } + + // 转换为 List 以便支持 remove 操作 + List configList = new ArrayList<>(Arrays.asList(load)); + + // 遍历并过滤配置 + Iterator iterator = configList.iterator(); + while (iterator.hasNext()) { + DynamicObject config = iterator.next(); + + // 1. 检查公司范围(包含) + if (checkDynamicDataMatch(config, bill, "shjh_companys", "openorg")) { + iterator.remove(); + continue; + } + + // 2. 检查不包含的公司范围(排除) + if (checkNotDynamicMatch(config, bill, "shjh_bbhzz", "openorg")) { + iterator.remove(); + continue; + } + + // 3. 检查业务大类(包含) + if (checkDynamicDataMatch(config, bill, "shjh_bizbig", "shjh_bizebig")) { + iterator.remove(); + continue; + } + + // 4. 检查不包含的业务大类(排除) + if (checkNotDynamicMatch(config, bill, "shjh_bbhywdl", "shjh_bizebig")) { + iterator.remove(); + continue; + } + + // 5. 检查业务小类(包含) + if (checkDynamicDataMatch(config, bill, "shjh_bizsmall", "shjh_bizsmall")) { + iterator.remove(); + continue; + } + + // 6. 检查成本中心(包含) + if (checkDynamicDataMatch(config, bill, "shjh_cc", "shjh_costcenter")) { + iterator.remove(); + continue; + } + + // 7. 检查原因码(包含) + if (checkDynamicDataMatch(config, bill, "entry", "shjh_yym", "shjh_yym")) { + iterator.remove(); + continue; + } + + // 8. 检查会计科目(包含) + if (checkDynamicDataMatch(config, bill, "entry", "shjh_kjkm", "shjh_accountsap")) { + iterator.remove(); + continue; + } + + // 9. 检查币种(不包含) + if (checkNotDynamicMatch(config, bill, "shjh_bbhbz", "currency")) { + iterator.remove(); + continue; + } + + //付款人类型 + String payerType = bill.getString("payertype"); + if (null!=payerType) { + switch (payerType) { + case "bd_customer": + // 10_1. 检查客户(包含) + if (checkCustomerOrSupplierMatch(config, bill, "shjh_bhkh", "payer")) { + iterator.remove(); + continue; + } + + // 10_2. 检查客户(不包含) + if (checkNotCustomerOrSupplierMatch(config, bill, "shjh_bbhkh", "payer")) { + iterator.remove(); + continue; + } + + // 10_3.检查客户组(包含) + if (checkCustomerGroup(config, bill)) { + iterator.remove(); + continue; + } + + break; + case "bd_supplier": + // 11_1. 检查供应商(包含) + if (checkCustomerOrSupplierMatch(config, bill, "shjh_bhgys", "payer")) { + iterator.remove(); + continue; + } + + // 11_2. 检查供应商(不包含) + if (checkNotCustomerOrSupplierMatch(config, bill, "shjh_bbhgys", "payer")) { + iterator.remove(); + continue; + } + + break; + default: + break; + } + } + } + + // 处理剩余数据 + if (configList.isEmpty()) { + return null; // 无匹配配置 + } else { + // 默认取优先级最高的第一条数据 + DynamicObject selectedConfig = configList.get(0); + return selectedConfig.getDynamicObject("shjh_membersubject"); + } + } + + + + /** + * 包含某个多选基础资料-收款单表头取数 + * @param accountBill 资金计划科目表 + * @param recBill 收款处理 + * @param accountField 被匹配基础资料标识 + * @param recField 提供基础资料标识 + * @return 是否符合 + */ + private boolean checkDynamicDataMatch(DynamicObject accountBill, DynamicObject recBill ,String accountField,String recField){ + DynamicObjectCollection dynamicObjectCollection = accountBill.getDynamicObjectCollection(accountField); + if (dynamicObjectCollection.isEmpty()) { + return false; // 无限制-通过 + } + + DynamicObject dynamicObject = recBill.getDynamicObject(recField); + if (dynamicObject == null) { + return true; // 已经指定范围,但收款单无字段-移除 + } + + Long id = dynamicObject.getLong("id"); + for (DynamicObject object : dynamicObjectCollection) { + if (id.compareTo(object.getLong("fbasedataid_id")) == 0) { + return false; // 匹配到包含的基础资料-通过 + } + } + return true; // 未匹配到包含的多选基础资料 + } + + /** + * 包含某个多选基础资料-收款单分录取数 + * @param accountBill 资金计划科目表 + * @param recBill 收款处理 + * @param entryName 分录标识 + * @param accountField 被匹配基础资料标识 + * @param recField 提供基础资料标识 + * @return 是否符合 + */ + private boolean checkDynamicDataMatch(DynamicObject accountBill, DynamicObject recBill ,String entryName,String accountField,String recField){ + DynamicObjectCollection dynamicObjectCollection = accountBill.getDynamicObjectCollection(accountField); + if (dynamicObjectCollection.isEmpty()) { + return false; // 无限制则通过 + } + + DynamicObjectCollection entry = recBill.getDynamicObjectCollection(entryName); + if (entry.isEmpty()) { + return true; // 单据字段信息,不匹配 + } + + DynamicObject dynamicObject = entry.get(0).getDynamicObject(recField); + if (dynamicObject==null){ + return true;//放行 + } + Long orgId = dynamicObject.getLong("id"); + for (DynamicObject object : dynamicObjectCollection) { + if (orgId.compareTo(object.getLong("fbasedataid_id")) == 0) { + return false; // 匹配到包含的基础资料-放行 + } + } + return true; // 未匹配到包含的多选基础资料-移除 + } + + + /** + * 不包含某个多选基础资料 + * @param accountBill 资金计划科目表 + * @param recBill 收款处理 + * @param accountField 被匹配基础资料标识 + * @param recField 提供基础资料标识 + * @return 是否符合 + */ + private boolean checkNotDynamicMatch(DynamicObject accountBill, DynamicObject recBill ,String accountField,String recField) { + DynamicObjectCollection dynamicObjectCollection = accountBill.getDynamicObjectCollection(accountField); + if (dynamicObjectCollection.isEmpty()) { + return false; // 无排除限制则通过 + } + + DynamicObject dynamicObject = recBill.getDynamicObject(recField); + if (dynamicObject == null) { + return false; // 单据无信息,无法排除 + } + + Long bizBigId = dynamicObject.getLong("id"); + for (DynamicObject object : dynamicObjectCollection) { + if (bizBigId.compareTo(object.getLong("fbasedataid_id")) == 0) { + return true; // 匹配到 + } + } + return false; // 未匹配到 + } + + /** + * 针对包含客户||供应商 + * @param accountBill + * @param recBill + * @param accountField + * @param recField + * @return + */ + private boolean checkCustomerOrSupplierMatch(DynamicObject accountBill, DynamicObject recBill ,String accountField,String recField){ + DynamicObjectCollection dynamicObjectCollection = accountBill.getDynamicObjectCollection(accountField); + if (dynamicObjectCollection.isEmpty()) { + return false; // 无限制则通过 + } + + Long id = recBill.getLong(recField); + if (id == 0L) { + return true; // 单据字段信息,不匹配 + } + + for (DynamicObject object : dynamicObjectCollection) { + if (id.compareTo(object.getLong("fbasedataid_id")) == 0) { + return false; // 匹配到包含的基础资料 + } + } + return true; // 未匹配到包含的多选基础资料 + } + + /** + * 针对不包含客户||供应商 + * @param accountBill + * @param recBill + * @param accountField + * @param recField + * @return + */ + private boolean checkNotCustomerOrSupplierMatch(DynamicObject accountBill, DynamicObject recBill ,String accountField,String recField){ + DynamicObjectCollection dynamicObjectCollection = accountBill.getDynamicObjectCollection(accountField); + if (dynamicObjectCollection.isEmpty()) { + return false; // 无限制则通过 + } + + Long id = recBill.getLong(recField); + if (id == 0L) { + return true; // 单据字段信息,不匹配 + } + + for (DynamicObject object : dynamicObjectCollection) { + if (id.compareTo(object.getLong("fbasedataid_id")) == 0) { + return true; // 匹配到包含的基础资料 + } + } + return false; // 未匹配到包含的多选基础资料 + } + + /** + * 针对客户检查客户组,客户组为必填项 + * @param accountBill 资金计划科目表 + * @param recBill 收款处理 + * @return + */ + private boolean checkCustomerGroup(DynamicObject accountBill, DynamicObject recBill) { + // 1. 获取客户ID + Long id = recBill.getLong("payer"); + if (id == null) { + return false; // 无付款人信息,默认通过 + } + + // 2. 加载客户对象 + DynamicObject customer = BusinessDataServiceHelper.loadSingle(id, "bd_customer"); + if (customer == null) { + return false; // 客户不存在,默认通过 + } + + // 3. 获取客户的客户组列表(shjh_entry_five) + DynamicObjectCollection customerGroups = customer.getDynamicObjectCollection("shjh_entry_five"); + if (customerGroups.isEmpty()) { + return false; // 客户未关联任何客户组,默认通过 + } + + // 4. 获取配置表中允许的客户组列表(shjh_khzw) + DynamicObjectCollection allowedGroups = accountBill.getDynamicObjectCollection("shjh_khzw"); + if (allowedGroups.isEmpty()) { + return false; // 配置未限制客户组,默认通过 + } + + // 5. 检查客户是否属于配置允许的客户组 + for (DynamicObject customerGroup : customerGroups) { + String customerGroupNumber = customerGroup.getString("shjh_entryfive_number"); + if (customerGroupNumber == null) { + continue; // 跳过无编号的客户组 + } + + for (DynamicObject allowedGroup : allowedGroups) { + DynamicObject baseDataObj = allowedGroup.getDynamicObject("fbasedataid"); + String number=baseDataObj.getString("number"); + if (customerGroupNumber.equals(number)) { + return false; // 匹配到允许的客户组 + } + } + } + + return true; // 客户不属于任何允许的客户组 + } +} \ No newline at end of file diff --git a/main/java/shjh/jhzj7/fi/fi/plugin/operate/RecBillSubmitOperation.java b/main/java/shjh/jhzj7/fi/fi/plugin/operate/RecBillSubmitOperation.java deleted file mode 100644 index 5349828..0000000 --- a/main/java/shjh/jhzj7/fi/fi/plugin/operate/RecBillSubmitOperation.java +++ /dev/null @@ -1,264 +0,0 @@ -package shjh.jhzj7.fi.fi.plugin.operate; - -import kd.bos.dataentity.entity.DynamicObject; -import kd.bos.dataentity.entity.DynamicObjectCollection; -import kd.bos.entity.plugin.AbstractOperationServicePlugIn; -import kd.bos.entity.plugin.args.AfterOperationArgs; -import kd.bos.logging.Log; -import kd.bos.logging.LogFactory; -import kd.bos.orm.query.QCP; -import kd.bos.orm.query.QFilter; -import kd.bos.servicehelper.BusinessDataServiceHelper; -import kd.bos.servicehelper.operation.SaveServiceHelper; -import kd.sdk.plugin.Plugin; - -import java.util.*; - -/** - * 单据操作插件 - * 收款处理提交自动带出资金计划科目 - */ -public class RecBillSubmitOperation extends AbstractOperationServicePlugIn implements Plugin { - - private static final Log log = LogFactory.getLog(RecBillSubmitOperation.class); - - @Override - public void afterExecuteOperationTransaction(AfterOperationArgs e) { - super.afterExecuteOperationTransaction(e); - //付款单提交之后 付款标识为被动付款,并且资金计划科目为空,从配置表(shjh_pay_account)携带资金计划科目 - DynamicObject[] dataEntities = e.getDataEntities(); - for (DynamicObject bill : dataEntities) { - bill = BusinessDataServiceHelper.loadSingle(bill.getPkValue(),"cas_recbill"); - DynamicObject planClass = bill.getDynamicObject("shjh_planclass"); - if (null == planClass) { - //根据配置表携带资金计划科目 - bill.set("shjh_planclass", xdMembersubject(bill)); - SaveServiceHelper.save(new DynamicObject[]{bill}); - } - } - } - - private DynamicObject xdMembersubject(DynamicObject bill){ - //收款单,系统自动根据配置表(shjh_pay_account)带出资金计划科目 - Date currentDate = new Date(); - QFilter qFilter = new QFilter("shjh_biztype", QCP.equals,"B");//业务类型:收款 - qFilter.and(new QFilter("status",QCP.equals,"C"));//审核状态 - qFilter.and(new QFilter("shjh_begindate", QCP.less_equals, currentDate)); - qFilter.and(new QFilter("shjh_enddate", QCP.large_equals, currentDate)); - qFilter.and(new QFilter("number", QCP.equals, "test010")); - DynamicObject[] load = BusinessDataServiceHelper.load("shjh_pay_account", "id,shjh_priority,shjh_companys,shjh_bizbig,shjh_bizsmall,shjh_khzw", qFilter.toArray()); - if (load.length>0){ - List loadList = new ArrayList<>(Arrays.asList(load)); - Iterator iterator = loadList.iterator(); - while (iterator.hasNext()){ - DynamicObject dynamicObject = iterator.next(); - //公司范围 - DynamicObjectCollection companyCollection = dynamicObject.getDynamicObjectCollection("shjh_companys"); - if (companyCollection.size()!=0){ - //是否保留 - boolean isKeep=false; - DynamicObject openOrg = bill.getDynamicObject("openorg"); - for (DynamicObject object : companyCollection) { - if (openOrg!=null){ - Long orgId = openOrg.getLong("id"); - //匹配到就标记 - if (orgId.compareTo((Long) object.getPkValue())==0){ - isKeep=true; - break; - } - } - } - if (!isKeep){ - iterator.remove(); - continue; - } - } - //不包含公司 - DynamicObjectCollection notCompanyCollection = dynamicObject.getDynamicObjectCollection("shjh_bbhzz"); - if (notCompanyCollection.size()!=0){ - //是否保留 - boolean isKeep=true; - DynamicObject openOrg = bill.getDynamicObject("openorg"); - for (DynamicObject object : notCompanyCollection) { - if (openOrg!=null){ - Long orgId = openOrg.getLong("id"); - //匹配到就移除和包含相反 - if (orgId.compareTo((Long) object.getPkValue())==0){ - isKeep=false; - break; - } - } - } - if (!isKeep){ - iterator.remove(); - continue; - } - } - - - //业务大类 - DynamicObjectCollection bizBigCollection = dynamicObject.getDynamicObjectCollection("shjh_bizbig"); - if (bizBigCollection.size()!=0){ - boolean isKeep=false; - DynamicObject bizBig = bill.getDynamicObject("shjh_bizebig"); - for (DynamicObject object : bizBigCollection) { - if (bizBig!=null){ - Long bizBigId = bizBig.getLong("id"); - //匹配到就标记 - if (bizBigId.compareTo((Long) object.getPkValue())==0){ - isKeep=true; - break; - } - } - } - if (!isKeep){ - iterator.remove(); - continue; - } - } - //业务小类 - DynamicObjectCollection bizSmallCollection = dynamicObject.getDynamicObjectCollection("shjh_bizsmall"); - if (bizSmallCollection.size()!=0){ - boolean isKeep=false; - DynamicObject bizSmall = bill.getDynamicObject("shjh_bizsmall"); - for (DynamicObject object : bizSmallCollection) { - if (bizSmall!=null){ - Long bizBigId = bizSmall.getLong("id"); - //匹配到就标记 - if (bizBigId.compareTo((Long) object.getPkValue())==0){ - isKeep=true; - break; - } - } - } - if (!isKeep){ - iterator.remove(); - continue; - } - } - } - } - //TODO:对剩余数据做处理 - - -// //公司范围_多选基础资料 -// DynamicObject openorg = bill.getDynamicObject("openorg"); -// if (null != openorg) { -// Long orgid = openorg.getLong("id"); -// QFilter q1 = new QFilter("shjh_companys.fbasedataid", QCP.equals, orgid); -// QFilter q2 = new QFilter("shjh_companys.fbasedataid", QCP.equals, null); -// QFilter q3 = new QFilter("shjh_bbhzz.fbasedataid", QCP.equals, orgid); -// QFilter q4 = new QFilter("shjh_bbhzz.fbasedataid", QCP.equals, null); -// qFilter = qFilter.and(q1.or(q2)).and(q3.or(q4)); -// }else { -// QFilter q2 = new QFilter("shjh_companys.fbasedataid", QCP.equals, null); -// qFilter = qFilter.and(q2); -// } -// BusinessDataServiceHelper.load("shjh_pay_account", "id,shjh_priority,shjh_khzw", qFilter.toArray()); -// //业务大类 -// DynamicObject shjhBizbig = bill.getDynamicObject("shjh_bizebig"); -// if (null != shjhBizbig) { -// Long shjhBizbigid = shjhBizbig.getLong("id"); -// QFilter q2 = new QFilter("shjh_bizbig.fbasedataid", QCP.equals, shjhBizbigid); -// QFilter q3 = new QFilter("shjh_bizbig.fbasedataid", QCP.equals, null); -// QFilter q4 = new QFilter("shjh_bbhywdl.fbasedataid", QCP.equals, shjhBizbigid); -// QFilter q5 = new QFilter("shjh_bbhywdl.fbasedataid", QCP.equals, null); -// qFilter = qFilter.and(q2.or(q3)).and(q4.or(q5)); -// } -// -// //业务小类 -// DynamicObject shjhbizsmall = bill.getDynamicObject("shjh_bizsmall"); -// if (null != shjhbizsmall) { -// Long shjhbizsmallid = shjhbizsmall.getLong("id"); -// QFilter q1 = new QFilter("shjh_bizsmall.fbasedataid", QCP.equals, shjhbizsmallid); -// QFilter q2 = new QFilter("shjh_bizsmall.fbasedataid", QCP.equals, null); -// qFilter = qFilter.and(q1.or(q2)); -// } -// -// //成本中心 shjh_costcenter -// DynamicObject shjhCostcenter = bill.getDynamicObject("shjh_costcenter"); -// if (null != shjhCostcenter) { -// Long costcenterid = shjhCostcenter.getLong("id"); -// QFilter q4 = new QFilter("shjh_cc.fbasedataid", QCP.equals, costcenterid); -// qFilter = qFilter.and(q4); -// } -// -// //原因码 shjh_reasoncode -// //会计科目 shjh_coaitemcode -// DynamicObjectCollection entrys = bill.getDynamicObjectCollection("entry");//付款明细 -// if (!entrys.isEmpty()) { -// DynamicObject entry = entrys.get(0); -// DynamicObject shjhYym = entry.getDynamicObject("shjh_yym"); -// if (null != shjhYym) { -// Long yymid = shjhYym.getLong("id"); -// QFilter q5 = new QFilter("shjh_yym.fbasedataid", QCP.equals, yymid); -// qFilter = qFilter.and(q5); -// } -// -// DynamicObject shjhSapkjkm = entry.getDynamicObject("shjh_accountsap"); -// if (null != shjhSapkjkm) { -// Long kjkmid = shjhSapkjkm.getLong("id"); -// QFilter q6 = new QFilter("shjh_kjkm.fbasedataid", QCP.equals, kjkmid); -// qFilter = qFilter.and(q6); -// } -// -// } -// -// -// //付款人类型 -// String payerType = bill.getString("payertype"); -// if (null!=payerType){ -// long payerId = bill.getLong("payer"); -// if (payerId!=0L){ -// switch (payerType){ -// case "bd_customer": -// QFilter q1 = new QFilter("shjh_bhkh.fbasedataid", QCP.equals, payerId); -// QFilter q2 = new QFilter("shjh_bhkh.fbasedataid", QCP.equals, null); -// QFilter q3 = new QFilter("shjh_bbhkh.fbasedataid", QCP.equals, payerId); -// QFilter q4 = new QFilter("shjh_bbhkh.fbasedataid", QCP.equals, null); -// qFilter=qFilter.and(q1.or(q2)).and(q3.or(q4)); -// break; -// case "bd_supplier": -// QFilter q5 = new QFilter("shjh_bhgys.fbasedataid", QCP.equals, payerId); -// QFilter q6 = new QFilter("shjh_bhgys.fbasedataid", QCP.equals, null); -// QFilter q7 = new QFilter("shjh_bbhgys.fbasedataid", QCP.equals, payerId); -// QFilter q8 = new QFilter("shjh_bbhgys.fbasedataid", QCP.equals, null); -// qFilter=qFilter.and(q5.or(q6)).and(q7.or(q8)); -// break; -// default: -// break; -// } -// } -// } -// -// //不包含币种 -// DynamicObject currency = bill.getDynamicObject("currency"); -// if (currency!=null){ -// long currencyId = currency.getLong("id"); -// QFilter q1 = new QFilter("shjh_bbhbz.fbasedataid", QCP.equals, currencyId); -// QFilter q2 = new QFilter("shjh_bbhbz.fbasedataid", QCP.equals, null); -// qFilter=qFilter.and(q1.or(q2)); -// } -// -// DynamicObject[] accounts = BusinessDataServiceHelper.load("shjh_pay_account", "id,shjh_membersubject", qFilter.toArray()); -// if (accounts.length > 1) { -// // 根据生效日期,失效日期区间,判断当前时间满足的数据 -// Date currentDate = new Date(); -// QFilter startDateFilter = new QFilter("shjh_begindate", QCP.less_equals, currentDate); -// QFilter endDateFilter = new QFilter("shjh_enddate", QCP.large_equals, currentDate); -// QFilter newFilter = qFilter.and(startDateFilter).and(endDateFilter); -// accounts = BusinessDataServiceHelper.load("shjh_pay_account", "id,shjh_priority,shjh_khzw", newFilter.toArray()); -// } -// if (accounts.length > 0) { -// // 处理找到符合条件的账户 -// //按优先级排序,高中低取高,如果存在多条同一优先级级的数据,默认取第一条 -// DynamicObject account = accounts[0]; -// account = BusinessDataServiceHelper.loadSingle(account.getPkValue(), "shjh_pay_account"); -// return account.getDynamicObject("shjh_membersubject"); -// } else { -// log.info("没有找到符合条件的资金计划科目"); -// } - - return null; - } -} \ No newline at end of file