From 74ebce5819d4f40813ba16ea2f9476947b315ad0 Mon Sep 17 00:00:00 2001 From: chenshaoxin <1981897232@qq.com> Date: Wed, 14 May 2025 17:44:48 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BA=BA=EF=BC=9A=E9=99=88?= =?UTF-8?q?=E7=BB=8D=E9=91=AB=20=E6=97=A5=E6=9C=9F=EF=BC=9A2025/5/14=2017?= =?UTF-8?q?=EF=BC=9A30=20=E5=86=85=E5=AE=B9:=E8=B4=A6=E6=88=B7=E6=98=8E?= =?UTF-8?q?=E7=BB=86=E6=9F=A5=E8=AF=A2=E4=BF=9D=E5=AD=98=E6=93=8D=E4=BD=9C?= =?UTF-8?q?=E6=8F=92=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sys/plugin/form/banksavekdFormPlugin.java | 91 +++++++++++++++++++ .../sys/plugin/task/banksavekdTaskPlugin.java | 14 +++ 2 files changed, 105 insertions(+) create mode 100644 sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/form/banksavekdFormPlugin.java create mode 100644 sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/task/banksavekdTaskPlugin.java diff --git a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/form/banksavekdFormPlugin.java b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/form/banksavekdFormPlugin.java new file mode 100644 index 0000000..9c79d6c --- /dev/null +++ b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/form/banksavekdFormPlugin.java @@ -0,0 +1,91 @@ +package shkd.sys.sys.plugin.form; + +import com.alibaba.druid.util.StringUtils; +import kd.bos.dataentity.serialization.SerializationUtils; +import kd.bos.entity.EntityMetadataCache; +import kd.bos.entity.MainEntityType; +import kd.bos.entity.filter.FilterBuilder; +import kd.bos.entity.filter.FilterCondition; +import kd.bos.form.control.Control; +import kd.bos.form.control.FilterGrid; +import kd.bos.form.events.AfterDoOperationEventArgs; +import kd.bos.form.events.BeforeDoOperationEventArgs; +import kd.bos.form.operate.FormOperate; +import kd.bos.form.plugin.AbstractFormPlugin; +import kd.bos.orm.query.QFilter; + +import java.util.ArrayList; +import java.util.EventObject; +import java.util.List; + +public class banksavekdFormPlugin extends AbstractFormPlugin { + + @Override + public void registerListener(EventObject e) { + super.registerListener(e); + this.addItemClickListeners("tbmain"); + this.addClickListeners("bar_save"); + } + + @Override + public void beforeBindData(EventObject e) { + super.beforeBindData(e); + FilterGrid filterGrid = this.getView().getControl("shkd_filtergridap"); + filterGrid.setEntityNumber("bd_material"); + List keys = new ArrayList<>(); + keys.add("number");//编码,这个可以添加为过滤字段 + keys.add("name");//商品标签,多选基础资料,无法添加为过滤字段 + filterGrid.setFilterFieldKeys(keys); + } + + @Override + public void afterBindData(EventObject e) { + // FilterCondition为存储的过滤配置元数据,需要自行从存储加载 + String filterObj = (String) getModel().getValue("shkd_filter"); + FilterCondition filterCondition = null; + if (!StringUtils.isEmpty(filterObj)) { + filterCondition = SerializationUtils.fromJsonString(filterObj.toString(), FilterCondition.class); + } + if (filterCondition != null){ + FilterGrid filterGrid = getView().getControl("shkd_filtergridap"); + filterGrid.SetValue(filterCondition); + MainEntityType mainEntityType = EntityMetadataCache.getDataEntityType("bd_material"); + FilterBuilder filterBuilder = new FilterBuilder(mainEntityType, filterCondition); + filterBuilder.buildFilter(); + QFilter qFilter = filterBuilder.getQFilter(); + System.out.println(qFilter); + } + super.afterBindData(e); + + } + + @Override + public void click(EventObject evt) { + + } + + @Override + public void afterDoOperation(AfterDoOperationEventArgs afterDoOperationEventArgs) { + + } + + @Override + public void beforeDoOperation(BeforeDoOperationEventArgs args) { + FormOperate oprate = (FormOperate) args.getSource(); + String operationKey = oprate.getOperateKey(); + if (StringUtils.equalsIgnoreCase("save", operationKey)) { + FilterGrid filterGrid = getControl("shkd_filtergridap"); + FilterGrid.FilterGridState filterGridState = filterGrid.getFilterGridState(); + + //buildFilter(filterGridState); //可以使用FilterBuilder类进行条件预解析,如果解析过程有异常会自动抛错 + FilterCondition filterCondition = filterGridState.getFilterCondition(); + // 实现filtercondition的存储逻辑,为了示例简单这里不演示了 + String filter = null; + // 序列化 + if (filterCondition != null) { + filter = SerializationUtils.toJsonString(filterCondition); + } + getModel().setValue("shkd_filter", filter); + } + } +} diff --git a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/task/banksavekdTaskPlugin.java b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/task/banksavekdTaskPlugin.java new file mode 100644 index 0000000..c3afbd3 --- /dev/null +++ b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/task/banksavekdTaskPlugin.java @@ -0,0 +1,14 @@ +package shkd.sys.sys.plugin.task; + +import kd.bos.context.RequestContext; +import kd.bos.exception.KDException; +import kd.bos.schedule.executor.AbstractTask; + +import java.util.Map; + +public class banksavekdTaskPlugin extends AbstractTask { + @Override + public void execute(RequestContext requestContext, Map map) throws KDException { + + } +}