diff --git a/main/java/shkd/repc/resm/formplugin/ContractDataSelectF7Plugin.java b/main/java/shkd/repc/resm/formplugin/ContractDataSelectF7Plugin.java new file mode 100644 index 0000000..bc2c4ab --- /dev/null +++ b/main/java/shkd/repc/resm/formplugin/ContractDataSelectF7Plugin.java @@ -0,0 +1,61 @@ +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); + } + } +} \ No newline at end of file