合同新增采购计划字段且数据过滤
This commit is contained in:
parent
597942eb38
commit
427029da88
|
@ -0,0 +1,72 @@
|
||||||
|
package shkd.repc.recon.formplugin;
|
||||||
|
|
||||||
|
import kd.bos.dataentity.entity.DynamicObject;
|
||||||
|
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.math.BigDecimal;
|
||||||
|
import java.util.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 动态表单插件
|
||||||
|
*/
|
||||||
|
public class ContractSettlePlanF7Plugin extends AbstractFormPlugin implements Plugin, BeforeF7SelectListener {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void registerListener(EventObject e) {
|
||||||
|
super.registerListener(e);
|
||||||
|
RefBillEdit bEdit = this.getView().getControl("qeug_settleplan");
|
||||||
|
bEdit.addBeforeF7SelectListener(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void beforeF7Select(BeforeF7SelectEvent evt) {
|
||||||
|
ListShowParameter formShowParameter = (ListShowParameter) evt.getFormShowParameter();
|
||||||
|
List<Long> canSeeDataId = new ArrayList<>();
|
||||||
|
|
||||||
|
// 获取当前组织
|
||||||
|
DynamicObject org = (DynamicObject) this.getModel().getValue("org");
|
||||||
|
String orgName = org.getString("name");
|
||||||
|
|
||||||
|
// 查找所有已审核的采购需求数据(单据状态 = "C")
|
||||||
|
QFilter statusFilter = new QFilter("billstatus", QCP.equals, "C");
|
||||||
|
QFilter orgFilter = new QFilter("org.name", QCP.equals, orgName);
|
||||||
|
DynamicObject[] settlePlanBills = BusinessDataServiceHelper.load("recon_settleplanbill", "id,bill,qeug_applyamount", statusFilter.and(orgFilter).toArray());
|
||||||
|
|
||||||
|
// 若无数据,直接返回
|
||||||
|
if (settlePlanBills == null || settlePlanBills.length == 0) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 遍历所有采购需求数据
|
||||||
|
for (DynamicObject settlePlanBill : settlePlanBills) {
|
||||||
|
long id = settlePlanBill.getLong("id");
|
||||||
|
canSeeDataId.add(id);
|
||||||
|
// BigDecimal applyAmount = settlePlanBill.getBigDecimal("qeug_applyamount");
|
||||||
|
//
|
||||||
|
// // 查询当前采购需求的所有相关费用登记
|
||||||
|
// QFilter refFilter = new QFilter("qeug_refbillfield.id", QCP.equals, id);
|
||||||
|
// DynamicObject[] conNoTextBills = BusinessDataServiceHelper.load("recon_connotextbill", "id,oriamt", refFilter.toArray());
|
||||||
|
//
|
||||||
|
// // 计算所有已使用金额
|
||||||
|
// BigDecimal totalUsedAmount = Arrays.stream(conNoTextBills)
|
||||||
|
// .map(bill -> bill.getBigDecimal("oriamt"))
|
||||||
|
// .reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||||
|
//
|
||||||
|
// // 若申请金额大于已使用金额,则允许选择
|
||||||
|
// if (applyAmount.compareTo(totalUsedAmount) > 0) {
|
||||||
|
// canSeeDataId.add(id);
|
||||||
|
// }
|
||||||
|
}
|
||||||
|
|
||||||
|
List<QFilter> qFilters = Collections.singletonList(new QFilter("id", QCP.in, canSeeDataId));
|
||||||
|
formShowParameter.getListFilterParameter().setQFilters(qFilters);
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue