支出合同确认单增加工序和科目分类过滤
This commit is contained in:
parent
57763f863b
commit
4f2f90577b
|
@ -15,6 +15,10 @@ import kd.bos.form.ShowType;
|
||||||
import kd.bos.form.control.EntryGrid;
|
import kd.bos.form.control.EntryGrid;
|
||||||
import kd.bos.form.events.HyperLinkClickEvent;
|
import kd.bos.form.events.HyperLinkClickEvent;
|
||||||
import kd.bos.form.events.HyperLinkClickListener;
|
import kd.bos.form.events.HyperLinkClickListener;
|
||||||
|
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.QCP;
|
||||||
import kd.bos.orm.query.QFilter;
|
import kd.bos.orm.query.QFilter;
|
||||||
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
||||||
|
@ -31,7 +35,7 @@ import java.util.List;
|
||||||
/**
|
/**
|
||||||
* 支出合同确认单插件
|
* 支出合同确认单插件
|
||||||
*/
|
*/
|
||||||
public class OutContractFinaceConfirmePlugin extends AbstractBillPlugIn implements Plugin, HyperLinkClickListener {
|
public class OutContractFinaceConfirmePlugin extends AbstractBillPlugIn implements Plugin, HyperLinkClickListener, BeforeF7SelectListener {
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -108,6 +112,9 @@ public class OutContractFinaceConfirmePlugin extends AbstractBillPlugIn impleme
|
||||||
if(newValue!=null){
|
if(newValue!=null){
|
||||||
initData(newValue.getLong("id"));
|
initData(newValue.getLong("id"));
|
||||||
}
|
}
|
||||||
|
}else if(StringUtils.equals(name, "zcgj_expenseitem")){ //费用项目发生改变时,清空科目分类
|
||||||
|
int rowIndex = changeData.getRowIndex();
|
||||||
|
this.getModel().setValue("zcgj_accounttype",null,rowIndex);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -148,6 +155,16 @@ public class OutContractFinaceConfirmePlugin extends AbstractBillPlugIn impleme
|
||||||
super.registerListener(e);
|
super.registerListener(e);
|
||||||
EntryGrid control = this.getControl("zcgj_entryentity");
|
EntryGrid control = this.getControl("zcgj_entryentity");
|
||||||
control.addHyperClickListener(this);
|
control.addHyperClickListener(this);
|
||||||
|
|
||||||
|
BasedataEdit contractprocess = this.getControl("zcgj_cbs"); //承包工序
|
||||||
|
if(contractprocess != null) {
|
||||||
|
contractprocess.addBeforeF7SelectListener(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
BasedataEdit accounttype = this.getControl("zcgj_accounttype"); //科目分类
|
||||||
|
if(accounttype != null) {
|
||||||
|
accounttype.addBeforeF7SelectListener(this);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -219,4 +236,58 @@ public class OutContractFinaceConfirmePlugin extends AbstractBillPlugIn impleme
|
||||||
}
|
}
|
||||||
return BigDecimal.ZERO;
|
return BigDecimal.ZERO;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void beforeF7Select(BeforeF7SelectEvent beforeF7SelectEvent) {
|
||||||
|
String name = beforeF7SelectEvent.getProperty().getName();
|
||||||
|
if(name.equals("zcgj_cbs")) {//工序根据项目过滤
|
||||||
|
Object projectObj = this.getModel().getValue("zcgj_project");
|
||||||
|
if(projectObj instanceof DynamicObject){
|
||||||
|
DynamicObject project = (DynamicObject) projectObj;
|
||||||
|
QFilter qFilter = new QFilter("project.id", QCP.equals, project.getLong("id"));
|
||||||
|
QFilter treeFilter = new QFilter("project.number", QCP.equals, project.getString("number"));
|
||||||
|
ListShowParameter showParameter = (ListShowParameter) beforeF7SelectEvent.getFormShowParameter();
|
||||||
|
showParameter.getListFilterParameter().getQFilters().add(qFilter);
|
||||||
|
showParameter.getTreeFilterParameter().getQFilters().add(treeFilter);
|
||||||
|
}
|
||||||
|
|
||||||
|
}else if(name.equals("zcgj_accounttype")){ //科目分类根据科目分类基础资料过滤
|
||||||
|
int row = beforeF7SelectEvent.getRow();
|
||||||
|
System.out.println();
|
||||||
|
DynamicObjectCollection dynamicObjectCollection = this.getModel().getDataEntity(true).getDynamicObjectCollection("zcgj_expenseitementry");
|
||||||
|
if(dynamicObjectCollection!=null){
|
||||||
|
DynamicObject zcgjExpenseitem = dynamicObjectCollection.get(row).getDynamicObject("zcgj_expenseitem");
|
||||||
|
if(zcgjExpenseitem!=null){
|
||||||
|
QFilter filter = new QFilter("zcgj_entryentity.zcgj_fee",QCP.equals,zcgjExpenseitem.getLong("id"));
|
||||||
|
//分录过滤
|
||||||
|
//使用BusinessDataServiceHelper.load查出来的数据,返回的是符合条件的整单,即使只有分录中的某一行符合条件,也会返回整张单包括其他分录行的数据
|
||||||
|
//使用 QueryServiceHelper.query查出来的数据只会包含符合条件的分录行,不含其他行数据
|
||||||
|
DynamicObjectCollection accountfeeEntries = QueryServiceHelper.query("zcgj_accountfee", "zcgj_entryentity.zcgj_accounttype.number", new QFilter[]{filter});
|
||||||
|
List<String> numbers = new ArrayList<>();
|
||||||
|
if(accountfeeEntries!=null){
|
||||||
|
for (DynamicObject dynamicObject : accountfeeEntries) {
|
||||||
|
String zcgjAccounttypeNumber = dynamicObject.getString("zcgj_entryentity.zcgj_accounttype.number");
|
||||||
|
if(zcgjAccounttypeNumber!=null){
|
||||||
|
numbers.add(zcgjAccounttypeNumber);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
QFilter qFilter = new QFilter("number", QCP.in, numbers);
|
||||||
|
QFilter treeFilter = new QFilter("number", QCP.in, numbers);
|
||||||
|
ListShowParameter showParameter = (ListShowParameter) beforeF7SelectEvent.getFormShowParameter();
|
||||||
|
showParameter.getListFilterParameter().getQFilters().add(qFilter);
|
||||||
|
}else{
|
||||||
|
this.getView().showErrorNotification("请选择费用项目!");
|
||||||
|
beforeF7SelectEvent.setCancel(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue