70 lines
2.8 KiB
Java
70 lines
2.8 KiB
Java
|
package shkd.repc.recon.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.math.BigDecimal;
|
||
|
import java.util.ArrayList;
|
||
|
import java.util.EventObject;
|
||
|
import java.util.List;
|
||
|
|
||
|
/**
|
||
|
* 动态表单插件
|
||
|
* 【费用登记】-
|
||
|
*/
|
||
|
public class ConNoTextBillFromPlugin extends AbstractFormPlugin implements Plugin, BeforeF7SelectListener {
|
||
|
|
||
|
|
||
|
@Override
|
||
|
public void registerListener(EventObject e) {
|
||
|
super.registerListener(e);
|
||
|
RefBillEdit bEdit = this.getView().getControl("qeug_refbillfield");
|
||
|
bEdit.addBeforeF7SelectListener(this);
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
public void beforeF7Select(BeforeF7SelectEvent evt) {
|
||
|
ListShowParameter formShowParameter = (ListShowParameter) evt.getFormShowParameter();
|
||
|
ArrayList<Long> canSeeDataId = new ArrayList<>();
|
||
|
//查找所有已审核采购需求数据
|
||
|
DynamicObject org = (DynamicObject) this.getModel().getValue("org");
|
||
|
QFilter qFilter = new QFilter("billstatus", QCP.equals, "C");
|
||
|
qFilter.and(new QFilter("org.name", QCP.equals, org.getString("name")));
|
||
|
DynamicObject[] settlePlanBills = BusinessDataServiceHelper.load("recon_settleplanbill", "id,bill,qeug_applyamount", qFilter.toArray());
|
||
|
//判断申请金额是否被费用登记用完
|
||
|
for (int i = 0; i < settlePlanBills.length; i++) {
|
||
|
DynamicObject settlePlanBill = settlePlanBills[i];
|
||
|
long id = settlePlanBill.getLong("id");
|
||
|
BigDecimal applyAmount = settlePlanBill.getBigDecimal("qeug_applyamount");
|
||
|
BigDecimal allOriAmt=BigDecimal.ZERO;
|
||
|
QFilter qFilter1 = new QFilter("qeug_refbillfield.id", QCP.equals, id);
|
||
|
DynamicObject[] conNoTextBills = BusinessDataServiceHelper.load("recon_connotextbill", "id,oriamt", qFilter1.toArray());
|
||
|
if (conNoTextBills.length!=0){
|
||
|
for (int j = 0; j < conNoTextBills.length; j++) {
|
||
|
DynamicObject conNoTextBill = conNoTextBills[j];
|
||
|
BigDecimal oriAmt = conNoTextBill.getBigDecimal("oriamt");
|
||
|
allOriAmt=allOriAmt.add(oriAmt);
|
||
|
}
|
||
|
}
|
||
|
//还有余额
|
||
|
if (applyAmount.compareTo(allOriAmt)>0){
|
||
|
canSeeDataId.add(id);
|
||
|
}
|
||
|
}
|
||
|
List<QFilter> qFilters = new ArrayList<>();
|
||
|
qFilters.add(new QFilter("id", QCP.in, canSeeDataId));
|
||
|
formShowParameter.getListFilterParameter().setQFilters(qFilters);
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
}
|