宁波银行接口

2024年7月30日 17:33:52
This commit is contained in:
xiang2lin 2024-07-30 17:33:59 +08:00
parent 1eac206f28
commit 2301365d08
11 changed files with 115 additions and 26 deletions

View File

@ -9,6 +9,8 @@ import com.hzya.frame.base.PluginBaseEntity;
import com.hzya.frame.ningboBankTreasury.dto.req.AccTransactionReq;
import com.hzya.frame.ningboBankTreasury.dto.res.AccTransactionRes;
import com.hzya.frame.ningboBankTreasury.util.NingboBankUtil;
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.web.entity.BaseResult;
import com.hzya.frame.web.entity.JsonResultEntity;
@ -16,7 +18,10 @@ 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.HashMap;
import java.util.List;
import java.util.Map;
@ -29,6 +34,10 @@ public class AccLogPluginInitializer extends PluginBaseEntity {
Logger logger = LoggerFactory.getLogger(getClass());
@Autowired
private INingboBankPluginService ningboBankPluginService;
@Value("${OA.data_source_code}")
private String oa_data_source_code;
@Autowired
private IPayBillPluginInitializerDao payBillDao;
/***
* 插件初始化方法
* @Author 👻👻👻👻👻👻👻👻 gjh
@ -106,11 +115,21 @@ public class AccLogPluginInitializer extends PluginBaseEntity {
**/
@Override
public JsonResultEntity executeBusiness(JSONObject requestJson) throws Exception {
PayBillEntity oaBillEntity = new PayBillEntity();
oaBillEntity.setDataSourceCode(oa_data_source_code);
List<HashMap<String, Object>> hashMaps = payBillDao.getOaBillData("SELECT field0002 from formmain_0053",oaBillEntity);
List<String> accList = new ArrayList<>();
if (CollectionUtils.isNotEmpty(hashMaps)){
for (HashMap<String, Object> hashMap : hashMaps) {
String field0002 = String.valueOf(hashMap.get("field0002"));
accList.add(field0002);
}
}
//1查询宁波银行的交易记录
AccTransactionReq accTransactionReq = new AccTransactionReq();
accTransactionReq.setCdSign(NingboBankUtil.SHOURU);
accTransactionReq.setBeginDate("2024-05-01");
accTransactionReq.setEndDate("2024-05-30");
accTransactionReq.setBeginDate("2024-07-01");
accTransactionReq.setEndDate("2024-07-30");
accTransactionReq.setBankAccList(Convert.toList(String.class,"86041110000110293,86041110000109337,6223160030547665,6214180002001411023,6214180000002609736"));
Map<String, String> headerMap = MapBuilder.<String, String>create(true)
.put("apiCode", "8000360002")

View File

@ -17,6 +17,7 @@ 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;
@ -167,24 +168,29 @@ public class NingboBankPayPluginInitializer extends PluginBaseEntity {
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";
sync_flag = " ,"+payMsg+" = '"+attribute+"'";
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";
sync_flag = " ,"+payMsg+" = '"+attribute+"'";
String resMsg = JSONObject.parseObject(attribute).getString("retMsg");
sync_flag = " ,"+payMsg+" = '"+resMsg+"'";
taskLivingDetailsService.updateLogFailToSuccess(logDetails);
}
}

View File

@ -152,7 +152,8 @@ public class NingboBankPayResultPluginInitializer extends PluginBaseEntity {
sb.append(" , "+fieldName+" = '2'");
}
sb.append(" set "+payMsg+" = '"+msg+"'");
if(status.equals("0")||status.equals("-2")||status.equals("-3")||status.equals("2")||status.equals("4")||status.equals("5")||status.equals("6")||status.equals("96")||status.equals("112")){
//收否最终态
if(PayStatusEnum.isFinally(status)){
sb.append(" , "+fieldName+" = '0'");
String payDateStr = DateUtil.now();
sb.append(" , "+payDate+" = '"+payDateStr+"'");

View File

@ -91,7 +91,9 @@ private IFormmain0044Service formmain0044Service;
String serialNo = StringUtil.nullConvert(accTransactionRes.getSerialNo());
String currency = StringUtil.nullConvert(CurrencyEnum.getNameByCode(accTransactionRes.getCurCode()));
String uses = StringUtil.nullConvert(accTransactionRes.getUses());
String curCode = StringUtil.nullConvert(accTransactionRes.getCurCode());
//String curCode = StringUtil.nullConvert(accTransactionRes.getCurCode());
//这里转换成货币符号
String curCode = StringUtil.nullConvert(CurrencyEnum.getSymbolByCode(accTransactionRes.getCurCode()));
String postScript = StringUtil.nullConvert(accTransactionRes.getPostScript());
String data = StrUtil.format(getAccLogXmlTemplate(),bankAcc,bankName,accName,oppAccNo,oppAccName,oppAccBank,transTime,serialId,amt,abs,bankType,serialNo,currency,uses,postScript,curCode);
JSONObject paramsTemplate = new JSONObject();

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<plugin>
<id>NingboBankPlugin</id>
<name>宁波银行财资大管家插件</name>
<category>202407250001</category>
</plugin>

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans default-autowire="byName">
<bean name="payBillPluginInitializerDaoImpl" class="com.hzya.frame.plugin.a8bill.dao.impl.PayBillPluginInitializerDaoImpl" />
</beans>

View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans default-autowire="byName">
<bean name="accLogPluginInitializer" class="com.hzya.frame.plugin.a8bill.plugin.AccLogPluginInitializer" />
<bean name="ningboBankPayPluginInitializer" class="com.hzya.frame.plugin.a8bill.plugin.NingboBankPayPluginInitializer" />
<bean name="ningboBankPayResultPluginInitializer" class="com.hzya.frame.plugin.a8bill.plugin.NingboBankPayResultPluginInitializer" />
</beans>

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans default-autowire="byName">
<bean name="ningboBankPluginServiceImpl" class="com.hzya.frame.plugin.a8bill.service.impl.NingboBankPluginServiceImpl" />
</beans>

View File

@ -65,10 +65,11 @@ public class temButtom {
@Test
public void accDetailTest(){
AccTransactionReq accTransactionReq = new AccTransactionReq();
accTransactionReq.setBeginDate("2024-06-01");
accTransactionReq.setEndDate("2024-06-30");
accTransactionReq.setBeginDate("2024-07-01");
accTransactionReq.setEndDate("2024-07-30");
accTransactionReq.setPageSize("10");
accTransactionReq.setCustId("0000112058");
//accTransactionReq.setBankAccList(Convert.toList(String.class,"86041110000110293,86041110000109337,6223160030547665,6214180002001411023,6214180000002609736"));
accTransactionReq.setBankAccList(Convert.toList(String.class,"86041110000110293,86041110000109337,6223160030547665,6214180002001411023,6214180000002609736"));
List<AccTransactionRes> list = ningboxService.queryAccDetails(accTransactionReq);
System.out.println("查询到的条数"+list.size());

View File

@ -7,25 +7,28 @@ package com.hzya.frame.ningboBankTreasury.enums;
**/
public enum CurrencyEnum {
人民币("01","人民币"),
美元("02","美元"),
澳元("03","澳元"),
欧元("04","欧元"),
日元("05","日元"),
英镑("06","英镑"),
港币("07","港币"),
新加坡元("08","新加坡元"),
加拿大元("09","加拿大元"),
瑞士("10","瑞士"),
泰铢("23","泰铢"),
新台币("92","新台币"),
ALL("ALL","多币");
private final String name;
private final String code;
人民币("01","人民币","CNY"),
美元("02","美元","USD"),
澳元("03","澳元","AUD"),
欧元("04","欧元","EUR"),
日元("05","日元","JPY"),
英镑("06","英镑","GBP"),
港币("07","港币","HKD"),
新加坡元("08","新加坡元","SGD"),
加拿大元("09","加拿大元","CAD"),
瑞士("10","瑞士","CHF"),
泰铢("23","泰铢","THB"),
新台币("92","新台币","TWD"),
ALL("ALL","多币","ALL");
CurrencyEnum(String name, String code) {
this.name = name;
private final String code;
private final String name;
//英文代码 CNY USD之类的
private final String symbol;
CurrencyEnum(String code,String name,String symbol) {
this.code = code;
this.name = name;
this.symbol = symbol;
}
public String getName() {
@ -35,6 +38,10 @@ public enum CurrencyEnum {
return code;
}
public String getSymbol() {
return symbol;
}
/**
* 根据code获取币种名字
* @param code
@ -48,4 +55,18 @@ public enum CurrencyEnum {
}
return null; // 或者抛出异常表示找不到对应的币种
}
/**
* 根据code获取币种符号
* @param code
* @return
*/
public static String getSymbolByCode(String code){
for (CurrencyEnum currency : values()) {
if (currency.code.equals(code)) {
return currency.symbol;
}
}
return null; // 或者抛出异常表示找不到对应的币种
}
}

View File

@ -32,7 +32,6 @@ public enum PayStatusEnum {
// 枚举属性
private final String code;
private final String description;
// 枚举构造函数
PayStatusEnum(String code, String description) {
this.code = code;
@ -69,4 +68,21 @@ public enum PayStatusEnum {
}
throw new IllegalArgumentException("Unknown code: " + code);
}
/**
* 是否为最终态
* @param code
* @return
*/
public static boolean isFinally(String code){
return SUCCESS.code.equals(code)
|| FAILED_DELETED.code.equals(code)
|| APPROVAL_REJECTED_CLOSED.code.equals(code)
|| TRANSACTION_FAILED.code.equals(code)
|| FUND_ALLOCATION_FAILED.code.equals(code)
|| LINKAGE_PAYMENT_FAILED_REFUNDED.code.equals(code)
|| LINKAGE_PAYMENT_FAILED_REFUND_PENDING.code.equals(code)
|| LINKAGE_PAYMENT_FAILED_REFUND_FAILED.code.equals(code)
|| PAYMENT_REQUEST_FAILED.code.equals(code);
}
}