员工借款单提交操作插件:校验借款金额不可超过部门可用借款额度
This commit is contained in:
		
							parent
							
								
									f2dd45b9fb
								
							
						
					
					
						commit
						b425cea10c
					
				| 
						 | 
				
			
			@ -0,0 +1,76 @@
 | 
			
		|||
package shkd.fi.er.plugin.opplugin;
 | 
			
		||||
 | 
			
		||||
import kd.bos.dataentity.entity.DynamicObject;
 | 
			
		||||
import kd.bos.entity.ExtendedDataEntity;
 | 
			
		||||
import kd.bos.entity.plugin.AbstractOperationServicePlugIn;
 | 
			
		||||
import kd.bos.entity.plugin.AddValidatorsEventArgs;
 | 
			
		||||
import kd.bos.entity.plugin.PreparePropertysEventArgs;
 | 
			
		||||
import kd.bos.entity.validate.AbstractValidator;
 | 
			
		||||
import kd.bos.form.control.Label;
 | 
			
		||||
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.List;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * 单据操作插件
 | 
			
		||||
 * 员工借款单提交校验部门可用借款
 | 
			
		||||
 */
 | 
			
		||||
public class DailyLoanBillSubmitOrgAmountAvailableCheckPlugin extends AbstractOperationServicePlugIn implements Plugin {
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 加载所有字段
 | 
			
		||||
     * @param e
 | 
			
		||||
     */
 | 
			
		||||
    @Override
 | 
			
		||||
    public void onPreparePropertys(PreparePropertysEventArgs e) {
 | 
			
		||||
        super.onPreparePropertys(e);
 | 
			
		||||
        List<String> fieldKeys = e.getFieldKeys();
 | 
			
		||||
        fieldKeys.addAll(this.billEntityType.getAllFields().keySet());
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public void onAddValidators(AddValidatorsEventArgs e) {
 | 
			
		||||
        super.onAddValidators(e);
 | 
			
		||||
        e.addValidator(
 | 
			
		||||
                new AbstractValidator(){
 | 
			
		||||
                    @Override
 | 
			
		||||
                    public void validate() {
 | 
			
		||||
                        String operateKey = this.getOperateKey();
 | 
			
		||||
                        ExtendedDataEntity[] dataEntities = this.getDataEntities();
 | 
			
		||||
                        for (ExtendedDataEntity extendedDataEntity : dataEntities) {
 | 
			
		||||
                            DynamicObject dynamicObject = extendedDataEntity.getDataEntity();//获取单据对象
 | 
			
		||||
                            BigDecimal loanAmount = dynamicObject.getBigDecimal("loanamount");
 | 
			
		||||
 | 
			
		||||
                            //1、、计算借款可用额度
 | 
			
		||||
                            BigDecimal bigDecimal = new BigDecimal(0);
 | 
			
		||||
                            //查询审批未放款的当前部门的数据(已提交、审核中、审核通过、等待放款)
 | 
			
		||||
                            QFilter qf = new QFilter("billstatus", QCP.in, new String[]{"B", "C", "E", "F"});
 | 
			
		||||
                            DynamicObject[] bills = BusinessDataServiceHelper.load("er_dailyloanbill", "id.number,loanamount,balanceamount", qf.toArray());
 | 
			
		||||
                            for (DynamicObject bill : bills) {
 | 
			
		||||
                                BigDecimal loanamount = bill.getBigDecimal("loanamount");//获取借款金额
 | 
			
		||||
                                bigDecimal = bigDecimal.add(loanamount);
 | 
			
		||||
                            }
 | 
			
		||||
                            //查询审批已放款的当前部门的数据(已付款)
 | 
			
		||||
                            QFilter aqf = new QFilter("billstatus", QCP.in, new String[]{"G"});
 | 
			
		||||
                            DynamicObject[] abills = BusinessDataServiceHelper.load("er_dailyloanbill", "id.number,loanamount,balanceamount", aqf.toArray());
 | 
			
		||||
                            for (DynamicObject abill : abills) {
 | 
			
		||||
                                BigDecimal balanceamount = abill.getBigDecimal("balanceamount");//获取待还款金额
 | 
			
		||||
                                bigDecimal = bigDecimal.add(balanceamount);
 | 
			
		||||
                            }
 | 
			
		||||
                            // 计算可借款金额
 | 
			
		||||
                            BigDecimal bigDecimal1 = new BigDecimal(300000);
 | 
			
		||||
                            BigDecimal subtract = bigDecimal1.subtract(bigDecimal);
 | 
			
		||||
                            if(subtract.compareTo(loanAmount) < 0 ){
 | 
			
		||||
                                this.addMessage(extendedDataEntity, "部门借款可用额度不足,不允许提交");
 | 
			
		||||
                            }
 | 
			
		||||
                        }
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
        );
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
		Reference in New Issue