收款处理保存带出资金计划科目
This commit is contained in:
parent
044cc35a0e
commit
c1ddb5ea2e
|
|
@ -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<DynamicObject> configList = new ArrayList<>(Arrays.asList(load));
|
||||
|
||||
// 遍历并过滤配置
|
||||
Iterator<DynamicObject> 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; // 客户不属于任何允许的客户组
|
||||
}
|
||||
}
|
||||
|
|
@ -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<DynamicObject> loadList = new ArrayList<>(Arrays.asList(load));
|
||||
Iterator<DynamicObject> 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;
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue