55 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Java
		
	
	
	
			
		
		
	
	
			55 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Java
		
	
	
	
| package tqq9.lc123.cloud.app.api.plugin;
 | |
| 
 | |
| import kd.bos.dataentity.entity.DynamicObject;
 | |
| import kd.bos.openapi.api.plugin.ApiSavePlugin;
 | |
| import kd.bos.orm.query.QCP;
 | |
| import kd.bos.orm.query.QFilter;
 | |
| import kd.bos.servicehelper.BusinessDataServiceHelper;
 | |
| 
 | |
| import java.math.BigDecimal;
 | |
| import java.util.ArrayList;
 | |
| import java.util.HashMap;
 | |
| import java.util.List;
 | |
| import java.util.Map;
 | |
| 
 | |
| /**
 | |
|  * 动态表单插件
 | |
|  */
 | |
| public class PaySaveApiPlugin implements ApiSavePlugin {
 | |
| 
 | |
|     @Override
 | |
|     public List<Map<String, Object>> preHandleRequestData(List<Map<String, Object>> reqData) {
 | |
|         for (Map<String, Object> reqDatum : reqData) {
 | |
|             BigDecimal actpayamt = (BigDecimal) reqDatum.get("actpayamt");//实付金额
 | |
|             HashMap paymenttype =  (HashMap)reqDatum.get("paymenttype");//付款类型
 | |
|             if (reqDatum.get("payerbank") instanceof Map) {
 | |
|                 HashMap<String, Object> map = new HashMap<>();
 | |
|                 HashMap payerbank = (HashMap) reqDatum.get("payerbank");//付款银行
 | |
|                 String payeename =  reqDatum.get("payeename").toString();//收款人名称
 | |
|                 String payeetype =  reqDatum.get("payeetype").toString();//收款人类型
 | |
|                 DynamicObject payee = BusinessDataServiceHelper.loadSingle(payeetype, new QFilter[]{new QFilter("name", QCP.equals, payeename)});
 | |
|                 if(payee!=null){
 | |
|                     reqDatum.put("payee", payee.getLong("id"));
 | |
|                 }
 | |
|                 String number = payerbank.get("number").toString();
 | |
|                 DynamicObject bd_bebank = BusinessDataServiceHelper.loadSingle("bd_bebank", new QFilter[]{new QFilter("number", QCP.equals, number)});
 | |
|                 if (bd_bebank != null) {
 | |
|                     DynamicObject bd_finorginfo = BusinessDataServiceHelper.loadSingle("bd_finorginfo", new QFilter[]{new QFilter("bebank", QCP.equals, bd_bebank.getLong("id"))});
 | |
|                     if (bd_finorginfo != null) {
 | |
|                         map.put("number", bd_finorginfo.getString("number"));
 | |
|                         reqDatum.put("payerbank", map);
 | |
|                     }
 | |
|                 }
 | |
|             }
 | |
|             ArrayList<HashMap<String, Object>> entries = new ArrayList<HashMap<String, Object>>();
 | |
|             HashMap<String, Object> map = new HashMap<>();
 | |
|             map.put("e_payableamt", actpayamt);
 | |
|             map.put("e_paymenttype", paymenttype);
 | |
|             entries.add(map);
 | |
|             reqDatum.put("entry", entries);
 | |
|         }
 | |
|         return ApiSavePlugin.super.preHandleRequestData(reqData);
 | |
| 
 | |
|     }
 | |
| 
 | |
| } |