工程项目系统二开标记
This commit is contained in:
		
							parent
							
								
									2619a92f08
								
							
						
					
					
						commit
						3dc81d2b33
					
				| 
						 | 
				
			
			@ -0,0 +1,188 @@
 | 
			
		|||
//
 | 
			
		||||
// Source code recreated from a .class file by IntelliJ IDEA
 | 
			
		||||
// (powered by FernFlower decompiler)
 | 
			
		||||
//
 | 
			
		||||
 | 
			
		||||
package zcgj.zcdev.zcdev.pr.plugin.form;
 | 
			
		||||
 | 
			
		||||
import java.util.ArrayList;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
import java.util.Set;
 | 
			
		||||
 | 
			
		||||
import kd.bos.base.AbstractBasedataController;
 | 
			
		||||
import kd.bos.dataentity.entity.DynamicObject;
 | 
			
		||||
import kd.bos.dataentity.utils.StringUtils;
 | 
			
		||||
import kd.bos.entity.BillEntityType;
 | 
			
		||||
import kd.bos.entity.MainEntityType;
 | 
			
		||||
import kd.bos.filter.CommonBaseDataFilterColumn;
 | 
			
		||||
import kd.bos.form.FormShowParameter;
 | 
			
		||||
import kd.bos.form.IFormView;
 | 
			
		||||
import kd.bos.form.field.BasedataEdit;
 | 
			
		||||
import kd.bos.form.field.events.BaseDataCustomControllerEvent;
 | 
			
		||||
import kd.bos.form.field.events.BasedataControllerSourceEnum;
 | 
			
		||||
import kd.bos.list.BillList;
 | 
			
		||||
import kd.bos.mvc.list.ListView;
 | 
			
		||||
import kd.bos.orm.query.QFilter;
 | 
			
		||||
import kd.bos.servicehelper.MetadataServiceHelper;
 | 
			
		||||
import kd.bos.servicehelper.QueryServiceHelper;
 | 
			
		||||
import kd.ec.basedata.business.model.cont.ProjectConstant;
 | 
			
		||||
import kd.ec.basedata.common.enums.ProjectStatusEnum;
 | 
			
		||||
import kd.ec.basedata.common.enums.StatusEnum;
 | 
			
		||||
import kd.ec.basedata.common.permission.IIgnoreApp;
 | 
			
		||||
import kd.ec.basedata.common.permission.MetaEntityNumberConverter;
 | 
			
		||||
import kd.ec.basedata.common.permission.ProjectPermissionHelper;
 | 
			
		||||
import kd.ec.basedata.common.utils.MetaDataUtil;
 | 
			
		||||
 | 
			
		||||
public class ProjectControllerExt extends AbstractBasedataController implements IIgnoreApp {
 | 
			
