From 6d3ce7042f8553702b212be86d00ac3a669dd4a6 Mon Sep 17 00:00:00 2001 From: xiang2lin <251481237@qq.com> Date: Mon, 5 Aug 2024 09:18:33 +0800 Subject: [PATCH 1/3] =?UTF-8?q?T/T=E6=B1=87=E6=AC=BE=202024=E5=B9=B48?= =?UTF-8?q?=E6=9C=885=E6=97=A5=2009:18:23?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../plugin/AccLogPluginInitializer.java | 4 +- .../NingboBankPayPluginInitializer.java | 77 +--- .../NingboBankPayResultPluginInitializer.java | 61 +-- .../NingboBankTTPayPluginInitializer.java | 147 +++++++ ...ingboBankTTPayResultPluginInitializer.java | 129 ++++++ .../service/INingboBankPluginService.java | 17 + .../impl/NingboBankPluginServiceImpl.java | 209 +++++++++- .../dto/req/TTRemitReq.java | 390 ++++++++++++++++++ .../enums/TTPayStatusEnum.java | 78 ++++ .../impl/NingboBankTreasuryServiceImpl.java | 1 + 10 files changed, 973 insertions(+), 140 deletions(-) create mode 100644 buildpackage/src/main/java/com/hzya/frame/plugin/a8bill/plugin/NingboBankTTPayPluginInitializer.java create mode 100644 buildpackage/src/main/java/com/hzya/frame/plugin/a8bill/plugin/NingboBankTTPayResultPluginInitializer.java create mode 100644 service/src/main/java/com/hzya/frame/ningboBankTreasury/dto/req/TTRemitReq.java create mode 100644 service/src/main/java/com/hzya/frame/ningboBankTreasury/enums/TTPayStatusEnum.java diff --git a/buildpackage/src/main/java/com/hzya/frame/plugin/a8bill/plugin/AccLogPluginInitializer.java b/buildpackage/src/main/java/com/hzya/frame/plugin/a8bill/plugin/AccLogPluginInitializer.java index 899e427b..4757f41a 100644 --- a/buildpackage/src/main/java/com/hzya/frame/plugin/a8bill/plugin/AccLogPluginInitializer.java +++ b/buildpackage/src/main/java/com/hzya/frame/plugin/a8bill/plugin/AccLogPluginInitializer.java @@ -115,6 +115,7 @@ public class AccLogPluginInitializer extends PluginBaseEntity { **/ @Override public JsonResultEntity executeBusiness(JSONObject requestJson) throws Exception { + //查询银行账户列表 PayBillEntity oaBillEntity = new PayBillEntity(); oaBillEntity.setDataSourceCode(oa_data_source_code); List> hashMaps = payBillDao.getOaBillData("SELECT field0002 from formmain_0053",oaBillEntity); @@ -125,12 +126,13 @@ public class AccLogPluginInitializer extends PluginBaseEntity { accList.add(field0002); } } + accList = Convert.toList(String.class,"86041110000110293,86041110000109337,6223160030547665,6214180002001411023,6214180000002609736"); //1、查询宁波银行的交易记录 AccTransactionReq accTransactionReq = new AccTransactionReq(); accTransactionReq.setCdSign(NingboBankUtil.SHOURU); accTransactionReq.setBeginDate("2024-07-01"); accTransactionReq.setEndDate("2024-07-30"); - accTransactionReq.setBankAccList(Convert.toList(String.class,"86041110000110293,86041110000109337,6223160030547665,6214180002001411023,6214180000002609736")); + accTransactionReq.setBankAccList(accList); Map headerMap = MapBuilder.create(true) .put("apiCode", "8000360002") .put("publicKey","ZJYAWb7lhAUTYqekPkU+uHJv1/ObJxb7dT7sD8HPRDGAgyhCe7eDIk+3zDUT+v578prj") diff --git a/buildpackage/src/main/java/com/hzya/frame/plugin/a8bill/plugin/NingboBankPayPluginInitializer.java b/buildpackage/src/main/java/com/hzya/frame/plugin/a8bill/plugin/NingboBankPayPluginInitializer.java index e9ce1098..1c251e9f 100644 --- a/buildpackage/src/main/java/com/hzya/frame/plugin/a8bill/plugin/NingboBankPayPluginInitializer.java +++ b/buildpackage/src/main/java/com/hzya/frame/plugin/a8bill/plugin/NingboBankPayPluginInitializer.java @@ -10,15 +10,11 @@ import com.hzya.frame.plugin.a8bill.service.INingboBankPluginService; import com.hzya.frame.sysnew.integtationTaskLivingDetails.entity.IntegrationTaskLivingDetailsEntity; import com.hzya.frame.sysnew.integtationTaskLivingDetails.service.IIntegrationTaskLivingDetailsService; import com.hzya.frame.web.entity.JsonResultEntity; -import org.apache.commons.collections.CollectionUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; - import javax.annotation.Resource; -import java.nio.charset.StandardCharsets; -import java.util.Date; import java.util.HashMap; import java.util.List; @@ -135,80 +131,11 @@ public class NingboBankPayPluginInitializer extends PluginBaseEntity { PayBillEntity oaBillEntity = new PayBillEntity(); oaBillEntity.setDataSourceCode(oa_data_source_code); StringBuffer stringBuffer = new StringBuffer(); - - //备用金申请单 + //付款单 stringBuffer.append("select * from v_hzya_pay where 1=1 " ); stringBuffer.append(sb.toString()); List> hashMaps = payBillDao.getOaBillData(stringBuffer.toString(),oaBillEntity); - if(CollectionUtils.isNotEmpty(hashMaps)){ - for (HashMap hashMap : hashMaps) { - JSONObject main = new JSONObject(); - for(String key:hashMap.keySet()) { - main.put(key, hashMap.get(key)); - } - logger.info("获取到付款单的数据"+main.toString()); - String result = ningboBankPluginService.executeEsb(main.toString(),"8000360000"); - logger.info("推送宁波银行的返回结果"+result); - IntegrationTaskLivingDetailsEntity logDetails = new IntegrationTaskLivingDetailsEntity(); - logDetails.setRootAppPk(main.getString("id")); - logDetails.setRootAppBill(main.getString("serialNo")); - logDetails.setNewTransmitInfo(result); - logDetails.setNewPushDate(new Date()); - logDetails.setRootAppNewData(JSON.toJSONString(main)); - logDetails.setPluginId("NingboBankPayPlugin"); - JSONObject resultObj = JSON.parseObject(result); - String attribute = resultObj.getString("attribute"); - boolean flag = resultObj.getBoolean("flag"); - String subState = ""; - String fieldName = main.getString("fieldName"); - String tableName = main.getString("tableName"); - String payMsg = main.getString("payMsg"); -// String subMsg = main.getString("subMsg"); - String str = ""; - String sync_flag = ""; - try { - if(StrUtil.isEmpty(interId)){// 银行状态 1支付中 2 支付失败 null 未提交支付 0支付成功 - logDetails.setCreate_time(new Date()); - logDetails.setModify_time(new Date()); - if(flag){ - subState = "1"; - sync_flag = " ,"+payMsg+" = '支付中'"; - taskLivingDetailsService.saveLogToSuccess(logDetails); - }else{ - subState = "2"; - String resMsg = JSONObject.parseObject(attribute).getString("retMsg"); - sync_flag = " ,"+payMsg+" = '"+resMsg+"'"; - taskLivingDetailsService.saveLogToFail(logDetails); - } - }else{ - logDetails.setId(interId); - logDetails.setModify_time(new Date()); - if(flag){ - subState = "1"; - sync_flag = " ,"+payMsg+" = '支付中'"; - taskLivingDetailsService.saveLogFailToSuccess(logDetails); - }else{ - subState = "2"; - String resMsg = JSONObject.parseObject(attribute).getString("retMsg"); - sync_flag = " ,"+payMsg+" = '"+resMsg+"'"; - taskLivingDetailsService.updateLogFailToSuccess(logDetails); - } - } - - str = "update "+tableName+" set " + fieldName + "= '" +subState+"'" +sync_flag+"where id = '"+main.getString("id")+"'"; - } catch (Exception e) { - subState = "N"; - str = "update "+tableName+" set " + fieldName + "= '" +subState+"'" +payMsg+" = '"+attribute+"' "+"where id = '"+main.getString("id")+"'"; - logger.info("保存日志失败"+e.getMessage()); - oaBillEntity.setSql(str); - payBillDao.updateStateForId(str,oaBillEntity); - e.printStackTrace(); - } - //修改推送状态,防止重复推送 - oaBillEntity.setSql(str); - payBillDao.updateStateForId(str,oaBillEntity); - } - } + ningboBankPluginService.payRequest(hashMaps,getPluginId(),"8000360000",interId); } catch (Exception e) { logger.info("获取OA数据失败"+e.getMessage()); e.printStackTrace(); diff --git a/buildpackage/src/main/java/com/hzya/frame/plugin/a8bill/plugin/NingboBankPayResultPluginInitializer.java b/buildpackage/src/main/java/com/hzya/frame/plugin/a8bill/plugin/NingboBankPayResultPluginInitializer.java index 5f0c1705..7b366558 100644 --- a/buildpackage/src/main/java/com/hzya/frame/plugin/a8bill/plugin/NingboBankPayResultPluginInitializer.java +++ b/buildpackage/src/main/java/com/hzya/frame/plugin/a8bill/plugin/NingboBankPayResultPluginInitializer.java @@ -118,65 +118,8 @@ public class NingboBankPayResultPluginInitializer extends PluginBaseEntity { try { List> hashMaps = payBillDao.getOaBillData(stringBuffer.toString(),oaBillEntity); if(CollectionUtils.isNotEmpty(hashMaps)){ - for (HashMap hashMap : hashMaps) { - JSONObject main = new JSONObject(); - for(String key:hashMap.keySet()) { - main.put(key, hashMap.get(key)); - } - String tableName = main.getString("tableName"); - String fieldName = main.getString("fieldName"); - String payDate = main.getString("payDate"); - String payMsg = main.getString("payMsg"); - try { - - logger.info("获取到付款单状态的数据"+main.toString()); - JSONObject reMain = new JSONObject(); - reMain.put("serialNo",main.getString("serialNo")); - String result = ningboBankPluginService.executeEsb(reMain.toString(),"8000360001"); - logger.info("获取付款状态结果"+result); - - JSONObject resultObj = JSON.parseObject(result); - JSONObject attribute = resultObj.getJSONObject("attribute"); - boolean flag = resultObj.getBoolean("flag"); - - StringBuffer sb = new StringBuffer(); - sb.append("update "+tableName); - if(flag){ - JSONObject data = attribute.getJSONObject("Data"); - JSONObject transferDtl = data.getJSONObject("transferDtl"); - String status = transferDtl.getString("status"); - String msg = PayStatusEnum.getByCode(status); - if(StrUtil.isEmpty(msg)){ - msg ="未知交易状态,请联系管理员查证"; - sb.append(" set "+payMsg+" = '"+msg+"'"); - sb.append(" , "+fieldName+" = '2'"); - } - sb.append(" set "+payMsg+" = '"+msg+"'"); - //收否最终态 - if(PayStatusEnum.isFinally(status)){ - sb.append(" , "+fieldName+" = '0'"); - String payDateStr = DateUtil.now(); - sb.append(" , "+payDate+" = '"+payDateStr+"'"); - } - }else { - sb.append(" set "+payMsg+" = '查询失败,请联系管理员'"); - sb.append(" ,"+fieldName+" = '2'"); - - } - sb.append(" where id = '"+main.getString("id")+"'"); - //修改推送状态,防止重复推送 - oaBillEntity.setSql(sb.toString()); - payBillDao.updateStateForId(sb.toString(),oaBillEntity); - } catch (Exception e) { - StringBuffer sb = new StringBuffer(); - sb.append("update "+tableName ); - sb.append(" set "+payMsg+" = '获取交易状态失败'"); - sb.append(" , "+fieldName+" = '2'"); - sb.append(" where id = '"+main.getString("id")+"'"); - logger.info("获取交易状态失败,更新交易信息为失败状态,后续不在查询"); - e.printStackTrace(); - } - } + //查询交易结果 + ningboBankPluginService.queryResult(hashMaps,"8000360001"); } } catch (Exception e) { e.printStackTrace(); diff --git a/buildpackage/src/main/java/com/hzya/frame/plugin/a8bill/plugin/NingboBankTTPayPluginInitializer.java b/buildpackage/src/main/java/com/hzya/frame/plugin/a8bill/plugin/NingboBankTTPayPluginInitializer.java new file mode 100644 index 00000000..5303546e --- /dev/null +++ b/buildpackage/src/main/java/com/hzya/frame/plugin/a8bill/plugin/NingboBankTTPayPluginInitializer.java @@ -0,0 +1,147 @@ +package com.hzya.frame.plugin.a8bill.plugin; + +import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.hzya.frame.base.PluginBaseEntity; +import com.hzya.frame.plugin.a8bill.dao.IPayBillPluginInitializerDao; +import com.hzya.frame.plugin.a8bill.entity.PayBillEntity; +import com.hzya.frame.plugin.a8bill.service.INingboBankPluginService; +import com.hzya.frame.sysnew.integtationTaskLivingDetails.entity.IntegrationTaskLivingDetailsEntity; +import com.hzya.frame.sysnew.integtationTaskLivingDetails.service.IIntegrationTaskLivingDetailsService; +import com.hzya.frame.web.entity.JsonResultEntity; +import org.apache.commons.collections.CollectionUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; + +import javax.annotation.Resource; +import java.util.Date; +import java.util.HashMap; +import java.util.List; + +/** + * @Description 外汇 TT 汇款 + * @Author xiangerlin + * @Date 2024/8/1 14:33 + **/ +public class NingboBankTTPayPluginInitializer extends PluginBaseEntity { + Logger logger = LoggerFactory.getLogger(getClass()); + @Autowired + private INingboBankPluginService ningboBankPluginService; + @Resource + private IIntegrationTaskLivingDetailsService taskLivingDetailsService; + @Autowired + private IPayBillPluginInitializerDao payBillDao; + @Value("${OA.data_source_code}") + private String oa_data_source_code; + + + /*** + * 插件初始化方法 + * @Author 👻👻👻👻👻👻👻👻 gjh + * @Date 2023-08-02 10:48 + * @Param [] + * @return void + **/ + @Override + public void initialize() { + logger.info(getPluginLabel() + "執行初始化方法initialize()"); + } + + /**** + * 插件销毁方法 + * @author 👻👻👻👻👻👻👻👻 gjh + * @date 2023-08-02 10:48 + * @return void + **/ + @Override + public void destroy() { + logger.info(getPluginLabel() + "執行銷毀方法destroy()"); + } + + /**** + * 插件的ID + * @author 👻👻👻👻👻👻👻👻 gjh + * @date 2023-08-02 10:48 + * @return void + **/ + @Override + public String getPluginId() { + return "NingboBankTTPayPlugin"; + } + + /**** + * 插件的名称 + * @author 👻👻👻👻👻👻👻👻 gjh + * @date 2023-08-02 10:48 + * @return void + **/ + @Override + public String getPluginName() { + return "宁波银行T/T汇款插件"; + } + + /**** + * 插件的显示值 + * @author 👻👻👻👻👻👻👻👻 gjh + * @date 2023-08-02 10:48 + * @return void + **/ + @Override + public String getPluginLabel() { + return "宁波银行T/T汇款插件"; + } + + /*** + * 插件类型 1、场景插件 + * @Author 👻👻👻👻👻👻👻👻 gjh + * @Date 2023-08-02 14:01 + * @Param [] + * @return java.lang.String + **/ + @Override + public String getPluginType() { + return "1"; + } + + /*** + * 执行业务代码 + * @Author 👻👻👻👻👻👻👻👻 gjh + * @Date 2023-08-07 11:20 + * @param requestJson 执行业务代码的参数 + * @return void + **/ + @Override + public JsonResultEntity executeBusiness(JSONObject requestJson) throws Exception { + JSONObject requestJsonObj = JSON.parseObject(requestJson.toString(),JSONObject.class); + String interId = requestJsonObj.getString("integration_task_living_details_id"); + IntegrationTaskLivingDetailsEntity oldMsg = new IntegrationTaskLivingDetailsEntity(); + if(StrUtil.isNotEmpty(interId)){ + oldMsg = taskLivingDetailsService.get(interId); + } + String rootAppPk = oldMsg.getRootAppPk(); + try { + StringBuffer sb = new StringBuffer(); + if(StrUtil.isNotEmpty(rootAppPk)){ + String code = requestJson.getString("code"); + sb.append(" and id = '"+rootAppPk+"'"); + }else{ + sb.append(" and payState is null"); + } + PayBillEntity oaBillEntity = new PayBillEntity(); + oaBillEntity.setDataSourceCode(oa_data_source_code); + StringBuffer stringBuffer = new StringBuffer(); + //付款单 + stringBuffer.append("select * from v_hzya_pay_tt where 1=1 " ); + stringBuffer.append(sb.toString()); + List> hashMaps = payBillDao.getOaBillData(stringBuffer.toString(),oaBillEntity); + ningboBankPluginService.payRequest(hashMaps,getPluginId(),"8000360003",interId); + } catch (Exception e) { + logger.info("获取OA数据失败"+e.getMessage()); + e.printStackTrace(); + } + return new JsonResultEntity("成功",true,new JsonResultEntity()); + } +} diff --git a/buildpackage/src/main/java/com/hzya/frame/plugin/a8bill/plugin/NingboBankTTPayResultPluginInitializer.java b/buildpackage/src/main/java/com/hzya/frame/plugin/a8bill/plugin/NingboBankTTPayResultPluginInitializer.java new file mode 100644 index 00000000..f5ed1791 --- /dev/null +++ b/buildpackage/src/main/java/com/hzya/frame/plugin/a8bill/plugin/NingboBankTTPayResultPluginInitializer.java @@ -0,0 +1,129 @@ +package com.hzya.frame.plugin.a8bill.plugin; + +import com.alibaba.fastjson.JSONObject; +import com.hzya.frame.base.PluginBaseEntity; +import com.hzya.frame.plugin.a8bill.dao.IPayBillPluginInitializerDao; +import com.hzya.frame.plugin.a8bill.entity.PayBillEntity; +import com.hzya.frame.plugin.a8bill.service.INingboBankPluginService; +import com.hzya.frame.sysnew.integtationTaskLivingDetails.service.IIntegrationTaskLivingDetailsService; +import com.hzya.frame.web.entity.JsonResultEntity; +import org.apache.commons.collections.CollectionUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; + +import javax.annotation.Resource; +import java.util.HashMap; +import java.util.List; + +/** + * @Description TT汇款汇出交易结果查询 + * @Author xiangerlin + * @Date 2024/8/2 10:47 + **/ +public class NingboBankTTPayResultPluginInitializer extends PluginBaseEntity { + Logger logger = LoggerFactory.getLogger(getClass()); + @Autowired + private INingboBankPluginService ningboBankPluginService; + @Resource + private IIntegrationTaskLivingDetailsService taskLivingDetailsService; + @Autowired + private IPayBillPluginInitializerDao payBillDao; + @Value("${OA.data_source_code}") + private String oa_data_source_code; + + + /*** + * 插件初始化方法 + * @Author 👻👻👻👻👻👻👻👻 gjh + * @Date 2023-08-02 10:48 + * @Param [] + * @return void + **/ + @Override + public void initialize() { + logger.info(getPluginLabel() + "執行初始化方法initialize()"); + } + + /**** + * 插件销毁方法 + * @author 👻👻👻👻👻👻👻👻 gjh + * @date 2023-08-02 10:48 + * @return void + **/ + @Override + public void destroy() { + logger.info(getPluginLabel() + "執行銷毀方法destroy()"); + } + + /**** + * 插件的ID + * @author 👻👻👻👻👻👻👻👻 gjh + * @date 2023-08-02 10:48 + * @return void + **/ + @Override + public String getPluginId() { + return "NingboBankTTPayResultPlugin"; + } + + /**** + * 插件的名称 + * @author 👻👻👻👻👻👻👻👻 gjh + * @date 2023-08-02 10:48 + * @return void + **/ + @Override + public String getPluginName() { + return "宁波银行T/T汇款交易状态查询插件"; + } + + /**** + * 插件的显示值 + * @author 👻👻👻👻👻👻👻👻 gjh + * @date 2023-08-02 10:48 + * @return void + **/ + @Override + public String getPluginLabel() { + return "宁波银行T/T汇款交易状态查询插件"; + } + + /*** + * 插件类型 1、场景插件 + * @Author 👻👻👻👻👻👻👻👻 gjh + * @Date 2023-08-02 14:01 + * @Param [] + * @return java.lang.String + **/ + @Override + public String getPluginType() { + return "1"; + } + + /*** + * 执行业务代码 + * @Author 👻👻👻👻👻👻👻👻 gjh + * @Date 2023-08-07 11:20 + * @param requestJson 执行业务代码的参数 + * @return void + **/ + @Override + public JsonResultEntity executeBusiness(JSONObject requestJson) throws Exception { + PayBillEntity oaBillEntity = new PayBillEntity(); + oaBillEntity.setDataSourceCode(oa_data_source_code); + StringBuffer stringBuffer = new StringBuffer(); + stringBuffer.append("select * from v_hzya_pay_tt where payState ='1'"); + try { + List> hashMaps = payBillDao.getOaBillData(stringBuffer.toString(),oaBillEntity); + if(CollectionUtils.isNotEmpty(hashMaps)){ + //查询交易结果 + ningboBankPluginService.queryResult(hashMaps,"8000360007"); + } + } catch (Exception e) { + e.printStackTrace(); + } + return new JsonResultEntity("成功",true,new JsonResultEntity()); + } +} diff --git a/buildpackage/src/main/java/com/hzya/frame/plugin/a8bill/service/INingboBankPluginService.java b/buildpackage/src/main/java/com/hzya/frame/plugin/a8bill/service/INingboBankPluginService.java index 0551cd08..5a39a6ae 100644 --- a/buildpackage/src/main/java/com/hzya/frame/plugin/a8bill/service/INingboBankPluginService.java +++ b/buildpackage/src/main/java/com/hzya/frame/plugin/a8bill/service/INingboBankPluginService.java @@ -1,7 +1,9 @@ package com.hzya.frame.plugin.a8bill.service; +import com.alibaba.fastjson.JSONObject; import com.hzya.frame.ningboBankTreasury.dto.res.AccTransactionRes; +import java.util.HashMap; import java.util.List; /** @@ -11,6 +13,14 @@ import java.util.List; **/ public interface INingboBankPluginService { + /** + * 支付申请 + * @param hashMaps oa 查到的数据 + * @param pluginId 插件 id + * @param apiCode api 编码 + * @param interId 重试 id + */ + void payRequest(List> hashMaps,String pluginId,String apiCode,String interId); /** * 调用宁波银行esb接口 * @param params @@ -25,4 +35,11 @@ public interface INingboBankPluginService { * @param accTransactionResList */ void saveAccLog(List accTransactionResList); + + /** + * 查询交易结果 + * @param hashMaps + * @param apiCode + */ + void queryResult(List> hashMaps,String apiCode); } diff --git a/buildpackage/src/main/java/com/hzya/frame/plugin/a8bill/service/impl/NingboBankPluginServiceImpl.java b/buildpackage/src/main/java/com/hzya/frame/plugin/a8bill/service/impl/NingboBankPluginServiceImpl.java index fee9e555..22a44037 100644 --- a/buildpackage/src/main/java/com/hzya/frame/plugin/a8bill/service/impl/NingboBankPluginServiceImpl.java +++ b/buildpackage/src/main/java/com/hzya/frame/plugin/a8bill/service/impl/NingboBankPluginServiceImpl.java @@ -1,25 +1,34 @@ package com.hzya.frame.plugin.a8bill.service.impl; +import cn.hutool.core.convert.Convert; import cn.hutool.core.date.DateUtil; import cn.hutool.core.map.MapBuilder; import cn.hutool.core.util.StrUtil; import cn.hutool.http.HttpRequest; +import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; +import com.hzya.frame.ningboBankTreasury.dto.req.SingleTransferReq; +import com.hzya.frame.ningboBankTreasury.dto.req.TTRemitReq; import com.hzya.frame.ningboBankTreasury.dto.res.AccTransactionRes; import com.hzya.frame.ningboBankTreasury.enums.CurrencyEnum; +import com.hzya.frame.ningboBankTreasury.enums.PayStatusEnum; +import com.hzya.frame.ningboBankTreasury.enums.TTPayStatusEnum; +import com.hzya.frame.plugin.a8bill.dao.IPayBillPluginInitializerDao; +import com.hzya.frame.plugin.a8bill.entity.PayBillEntity; import com.hzya.frame.plugin.a8bill.service.INingboBankPluginService; import com.hzya.frame.seeyon.dongj.entity.Formmain0044Entity; import com.hzya.frame.seeyon.dongj.service.IFormmain0044Service; import com.hzya.frame.stringutil.StringUtil; +import com.hzya.frame.sysnew.integtationTaskLivingDetails.entity.IntegrationTaskLivingDetailsEntity; +import com.hzya.frame.sysnew.integtationTaskLivingDetails.service.IIntegrationTaskLivingDetailsService; import org.apache.commons.collections.CollectionUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; +import javax.annotation.Resource; +import java.util.*; import java.util.stream.Collectors; /** @@ -28,13 +37,203 @@ import java.util.stream.Collectors; * @Date 2024/7/25 16:34 **/ public class NingboBankPluginServiceImpl implements INingboBankPluginService { - + Logger logger = LoggerFactory.getLogger(getClass()); @Autowired private IFormmain0044Service formmain0044Service; - Logger logger = LoggerFactory.getLogger(getClass()); + @Resource + private IIntegrationTaskLivingDetailsService taskLivingDetailsService; + @Autowired + private IPayBillPluginInitializerDao payBillDao; + @Value("${OA.data_source_code}") private String oa_data_source_code; + + /** + * 支付申请 + * @param hashMaps oa 查到的数据 + * @param pluginId 插件 id + * @param apiCode api 编码 + * @param interId 重试 id + */ + @Override + public void payRequest(List> hashMaps, String pluginId, String apiCode,String interId) { + if(CollectionUtils.isNotEmpty(hashMaps)){ + PayBillEntity oaBillEntity = new PayBillEntity(); + oaBillEntity.setDataSourceCode(oa_data_source_code); + + for (HashMap hashMap : hashMaps) { + try { + JSONObject main = new JSONObject(); + for(String key:hashMap.keySet()) { + main.put(key, hashMap.get(key)); + } + String param = ""; + if ("8000360000".equals(apiCode)){ + SingleTransferReq singleTransferReq = JSONObject.parseObject(main.toString(), SingleTransferReq.class); + param = JSONObject.toJSONString(singleTransferReq); + }else if("8000360003".equals(apiCode)){ + TTRemitReq ttRemitReq = JSONObject.parseObject(main.toString(), TTRemitReq.class); + if ("01".equals(ttRemitReq.getPayMode()) || "1".equals(ttRemitReq.getPayMode())){ + ttRemitReq.setFileUploadCodes(Convert.toList(String.class,"0a736c17-e79f-48be-b3cd-710585165d55")); + } + param = JSONObject.toJSONString(ttRemitReq); + } + if (StrUtil.isEmpty(param)){ + param = main.toString(); + } + logger.info("获取到付款单的数据:{}",main.toString()); + String result = this.executeEsb(param,apiCode); + logger.info("推送宁波银行的返回结果:{}",result); + IntegrationTaskLivingDetailsEntity logDetails = new IntegrationTaskLivingDetailsEntity(); + logDetails.setRootAppPk(main.getString("id")); + logDetails.setRootAppBill(main.getString("serialNo")); + logDetails.setNewTransmitInfo(result); + logDetails.setNewPushDate(new Date()); + logDetails.setRootAppNewData(JSON.toJSONString(main)); + logDetails.setPluginId(pluginId); + JSONObject resultObj = JSON.parseObject(result); + String attribute = resultObj.getString("attribute"); + boolean flag = resultObj.getBoolean("flag"); + String subState = ""; + String fieldName = main.getString("fieldName"); + String tableName = main.getString("tableName"); + String payMsg = main.getString("payMsg"); +// String subMsg = main.getString("subMsg"); + String str = ""; + String sync_flag = ""; + try { + if(StrUtil.isEmpty(interId)){// 银行状态 1支付中 2 支付失败 null 未提交支付 0支付成功 + logDetails.setCreate_time(new Date()); + logDetails.setModify_time(new Date()); + if(flag){ + subState = "1"; + sync_flag = " ,"+payMsg+" = '支付中'"; + taskLivingDetailsService.saveLogToSuccess(logDetails); + }else{ + subState = "2"; + String resMsg = JSONObject.parseObject(attribute).getString("retMsg"); + sync_flag = " ,"+payMsg+" = '"+resMsg+"'"; + taskLivingDetailsService.saveLogToFail(logDetails); + } + }else{ + logDetails.setId(interId); + logDetails.setModify_time(new Date()); + if(flag){ + subState = "1"; + sync_flag = " ,"+payMsg+" = '支付中'"; + taskLivingDetailsService.saveLogFailToSuccess(logDetails); + }else{ + subState = "2"; + String resMsg = JSONObject.parseObject(attribute).getString("retMsg"); + sync_flag = " ,"+payMsg+" = '"+resMsg+"'"; + taskLivingDetailsService.updateLogFailToSuccess(logDetails); + } + } + + str = "update "+tableName+" set " + fieldName + "= '" +subState+"'" +sync_flag+"where id = '"+main.getString("id")+"'"; + } catch (Exception e) { + subState = "N"; + str = "update "+tableName+" set " + fieldName + "= '" +subState+"'" +payMsg+" = '"+attribute+"' "+"where id = '"+main.getString("id")+"'"; + logger.info("保存日志失败"+e.getMessage()); + oaBillEntity.setSql(str); + payBillDao.updateStateForId(str,oaBillEntity); + e.printStackTrace(); + } + //修改推送状态,防止重复推送 + oaBillEntity.setSql(str); + payBillDao.updateStateForId(str,oaBillEntity); + }catch (Exception e){ + logger.info("宁波银行付款接口调用出错:{}",e); + } + } + } + } + + /** + * 查询交易结果 + * + * @param hashMaps + * @param apiCode + */ + @Override + public void queryResult(List> hashMaps, String apiCode) { + if(CollectionUtils.isNotEmpty(hashMaps)){ + PayBillEntity oaBillEntity = new PayBillEntity(); + oaBillEntity.setDataSourceCode(oa_data_source_code); + for (HashMap hashMap : hashMaps) { + JSONObject main = new JSONObject(); + for(String key:hashMap.keySet()) { + main.put(key, hashMap.get(key)); + } + String tableName = main.getString("tableName"); + String fieldName = main.getString("fieldName"); + String payDate = main.getString("payDate"); + String payMsg = main.getString("payMsg"); + try { + + logger.info("获取到付款单状态的数据"+main.toString()); + JSONObject reMain = new JSONObject(); + reMain.put("serialNo",main.getString("serialNo")); + String result = this.executeEsb(reMain.toString(),apiCode); + logger.info("获取付款状态结果"+result); + + JSONObject resultObj = JSON.parseObject(result); + JSONObject attribute = resultObj.getJSONObject("attribute"); + boolean flag = resultObj.getBoolean("flag"); + + StringBuffer sb = new StringBuffer(); + sb.append("update "+tableName); + if(flag){ + JSONObject data = attribute.getJSONObject("Data"); + JSONObject transferDtl = new JSONObject(); + String status = ""; + String msg = ""; + boolean isFinally = true; + if ("8000360001".equals(apiCode)){ + transferDtl = data.getJSONObject("transferDtl"); + status = transferDtl.getString("status"); + msg = PayStatusEnum.getByCode(status); + isFinally = PayStatusEnum.isFinally(status); + }else if ("8000360007".equals(apiCode)){ + status = data.getString("transState"); + msg = TTPayStatusEnum.getByCode(status); + isFinally = TTPayStatusEnum.isFinally(status); + } + if(StrUtil.isEmpty(msg)){ + msg ="未知交易状态,请联系管理员查证"; + sb.append(" set "+payMsg+" = '"+msg+"'"); + sb.append(" , "+fieldName+" = '2'"); + } + sb.append(" set "+payMsg+" = '"+msg+"'"); + //是否最终态 + if(isFinally){ + sb.append(" , "+fieldName+" = '0'"); + String payDateStr = DateUtil.now(); + sb.append(" , "+payDate+" = '"+payDateStr+"'"); + } + }else { + sb.append(" set "+payMsg+" = '"+attribute.getString("retMsg")+"'"); + sb.append(" ,"+fieldName+" = '2'"); + + } + sb.append(" where id = '"+main.getString("id")+"'"); + //修改推送状态,防止重复推送 + oaBillEntity.setSql(sb.toString()); + payBillDao.updateStateForId(sb.toString(),oaBillEntity); + } catch (Exception e) { + StringBuffer sb = new StringBuffer(); + sb.append("update "+tableName ); + sb.append(" set "+payMsg+" = '获取交易状态失败'"); + sb.append(" , "+fieldName+" = '2'"); + sb.append(" where id = '"+main.getString("id")+"'"); + logger.info("获取交易状态失败,更新交易信息为失败状态,后续不在查询"); + e.printStackTrace(); + } + } + } + } + /** * 调用宁波银行esb接口 * diff --git a/service/src/main/java/com/hzya/frame/ningboBankTreasury/dto/req/TTRemitReq.java b/service/src/main/java/com/hzya/frame/ningboBankTreasury/dto/req/TTRemitReq.java new file mode 100644 index 00000000..bf46a6e6 --- /dev/null +++ b/service/src/main/java/com/hzya/frame/ningboBankTreasury/dto/req/TTRemitReq.java @@ -0,0 +1,390 @@ +package com.hzya.frame.ningboBankTreasury.dto.req; + +import java.util.List; + +/** + * @Description T/T汇款提交 + * @Author xiangerlin + * @Date 2024/8/1 17:14 + **/ +public class TTRemitReq { + private String custId; + private String serialNo; + private String remitType; + private String transferType; + private String corpCode; + private String remitAddress; + private String bankType; + private String payMode; + private String estimateDate; + private String remitCurCode; + private String smallCurCode; + private String totalAmt; + private String transAmt; + private String subTransCode; + private String goods; + private String transAmt2; + private String subTransCode2; + private String goods2; + private String remitAcc; + private String curRemitAmt; + private String remitAcc2; + private String curRemitAmt2; + private String curRemitAmt3; + private String remitAcc3; + private String isAgent; + private String agentAcc; + private String agentBankSwiftCode; + private String rcvSettleType; + private String rcvBankCode; + private String rcvCountryCode; + private String rcvName; + private String rcvAddress; + private String rcvAcc; + private String costPayer; + private String costAcc; + private String isFullPay; + private String paymentProp; + private String contacts; + private String contactPhone; + private String payUnderFreeTax; + //private List contractDtlList; + private String postscript; + private List fileUploadCodes; + + public String getCustId() { + return custId; + } + + public void setCustId(String custId) { + this.custId = custId; + } + + public String getSerialNo() { + return serialNo; + } + + public void setSerialNo(String serialNo) { + this.serialNo = serialNo; + } + + public String getRemitType() { + return remitType; + } + + public void setRemitType(String remitType) { + this.remitType = remitType; + } + + public String getTransferType() { + return transferType; + } + + public void setTransferType(String transferType) { + this.transferType = transferType; + } + + public String getCorpCode() { + return corpCode; + } + + public void setCorpCode(String corpCode) { + this.corpCode = corpCode; + } + + public String getRemitAddress() { + return remitAddress; + } + + public void setRemitAddress(String remitAddress) { + this.remitAddress = remitAddress; + } + + public String getBankType() { + return bankType; + } + + public void setBankType(String bankType) { + this.bankType = bankType; + } + + public String getPayMode() { + return payMode; + } + + public void setPayMode(String payMode) { + this.payMode = payMode; + } + + public String getEstimateDate() { + return estimateDate; + } + + public void setEstimateDate(String estimateDate) { + this.estimateDate = estimateDate; + } + + public String getRemitCurCode() { + return remitCurCode; + } + + public void setRemitCurCode(String remitCurCode) { + this.remitCurCode = remitCurCode; + } + + public String getSmallCurCode() { + return smallCurCode; + } + + public void setSmallCurCode(String smallCurCode) { + this.smallCurCode = smallCurCode; + } + + public String getTotalAmt() { + return totalAmt; + } + + public void setTotalAmt(String totalAmt) { + this.totalAmt = totalAmt; + } + + public String getTransAmt() { + return transAmt; + } + + public void setTransAmt(String transAmt) { + this.transAmt = transAmt; + } + + public String getSubTransCode() { + return subTransCode; + } + + public void setSubTransCode(String subTransCode) { + this.subTransCode = subTransCode; + } + + public String getGoods() { + return goods; + } + + public void setGoods(String goods) { + this.goods = goods; + } + + public String getTransAmt2() { + return transAmt2; + } + + public void setTransAmt2(String transAmt2) { + this.transAmt2 = transAmt2; + } + + public String getSubTransCode2() { + return subTransCode2; + } + + public void setSubTransCode2(String subTransCode2) { + this.subTransCode2 = subTransCode2; + } + + public String getGoods2() { + return goods2; + } + + public void setGoods2(String goods2) { + this.goods2 = goods2; + } + + public String getRemitAcc() { + return remitAcc; + } + + public void setRemitAcc(String remitAcc) { + this.remitAcc = remitAcc; + } + + public String getCurRemitAmt() { + return curRemitAmt; + } + + public void setCurRemitAmt(String curRemitAmt) { + this.curRemitAmt = curRemitAmt; + } + + public String getRemitAcc2() { + return remitAcc2; + } + + public void setRemitAcc2(String remitAcc2) { + this.remitAcc2 = remitAcc2; + } + + public String getCurRemitAmt2() { + return curRemitAmt2; + } + + public void setCurRemitAmt2(String curRemitAmt2) { + this.curRemitAmt2 = curRemitAmt2; + } + + public String getCurRemitAmt3() { + return curRemitAmt3; + } + + public void setCurRemitAmt3(String curRemitAmt3) { + this.curRemitAmt3 = curRemitAmt3; + } + + public String getRemitAcc3() { + return remitAcc3; + } + + public void setRemitAcc3(String remitAcc3) { + this.remitAcc3 = remitAcc3; + } + + public String getIsAgent() { + return isAgent; + } + + public void setIsAgent(String isAgent) { + this.isAgent = isAgent; + } + + public String getAgentAcc() { + return agentAcc; + } + + public void setAgentAcc(String agentAcc) { + this.agentAcc = agentAcc; + } + + public String getAgentBankSwiftCode() { + return agentBankSwiftCode; + } + + public void setAgentBankSwiftCode(String agentBankSwiftCode) { + this.agentBankSwiftCode = agentBankSwiftCode; + } + + public String getRcvSettleType() { + return rcvSettleType; + } + + public void setRcvSettleType(String rcvSettleType) { + this.rcvSettleType = rcvSettleType; + } + + public String getRcvBankCode() { + return rcvBankCode; + } + + public void setRcvBankCode(String rcvBankCode) { + this.rcvBankCode = rcvBankCode; + } + + public String getRcvCountryCode() { + return rcvCountryCode; + } + + public void setRcvCountryCode(String rcvCountryCode) { + this.rcvCountryCode = rcvCountryCode; + } + + public String getRcvName() { + return rcvName; + } + + public void setRcvName(String rcvName) { + this.rcvName = rcvName; + } + + public String getRcvAddress() { + return rcvAddress; + } + + public void setRcvAddress(String rcvAddress) { + this.rcvAddress = rcvAddress; + } + + public String getRcvAcc() { + return rcvAcc; + } + + public void setRcvAcc(String rcvAcc) { + this.rcvAcc = rcvAcc; + } + + public String getCostPayer() { + return costPayer; + } + + public void setCostPayer(String costPayer) { + this.costPayer = costPayer; + } + + public String getCostAcc() { + return costAcc; + } + + public void setCostAcc(String costAcc) { + this.costAcc = costAcc; + } + + public String getIsFullPay() { + return isFullPay; + } + + public void setIsFullPay(String isFullPay) { + this.isFullPay = isFullPay; + } + + public String getPaymentProp() { + return paymentProp; + } + + public void setPaymentProp(String paymentProp) { + this.paymentProp = paymentProp; + } + + public String getContacts() { + return contacts; + } + + public void setContacts(String contacts) { + this.contacts = contacts; + } + + public String getContactPhone() { + return contactPhone; + } + + public void setContactPhone(String contactPhone) { + this.contactPhone = contactPhone; + } + + public String getPayUnderFreeTax() { + return payUnderFreeTax; + } + + public void setPayUnderFreeTax(String payUnderFreeTax) { + this.payUnderFreeTax = payUnderFreeTax; + } + + public String getPostscript() { + return postscript; + } + + public void setPostscript(String postscript) { + this.postscript = postscript; + } + + public List getFileUploadCodes() { + return fileUploadCodes; + } + + public void setFileUploadCodes(List fileUploadCodes) { + this.fileUploadCodes = fileUploadCodes; + } +} diff --git a/service/src/main/java/com/hzya/frame/ningboBankTreasury/enums/TTPayStatusEnum.java b/service/src/main/java/com/hzya/frame/ningboBankTreasury/enums/TTPayStatusEnum.java new file mode 100644 index 00000000..c90150c2 --- /dev/null +++ b/service/src/main/java/com/hzya/frame/ningboBankTreasury/enums/TTPayStatusEnum.java @@ -0,0 +1,78 @@ +package com.hzya.frame.ningboBankTreasury.enums; + +/** + * @Description T/T汇款 支付状态枚举 + * @Author xiangerlin + * @Date 2024/8/2 15:42 + **/ +public enum TTPayStatusEnum{ + + // 成功和失败状态 + SUCCESS("0", "交易成功"), + TRANSACTION_FAILED("2", "交易失败"), + TRANSACTION_SENDING("8", "交易发送中"), + + // 审批状态 + + APPROVAL_IN_PROGRESS("11-94", "审批中"), + APPROVAL_PASSED("95", "审批通过"), + APPROVAL_REJECTED_CLOSED("-3", "审批打回,交易关闭"), + + // 其他状态 + TEMPORARY_STORAGE("7", "暂存"), + DELETED("-2", "删除"), + BANK_PROCESSING("1", "银行处理中"), + APPROVAL_REJECTED("-1", "审批打回"); + + // 枚举属性 + private final String code; + private final String description; + + // 枚举构造函数 + TTPayStatusEnum(String code, String description) { + this.code = code; + this.description = description; + } + + // 获取状态码 + public String getCode() { + return code; + } + + // 获取状态描述 + public String getDescription() { + return description; + } + + + // 根据状态码查找枚举 + public static TTPayStatusEnum fromCode(String code) { + for (TTPayStatusEnum status : TTPayStatusEnum.values()) { + if (status.getCode().equals(code)) { + return status; + } + } + throw new IllegalArgumentException("Unknown code: " + code); + } + + public static String getByCode(String code){ + for (TTPayStatusEnum status : TTPayStatusEnum.values()) { + if (status.getCode().equals(code)) { + return status.getDescription(); + } + } + throw new IllegalArgumentException("Unknown code: " + code); + } + + /** + * 是否为最终态 + * @param code + * @return + */ + public static boolean isFinally(String code){ + return SUCCESS.code.equals(code) + || APPROVAL_REJECTED_CLOSED.code.equals(code) + || DELETED.code.equals(code) + || TRANSACTION_FAILED.code.equals(code); + } +} diff --git a/service/src/main/java/com/hzya/frame/ningboBankTreasury/service/impl/NingboBankTreasuryServiceImpl.java b/service/src/main/java/com/hzya/frame/ningboBankTreasury/service/impl/NingboBankTreasuryServiceImpl.java index 207f9fec..f2cc7c40 100644 --- a/service/src/main/java/com/hzya/frame/ningboBankTreasury/service/impl/NingboBankTreasuryServiceImpl.java +++ b/service/src/main/java/com/hzya/frame/ningboBankTreasury/service/impl/NingboBankTreasuryServiceImpl.java @@ -58,6 +58,7 @@ public class NingboBankTreasuryServiceImpl implements INingboBankTreasuryService } //发送数据 try { + logger.info("调用宁波银行接口最终参数:{}",dataJson); String returnData = OpenSDK.send(productID,serviceID,dataJson.replace(" ","")); if(returnData == null || "".equals(returnData)){ returnJson.put("retCode","9999"); From ae561ea8b80087bb78e17d25c2008214a7afe8d9 Mon Sep 17 00:00:00 2001 From: xiang2lin <251481237@qq.com> Date: Mon, 5 Aug 2024 09:25:54 +0800 Subject: [PATCH 2/3] =?UTF-8?q?T/T=E6=B1=87=E6=AC=BE=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E6=96=87=E4=BB=B6=202024=E5=B9=B48=E6=9C=885=E6=97=A5=2009:25:?= =?UTF-8?q?50?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../plugin/ningbobank/spring/spring-buildpackage-plugin.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/buildpackage/src/main/resources/cfgHome/plugin/ningbobank/spring/spring-buildpackage-plugin.xml b/buildpackage/src/main/resources/cfgHome/plugin/ningbobank/spring/spring-buildpackage-plugin.xml index 3c2d53a3..207becf2 100644 --- a/buildpackage/src/main/resources/cfgHome/plugin/ningbobank/spring/spring-buildpackage-plugin.xml +++ b/buildpackage/src/main/resources/cfgHome/plugin/ningbobank/spring/spring-buildpackage-plugin.xml @@ -4,4 +4,6 @@ + + From 99ad32eb0aef0f6199d159500645c76a64678c07 Mon Sep 17 00:00:00 2001 From: hecan <1718492867@qq.com> Date: Mon, 5 Aug 2024 11:56:08 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E4=B8=AD=E6=A0=B9=E6=8D=AEdata=5Fid=E5=88=A4=E6=96=AD=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E6=98=AF=E5=90=A6=E5=B7=B2=E7=BB=8F=E4=BF=9D=E5=AD=98?= =?UTF-8?q?=E8=BF=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/ComparisonServiceImpl.java | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/service/src/main/java/com/hzya/frame/sysnew/comparison/service/impl/ComparisonServiceImpl.java b/service/src/main/java/com/hzya/frame/sysnew/comparison/service/impl/ComparisonServiceImpl.java index 9defee72..fa22661d 100644 --- a/service/src/main/java/com/hzya/frame/sysnew/comparison/service/impl/ComparisonServiceImpl.java +++ b/service/src/main/java/com/hzya/frame/sysnew/comparison/service/impl/ComparisonServiceImpl.java @@ -206,11 +206,24 @@ public class ComparisonServiceImpl extends BaseService } } if(jsonObjectMain!=null && jsonObjectMain.size()>0) { - Map map = new HashMap<>();//将主表数据存到map中 + Map map = new HashMap<>();//将主表数据存到map中 List>> mapDetails = new ArrayList<>();//将子表数据存到map中 if (comparisonEntities != null && comparisonEntities.size() > 0) { map = spliceMainMap(comparisonEntities, jsonObjectMain, map, comparisonEntity, comparisonDetailsEntity); + //根据data_id判断数据是否已经保存在相关表中,避免重复保存 + List fields = getFields(comparisonEntity); + Map mapDataId=new HashMap<>(); + mapDataId.put("data_id",jsonObjectMain.getString("data_id")); + ComparisonEntity comparisonDataId=new ComparisonEntity(); + comparisonDataId.setMap(mapDataId); + comparisonDataId.setDbName(comparisonEntity.getDbName()); + comparisonDataId.setFields(fields); + List> listDataId = comparisonDao.queryComparisonPage(comparisonDataId); + if(CollectionUtils.isNotEmpty(listDataId)){ + return BaseResult.getFailureMessageEntity(comparisonEntity.getDbName()+"表中已经存在data_id为:"+jsonObjectMain.getString("data_id")+"的数据"); + } + //判断输入的主表字段是否是必填项 for (ComparisonEntity entity : comparisonEntities) { //如果必填字段不为空