会计科目过滤

This commit is contained in:
zhangzhiguo 2025-02-21 14:51:09 +08:00
parent cadf5f0436
commit 0de251a569
2 changed files with 70 additions and 1 deletions

View File

@ -0,0 +1,67 @@
package zcgj.zcdev.zcdev.fs.plugin.form;
import kd.bos.bill.AbstractBillPlugIn;
import kd.bos.context.RequestContext;
import kd.bos.dataentity.entity.DynamicObject;
import kd.bos.form.field.BasedataEdit;
import kd.bos.form.field.events.BeforeF7SelectEvent;
import kd.bos.form.field.events.BeforeF7SelectListener;
import kd.bos.list.ListShowParameter;
import kd.bos.orm.query.QCP;
import kd.bos.orm.query.QFilter;
import kd.bos.servicehelper.BusinessDataServiceHelper;
import kd.bos.servicehelper.user.UserServiceHelper;
import kd.sdk.plugin.Plugin;
import java.util.ArrayList;
import java.util.EventObject;
import java.util.List;
/**
* 收款处理/付款处理 会计科目过滤
*/
public class CasAccountFilterPlugin extends AbstractBillPlugIn implements Plugin, BeforeF7SelectListener {
private final static String ACCOUNT_ITEM ="zcgj_account";
@Override
public void registerListener(EventObject e) {
super.registerListener(e);
Long currentUserId = UserServiceHelper.getCurrentUserId();
// 当前用户所属组织
Long mainOrgId = UserServiceHelper.getUserMainOrgId(currentUserId);
//当前切换选择的组织
Long currentOrgId = RequestContext.get().getOrgId();
//当前所在的组织是属于矿山下的 costcompany
//costcompany 费用承担公司
//DynamicObject costcompany = (DynamicObject)this.getModel().getValue("costcompany");
//long costcompanyId = costcompany.getLong("id");
//if(OrgCheckUtils.isKS(currentOrgId) && OrgCheckUtils.isKS(costcompanyId)){
BasedataEdit fieldEdit = this.getView().getControl(ACCOUNT_ITEM);
fieldEdit.addBeforeF7SelectListener(this);
// }
}
@Override
public void beforeF7Select(BeforeF7SelectEvent arg0) {
String name = arg0.getProperty().getName();
if(name.equals(ACCOUNT_ITEM)){
//会计科目根据左树根据科目表编码过滤
String zcgjAccounttableNumber = (String)this.getModel().getValue("zcgj_accounttable_number");
QFilter accountTableFilter = new QFilter("number", QCP.equals,zcgjAccounttableNumber);
List<QFilter> qFilterList = new ArrayList<>();
qFilterList.add(new QFilter("isleaf", QCP.equals,true));
arg0.setCustomQFilters(qFilterList);
DynamicObject accountTableFilterObj = BusinessDataServiceHelper.loadSingle("bd_accounttable", "id,number", new QFilter[]{accountTableFilter});
if(accountTableFilterObj!=null){
long id = accountTableFilterObj.getLong("id");
ListShowParameter param = (ListShowParameter) arg0.getFormShowParameter();
param.getTreeFilterParameter().getQFilters().add(new QFilter("accounttableid", QCP.equals, id));
// param.getTreeFilterParameter().getQFilters().add(new QFilter("isleaf", QCP.equals,true));
}
}
}
}

View File

@ -142,7 +142,7 @@ public class CostcompanyDefaultPlugin extends AbstractBillPlugIn implements Plu
//bos_costcenter
QFilter numberFilter = new QFilter("number",QCP.equals,costcompanyObj.getString("number"));
DynamicObject[] dynamicObjectAccItem = BusinessDataServiceHelper.load("bos_costcenter", "number,name", new QFilter[]{numberFilter});
if(dynamicObjectAccItem!=null && !dynamicObjectCollection.isEmpty()){
if(dynamicObjectAccItem!=null && !dynamicObjectCollection.isEmpty() && dynamicObjectAccItem.length > 0){
DynamicObject dynamicObject = dynamicObjectCollection.get(dynamicObjectCollection.size() - 1);
dynamicObject.set("std_entrycostcenter",dynamicObjectAccItem[0]);
}
@ -188,6 +188,8 @@ public class CostcompanyDefaultPlugin extends AbstractBillPlugIn implements Plu
DynamicObject[] dynamicObjectAccItem = BusinessDataServiceHelper.load("bos_costcenter", "number,name", new QFilter[]{numberFilter});
if(dynamicObjectAccItem!=null && dynamicObjectAccItem.length >0){
this.getModel().setValue("std_entrycostcenter", dynamicObjectAccItem[0], rowIndex);
}else{
this.getView().showErrorNotification("请设置成本中心!");
}
}
}