Commit f90f368d authored by fangxinjiang's avatar fangxinjiang

Merge remote-tracking branch 'origin/MVP1.7.20' into MVP1.7.20

parents 064de39b c1b7c913
......@@ -19,6 +19,7 @@ import com.icbc.api.response.MybankEnterprisePayQpayentResponseV1;
import com.icbc.api.utils.IcbcSignature;
import com.icbc.api.utils.WebUtils;
import com.jcraft.jsch.*;
import com.yifu.cloud.plus.v1.ekp.config.IcbcConfigProperties;
import com.yifu.cloud.plus.v1.ekp.config.IcbcIssueConfigProperties;
import com.yifu.cloud.plus.v1.ekp.entity.*;
import com.yifu.cloud.plus.v1.ekp.mapper.EkpSocialInfoMapper;
......@@ -74,6 +75,9 @@ public class IcbcTransactionFlowIssueServiceImpl extends ServiceImpl<EkpSocialIn
@Autowired
private IcbcIssueConfigProperties icbcConfigProperties;
@Autowired
private IcbcConfigProperties noTaxIcbcConfigProperties;
@Autowired
private IcbcTransactionFlowQueryService icbcTransactionFlowQueryService;
@Autowired
......@@ -1291,17 +1295,17 @@ public class IcbcTransactionFlowIssueServiceImpl extends ServiceImpl<EkpSocialIn
String tranTime = currentTime.format(timeFormatter);
String tranDate = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyyMMdd"));
// 初始化工行客户端
DefaultIcbcClient client = new DefaultIcbcClient(icbcConfigProperties.getAppId(),
DefaultIcbcClient client = new DefaultIcbcClient(noTaxIcbcConfigProperties.getAppId(),
IcbcConstants.SIGN_TYPE_CA_SM_ICBC,
icbcConfigProperties.getAppPrivateKey(),
noTaxIcbcConfigProperties.getAppPrivateKey(),
IcbcConstants.CHARSET_UTF8,
IcbcConstants.FORMAT_JSON,
null,
null,
null,
icbcConfigProperties.getCaSm(),
noTaxIcbcConfigProperties.getCaSm(),
null);
client.setIcbc_ca(icbcConfigProperties.getCaSmIcbc());
client.setIcbc_ca(noTaxIcbcConfigProperties.getCaSmIcbc());
MybankEnterprisePayQpayentResponseV1 responseV1;
String title = "转账";
......@@ -1330,25 +1334,38 @@ public class IcbcTransactionFlowIssueServiceImpl extends ServiceImpl<EkpSocialIn
int i = 0;
if (mainList != null && !mainList.isEmpty()) {
EkpBankPayTask main;
// 是否全部时8:授权失败,如果是,则整单失败
boolean isShouQuanShiBai;
for (EkpBankResultVo vo : mainList) {
seqNo = seqNoPre + System.currentTimeMillis() + (i++);
responseV1 = icbcTransactionFlowQueryService.getResultNoTax(vo, tranDate, tranTime, seqNo, client);
if (Common.isNotNull(responseV1)) {
// 生成工行接口数据记录
setIcbcLogBaseInfoNoTax(responseV1, icbcLogList, vo.getFdWxNo(), vo.getFdId());
dataList = responseV1.getRd();
isShouQuanShiBai = false;
if (dataList != null && !dataList.isEmpty()) {
for (MybankEnterprisePayQpayentResponseV1.MybankEnterprisePayQpayentResponseRdV1 data : dataList) {
if (CommonConstants.EIGHT_STRING.equals(data.getResult())) {
isShouQuanShiBai = true;
} else {
isShouQuanShiBai = false;
break;
}
}
}
// 返回码,交易成功返回0,正表示业务报错,负表示系统报错
if (responseV1.isSuccess()) {
if (responseV1.isSuccess() && !isShouQuanShiBai) {
// 生成日志主表
logs = new EkpBankGrantLog();
saveNewEkpBankGrantLog(responseV1.getPackageName(), vo, vo.getFdId(), logs, title);
dataList = responseV1.getRd();
oldDetailList = ekpBankGrantDetailService.getListByParentId(vo.getFdId());
oldMap = new HashMap<>();
if (oldDetailList != null && !oldDetailList.isEmpty()) {
for (EkpBankGrantDetail temp : oldDetailList) {
// oldMap.put temp.getFdSerialNumber(), temp)
oldMap.put(temp.getFdId(), temp);
oldMap.put(temp.getFdSerialNumber(), temp);
}
}
moneyAll = BigDecimal.ZERO;
......@@ -1371,7 +1388,7 @@ public class IcbcTransactionFlowIssueServiceImpl extends ServiceImpl<EkpSocialIn
logDetail = new EkpBankGrantLogDetail();
setLogDetailBaseInfoNoTax(logs, money, logDetail, data);
detailData = oldMap.get(data.getErpSqn());
detailData = oldMap.get(data.getiSeqno());
if (detailData != null) {
// 收款人名称
logDetail.setFdPayee(detailData.getFdPayeeName());
......@@ -1386,7 +1403,7 @@ public class IcbcTransactionFlowIssueServiceImpl extends ServiceImpl<EkpSocialIn
numFail++;
detailData.setFdGrantStatus("发放失败");
detailData.setFdHandleStatus("");
statusRemark = STATUS_MAP.get(data.getResult());
statusRemark = NO_TAX_STATUS_MAP.get(data.getResult());
detailData.setFdFailureFeedback(statusRemark);
// 批量更新中信银行表数据,使发放失败处理有数据出现
ekpBankGrantDetailService.updateZhongXinStatus(detailData.getFdSalaryId(), detailData.getFdId(), statusRemark);
......@@ -1419,7 +1436,7 @@ public class IcbcTransactionFlowIssueServiceImpl extends ServiceImpl<EkpSocialIn
// 成功总笔数
logs.setFdTransactionSuccessTotal(numSuccess);
ekpBankGrantLogService.updateById(logs);
} else if (400019 == responseV1.getReturnCode()) {
} else if (400019 == responseV1.getReturnCode() || isShouQuanShiBai) {
main = new EkpBankPayTask();
main.setFdErrorMsg("授权验证失败");
main.setFdId(vo.getFdId());
......@@ -1463,7 +1480,7 @@ public class IcbcTransactionFlowIssueServiceImpl extends ServiceImpl<EkpSocialIn
money = BigDecimalUtils.safeDivide(new BigDecimal(data.getPayAmt()), new BigDecimal("100"), 2);
detailData = new EkpBankGrantDetail();
detailData.setFdId(vo.getFdId());
detailData.setFdSerialNumber(data.getErpSqn());
detailData.setFdSerialNumber(data.getiSeqno());
// 生成日志主表
logs = new EkpBankGrantLog();
......@@ -1490,7 +1507,7 @@ public class IcbcTransactionFlowIssueServiceImpl extends ServiceImpl<EkpSocialIn
logs.setFdFailFee(money);
detailData.setFdGrantStatus("发放失败");
detailData.setFdHandleStatus("");
statusRemark = STATUS_MAP.get(data.getResult());
statusRemark = NO_TAX_STATUS_MAP.get(data.getResult());
detailData.setFdFailureFeedback(statusRemark);
detailData.setFdFailNum(vo.getFdFailNum() + 1);
// 批量更新中信银行表数据,使发放失败处理有数据出现
......@@ -1516,7 +1533,6 @@ public class IcbcTransactionFlowIssueServiceImpl extends ServiceImpl<EkpSocialIn
money = new BigDecimal(vo.getFdMoney());
detailData = new EkpBankGrantDetail();
detailData.setFdId(vo.getFdId());
detailData.setFdSerialNumber("");
// 生成日志主表
logs = new EkpBankGrantLog();
......@@ -1571,6 +1587,8 @@ public class IcbcTransactionFlowIssueServiceImpl extends ServiceImpl<EkpSocialIn
@Override
public R getPdfFile() throws IOException {
// 工商银行SFTP服务器地址
// 差异点:文档目录/Ebillsend/download 用户名:WXYQHL 密钥:getResourceAsStream("icbc")
String host = "gw.open.icbc.com.cn";
// 工商银行SFTP服务器端口
int port = 8001;
......
......@@ -953,10 +953,14 @@ public class IcbcTransactionFlowQueryServiceImpl extends ServiceImpl<EkpSocialIn
MybankEnterprisePayPayentRequestV2.MybankEnterprisePayPayentRequestRdV2 payRecord =
new MybankEnterprisePayPayentRequestV2.MybankEnterprisePayPayentRequestRdV2();
String fdId = detail.getFdId();
if (Common.isNotNull(fdId) && fdId.length()>35) {
fdId = fdId.substring(0, 35);
}
//业务唯一编号:相同指令不重复
payRecord.setUniBusiId(generateUniBusiId());
payRecord.setUniBusiId(fdId);
//指令顺序号:每笔指令的序号,本包内不重复
payRecord.setiSeqNo(generateSeqNo());
payRecord.setiSeqNo(detail.getFdSerialNumber());
//预约日期
// payRecord.setScheduleDate("20251126");
//对公对私标志:0:对公;1:个人
......@@ -1020,7 +1024,7 @@ public class IcbcTransactionFlowQueryServiceImpl extends ServiceImpl<EkpSocialIn
//相关业务编号
// payRecord.setRelatedRefNo(record.getRelatedRefNo());
//ERP流水号
payRecord.setErpSerialNo(detail.getFdId());
//payRecord.setErpSerialNo(detail.getFdId());
//ERP支票号
// payRecord.setErpCheckNo(record.getErpCheckNo());
//业务代码
......@@ -1041,10 +1045,14 @@ public class IcbcTransactionFlowQueryServiceImpl extends ServiceImpl<EkpSocialIn
private MybankEnterprisePayPayentRequestV2.MybankEnterprisePayPayentRequestRdV2 buildPayRecordDuiSi(EkpBankExcelNoTaxVo detail) {
MybankEnterprisePayPayentRequestV2.MybankEnterprisePayPayentRequestRdV2 payRecord =
new MybankEnterprisePayPayentRequestV2.MybankEnterprisePayPayentRequestRdV2();
String fdId = detail.getFdId();
if (Common.isNotNull(fdId) && fdId.length()>35) {
fdId = fdId.substring(0, 35);
}
//业务唯一编号:相同指令不重复
payRecord.setUniBusiId(generateUniBusiId());
payRecord.setUniBusiId(fdId);
//指令顺序号:每笔指令的序号,本包内不重复
payRecord.setiSeqNo(generateSeqNo());
payRecord.setiSeqNo(detail.getFdSerialNumber());
//预约日期
// payRecord.setScheduleDate("20251126");
//对公对私标志:0:对公;1:个人
......@@ -1090,7 +1098,8 @@ public class IcbcTransactionFlowQueryServiceImpl extends ServiceImpl<EkpSocialIn
} else {
payRecord.setPurpose("转账");
}
payRecord.setErpSerialNo(detail.getFdId());
// 超长了,20长度
//payRecord.setErpSerialNo(detail.getFdId());
//摘要
//payRecord.setSummary("12");
return payRecord;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment