dobe_comic8/main/java/shkd/repc/recon/formplugin/ConNoTextBillFromPlugin.java

70 lines
2.8 KiB
Java
Raw Normal View History

2025-03-15 03:17:34 +00:00
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);
}
}