Selaa lähdekoodia

交易明细格式重写

wangjun 3 viikkoa sitten
vanhempi
säilyke
3594510de3

+ 69 - 40
code/jyyy/nckd-jimin-jyyy-fi/src/main/java/nckd/jimin/jyyy/fi/webapi/TransDetailApiPlugin.java

@@ -32,6 +32,9 @@ import java.util.Map;
 /**
  * 交易明细API插件类
  * 用于处理交易明细相关的操作,如保存交易明细信息。
+ *
+ * @author turborao
+ * @date 2025/05/24
  */
 @ApiController(value = "nstc", desc = "对接九恒星交易明细")
 @ApiMapping("/nstc")
@@ -167,17 +170,23 @@ public class TransDetailApiPlugin implements Serializable {
         /**
          * 资金组织判断
          */
-        String company  = jsonObject.getString("company");
-        DynamicObject companyByn = BusinessDataServiceHelper.loadSingle("bos_org",new QFilter[]{new QFilter("number", QCP.equals, company)});
-        if(EmptyUtils.isEmpty(companyByn)) {
-            errMsg.append("资金组织不存在;");
-        }else {
-            transDetail.set(BeiTransdetailConstantInfo.COMPANY, companyByn); // 资金组织Number
+        //String company  = jsonObject.getString("company");
+        JSONObject companyObj =  jsonObject.getJSONObject("company");
+        if (EmptyUtils.isNotEmpty(companyObj)) {
+            String company = companyObj.getString("id");
+            DynamicObject companyByn = BusinessDataServiceHelper.loadSingle("bos_org", new QFilter[]{new QFilter("number", QCP.equals, company)});
+            if (EmptyUtils.isEmpty(companyByn)) {
+                errMsg.append("资金组织不存在;");
+            } else {
+                transDetail.set(BeiTransdetailConstantInfo.COMPANY, companyByn); // 资金组织Number
+            }
+        }else{
+            errMsg.append("组织不能为空;");
         }
         /**
          * 银行账号Number
          */
-        String bankAccount = jsonObject.getString("bankAccount");
+        String bankAccount = jsonObject.getString("bankAccountNumber");
         DynamicObject bankAccountByn = BusinessDataServiceHelper.loadSingle("bd_accountbanks",new QFilter[]{new QFilter("number", QCP.equals, bankAccount)});
         if (EmptyUtils.isEmpty(bankAccountByn)){
             errMsg.append("银行账号不存在;");
@@ -188,12 +197,16 @@ public class TransDetailApiPlugin implements Serializable {
         /**
          * 币种ID
          */
-        String currency = jsonObject.getString("currency");
-        DynamicObject currencyByn = BusinessDataServiceHelper.loadSingle("bd_currency",new QFilter[]{new QFilter("number", QCP.equals, currency)});
-        if (EmptyUtils.isEmpty(currencyByn)){
-            errMsg.append("币种不存在;");
-        }else {
-            transDetail.set(BeiTransdetailConstantInfo.CURRENCY, currencyByn); // 币种Number
+        //String currency = jsonObject.getString("currency");
+        JSONObject currencyObj =  jsonObject.getJSONObject("currency");
+        if (EmptyUtils.isNotEmpty(currencyObj)) {
+            String currency = currencyObj.getString("id");
+            DynamicObject currencyByn = BusinessDataServiceHelper.loadSingle("bd_currency", new QFilter[]{new QFilter("number", QCP.equals, currency)});
+            if (EmptyUtils.isEmpty(currencyByn)) {
+                errMsg.append("币种不存在;");
+            } else {
+                transDetail.set(BeiTransdetailConstantInfo.CURRENCY, currencyByn); // 币种Number
+            }
         }
         String bizTimeStr =  jsonObject.getString("bizTime");
         Date bizTime = DateUtils.parseDateTime(bizTimeStr, "yyyy-MM-dd HH:mm:ss");
@@ -228,17 +241,21 @@ public class TransDetailApiPlugin implements Serializable {
          * 入账状态
          * 待入账=0,已入账=1,无需入账=2
          */
-        String isReced = jsonObject.getString("isReced");
-        switch (isReced) {
-            case "0":
-                transDetail.set(BeiTransdetailConstantInfo.RECEREDTYPE, "0");
-                break;
-            case "1":
-                transDetail.set(BeiTransdetailConstantInfo.RECEREDTYPE, "3");
-                break;
-            default:
-                errMsg.append("入账状态不存在;");
-                break;
+        //String isReced = jsonObject.getString("isReced");
+        JSONObject isRecedObj =  jsonObject.getJSONObject("isReced");
+        if (EmptyUtils.isNotEmpty(isRecedObj)) {
+            String isReced = isRecedObj.getString("value");
+            switch (isReced) {
+                case "0":
+                    transDetail.set(BeiTransdetailConstantInfo.RECEREDTYPE, "0");
+                    break;
+                case "1":
+                    transDetail.set(BeiTransdetailConstantInfo.RECEREDTYPE, "3");
+                    break;
+                default:
+                    errMsg.append("入账状态不存在;");
+                    break;
+            }
         }
 
         /**
@@ -260,22 +277,26 @@ public class TransDetailApiPlugin implements Serializable {
          * 存款结息	15
          * 定期收益	16
          */
-        String bizType = jsonObject.getString("bizType");
-        switch (bizType) {
-            case "1":
-                transDetail.set(BeiTransdetailConstantInfo.BIZTYPE, "1");
-                break;
-            case "2":
-                transDetail.set(BeiTransdetailConstantInfo.BIZTYPE, "2");
-                transDetail.set(BeiTransdetailConstantInfo.ISTRANSUP, true); // 是否上划
-                break;
-            case "3":
-                transDetail.set(BeiTransdetailConstantInfo.BIZTYPE, "3");
-                transDetail.set(BeiTransdetailConstantInfo.ISTRANSDOWN, true); // 是否下拨
-                break;
-            default:
-                errMsg.append("业务类型不存在;");
-                break;
+
+        JSONObject bizTypeObj =  jsonObject.getJSONObject("bizType");
+        if (EmptyUtils.isNotEmpty(bizTypeObj)) {
+            String bizType = jsonObject.getString("value");
+            switch (bizType) {
+                case "1":
+                    transDetail.set(BeiTransdetailConstantInfo.BIZTYPE, "1");
+                    break;
+                case "2":
+                    transDetail.set(BeiTransdetailConstantInfo.BIZTYPE, "2");
+                    transDetail.set(BeiTransdetailConstantInfo.ISTRANSUP, true); // 是否上划
+                    break;
+                case "3":
+                    transDetail.set(BeiTransdetailConstantInfo.BIZTYPE, "3");
+                    transDetail.set(BeiTransdetailConstantInfo.ISTRANSDOWN, true); // 是否下拨
+                    break;
+                default:
+                    errMsg.append("业务类型不存在;");
+                    break;
+            }
         }
         if(EmptyUtils.isNotEmpty(errMsg)){
             return errMsg.toString();
@@ -330,6 +351,14 @@ public class TransDetailApiPlugin implements Serializable {
         return errMsg.toString();
     }
 
+    /**
+     * 保存电子回单信息
+     *
+     * @param transDetail 交易明细对象,包含交易的详细信息
+     * @param elecreceipt 电子回单对象,如果已存在则不为空
+     * @param electricAddress 电子回单的地址,用于从FTP服务器下载文件
+     * @return 返回错误信息,如果没有错误则返回空字符串
+     */
     private String saveElecreceipt( DynamicObject transDetail,DynamicObject elecreceipt,String electricAddress) {
         StringBuilder errMsg = new StringBuilder();