工程资金付款申请单费用项目增加过滤
This commit is contained in:
		
							parent
							
								
									09119816f2
								
							
						
					
					
						commit
						e087d24de1
					
				| 
						 | 
				
			
			@ -4,24 +4,28 @@ import kd.bos.bill.AbstractBillPlugIn;
 | 
			
		|||
import kd.bos.bill.BillShowParameter;
 | 
			
		||||
import kd.bos.bill.OperationStatus;
 | 
			
		||||
import kd.bos.dataentity.entity.DynamicObject;
 | 
			
		||||
import kd.bos.entity.datamodel.events.ChangeData;
 | 
			
		||||
import kd.bos.dataentity.entity.DynamicObjectCollection;
 | 
			
		||||
import kd.bos.entity.datamodel.events.PropertyChangedArgs;
 | 
			
		||||
import kd.bos.permission.api.HasPermOrgResult;
 | 
			
		||||
import kd.bos.servicehelper.org.OrgUnitServiceHelper;
 | 
			
		||||
import kd.bos.servicehelper.permission.PermissionServiceHelper;
 | 
			
		||||
import kd.bos.servicehelper.user.UserServiceHelper;
 | 
			
		||||
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.mvc.bill.BillView;
 | 
			
		||||
import kd.bos.orm.query.QCP;
 | 
			
		||||
import kd.bos.orm.query.QFilter;
 | 
			
		||||
import kd.bos.servicehelper.QueryServiceHelper;
 | 
			
		||||
import kd.sdk.plugin.Plugin;
 | 
			
		||||
 | 
			
		||||
import java.util.ArrayList;
 | 
			
		||||
import java.util.EventObject;
 | 
			
		||||
import java.util.HashSet;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
import java.util.Set;
 | 
			
		||||
import java.util.stream.Collectors;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * 1:付款申请单通用插件
 | 
			
		||||
 */
 | 
			
		||||
public class PaymentapplyGeneralPlugin extends AbstractBillPlugIn implements Plugin {
 | 
			
		||||
public class PaymentapplyGeneralPlugin extends AbstractBillPlugIn implements Plugin, BeforeF7SelectListener {
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public void afterBindData(EventObject e) {
 | 
			
		||||
| 
						 | 
				
			
			@ -114,4 +118,51 @@ public class PaymentapplyGeneralPlugin extends AbstractBillPlugIn implements Plu
 | 
			
		|||
        }*/
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public void registerListener(EventObject e) {
 | 
			
		||||
        super.registerListener(e);
 | 
			
		||||
        //仅针对矿山下组织下的逻辑
 | 
			
		||||
        BasedataEdit expenseitem = this.getControl("zcgj_expenseitem"); //费用项目
 | 
			
		||||
        if (expenseitem != null) {
 | 
			
		||||
            expenseitem.addBeforeF7SelectListener(this);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public void beforeF7Select(BeforeF7SelectEvent beforeF7SelectEvent) {
 | 
			
		||||
        String name = beforeF7SelectEvent.getProperty().getName();
 | 
			
		||||
        String billFormId = ((BillView) this.getView()).getFormId();//单据标识
 | 
			
		||||
        if("ec_paymentapply".equals(billFormId)){//付款申请单
 | 
			
		||||
            if (name.equals("zcgj_expenseitem")) {  //科目分类根据科目分类基础资料过滤
 | 
			
		||||
                int row = beforeF7SelectEvent.getRow();
 | 
			
		||||
                DynamicObjectCollection dynamicObjectCollection = this.getModel().getDataEntity(true).getDynamicObjectCollection("entryentity");
 | 
			
		||||
                if (dynamicObjectCollection != null) {
 | 
			
		||||
                    String paymenttype = dynamicObjectCollection.get(row).getString("paymenttype");//支付类型
 | 
			
		||||
                    if("PREPAYMENT".equals(paymenttype)){
 | 
			
		||||
                        QFilter biztypefilter = new QFilter("zcgj_biztype", QCP.equals, "50"); //过滤业务单据为支出财务确认单
 | 
			
		||||
                        //分录过滤
 | 
			
		||||
                        //使用BusinessDataServiceHelper.load查出来的数据,返回的是符合条件的整单,即使只有分录中的某一行符合条件,也会返回整张单包括其他分录行的数据
 | 
			
		||||
                        //使用 QueryServiceHelper.query查出来的数据只会包含符合条件的分录行,不含其他行数据
 | 
			
		||||
                        DynamicObjectCollection accountfeeEntries = QueryServiceHelper.query("zcgj_accountfee",
 | 
			
		||||
                                "zcgj_entryentity.zcgj_fee.number", new QFilter[]{biztypefilter});//费用与科目分类单
 | 
			
		||||
                        List<String> numbers = new ArrayList<>();
 | 
			
		||||
                        if (accountfeeEntries != null) {
 | 
			
		||||
                            for (DynamicObject dynamicObject : accountfeeEntries) {
 | 
			
		||||
                                String zcgjAccounttypeNumber = dynamicObject.getString("zcgj_entryentity.zcgj_fee.number");
 | 
			
		||||
                                if (zcgjAccounttypeNumber != null) {
 | 
			
		||||
                                    numbers.add(zcgjAccounttypeNumber);
 | 
			
		||||
                                }
 | 
			
		||||
                            }
 | 
			
		||||
                        }
 | 
			
		||||
                        QFilter qFilter = new QFilter("number", QCP.in, numbers);
 | 
			
		||||
                        ListShowParameter formShowParameter = (ListShowParameter) beforeF7SelectEvent.getFormShowParameter();
 | 
			
		||||
                        formShowParameter.getListFilterParameter().getQFilters().add(qFilter);
 | 
			
		||||
                    }
 | 
			
		||||
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue