资源清单动态表单扩展系统插件优化逻辑,单独为采购申请单添加过滤逻辑

This commit is contained in:
xuhaihui 2025-09-10 11:25:19 +08:00
parent f3035b011f
commit 4785da9a2b
1 changed files with 62 additions and 7 deletions

View File

@ -1,14 +1,28 @@
package zcgj.zcdev.zcdev.pr.plugin.form;
import kd.bos.dataentity.resource.ResManager;
import kd.bos.entity.tree.TreeNode;
import kd.bos.form.FormShowParameter;
import kd.bos.form.IPageCache;
import kd.bos.form.control.Button;
import kd.bos.form.control.Image;
import kd.bos.form.control.Search;
import kd.bos.form.control.TreeView;
import kd.bos.form.events.SetFilterEvent;
import kd.bos.list.ListShowParameter;
import kd.bos.list.events.BuildTreeListFilterEvent;
import kd.bos.orm.query.QCP;
import kd.bos.orm.query.QFilter;
import kd.bos.tree.TreeFilterParameter;
import kd.ec.basedata.common.enums.ResourceTypeEnum;
import kd.ec.basedata.formplugin.ResourceItemListPlugin;
import java.util.EventObject;
import java.util.Map;
/**
* 资源清单动态表单扩展系统插件
*/
public class ResourceFilterExtPlugin extends ResourceItemListPlugin {
@Override
public void beforeBindData(EventObject e) {
@ -19,12 +33,13 @@ public class ResourceFilterExtPlugin extends ResourceItemListPlugin {
String firstOpen = this.getPageCache().get("firstOpen");
if (firstOpen == null) {
// this.getPageCache().put("firstOpen", "false");
this.getPageCache().put("firstOpen","false");
this.getPageCache().put("firstOpen", "false");
Object originFormId = customParams.get("originFormId");//源表单ID
if (originFormId != null && originFormId.equals("ecma_purchaseapply")) {
//采购申请单
this.setResourceTypeStyle("material");
this.afterSelectedTag("material");
}
// this.afterSelectedTag("material");
@ -33,15 +48,15 @@ public class ResourceFilterExtPlugin extends ResourceItemListPlugin {
if (contractType.toString().equals("wzcg01")) {//物资采购
this.setResourceTypeStyle("material");
this.afterSelectedTag("material");
} else if (contractType.toString().equals("sbcg")||(contractType.toString().equals("sbzl"))) {//设备采购
} else if (contractType.toString().equals("sbcg") || (contractType.toString().equals("sbzl"))) {//设备采购
this.setResourceTypeStyle("equipment");
this.afterSelectedTag("equipment");
}else if (contractType.toString().equals("qtcc") || contractType.toString().equals("lwlcc")|| contractType.toString().equals("ck")||
contractType.toString().equals("zyfbcc")|| contractType.toString().equals("jjbc")||
contractType.toString().equals("yslht")|| contractType.toString().equals("qtzclht")) {//产出物
} else if (contractType.toString().equals("qtcc") || contractType.toString().equals("lwlcc") || contractType.toString().equals("ck") ||
contractType.toString().equals("zyfbcc") || contractType.toString().equals("jjbc") ||
contractType.toString().equals("yslht") || contractType.toString().equals("qtzclht")) {//产出物
this.setResourceTypeStyle("turnover");
this.afterSelectedTag("turnover");
}else {
} else {
this.setResourceTypeStyle("material");
this.afterSelectedTag("material");
}
@ -77,10 +92,50 @@ public class ResourceFilterExtPlugin extends ResourceItemListPlugin {
if (originFormId != null && originFormId.equals("ecma_purchaseapply")) {
//采购申请单
this.getView().setVisible(true, new String[]{"flexpanelmaterial"});
this.getView().setVisible(false, new String[]{"flexpanelsub", "flexpanellabour", "flexpanelcomposite", "flexpanelequipment", "flexpanelturnover", "flexpanelother"});
this.getView().setVisible(false, new String[]{"flexpanelequipment", "flexpanellabour", "flexpanelcomposite", "flexpanelturnover", "flexpanelother", "flexpanelsub"});
}
}
/* public void setFilter(SetFilterEvent e) {
IPageCache pageCache = this.getPageCache();
String nodeid = pageCache.get("focusnode_text_key");
String resourceType = pageCache.get("selected_tag_key");
QFilter resourceTypeFilter = null;
if (resourceType != null) {
resourceTypeFilter = new QFilter("resourcetype", "=", ResourceTypeEnum.valueOf(resourceType).value);
} else {
resourceTypeFilter = new QFilter("resourcetype", "!=", ResourceTypeEnum.COMPOSITE.getValue());
}
FormShowParameter formShowParameter = this.getView().getFormShowParameter();
Map<String, Object> customParams = formShowParameter.getCustomParams();
Object originFormId = customParams.get("originFormId");//源表单ID
if (originFormId != null && originFormId.equals("ecma_purchaseapply")) {
//采购申请单
resourceTypeFilter = new QFilter("resourcetype", "=", "03");
}
QFilter resourceFilter = null;
if (nodeid != null) {
resourceFilter = new QFilter("resource", "in", this.getChildrenNodes(nodeid));
}
e.getQFilters().add(resourceFilter);
e.getQFilters().add(resourceTypeFilter);
TreeNode focusNode = new TreeNode();
if (nodeid == null) {
nodeid = "1";
}
focusNode.setId(nodeid);
TreeView treeView = (TreeView) this.getControl("treeview");
treeView.focusNode(focusNode);
}*/
@Override
public void buildTreeListFilter(BuildTreeListFilterEvent e) {
super.buildTreeListFilter(e);
}
@Override
public void registerListener(EventObject e) {
Image subLabel = (Image) this.getView().getControl("sub");