		||||
    public ProjectControllerExt() {
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void buildBaseDataCoreFilter(BaseDataCustomControllerEvent event) {
 | 
			
		||||
        BasedataControllerSourceEnum sourceEnum = event.getSourceEnum();
 | 
			
		||||
        switch (sourceEnum) {
 | 
			
		||||
            case F7:
 | 
			
		||||
                this.buildProjectF7Filter(event);
 | 
			
		||||
                break;
 | 
			
		||||
            case FUZZY:
 | 
			
		||||
                this.buildProjectFuzzyFilter(event);
 | 
			
		||||
                break;
 | 
			
		||||
            case COMMON:
 | 
			
		||||
                this.buildProjectCommonFilter(event);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    protected void buildProjectF7Filter(BaseDataCustomControllerEvent event) {
 | 
			
		||||
        if (event.getSource() instanceof BillList) {
 | 
			
		||||
            BillList source = (BillList) event.getSource();
 | 
			
		||||
            if (!this.needIgnoreForF7(source)) {
 | 
			
		||||
                String entityNum = MetaDataUtil.getEntityNumByF7BillList(source);
 | 
			
		||||
                String appId = MetaDataUtil.getAppIdByEntityNum(entityNum);
 | 
			
		||||
                List<QFilter> qFilters = this.buildQFilter(appId, entityNum);
 | 
			
		||||
                String parentPageId = source.getView().getFormShowParameter().getParentPageId();
 | 
			
		||||
                IFormView parentView = source.getView().getViewNoPlugin(parentPageId);
 | 
			
		||||
                String viewAppId = source.getView().getFormShowParameter().getAppId();
 | 
			
		||||
                this.projectStatusFilter(entityNum, viewAppId, event);
 | 
			
		||||
                event.addQFilters(qFilters);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    protected void buildProjectFuzzyFilter(BaseDataCustomControllerEvent event) {
 | 
			
		||||
        if (event.getSource() instanceof BasedataEdit) {
 | 
			
		||||
            BasedataEdit source = (BasedataEdit) event.getSource();
 | 
			
		||||
            IFormView billView = source.getView();
 | 
			
		||||
            List<QFilter> qFilters = this.buildQFilterByView(billView);
 | 
			
		||||
            String formId = this.getFormIdByView(billView);
 | 
			
		||||
            String appId = source.getView().getFormShowParameter().getAppId();
 | 
			
		||||
            this.projectStatusFilter(formId, appId, event);
 | 
			
		||||
            event.addQFilters(qFilters);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    protected void buildProjectCommonFilter(BaseDataCustomControllerEvent event) {
 | 
			
		||||
        if (event.getSource() instanceof CommonBaseDataFilterColumn) {
 | 
			
		||||
            CommonBaseDataFilterColumn source = (CommonBaseDataFilterColumn) event.getSource();
 | 
			
		||||
            IFormView view = source.getView();
 | 
			
		||||
            List<QFilter> qFilters = this.buildQFilterByView(view);
 | 
			
		||||
            event.getQfilters().addAll(qFilters);
 | 
			
		||||
            String formId = this.getFormIdByView(view);
 | 
			
		||||
            String appId = view.getFormShowParameter().getAppId();
 | 
			
		||||
            this.projectStatusFilter(formId, appId, event);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    protected List<QFilter> buildQFilterByView(IFormView view) {
 | 
			
		||||
        FormShowParameter formShowParameter = view.getFormShowParameter();
 | 
			
		||||
        String formId = MetaDataUtil.getEntityTypeId(formShowParameter);
 | 
			
		||||
        String appId = formShowParameter.getAppId();
 | 
			
		||||
        if (this.needIgnoreForApp(appId)) {
 | 
			
		||||
            return new ArrayList();
 | 
			
		||||
        } else {
 | 
			
		||||
            String convertToEntityNumber = MetaEntityNumberConverter.getInstance().convertToEntityNumber(formId);
 | 
			
		||||
            if (StringUtils.isNotEmpty(convertToEntityNumber)) {
 | 
			
		||||
                formId = convertToEntityNumber;
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            return this.buildQFilter(appId, formId);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    protected List<QFilter> buildQFilter(String appId, String entityNum) {
 | 
			
		||||
        List<QFilter> qFilterList = new ArrayList();
 | 
			
		||||
        Set<Long> allProjectWithPermission = ProjectPermissionHelper.getAllProjectWithPermission(appId, entityNum);
 | 
			
		||||
        QFilter idQFilter = new QFilter(ProjectConstant.ID_ENTITY_PK, "in", allProjectWithPermission);
 | 
			
		||||
        QFilter billStatusFilter = new QFilter("billstatus", "=", StatusEnum.Checked.getValue());
 | 
			
		||||
        qFilterList.add(billStatusFilter);
 | 
			
		||||
        qFilterList.add(idQFilter);
 | 
			
		||||
        return qFilterList;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    protected String getFormIdByView(IFormView view) {
 | 
			
		||||
        String formId = view.getFormShowParameter().getFormId();
 | 
			
		||||
        if (view instanceof ListView) {
 | 
			
		||||
            formId = ((ListView) view).getBillFormId();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        return formId;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    protected void handleCloseAndFinishedProject(IFormView iFormView, String formId, BaseDataCustomControllerEvent event) {
 | 
			
		||||
        QFilter numberFilter = new QFilter("number", "=", formId);
 | 
			
		||||
        DynamicObject bosFormMeta = QueryServiceHelper.queryOne("bos_formmeta", "id", new QFilter[]{numberFilter});
 | 
			
		||||
        if (bosFormMeta == null && formId.endsWith("_mob")) {
 | 
			
		||||
            formId = formId.substring(0, formId.length() - 4);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        MainEntityType dataEntityType = MetadataServiceHelper.getDataEntityType(formId);
 | 
			
		||||
        if (!this.isListView(iFormView) && dataEntityType instanceof BillEntityType) {
 | 
			
		||||
            event.addQFilter(new QFilter("status", "!=", ProjectStatusEnum.CLOSED.getValue()));
 | 
			
		||||
            event.addQFilter(new QFilter("status", "!=", ProjectStatusEnum.FINISH.getValue()));
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    protected boolean isListView(IFormView iFormView) {
 | 
			
		||||
        return iFormView instanceof ListView;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    protected void projectStatusFilter(String formId, String appId, BaseDataCustomControllerEvent event) {
 | 
			
		||||
        QFilter statusFilter = this.getStatusFilter(formId, appId);
 | 
			
		||||
        if (statusFilter != null) {
 | 
			
		||||
            event.addQFilter(statusFilter);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    protected QFilter getStatusFilter(String formId, String appId) {
 | 
			
		||||
        QFilter statusFilter = null;
 | 
			
		||||
        if (appId == null) {
 | 
			
		||||
            return null;
 | 
			
		||||
        } else {
 | 
			
		||||
            switch (appId) {
 | 
			
		||||
                case "ecpf":
 | 
			
		||||
                case "ecsa":
 | 
			
		||||
                    statusFilter = new QFilter("status", "!=", ProjectStatusEnum.CLOSED.getValue());
 | 
			
		||||
                    break;
 | 
			
		||||
                case "cont":
 | 
			
		||||
                case "ecma":
 | 
			
		||||
                case "ecco":
 | 
			
		||||
                case "eceq":
 | 
			
		||||
                case "ecevm":
 | 
			
		||||
                case "ecin":
 | 
			
		||||
                case "ecdes":
 | 
			
		||||
                    statusFilter = new QFilter("status", "!=", ProjectStatusEnum.PAUSE.getValue());
 | 
			
		||||
                default:
 | 
			
		||||
                    if (statusFilter == null) {
 | 
			
		||||
                        statusFilter = new QFilter("status", "!=", ProjectStatusEnum.CLOSED.getValue());
 | 
			
		||||
                    } else {
 | 
			
		||||
                        statusFilter.and(new QFilter("status", "!=", ProjectStatusEnum.CLOSED.getValue()));
 | 
			
		||||
                    }
 | 
			
		||||
 | 
			
		||||
                    statusFilter.and(new QFilter("status", "!=", ProjectStatusEnum.FINISH.getValue()));
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            return statusFilter;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
		Reference in New Issue