工程项目系统二开标记

This commit is contained in:
xuhaihui 2025-08-14 10:48:18 +08:00
parent 2619a92f08
commit 3dc81d2b33
1 changed files with 188 additions and 0 deletions

View File

@ -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;
}
}
}