diff --git a/main/java/shkd/repc/rebm/formplugin/SupplierInvitationFormPlugin.java b/main/java/shkd/repc/rebm/formplugin/SupplierInvitationFormPlugin.java index 7e39f0c..760c835 100644 --- a/main/java/shkd/repc/rebm/formplugin/SupplierInvitationFormPlugin.java +++ b/main/java/shkd/repc/rebm/formplugin/SupplierInvitationFormPlugin.java @@ -20,7 +20,11 @@ import kd.bos.form.control.events.BeforeItemClickEvent; import kd.bos.form.control.events.ItemClickEvent; import kd.bos.form.events.AfterDoOperationEventArgs; import kd.bos.form.events.BeforeDoOperationEventArgs; +import kd.bos.form.field.BasedataEdit; +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; import kd.bos.orm.query.QFilter; import kd.bos.servicehelper.BusinessDataServiceHelper; @@ -37,7 +41,7 @@ import kd.scm.ten.common.util.CommonUtil; import java.util.*; -public class SupplierInvitationFormPlugin extends SupplierInvitationBidNumEdit { +public class SupplierInvitationFormPlugin extends SupplierInvitationBidNumEdit implements BeforeF7SelectListener { IPortraitService portraitService = new PortraitServiceImpl(); @@ -45,6 +49,8 @@ public class SupplierInvitationFormPlugin extends SupplierInvitationBidNumEdit { public void registerListener(EventObject e) { super.registerListener(e); addItemClickListeners("supplierenrolltoolbar"); + BasedataEdit edit = this.getView().getControl("enrollsupplier");//获取报名供应商基础资料控件 + edit.addBeforeF7SelectListener(this); } @@ -69,7 +75,12 @@ public class SupplierInvitationFormPlugin extends SupplierInvitationBidNumEdit { SaveServiceHelper.save(new DynamicObject[]{dataEntity}); } // else { -// this.updateSupplierCollection(enrollsupplierPkValue,bidproject,adminUserId); +// QFilter mytender_QF = new QFilter("bidproject.id", QCP.equals, bidproject.getPkValue()); +// mytender_QF.and("supplier.id",QCP.equals,enrollsupplierPkValue); +// DynamicObject resp_mytender = BusinessDataServiceHelper.loadSingle("resp_mytender", mytender_QF.toArray()); +// Object pkValue = resp_mytender.getPkValue(); +// QFilter qFilter = new QFilter("id", QCP.equals, pkValue); +// DeleteServiceHelper.delete("resp_mytender",qFilter.toArray()); // } } @@ -126,7 +137,8 @@ public class SupplierInvitationFormPlugin extends SupplierInvitationBidNumEdit { return; } this.suppChanged("supplierentry", "bidnum", "abandonbidnum", newValue, rowIndex); - }else if ("enrollsupplier".equals(name)) { + } + else if ("enrollsupplier".equals(name)) { newValue = (DynamicObject)changeData.getNewValue(); if (newValue == null) { return; @@ -275,5 +287,28 @@ public class SupplierInvitationFormPlugin extends SupplierInvitationBidNumEdit { return false; } } + + @Override + public void beforeF7Select(BeforeF7SelectEvent beforeF7SelectEvent) { + String name = beforeF7SelectEvent.getProperty().getName();//监听字段标识 + if ("enrollsupplier".equals(name)){//报名供应商名称 + DynamicObjectCollection supplierenrollentry = this.getModel().getEntryEntity("supplierenrollentry");//当前报名供应商分录 + HashSet longs = new HashSet();//构建报名供应商主键容器 + if (supplierenrollentry.size() > 0){ + for (DynamicObject dy : supplierenrollentry) { + DynamicObject enrollsupplier = dy.getDynamicObject("enrollsupplier"); + if (enrollsupplier != null){ + longs.add(enrollsupplier.getLong("id")); + } + } + } + if (longs.size() > 0){//当主键集合大于0时,表明存在已选择的供应商,为了排除,避免重复选择数据 + QFilter supIdQF = new QFilter("id",QCP.not_in,longs); + ListShowParameter formShowParameter = (ListShowParameter) beforeF7SelectEvent.getFormShowParameter(); + formShowParameter.getListFilterParameter().setFilter(supIdQF); + + } + } + } }