From 48e4d8e33157f5256697f6b79bb7aee9c83dbd83 Mon Sep 17 00:00:00 2001 From: chenshaoxin <1981897232@qq.com> Date: Fri, 23 May 2025 11:23:33 +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/23=2010?= =?UTF-8?q?=EF=BC=9A30=20=E5=86=85=E5=AE=B9:=E6=94=B6=E6=AC=BE=E5=A4=84?= =?UTF-8?q?=E7=90=86=E8=A1=A8=E5=8D=95=E6=8F=92=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sys/plugin/form/CasRecbillFormPlugin.java | 104 ++++++++++++++++++ 1 file changed, 104 insertions(+) create mode 100644 sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/form/CasRecbillFormPlugin.java diff --git a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/form/CasRecbillFormPlugin.java b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/form/CasRecbillFormPlugin.java new file mode 100644 index 0000000..36e35d4 --- /dev/null +++ b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/form/CasRecbillFormPlugin.java @@ -0,0 +1,104 @@ +package shkd.sys.sys.plugin.form; + +import kd.bos.dataentity.entity.DynamicObject; +import kd.bos.dataentity.entity.DynamicObjectCollection; +import kd.bos.entity.datamodel.events.PropertyChangedArgs; +import kd.bos.form.field.BasedataEdit; +import kd.bos.form.field.events.BeforeF7SelectEvent; +import kd.bos.form.field.events.BeforeF7SelectListener; +import kd.bos.form.plugin.AbstractFormPlugin; +import kd.bos.list.ListShowParameter; +import kd.bos.orm.query.QFilter; +import kd.bos.util.StringUtils; + +import java.util.Arrays; +import java.util.EventObject; +import java.util.List; + +/** + * 单据界面插件 + */ +public class CasRecbillFormPlugin extends AbstractFormPlugin implements BeforeF7SelectListener { + @Override + public void registerListener(EventObject e) { + super.registerListener(e); + //监听基础资料 + BasedataEdit laxv_itemclassfield = this.getView().getControl("shkd_xkuse");//单据类型(星空) + laxv_itemclassfield.addBeforeF7SelectListener(this); + + } + + @Override + public void propertyChanged(PropertyChangedArgs e) { + super.propertyChanged(e); + List list = Arrays.asList("1", "2", "3", "4", "5", "6"); + String name = e.getProperty().getName(); + if ("shkd_xkbilltype".equals(name)) { + String NewValue = (String) e.getChangeSet()[0].getNewValue(); + String NewValuetype = getType(NewValue); + if (list.contains(NewValue)) { + DynamicObjectCollection entrys = (DynamicObjectCollection) this.getModel().getValue("entry"); + int i=0; + for (DynamicObject entry : entrys) { + DynamicObject shkd_xkuse = entry.getDynamicObject("shkd_xkuse");//用途 + if (shkd_xkuse != null) { + String shkd_businesstype = shkd_xkuse.getString("shkd_businesstype"); + if (!NewValuetype.equals(shkd_businesstype)){ + this.getModel().setValue("shkd_xkuse",null,i); + } + } + i++; + } + } + } + } + + @Override + public void beforeF7Select(BeforeF7SelectEvent beforeF7SelectEvent) { + String name = beforeF7SelectEvent.getProperty().getName(); + if (name.equals("shkd_xkuse")) { + String shkd_xkbilltype = (String) this.getModel().getValue("shkd_xkbilltype");//单据类型 + QFilter qFilter = null; + ListShowParameter showParameter = (ListShowParameter) beforeF7SelectEvent.getFormShowParameter(); + if (!StringUtils.isEmpty(shkd_xkbilltype)) { + switch (shkd_xkbilltype) { + case "1": + qFilter = new QFilter("shkd_businesstype", QFilter.equals, "采购业务"); + showParameter.getListFilterParameter().setFilter(qFilter); + break; + case "2": + case "3": + case "4": + qFilter = new QFilter("shkd_businesstype", QFilter.equals, "其他业务"); + showParameter.getListFilterParameter().setFilter(qFilter); + break; + case "5": + case "6": + qFilter = new QFilter("shkd_businesstype", QFilter.equals, "工资发放"); + showParameter.getListFilterParameter().setFilter(qFilter); + break; + default: + System.out.println("其他数字"); + break; + } + } + } + + } + + public String getType(String value) { + switch (value) { + case "1": + return "采购业务"; + case "2": + case "3": + case "4": + return "其他业务"; + case "5": + case "6": + return "工资发放"; + default: + return null; + } + } +} \ No newline at end of file