评估任务-分录合同清单F7根据表头开始-结束时间过滤

This commit is contained in:
李贵强 2025-05-22 15:44:41 +08:00
parent acb73791df
commit eff3960271
1 changed files with 61 additions and 0 deletions

View File

@ -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<Long> 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<QFilter> qFilters = Collections.singletonList(new QFilter("id", QCP.in, canSeeDataId));
formShowParameter.getListFilterParameter().setQFilters(qFilters);
}
}
}