Просмотр исходного кода

1、SRM接口,处理对公报销单的收款分录

wanghaiwu 4 недель назад
Родитель
Сommit
fb0aea83c3

+ 22 - 2
code/jyyy/nckd-jimin-jyyy-fi/src/main/java/nckd/jimin/jyyy/fi/webapi/SRMSynPayApiPlugin.java

@@ -18,9 +18,7 @@ import kd.bos.openapi.common.result.CustomApiResult;
 import kd.bos.orm.query.QCP;
 import kd.bos.orm.query.QFilter;
 import kd.bos.servicehelper.BusinessDataServiceHelper;
-import kd.bos.servicehelper.QueryServiceHelper;
 import kd.bos.servicehelper.operation.SaveServiceHelper;
-import kd.imc.bdm.common.constant.BotpCallBackLogConstant;
 import nckd.base.helper.CommonHelperUtils;
 import javax.validation.Valid;
 import java.io.Serializable;
@@ -320,6 +318,10 @@ public class SRMSynPayApiPlugin implements Serializable {
         bizAcctOutBill.set("expenseentryentity", expenseEntry);
 
         //收款明细
+        //支付方式:默认为 银企直连
+        qFilter = new QFilter("number", QCP.equals, "BANK");
+
+        DynamicObject settleType = BusinessDataServiceHelper.loadSingle("bd_settlementtype", qFilter.toArray());
         DynamicObjectCollection accountEntry  = bizAcctOutBill.getDynamicObjectCollection("accountentry");
         type = accountEntry.getDynamicObjectType();
         JSONArray bizAccountOutBillAccountEntry = inputData.getJSONArray("bizAccountOutBillAccountEntry");
@@ -347,6 +349,9 @@ public class SRMSynPayApiPlugin implements Serializable {
                 return buildReturnData(code, srmBillNo, returnMessage, null, null, null);
             }
 
+            //供应商银行账号信息
+            DynamicObjectCollection entryBanks = supplier.getDynamicObjectCollection("entry_bank");
+
             DynamicObject currency = CommonHelperUtils.queryBaseDynamicObject("bd_currency", "number", currencyType);
             if(currency == null){
                 returnMessage = "币别(" + orgUnit + ")在星瀚系统中未匹配到数据!";
@@ -360,9 +365,24 @@ public class SRMSynPayApiPlugin implements Serializable {
             BigDecimal amountOriLocal = amountOri.multiply(exchangeRate).setScale(4, BigDecimal.ROUND_HALF_UP);
 
             DynamicObject entry = new DynamicObject(type);
+
+            entry.set("paymode", settleType);//支付方式
             entry.set("payerType", "bd_supplier");//收款人类型
             entry.set("supplier", supplier);//收款人
             entry.set("payername", supplier.getString("name"));//收款人名称
+
+            if(entryBanks.size() > 0){
+                for(DynamicObject entryBank : entryBanks){
+                    if(entryBank.getBoolean("isdefault_bank")){
+                        entry.set("payeraccount", entryBank.getString("payeraccount"));//银行账号
+                        entry.set("payeraccountname", entryBank.getString("accountname"));//账户名称
+                        entry.set("payerbank", entryBank.getDynamicObject("bank"));//开户银行
+
+                        break;
+                    }
+                }
+            }
+
             entry.set("accountcurrency", currency);//币别
             entry.set("orireceiveamount", amountOri);//收款金额
             entry.set("receiveamount", amountOriLocal);//收款金额本位币