工程项目系统二开标记
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