From f79ca2888f9fc114ccff7c06cabdf0ceb3edfba2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E8=B4=B5=E5=BC=BA?= Date: Tue, 27 May 2025 17:46:01 +0800 Subject: [PATCH] =?UTF-8?q?=E9=87=87=E8=B4=AD=E8=AE=A2=E5=8D=95-=E9=87=87?= =?UTF-8?q?=E8=B4=AD=E9=9C=80=E6=B1=82=E5=B8=A6=E5=87=BA=E7=89=A9=E6=96=99?= =?UTF-8?q?=E6=98=8E=E7=BB=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../OrderFormCarryMaterialPlugin.java | 70 +++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 main/java/shkd/repc/repe/formplugin/OrderFormCarryMaterialPlugin.java diff --git a/main/java/shkd/repc/repe/formplugin/OrderFormCarryMaterialPlugin.java b/main/java/shkd/repc/repe/formplugin/OrderFormCarryMaterialPlugin.java new file mode 100644 index 0000000..9e41dd0 --- /dev/null +++ b/main/java/shkd/repc/repe/formplugin/OrderFormCarryMaterialPlugin.java @@ -0,0 +1,70 @@ +package shkd.repc.repe.formplugin; + +import kd.bos.dataentity.entity.DynamicObject; +import kd.bos.dataentity.entity.DynamicObjectCollection; +import kd.bos.entity.datamodel.ListSelectedRow; +import kd.bos.form.field.RefBillEdit; +import kd.bos.form.field.events.AfterF7SelectEvent; +import kd.bos.form.field.events.AfterF7SelectListener; +import kd.bos.form.plugin.AbstractFormPlugin; +import kd.bos.servicehelper.BusinessDataServiceHelper; +import kd.sdk.plugin.Plugin; + +import java.util.EventObject; + +/** + * 动态表单插件 + */ +public class OrderFormCarryMaterialPlugin extends AbstractFormPlugin implements Plugin, AfterF7SelectListener { + + @Override + public void registerListener(EventObject e) { + super.registerListener(e); + RefBillEdit bEdit = this.getView().getControl("qeug_refbillfield"); + bEdit.addAfterF7SelectListener(this); + } + + @Override + public void afterF7Select(AfterF7SelectEvent afterF7SelectEvent) { + // 获取选中行主键 + ListSelectedRow listSelectedRow = afterF7SelectEvent.getListSelectedRow(); + Long primaryKeyValue = (Long) listSelectedRow.getPrimaryKeyValue(); + + // 验证主键有效性 + if (primaryKeyValue == null || primaryKeyValue.compareTo(0L) == 0) { + return; + } + + // 加载单据数据 + DynamicObject dynamicObject = BusinessDataServiceHelper.loadSingle(primaryKeyValue, "recon_settleplanbill"); + if (dynamicObject == null) { + return; + } + + // 获取结算计划单明细 + DynamicObjectCollection entryCollection = dynamicObject.getDynamicObjectCollection("qeug_cgxqentry"); + if (entryCollection == null || entryCollection.isEmpty()) { + return; + } + + // 获取当前单据物料明细 + DynamicObjectCollection entryEntity = this.getModel().getEntryEntity("orderformentry"); + + // 清空现有数据(如果有) + if (!entryEntity.isEmpty()) { + this.getModel().deleteEntryData("orderformentry"); + } + + // 填充物料数据 + for (int i = 0; i < entryCollection.size(); i++) { + DynamicObject settlePlanMaterial = entryCollection.get(i).getDynamicObject("qeug_materialmasterid"); + if (settlePlanMaterial != null) { + this.getModel().insertEntryRow("orderformentry", i); + this.getModel().setValue("material", settlePlanMaterial, i); + } + } + + // 刷新界面 + this.getView().updateView("orderformentry"); + } +} \ No newline at end of file