2025-09-03 09:49:27 +00:00
|
|
|
package tqq9.lc123.cloud.app.api.plugin;
|
|
|
|
|
|
2025-10-18 09:51:13 +00:00
|
|
|
import kd.bos.dataentity.entity.DynamicObject;
|
2025-09-03 09:49:27 +00:00
|
|
|
import kd.bos.openapi.api.plugin.ApiSavePlugin;
|
2025-10-18 09:51:13 +00:00
|
|
|
import kd.bos.orm.query.QCP;
|
|
|
|
|
import kd.bos.orm.query.QFilter;
|
|
|
|
|
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
2025-09-03 09:49:27 +00:00
|
|
|
|
|
|
|
|
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");//实付金额
|
2025-10-18 09:51:13 +00:00
|
|
|
HashMap paymenttype = (HashMap)reqDatum.get("paymenttype");//付款类型
|
|
|
|
|
if (reqDatum.get("payerbank") instanceof Map) {
|
|
|
|
|
HashMap<String, Object> map = new HashMap<>();
|
|
|
|
|
HashMap payerbank = (HashMap) reqDatum.get("payerbank");//付款银行
|
2025-10-20 09:24:45 +00:00
|
|
|
String payeename = reqDatum.get("payeename").toString();//收款人名称
|
|
|
|
|
String payeetype = reqDatum.get("payeetype").toString();//收款人类型
|
2025-10-18 09:51:13 +00:00
|
|
|
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);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
2025-09-03 09:49:27 +00:00
|
|
|
ArrayList<HashMap<String, Object>> entries = new ArrayList<HashMap<String, Object>>();
|
2025-10-18 09:51:13 +00:00
|
|
|
HashMap<String, Object> map = new HashMap<>();
|
2025-09-03 09:49:27 +00:00
|
|
|
map.put("e_payableamt", actpayamt);
|
2025-10-18 09:51:13 +00:00
|
|
|
map.put("e_paymenttype", paymenttype);
|
2025-09-03 09:49:27 +00:00
|
|
|
entries.add(map);
|
2025-10-18 09:51:13 +00:00
|
|
|
reqDatum.put("entry", entries);
|
2025-09-03 09:49:27 +00:00
|
|
|
}
|
|
|
|
|
return ApiSavePlugin.super.preHandleRequestData(reqData);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|