package shkd.repc.resm.formplugin; import kd.bos.dataentity.entity.DynamicObject; 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.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 kd.sdk.plugin.Plugin; import java.util.*; /** * 动态表单插件 */ public class ContractDataSelectF7Plugin extends AbstractFormPlugin implements Plugin , BeforeF7SelectListener { @Override public void registerListener(EventObject e) { super.registerListener(e); BasedataEdit bEdit = this.getView().getControl("contract"); bEdit.addBeforeF7SelectListener(this); } @Override public void beforeF7Select(BeforeF7SelectEvent evt) { // 评估期间.开始 Date startTime = (Date) this.getModel().getValue("starttime"); //评估期间.结束 Date endTime = (Date) this.getModel().getValue("endtime"); if (startTime !=null && endTime !=null){ ListShowParameter formShowParameter = (ListShowParameter) evt.getFormShowParameter(); List canSeeDataId = new ArrayList<>(); // 查找所有可用的合同清单数据(使用状态 = "1") QFilter statusFilter = new QFilter("enable", QCP.equals, "1"); QFilter startTimeFilter = new QFilter("sign_date", QCP.large_equals, startTime); QFilter endTimeFilter = new QFilter("sign_date", QCP.less_equals, endTime); DynamicObject[] settlePlanBills = BusinessDataServiceHelper.load("resm_contract_book", "id,bill,qeug_applyamount", statusFilter.and(startTimeFilter).and(endTimeFilter).toArray()); // 若无数据,直接返回 if (settlePlanBills == null || settlePlanBills.length == 0) { return; } // 遍历所有数据 for (DynamicObject settlePlanBill : settlePlanBills) { long id = settlePlanBill.getLong("id"); canSeeDataId.add(id); } List qFilters = Collections.singletonList(new QFilter("id", QCP.in, canSeeDataId)); formShowParameter.getListFilterParameter().setQFilters(qFilters); } } }