61 lines
2.4 KiB
Java
61 lines
2.4 KiB
Java
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);
|
||
}
|
||
}
|
||
} |