package fi.fa.opplugin; import com.alibaba.druid.util.StringUtils; import kd.bos.dataentity.entity.DynamicObject; import kd.bos.dataentity.entity.DynamicObjectCollection; import kd.bos.entity.datamodel.events.ChangeData; import kd.bos.entity.datamodel.events.PropertyChangedArgs; import kd.bos.form.field.MulBasedataEdit; import kd.bos.form.field.RefBillEdit; 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.QCP; import kd.bos.orm.query.QFilter; import kd.bos.servicehelper.BusinessDataServiceHelper; import java.util.EventObject; //实物卡片关联e管家实物卡片清单插件 public class RealCardF7OpPlugin extends AbstractFormPlugin implements BeforeF7SelectListener { @Override public void propertyChanged(PropertyChangedArgs e) { String fieldKey = e.getProperty().getName(); if (StringUtils.equals("nckd_real_card", fieldKey)) { ChangeData changeData = e.getChangeSet()[0]; DynamicObjectCollection dynamicObjectCollection = (DynamicObjectCollection) changeData.getNewValue(); this.getModel().deleteEntryData("nckd_realcard_list"); for (DynamicObject object : dynamicObjectCollection) { DynamicObject cardInfo = BusinessDataServiceHelper.loadSingle(object.get(2), "nckd_fa_card_real_list"); int rowIndex = this.getModel().createNewEntryRow("nckd_realcard_list"); this.getModel().setValue("nckd_card_code21", cardInfo, rowIndex); } this.getView().updateView("nckd_realcard_list"); } } @Override public void registerListener(EventObject e) { //监听单据字段 super.registerListener(e); MulBasedataEdit mEdit = this.getView().getControl("nckd_real_card"); mEdit.addBeforeF7SelectListener(this); } @Override public void beforeF7Select(BeforeF7SelectEvent arg0) { String fieldKey = arg0.getProperty().getName(); if (StringUtils.equals(fieldKey, "nckd_real_card")) { DynamicObject assetunit = (DynamicObject) this.getModel().getValue("assetunit");//资产组织 QFilter qFilter = new QFilter("nckd_orgfield.id", QCP.equals, assetunit.getLong("id")); // 表过滤条件 ListShowParameter showParameter = (ListShowParameter)arg0.getFormShowParameter(); showParameter.setShowApproved(false); showParameter.getListFilterParameter().setFilter(qFilter); } } }