Ver código fonte

1、九恒星相关接口调整

wanghaiwu 2 semanas atrás
pai
commit
1f8dcd9c52

+ 56 - 14
code/jyyy/nckd-jimin-jyyy-fi/src/main/java/fi/er/webService/SaveAccountApi.java

@@ -1,5 +1,6 @@
 package fi.er.webService;
 
+import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import fi.cas.opplugin.TypeUtils;
@@ -8,18 +9,19 @@ import kd.bos.dataentity.OperateOption;
 import kd.bos.dataentity.entity.DynamicObject;
 import kd.bos.dataentity.entity.DynamicObjectCollection;
 import kd.bos.entity.operate.result.OperationResult;
+import kd.bos.logging.Log;
+import kd.bos.logging.LogFactory;
 import kd.bos.openapi.common.custom.annotation.ApiController;
 import kd.bos.openapi.common.custom.annotation.ApiMapping;
 import kd.bos.openapi.common.custom.annotation.ApiParam;
 import kd.bos.openapi.common.custom.annotation.ApiPostMapping;
+import kd.bos.openapi.common.result.CustomApiResult;
 import kd.bos.orm.query.QFilter;
 import kd.bos.servicehelper.BusinessDataServiceHelper;
 import kd.bos.servicehelper.operation.SaveServiceHelper;
-
+import nckd.jimin.jyyy.fi.common.NstcApiReturnModel;
 import java.io.Serializable;
-import java.util.ArrayList;
 import java.util.Date;
-import java.util.List;
 
 /**
  * @author zf
@@ -30,15 +32,17 @@ import java.util.List;
 public class SaveAccountApi implements Serializable {
     protected static final Long DEFAULT_ORG_ID = 100000L;
 
+    private static final Log logger = LogFactory.getLog(SaveAccountApi.class);
+
     /**
      * @description 行名行号同步接口
      * @param data
      * @return CustomApiResult
      */
     @ApiPostMapping(value = "/save", desc = "同步银行账户")
