合同新增采购计划字段且数据过滤
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