From 68338400382c915a3b472432d70d87f332dd157c Mon Sep 17 00:00:00 2001 From: xuhaihui <2098865055@qq.com> Date: Wed, 13 Aug 2025 14:10:01 +0800 Subject: [PATCH] =?UTF-8?q?=E9=87=87=E8=B4=AD=E7=94=B3=E8=AF=B7=E5=AD=97?= =?UTF-8?q?=E6=AE=B5=E8=BF=87=E6=BB=A4=E9=80=BB=E8=BE=91=E5=8A=A0=E4=BB=93?= =?UTF-8?q?=E5=BA=93=E4=BF=AE=E6=94=B9=E5=90=8E=E6=B8=85=E7=A9=BA=E9=87=87?= =?UTF-8?q?=E8=B4=AD=E7=94=B3=E8=AF=B7=E5=AD=97=E6=AE=B5=E9=80=BB=E8=BE=91?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../form/MaterialInbPurchaseApplyPlugin.java | 118 +++++++++++------- 1 file changed, 74 insertions(+), 44 deletions(-) diff --git a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/MaterialInbPurchaseApplyPlugin.java b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/MaterialInbPurchaseApplyPlugin.java index 2e41ce2..14a7220 100644 --- a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/MaterialInbPurchaseApplyPlugin.java +++ b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/MaterialInbPurchaseApplyPlugin.java @@ -14,9 +14,14 @@ import kd.bos.entity.datamodel.ListSelectedRowCollection; import kd.bos.entity.datamodel.events.ChangeData; import kd.bos.entity.datamodel.events.PropertyChangedArgs; import kd.bos.form.*; +import kd.bos.form.control.EntryGrid; import kd.bos.form.events.AfterDoOperationEventArgs; import kd.bos.form.events.BeforeDoOperationEventArgs; import kd.bos.form.events.ClosedCallBackEvent; +import kd.bos.form.field.BasedataEdit; +import kd.bos.form.field.RefBillEdit; +import kd.bos.form.field.events.BeforeF7SelectEvent; +import kd.bos.form.field.events.BeforeF7SelectListener; import kd.bos.form.operate.FormOperate; import kd.bos.list.ListShowParameter; import kd.bos.orm.query.QCP; @@ -33,15 +38,14 @@ import java.util.stream.Collectors; * 入库单表单插件 * 说明:1:入库单点击选择采购申请按钮后弹出对应采购申请分录内容,后通过选择弹出的采购申请分录行赋值给入库单中 * 2:采购申请字段内容修改后清空分录 + * 3:采购申请字段过滤逻辑加仓库修改后清空采购申请字段 */ -public class MaterialInbPurchaseApplyPlugin extends AbstractBillPlugIn implements Plugin { - public void beforeDoOperation(BeforeDoOperationEventArgs args) { - super.beforeDoOperation(args); - FormOperate operate = (FormOperate) args.getSource(); - if ("purchaseapply".equals(operate.getOperateKey())) { - //选择采购申请单 - this.doPurchaseApply(); - } +public class MaterialInbPurchaseApplyPlugin extends AbstractBillPlugIn implements Plugin, BeforeF7SelectListener { + @Override + public void registerListener(EventObject e) { + super.registerListener(e); + RefBillEdit purchaseApply = getView().getControl("zcgj_purchaseapply");//采购申请 + purchaseApply.addBeforeF7SelectListener(this); } @Override @@ -49,6 +53,7 @@ public class MaterialInbPurchaseApplyPlugin extends AbstractBillPlugIn implement super.propertyChanged(e); String key = e.getProperty().getName(); if ("zcgj_purchaseapply".equals(key)) { + //采购申请 ChangeData[] changeSet = e.getChangeSet(); ChangeData changeData = changeSet[0]; Object newValue = changeData.getNewValue();//新值 @@ -72,6 +77,67 @@ public class MaterialInbPurchaseApplyPlugin extends AbstractBillPlugIn implement entryCollection.clear(); this.getView().updateView("entryentity");//刷新分录 } + } else if ("warehouse".equals(key)) { + //仓库 + this.getModel().setValue("zcgj_purchaseapply", null);//清空采购申请单字段 + } + } + + @Override + public void beforeF7Select(BeforeF7SelectEvent beforeF7SelectEvent) { + String propertyName = beforeF7SelectEvent.getProperty().getName(); + Object project = this.getModel().getValue("project");//项目 + if (project != null) { + DynamicObject project1 = (DynamicObject) project; + ListShowParameter formShowParameter = (ListShowParameter) beforeF7SelectEvent.getFormShowParameter(); + List qFilters = new ArrayList<>(); + qFilters.add(new QFilter("project.id", QCP.in, project1.get("id"))); + formShowParameter.getListFilterParameter().setQFilters(qFilters); + } + } + + public void beforeDoOperation(BeforeDoOperationEventArgs args) { + super.beforeDoOperation(args); + FormOperate operate = (FormOperate) args.getSource(); + if ("purchaseapply".equals(operate.getOperateKey())) { + //选择采购申请单 + this.doPurchaseApply(); + } + } + + public void closedCallBack(ClosedCallBackEvent closedCallBackEvent) { + super.closedCallBack(closedCallBackEvent); + String actionId = closedCallBackEvent.getActionId(); + DynamicObjectCollection returnDataCollection = (DynamicObjectCollection) closedCallBackEvent.getReturnData(); + if (returnDataCollection == null) { + return; + } + if ("zcgj_selectpurchaseapply".equals(actionId) && returnDataCollection.size() > 0) { + for (DynamicObject returnData : returnDataCollection) { + int curIndex = this.getModel().createNewEntryRow("entryentity"); + this.getModel().updateCache(); + this.getView().setEnable(false, curIndex, new String[]{"oftaxamount", "notaxamount", "taxamount", "taxprice"}); + + long zcgj_bigintfield = returnData.getLong("zcgj_bigintfield");//采购申请单id + QFilter filter = new QFilter("purchaseentry.id", QCP.equals, zcgj_bigintfield); + DynamicObjectCollection purchaseApply = QueryServiceHelper.query("ecma_purchaseapply", + "purchaseentry,purchaseentry.material,purchaseentry.purchaseqty,purchaseentry.entrytaxrate,purchaseentry.price,purchaseentry.id,purchaseentry.remarks,purchaseentry.zcgj_incount", + new QFilter[]{filter});//采购申请单 + + long material = purchaseApply.get(0).getLong("purchaseentry.material");//采购申请分录-资源编码 + BigDecimal purchaseQty = (BigDecimal) purchaseApply.get(0).get("purchaseentry.purchaseqty");//采购申请分录-采购数量 + BigDecimal zcgj_inCount = (BigDecimal) purchaseApply.get(0).get("purchaseentry.zcgj_incount");//采购申请分录-已入库数量 + Object entryTaxRate = purchaseApply.get(0).get("purchaseentry.entrytaxrate");//采购申请分录-税率 + Object price = purchaseApply.get(0).get("purchaseentry.price");//采购申请分录-预估单价 + Object purchaseEntryId = purchaseApply.get(0).get("purchaseentry.id");//采购申请分录-预估单价 + Object remarks = purchaseApply.get(0).get("purchaseentry.remarks");//采购申请分录-备注 + this.getModel().setValue("material", material, curIndex);//资源编码 + this.getModel().setValue("entrytaxrate", entryTaxRate, curIndex);//税率名称 + this.getModel().setValue("qty", purchaseQty.subtract(zcgj_inCount), curIndex);//数量 + this.getModel().setValue("price", price, curIndex);//入库单价 + this.getModel().setValue("listingid", purchaseEntryId, curIndex);//合同清单id + this.getModel().setValue("note", remarks, curIndex);//备注 + } } } @@ -134,40 +200,4 @@ public class MaterialInbPurchaseApplyPlugin extends AbstractBillPlugIn implement this.getView().showForm(formShowParameter); } } - - public void closedCallBack(ClosedCallBackEvent closedCallBackEvent) { - super.closedCallBack(closedCallBackEvent); - String actionId = closedCallBackEvent.getActionId(); - DynamicObjectCollection returnDataCollection = (DynamicObjectCollection) closedCallBackEvent.getReturnData(); - if (returnDataCollection == null) { - return; - } - if ("zcgj_selectpurchaseapply".equals(actionId) && returnDataCollection.size() > 0) { - for (DynamicObject returnData : returnDataCollection) { - int curIndex = this.getModel().createNewEntryRow("entryentity"); - this.getModel().updateCache(); - this.getView().setEnable(false, curIndex, new String[]{"oftaxamount", "notaxamount", "taxamount", "taxprice"}); - - long zcgj_bigintfield = returnData.getLong("zcgj_bigintfield");//采购申请单id - QFilter filter = new QFilter("purchaseentry.id", QCP.equals, zcgj_bigintfield); - DynamicObjectCollection purchaseApply = QueryServiceHelper.query("ecma_purchaseapply", - "purchaseentry,purchaseentry.material,purchaseentry.purchaseqty,purchaseentry.entrytaxrate,purchaseentry.price,purchaseentry.id,purchaseentry.remarks,purchaseentry.zcgj_incount", - new QFilter[]{filter});//采购申请单 - - long material = purchaseApply.get(0).getLong("purchaseentry.material");//采购申请分录-资源编码 - BigDecimal purchaseQty = (BigDecimal) purchaseApply.get(0).get("purchaseentry.purchaseqty");//采购申请分录-采购数量 - BigDecimal zcgj_inCount = (BigDecimal) purchaseApply.get(0).get("purchaseentry.zcgj_incount");//采购申请分录-已入库数量 - Object entryTaxRate = purchaseApply.get(0).get("purchaseentry.entrytaxrate");//采购申请分录-税率 - Object price = purchaseApply.get(0).get("purchaseentry.price");//采购申请分录-预估单价 - Object purchaseEntryId = purchaseApply.get(0).get("purchaseentry.id");//采购申请分录-预估单价 - Object remarks = purchaseApply.get(0).get("purchaseentry.remarks");//采购申请分录-备注 - this.getModel().setValue("material", material, curIndex);//资源编码 - this.getModel().setValue("entrytaxrate", entryTaxRate, curIndex);//税率名称 - this.getModel().setValue("qty", purchaseQty.subtract(zcgj_inCount), curIndex);//数量 - this.getModel().setValue("price", price, curIndex);//入库单价 - this.getModel().setValue("listingid", purchaseEntryId, curIndex);//合同清单id - this.getModel().setValue("note", remarks, curIndex);//备注 - } - } - } }