-    public CustomApiResultForMy<List<AccountSynReturnModel>> saveAccount (@ApiParam(value = "九恒星银行账户") JSONArray data) {
+    public CustomApiResult<JSONObject> saveAccount (@ApiParam(value = "九恒星银行账户") JSONArray data) {
         StringBuilder resultString = new StringBuilder();
-        List<AccountSynReturnModel> returnList = new ArrayList<>();
+
         Boolean result = true;
 
         DynamicObject rmbinfo = BusinessDataServiceHelper.loadSingleFromCache(1L,"bd_currency");
@@ -56,18 +60,32 @@ public class SaveAccountApi implements Serializable {
         DynamicObject defaulttypecodeinfo =BusinessDataServiceHelper.loadSingleFromCache("bd_bankcgsetting",new QFilter[]{typecodeFilter});
 
 
+        JSONArray dataArray = new JSONArray();
+
         //循环传入的数据
         for (int i = 0; i < data.size(); i++) {
             JSONObject eobject = data.getJSONObject(i);
-            AccountSynReturnModel contractSynReturnModel = syncAccount(eobject,rmbinfo,defaultjrjgtypeinfo,defaultgj,defaulttypecodeinfo,defaultOrg,user);
-            if ("500".equals(contractSynReturnModel.getCode())){
-                result = false;
+            try {
+                NstcApiReturnModel contractSynReturnModel = syncAccount(eobject, rmbinfo, defaultjrjgtypeinfo, defaultgj, defaulttypecodeinfo, defaultOrg, user);
+                if ("500".equals(contractSynReturnModel.getCode())) {
+                    result = false;
+                }
+                dataArray.add(JSONObject.parseObject(JSON.toJSONString(contractSynReturnModel)));
+            } catch (Exception e) {
+                logger.error("保存银行账号失败:{}", e.getMessage());
+
+                NstcApiReturnModel returnModel = new NstcApiReturnModel();
+
+                returnModel.setNumber(eobject.get("bankAccountNumber")+"");
+                returnModel.setName(eobject.get("acctName")+"");
+                returnModel.setCode("500");
+                returnModel.setMessage("保存银行账号失败: " + e.getMessage());
+
+                dataArray.add(JSONObject.parseObject(JSON.toJSONString(returnModel)));
             }
-            returnList.add(contractSynReturnModel);
         }
-        return result == true
-                ? CustomApiResultForMy.success2(returnList)
-                : CustomApiResultForMy.fail(returnList);
+
+        return returnResult("200", "S", "接口调用成功,同步结果请查看responseData参数", dataArray);
     }
 
 
@@ -75,8 +93,8 @@ public class SaveAccountApi implements Serializable {
      * @description 保存行名行号
      * @param jsonObject
      */
-    private AccountSynReturnModel syncAccount(JSONObject jsonObject,DynamicObject rmbinfo, DynamicObject defaultjrjgtypeinfo,DynamicObject defaultgj,DynamicObject defaulttypecodeinfo, DynamicObject defaultOrg,DynamicObject user) {
-        AccountSynReturnModel contractSynReturnModel = new AccountSynReturnModel();
+    private NstcApiReturnModel syncAccount(JSONObject jsonObject,DynamicObject rmbinfo, DynamicObject defaultjrjgtypeinfo,DynamicObject defaultgj,DynamicObject defaulttypecodeinfo, DynamicObject defaultOrg,DynamicObject user) {
+        NstcApiReturnModel contractSynReturnModel = new NstcApiReturnModel();
         Date curDate = new Date();
         String number = jsonObject.get("bankAccountNumber")+"";
         String name = jsonObject.get("acctName")+"";
@@ -271,4 +289,28 @@ public class SaveAccountApi implements Serializable {
             return contractSynReturnModel;
         }
     }
+
+
+    /**
+     * 自定义返回data对象
+     * @param code  编码
+     * @param message  错误信息
+     * @return   CustomApiResult  返回
+     */
+    public CustomApiResult<JSONObject> returnResult(String code, String status, String message, JSONArray dataArrary){
+        JSONObject reslutData = new JSONObject();
+
+        JSONArray responseData = new JSONArray();
+        JSONObject dataJSON = new JSONObject();
+        dataJSON.put("data", dataArrary);
+
+        responseData.add(dataJSON);
+
+        reslutData.put("code", code);
+        reslutData.put("status", status);
+        reslutData.put("message", message);
+        reslutData.put("responseData", responseData);
+
+        return CustomApiResult.success(reslutData);
+    }
 }

+ 72 - 18
code/jyyy/nckd-jimin-jyyy-fi/src/main/java/fi/er/webService/SaveBankApi.java

@@ -1,28 +1,27 @@
 package fi.er.webService;
 
+import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import kd.bos.context.RequestContext;
 import kd.bos.dataentity.OperateOption;
 import kd.bos.dataentity.entity.DynamicObject;
-import kd.bos.dataentity.entity.DynamicObjectCollection;
 import kd.bos.entity.operate.result.OperationResult;
+import kd.bos.logging.Log;
+import kd.bos.logging.LogFactory;
 import kd.bos.openapi.common.custom.annotation.ApiController;
 import kd.bos.openapi.common.custom.annotation.ApiMapping;
 import kd.bos.openapi.common.custom.annotation.ApiParam;
 import kd.bos.openapi.common.custom.annotation.ApiPostMapping;
-import kd.bos.orm.query.QCP;
+import kd.bos.openapi.common.result.CustomApiResult;
 import kd.bos.orm.query.QFilter;
 import kd.bos.servicehelper.BusinessDataServiceHelper;
 import kd.bos.servicehelper.operation.SaveServiceHelper;
-import kd.bos.util.StringUtils;
+import nckd.jimin.jyyy.fi.common.NstcApiReturnModel;
 import java.io.Serializable;
-import java.math.BigDecimal;
-import java.math.RoundingMode;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
-import java.util.Map;
 
 /**
  * @author zf
@@ -32,6 +31,8 @@ import java.util.Map;
 @ApiMapping(value = "saveBankApi")
 public class SaveBankApi implements Serializable {
     protected static final Long DEFAULT_ORG_ID = 100000L;
+    private static final Log logger = LogFactory.getLog(SaveAccountApi.class);
+
 
     /**
      * @description 行名行号同步接口
@@ -39,7 +40,7 @@ public class SaveBankApi implements Serializable {
      * @return CustomApiResult
      */
     @ApiPostMapping(value = "/save", desc = "同步行名行号")
-    public CustomApiResultForMy<List<BankSynReturnModel>> saveBank (@ApiParam(value = "九恒星行名行号") JSONArray data) {
+    public CustomApiResult<JSONObject> saveBank (@ApiParam(value = "九恒星行名行号") JSONArray data) {
         StringBuilder resultString = new StringBuilder();
         List<BankSynReturnModel> returnList = new ArrayList<>();
         Boolean result = true;
@@ -51,18 +52,48 @@ public class SaveBankApi implements Serializable {
         RequestContext rc = RequestContext.get();
         DynamicObject user = BusinessDataServiceHelper.loadSingleFromCache(rc.getCurrUserId(), "bos_user");
 
+        JSONArray dataArray = new JSONArray();
+
+        if(data == null || data.size() == 0){
+            return returnResult("500", "E", "接口调用失败,data无实际数据", null);
+        }
+
+        JSONObject dataJSON = data.getJSONObject(0);
+        if(dataJSON.get("param0") == null){
+            return returnResult("500", "E", "接口调用失败,param0无实际数据", null);
+        }
+
+        JSONArray paramArray = dataJSON.getJSONArray("param0");
+        if(paramArray == null || paramArray.size() == 0){
+            return returnResult("500", "E", "接口调用失败,param0无实际数据", null);
+        }
+
         //循环传入的数据
-        for (int i = 0; i < data.size(); i++) {
-            JSONObject eobject = data.getJSONObject(i);
-            BankSynReturnModel contractSynReturnModel = syncBank(eobject,defaultgj,user);
-            if ("500".equals(contractSynReturnModel.getCode())){
-                result = false;
+        for (int i = 0; i < paramArray.size(); i++) {
+            JSONObject eobject = paramArray.getJSONObject(i);
+
+            try {
+                NstcApiReturnModel contractSynReturnModel = syncBank(eobject, defaultgj, user);
+                if ("500".equals(contractSynReturnModel.getCode())) {
+                    result = false;
+                }
+
+                dataArray.add(JSONObject.parseObject(JSON.toJSONString(contractSynReturnModel)));
+            } catch (Exception e) {
+                logger.error("保存银行账号失败:{}", e.getMessage());
+
+                NstcApiReturnModel returnModel = new NstcApiReturnModel();
+
+                returnModel.setNumber(eobject.get("number")+"");
+                returnModel.setName(eobject.get("name")+"");
+                returnModel.setCode("500");
+                returnModel.setMessage("保存银行账号失败: " + e.getMessage());
+
+                dataArray.add(JSONObject.parseObject(JSON.toJSONString(returnModel)));
             }
-            returnList.add(contractSynReturnModel);
         }
-        return result == true
-                ? CustomApiResultForMy.success2(returnList)
-                : CustomApiResultForMy.fail(returnList);
+
+        return returnResult("200", "S", "接口调用成功,同步结果请查看responseData参数", dataArray);
     }
 
 
@@ -70,8 +101,8 @@ public class SaveBankApi implements Serializable {
      * @description 保存行名行号
      * @param jsonObject
      */
-    private BankSynReturnModel syncBank(JSONObject jsonObject,DynamicObject defaultgj ,DynamicObject user) {
-        BankSynReturnModel contractSynReturnModel = new BankSynReturnModel();
+    private NstcApiReturnModel syncBank(JSONObject jsonObject,DynamicObject defaultgj ,DynamicObject user) {
+        NstcApiReturnModel contractSynReturnModel = new NstcApiReturnModel();
         String number = jsonObject.get("number")+"";
         String name = jsonObject.get("name")+"";
         if ("".equals(number)||"".equals(name)) {
@@ -132,4 +163,27 @@ public class SaveBankApi implements Serializable {
             return contractSynReturnModel;
         }
     }
+
+    /**
+     * 自定义返回data对象
+     * @param code  编码
+     * @param message  错误信息
+     * @return   CustomApiResult  返回
+     */
+    public CustomApiResult<JSONObject> returnResult(String code, String status, String message, JSONArray dataArrary){
+        JSONObject reslutData = new JSONObject();
+
+        JSONArray responseData = new JSONArray();
+        JSONObject dataJSON = new JSONObject();
+        dataJSON.put("data", dataArrary);
+
+        responseData.add(dataJSON);
+
+        reslutData.put("code", code);
+        reslutData.put("status", status);
+        reslutData.put("message", message);
+        reslutData.put("responseData", responseData);
+
+        return CustomApiResult.success(reslutData);
+    }
 }

+ 51 - 0
code/jyyy/nckd-jimin-jyyy-fi/src/main/java/nckd/jimin/jyyy/fi/common/NstcApiReturnModel.java

@@ -0,0 +1,51 @@
+package nckd.jimin.jyyy.fi.common;
+
+import kd.bos.openapi.common.custom.annotation.ApiParam;
+
+import java.io.Serializable;
+
+public class NstcApiReturnModel implements Serializable {
+    @ApiParam(value = "行号", position = 1)
+    String number;
+
+    @ApiParam(value = "行名称", position = 2)
+    String name;
+
+    @ApiParam(value = "错误代码", position = 3)
+    String code;
+
+    @ApiParam(value = "错误信息", position = 4)
+    String message;
+
+    public String getNumber() {
+        return number;
+    }
+
+    public void setNumber(String number) {
+        this.number = number;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getCode() {
+        return code;
+    }
+
+    public void setCode(String code) {
+        this.code = code;
+    }
+
+    public String getMessage() {
+        return message;
+    }
+
+    public void setMessage(String message) {
+        this.message = message;
+    }
+}

+ 76 - 8
code/jyyy/nckd-jimin-jyyy-fi/src/main/java/nckd/jimin/jyyy/fi/webapi/TransDetailApiPlugin.java

@@ -1,7 +1,10 @@
 package nckd.jimin.jyyy.fi.webapi;
 
 import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
+import com.alibaba.fastjson.JSONPObject;
+import fi.er.webService.BankSynReturnModel;
 import kd.bos.config.client.util.StringUtils;
 import kd.bos.dataentity.entity.DynamicObject;
 import kd.bos.dataentity.entity.DynamicObjectCollection;
@@ -22,6 +25,7 @@ import kd.bos.servicehelper.operation.DeleteServiceHelper;
 import kd.bos.servicehelper.operation.SaveServiceHelper;
 import kd.data.rsa.helper.CodeRuleHelper;
 import kd.fi.cas.helper.CasBotpHelper;
+import nckd.jimin.jyyy.fi.common.NstcApiReturnModel;
 
 import java.io.Serializable;
 import java.math.BigDecimal;
@@ -50,7 +54,7 @@ public class TransDetailApiPlugin implements Serializable {
      * @return 处理结果
      */
     @ApiPostMapping(value = "/transdetail", desc = "操作九恒星交易明细")
-    public CustomApiResult<Object> oprationTransDetail(
+    public CustomApiResult<JSONObject> oprationTransDetail(
             @ApiParam(value = "操作类型") String operation,
             @ApiParam(value = "交易明细数据", required = true) String jsondata
     ) {
@@ -59,10 +63,26 @@ public class TransDetailApiPlugin implements Serializable {
                 jsondata
         );
 
+        NstcApiReturnModel returnModel = new NstcApiReturnModel();
+
+        // 解析JSON数据
+        JSONObject jsonObject = JSON.parseObject(jsondata);
+        // 交易流水号ID  关键字
+        String number = jsonObject.getString("number");
+        String code = "";
+        String msg = "";
+
         //JSONArray jsonArray =JSONArray.parseArray(jsondata);
         if(jsondata.startsWith("[")){
             log.error("保存交易明细失败。操作类型:{},交易明细数据:{},错误信息:{}", operation, jsondata, "只允许接收1条数据,请重新传输!");
-            return CustomApiResult.fail("803","操作交易明细失败: 只允许接收1条数据,请重新传输!");
+            returnModel.setNumber(number);
+            returnModel.setCode("500");
+            returnModel.setMessage("操作交易明细失败: 只允许接收1条数据,请重新传输!");
+
+            JSONArray dataArray = new JSONArray();
+            dataArray.add(JSONObject.parseObject(returnModel.toString()));
+
+            return returnResult("200","S","接口调用成功,具体信息查看responseData参数", dataArray);
         }
 
         //如果未传operation参数,则默认为sava保存
@@ -76,30 +96,58 @@ public class TransDetailApiPlugin implements Serializable {
                 case "save":
                     // 添加交易明细逻辑
                     String errMsg = saveTransDetail(jsondata);
+
                     if (!EmptyUtils.isEmpty(errMsg)) {
                         log.error("交易明细添加失败。操作类型:{},交易明细数据:{},错误信息:{}", operation, jsondata, "交易明细添加失败" + errMsg);
-                        return CustomApiResult.fail("802","交易明细添加失败" + errMsg);
+
+                        code = "500";
+                        msg = "交易明细添加失败," + errMsg;
                     } else {
                         log.info("交易明细添加成功。操作类型:{},交易明细数据:{}", operation, jsondata);
-                        return CustomApiResult.success("交易明细添加成功");
+
+                        code = "200";
+                        msg = "交易明细添加成功";
                     }
+                    break;
                 case "delete":
                     // 更新交易明细逻辑
                     String errMsg1 = deleteTransDetail(jsondata);
                     if (!EmptyUtils.isEmpty(errMsg1)) {
                         log.error("交易明细更新失败。操作类型:{},交易明细数据:{},错误信息:{}", operation, jsondata, errMsg1);
-                        return CustomApiResult.fail("801","交易明细更新失败" + errMsg1);
+
+                        code = "500";
+                        msg = "交易明细删除失败," + errMsg1;
                     } else {
                         log.info("交易明细更新成功。操作类型:{},交易明细数据:{}", operation, jsondata);
-                        return CustomApiResult.success("交易明细更新成功");
+
+                        code = "200";
+                        msg = "交易明细删除成功";
                     }
+                    break;
                 default:
                     log.error("不支持的操作类型。操作类型:{},交易明细数据:{}", operation, jsondata);
-                    return CustomApiResult.fail("700","不支持的操作类型");
+                    break;
             }
+
+            returnModel.setNumber(number);
+            returnModel.setCode(code);
+            returnModel.setMessage(msg);
+
+            JSONArray dataArray = new JSONArray();
+            dataArray.add(JSONObject.parseObject(JSON.toJSONString(returnModel)));
+
+            return returnResult("200", "S", "接口调用成功,同步结果请查看responseData参数", dataArray);
         } catch (Exception e) {
             log.error("保存交易明细失败。操作类型:{},交易明细数据:{},错误信息:{}", operation, jsondata, e.getMessage());
-            return CustomApiResult.fail("801","操作交易明细失败: " + e.getMessage());
+
+            returnModel.setNumber(number);
+            returnModel.setCode("500");
+            returnModel.setMessage("操作交易明细失败: " + e.getMessage());
+
+            JSONArray dataArray = new JSONArray();
+            dataArray.add(JSONObject.parseObject(JSON.toJSONString(returnModel)));
+
+            return returnResult("500","E","接口调用异常,同步结果请查看responseData参数", dataArray);
         }
     }
 
@@ -486,6 +534,26 @@ public class TransDetailApiPlugin implements Serializable {
         return address.substring(lastSlashIndex + 1);
     }
 
+    /**
+     * 自定义返回data对象
+     * @param code  编码
+     * @param message  错误信息
+     * @return   CustomApiResult  返回
+     */
+    public CustomApiResult<JSONObject> returnResult(String code, String status, String message, JSONArray dataArrary){
+        JSONObject reslutData = new JSONObject();
+
+        JSONArray responseData = new JSONArray();
+        JSONObject dataJSON = new JSONObject();
+        dataJSON.put("data", dataArrary);
+
+        responseData.add(dataJSON);
 
+        reslutData.put("code", code);
+        reslutData.put("status", status);
+        reslutData.put("message", message);
+        reslutData.put("responseData", responseData);
 
+        return CustomApiResult.success(reslutData);
+    }
 }