合同变更清单选择过滤插件
This commit is contained in:
		
							parent
							
								
									e087d24de1
								
							
						
					
					
						commit
						9547c02b0c
					
				| 
						 | 
				
			
			@ -0,0 +1,79 @@
 | 
			
		|||
package zcgj.zcdev.zcdev.pr.plugin.form;
 | 
			
		||||
 | 
			
		||||
import kd.bos.dataentity.entity.DynamicObject;
 | 
			
		||||
import kd.bos.dataentity.utils.StringUtils;
 | 
			
		||||
import kd.bos.form.field.events.BeforeF7SelectEvent;
 | 
			
		||||
import kd.bos.list.ListShowParameter;
 | 
			
		||||
import kd.bos.orm.query.QFilter;
 | 
			
		||||
import kd.bos.servicehelper.BusinessDataServiceHelper;
 | 
			
		||||
import kd.ec.contract.formplugin.ContractRevisionListingPlugin;
 | 
			
		||||
 | 
			
		||||
import java.util.List;
 | 
			
		||||
 | 
			
		||||
public class ContractRevisionListingExtPlugin extends ContractRevisionListingPlugin {
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public void beforeF7Select(BeforeF7SelectEvent beforef7selectevent) {
 | 
			
		||||
        switch (beforef7selectevent.getProperty().getName()) {
 | 
			
		||||
            case "listid":
 | 
			
		||||
                this.beforeListingSelect(beforef7selectevent);
 | 
			
		||||
                break;
 | 
			
		||||
            case "listunitproject":
 | 
			
		||||
                this.beforeUnitProjectSelect(beforef7selectevent);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    private void beforeListingSelect(BeforeF7SelectEvent beforef7selectevent) {
 | 
			
		||||
        ListShowParameter lsp = (ListShowParameter)beforef7selectevent.getFormShowParameter();
 | 
			
		||||
        List<QFilter> qFilters = lsp.getListFilterParameter().getQFilters();
 | 
			
		||||
        this.addContractAndModelFilter(qFilters);
 | 
			
		||||
        this.addNewListingSuperFilter(qFilters);
 | 
			
		||||
        int row = beforef7selectevent.getRow();
 | 
			
		||||
        DynamicObject con = (DynamicObject)this.getModel().getValue("contract");
 | 
			
		||||
        String baseType = BusinessDataServiceHelper.loadSingle(con.getDynamicObject("contracttype").getPkValue(), "ec_conttype").getDynamicObject("contattr").getString("basictype");
 | 
			
		||||
        String subChangeType = (String)this.getModel().getValue("subchangetype", row);
 | 
			
		||||
        /*if (StringUtils.equals(subChangeType, "1") && !"09".equals(baseType)) {
 | 
			
		||||
            qFilters.add(new QFilter("lstsettleqty", "<", "totalqty", true));
 | 
			
		||||
        }*/
 | 
			
		||||
 | 
			
		||||
        int rowIndex = this.getModel().getEntryCurrentRowIndex("kapianentry");
 | 
			
		||||
        Object listModelId = this.getModel().getValue("listmodelid", rowIndex);
 | 
			
		||||
        lsp.setCustomParam("listmodelid", listModelId);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private void addContractAndModelFilter(List<QFilter> qFilters) {
 | 
			
		||||
        int rowIndex = this.getModel().getEntryCurrentRowIndex("kapianentry");
 | 
			
		||||
        Object listModelId = this.getModel().getValue("listmodelid", rowIndex);
 | 
			
		||||
        if (StringUtils.isNotBlank(listModelId)) {
 | 
			
		||||
            qFilters.add(new QFilter("listingmodel", "=", Long.parseLong(listModelId.toString())));
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        DynamicObject contract = (DynamicObject)this.getModel().getValue("contract");
 | 
			
		||||
        if (contract != null) {
 | 
			
		||||
            qFilters.add(new QFilter("contractid", "=", contract.getLong("id")));
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private void addNewListingSuperFilter(List<QFilter> qFilters) {
 | 
			
		||||
        for(DynamicObject entry : this.getModel().getEntryEntity("entryentity")) {
 | 
			
		||||
            if (!"3".equals(entry.getString("subchangetype")) && !"2".equals(entry.getString("subchangetype"))) {
 | 
			
		||||
                DynamicObject listing = entry.getDynamicObject("listid");
 | 
			
		||||
                if (listing != null) {
 | 
			
		||||
                    qFilters.add(new QFilter("id", "<>", listing.getLong("id")));
 | 
			
		||||
                }
 | 
			
		||||
            } else {
 | 
			
		||||
                DynamicObject parent = entry.getDynamicObject("parentgroup");
 | 
			
		||||
                if (parent != null) {
 | 
			
		||||
                    boolean isLeaf = parent.getBoolean("isleaf");
 | 
			
		||||
                    if (isLeaf) {
 | 
			
		||||
                        qFilters.add(new QFilter("id", "<>", parent.getLong("id")));
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
		Reference in New Issue