This commit is contained in:
张秉卓
2026-04-08 10:14:31 +08:00
parent 3b310b6328
commit 4e6bae6717
31 changed files with 67 additions and 326 deletions

View File

@ -1,7 +1,6 @@
package com.xjrsoft.module.fssp.dto; package com.xjrsoft.module.externalApi.dto;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import java.math.BigDecimal; import java.math.BigDecimal;

View File

@ -1,4 +1,4 @@
package com.xjrsoft.module.fssp.dto; package com.xjrsoft.module.externalApi.dto;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data; import lombok.Data;

View File

@ -1,4 +1,4 @@
package com.xjrsoft.module.fssp.request; package com.xjrsoft.module.externalApi.request;
import lombok.Data; import lombok.Data;

View File

@ -1,4 +1,4 @@
package com.xjrsoft.module.fssp.request; package com.xjrsoft.module.externalApi.request;
import lombok.Data; import lombok.Data;

View File

@ -1,4 +1,4 @@
package com.xjrsoft.module.fssp.request; package com.xjrsoft.module.externalApi.request;
import lombok.Data; import lombok.Data;

View File

@ -1,4 +1,4 @@
package com.xjrsoft.module.fssp.request; package com.xjrsoft.module.externalApi.request;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data; import lombok.Data;

View File

@ -1,4 +1,4 @@
package com.xjrsoft.module.fssp.request; package com.xjrsoft.module.externalApi.request;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data; import lombok.Data;

View File

@ -1,4 +1,4 @@
package com.xjrsoft.module.fssp.request; package com.xjrsoft.module.externalApi.request;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data; import lombok.Data;

View File

@ -1,4 +1,4 @@
package com.xjrsoft.module.fssp.response; package com.xjrsoft.module.externalApi.response;
import lombok.Data; import lombok.Data;
@ -6,7 +6,7 @@ import lombok.Data;
* 应用令牌响应类用于封装应用令牌接口返回的数据 * 应用令牌响应类用于封装应用令牌接口返回的数据
*/ */
@Data @Data
public class AccessTokenResp { public class AccessTokenResponse {
// 请求是否成功的标识true或false // 请求是否成功的标识true或false
private String success; private String success;

View File

@ -1,4 +1,4 @@
package com.xjrsoft.module.fssp.response; package com.xjrsoft.module.externalApi.response;
import lombok.Data; import lombok.Data;
@ -6,7 +6,7 @@ import lombok.Data;
* 应用令牌响应类用于封装应用令牌接口返回的数据 * 应用令牌响应类用于封装应用令牌接口返回的数据
*/ */
@Data @Data
public class AppTokenResp { public class AppTokenResponse {
// 请求是否成功的标识true或false // 请求是否成功的标识true或false
private String success; private String success;

View File

@ -1,4 +1,4 @@
package com.xjrsoft.module.fssp.response; package com.xjrsoft.module.externalApi.response;
import lombok.Data; import lombok.Data;

View File

@ -1,4 +1,4 @@
package com.xjrsoft.module.fssp.response; package com.xjrsoft.module.externalApi.response;
/** /**
* FsspResponse 接口用于定义从联邦服务安全平台(FSSP)获取响应的基本结构 * FsspResponse 接口用于定义从联邦服务安全平台(FSSP)获取响应的基本结构

View File

@ -1,4 +1,4 @@
package com.xjrsoft.module.fssp.response; package com.xjrsoft.module.externalApi.response;
import lombok.Data; import lombok.Data;
@ -9,7 +9,7 @@ import java.util.List;
* @param <T> 泛型类型表示分页数据中列表元素的类型 * @param <T> 泛型类型表示分页数据中列表元素的类型
*/ */
@Data @Data
public class FsspDataResp<T> { public class FsspDataResponse<T> {
// 是否最后一页 // 是否最后一页
private Boolean lastPage; private Boolean lastPage;

View File

@ -1,4 +1,4 @@
package com.xjrsoft.module.fssp.response; package com.xjrsoft.module.externalApi.response;
import lombok.Data; import lombok.Data;
@ -7,7 +7,7 @@ import lombok.Data;
* 该接口提供了一个方法来判断请求是否成功执行 * 该接口提供了一个方法来判断请求是否成功执行
*/ */
@Data @Data
public class FsspResp implements BaseResponse { public class FsspResponse implements BaseResponse {
// 响应状态,truefalse // 响应状态,truefalse
private String success; private String success;
@ -19,7 +19,7 @@ public class FsspResp implements BaseResponse {
private String message; private String message;
// 响应数据泛型类型 // 响应数据泛型类型
private FsspDataResp data; private FsspDataResponse data;
@Override @Override
public boolean isSuccess() { public boolean isSuccess() {

View File

@ -1,4 +1,4 @@
package com.xjrsoft.module.fssp.response; package com.xjrsoft.module.externalApi.response;
import lombok.Data; import lombok.Data;

View File

@ -1,4 +1,4 @@
package com.xjrsoft.module.fssp.response; package com.xjrsoft.module.externalApi.response;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data; import lombok.Data;

View File

@ -1,4 +1,4 @@
package com.xjrsoft.module.fssp.response; package com.xjrsoft.module.externalApi.response;
import lombok.Data; import lombok.Data;
@ -7,7 +7,7 @@ import lombok.Data;
* @param <T> 泛型类型表示响应数据的具体类型 * @param <T> 泛型类型表示响应数据的具体类型
*/ */
@Data @Data
public class TokenResp<T> implements BaseResponse { public class TokenResponse<T> implements BaseResponse {
// 响应状态 // 响应状态
private String state; private String state;

View File

@ -1,126 +0,0 @@
package com.xjrsoft.module.fssp.response;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
* 应用令牌响应类,用于封装应用令牌接口返回的数据
*/
@Data
public class DzhdxxResp {
/**
* 电子回单id
*/
private String id;
/**
* 单据编号
*/
private String billno;
/**
* 资金组织编码, 公司三字码
*/
private String orgNumber;
/**
* 资金组织名称
*/
private String orgName;
/**
* 交易日期
*/
@JsonFormat(pattern = "yyyy-MM-dd")
private LocalDateTime bizdate;
/**
* 币别代码
*/
private String currencyNumber;
/**
* 币别名称
*/
private String currency;
/**
* 银行账号
*/
private String accountbankNumber;
/**
* 银行账户名称
*/
private String accountbank;
/**
* 明细交易时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime detaildatetime;
/**
* 摘要
*/
private String description;
/**
* 业务类型, 1普通 2上划 3下拨
*/
private String biztype;
/**
* 业务参考号
*/
private String bizrefno;
/**
* 付款金额
*/
private BigDecimal debitamount;
/**
* 收款金额
*/
private BigDecimal creditamount;
/**
* 对方单位
*/
private String oppunit;
/**
* 对方账号
*/
private String oppbanknumber;
/**
* 对方开户行
*/
private String oppbank;
/**
* 明细流水号
*/
private String detailid;
/**
* 电子回单号
*/
private String receiptno;
/**
* 对账标识码
*/
private String bankcheckflag;
/**
* 回单路径文件名
*/
private String filepath;
}

View File

@ -1,132 +0,0 @@
package com.xjrsoft.module.fssp.response;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
* 应用令牌响应类,用于封装应用令牌接口返回的数据
*/
@Data
public class YhjymxResp {
/**
* 交易明细id
*/
private String id;
/**
* 交易明细编号
*/
private String billno;
/**
* 资金组织编码, 公司三字码
*/
private String orgNumber;
/**
* 资金组织名称
*/
private String orgName;
/**
* 交易日期
*/
@JsonFormat(pattern = "yyyy-MM-dd")
private LocalDateTime bizdate;
/**
* 记账日期
*/
@JsonFormat(pattern = "yyyy-MM-dd")
private LocalDateTime transdate;
/**
* 币别代码
*/
private String currencyNumber;
/**
* 币别名称
*/
private String currency;
/**
* 银行账号
*/
private String accountbankNumber;
/**
* 银行账户名称
*/
private String accountbank;
/**
* 交易时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime biztime;
/**
* 摘要
*/
private String description;
/**
* 业务类型, 1普通 2上划 3下拨
*/
private String biztype;
/**
* 业务参考号
*/
private String bizrefno;
/**
* 付款金额
*/
private BigDecimal debitamount;
/**
* 收款金额
*/
private BigDecimal creditamount;
/**
* 余额
*/
private BigDecimal transbalance;
/**
* 对方户名
*/
private String oppunit;
/**
* 对方账号
*/
private String oppbanknumber;
/**
* 对方开户行
*/
private String oppbank;
/**
* 对账标识码
*/
private String bankcheckflag;
/**
* 电子回单号
*/
private String receiptno;
/**
* 明细流水号
*/
private String detailid;
}

View File

@ -1,9 +1,9 @@
package com.xjrsoft.module.fssp.client; package com.xjrsoft.module.externalApi.client;
import com.pictc.enums.BusinessCode; import com.pictc.enums.BusinessCode;
import com.xjrsoft.common.exception.BusinessException; import com.xjrsoft.common.exception.BusinessException;
import com.xjrsoft.module.fssp.callback.FsspCallback; import com.xjrsoft.module.externalApi.callback.FsspCallback;
import com.xjrsoft.module.fssp.response.BaseResponse; import com.xjrsoft.module.externalApi.response.BaseResponse;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.http.*; import org.springframework.http.*;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;

View File

@ -1,4 +1,4 @@
package com.xjrsoft.module.fssp.config; package com.xjrsoft.module.externalApi.config;
import lombok.Data; import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.context.properties.ConfigurationProperties;

View File

@ -1,4 +1,4 @@
package com.xjrsoft.module.fssp.entity; package com.xjrsoft.module.externalApi.entity;
import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;

View File

@ -1,4 +1,4 @@
package com.xjrsoft.module.fssp.entity; package com.xjrsoft.module.externalApi.entity;
import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;

View File

@ -1,4 +1,4 @@
package com.xjrsoft.module.fssp.handler; package com.xjrsoft.module.externalApi.handler;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@ -8,16 +8,16 @@ import com.pictc.enums.BusinessCode;
import com.xjrsoft.common.exception.BusinessException; import com.xjrsoft.common.exception.BusinessException;
import com.xjrsoft.common.utils.CollectionUtils; import com.xjrsoft.common.utils.CollectionUtils;
import com.xjrsoft.common.utils.RedisUtil; import com.xjrsoft.common.utils.RedisUtil;
import com.xjrsoft.module.fssp.client.FsspHttpClient; import com.xjrsoft.module.externalApi.client.FsspHttpClient;
import com.xjrsoft.module.fssp.config.FsspConfig; import com.xjrsoft.module.externalApi.config.FsspConfig;
import com.xjrsoft.module.fssp.dto.LngJkRpBillDto; import com.xjrsoft.module.externalApi.dto.LngJkRpBillDto;
import com.xjrsoft.module.fssp.dto.LngJkRpDto; import com.xjrsoft.module.externalApi.dto.LngJkRpDto;
import com.xjrsoft.module.fssp.entity.LngJkRp; import com.xjrsoft.module.externalApi.entity.LngJkRp;
import com.xjrsoft.module.fssp.entity.LngJkRpBill; import com.xjrsoft.module.externalApi.entity.LngJkRpBill;
import com.xjrsoft.module.fssp.request.*; import com.xjrsoft.module.externalApi.request.*;
import com.xjrsoft.module.fssp.response.*; import com.xjrsoft.module.externalApi.response.*;
import com.xjrsoft.module.fssp.service.LngJkRpBillService; import com.xjrsoft.module.externalApi.service.LngJkRpBillService;
import com.xjrsoft.module.fssp.service.LngJkRpService; import com.xjrsoft.module.externalApi.service.LngJkRpService;
import com.xjrsoft.module.system.client.IFileClient; import com.xjrsoft.module.system.client.IFileClient;
import com.xjrsoft.module.system.dto.FileUploadDto; import com.xjrsoft.module.system.dto.FileUploadDto;
import com.xjrsoft.module.system.vo.LngFileUploadVo; import com.xjrsoft.module.system.vo.LngFileUploadVo;
@ -71,8 +71,8 @@ public class FsspJobHandler {
appTokenReq.setAccountId(config.getAccountId()); appTokenReq.setAccountId(config.getAccountId());
appTokenReq.setLanguage(config.getLanguage()); appTokenReq.setLanguage(config.getLanguage());
AtomicReference<String> appToken = new AtomicReference<>(); AtomicReference<String> appToken = new AtomicReference<>();
FsspHttpClient.post(appTokenReq, config.getAppTokenUrl(), TokenResp.class, resp -> { FsspHttpClient.post(appTokenReq, config.getAppTokenUrl(), TokenResponse.class, resp -> {
AppTokenResp data = (AppTokenResp) resp.getData(); AppTokenResponse data = (AppTokenResponse) resp.getData();
if ("0".equals(data.getErrorCode())) { if ("0".equals(data.getErrorCode())) {
appToken.set(data.getAppToken()); appToken.set(data.getAppToken());
redisUtil.set(FSSP_APP_TOKEN, data.getAppToken(), data.getExpireTime()); redisUtil.set(FSSP_APP_TOKEN, data.getAppToken(), data.getExpireTime());
@ -93,8 +93,8 @@ public class FsspJobHandler {
accessTokenReq.setUsertype(config.getUsertype()); accessTokenReq.setUsertype(config.getUsertype());
accessTokenReq.setLanguage(config.getLanguage()); accessTokenReq.setLanguage(config.getLanguage());
AtomicReference<String> accessToken = new AtomicReference<>(); AtomicReference<String> accessToken = new AtomicReference<>();
FsspHttpClient.post(accessTokenReq, config.getLoginUrl(), TokenResp.class, resp -> { FsspHttpClient.post(accessTokenReq, config.getLoginUrl(), TokenResponse.class, resp -> {
AccessTokenResp data = (AccessTokenResp) resp.getData(); AccessTokenResponse data = (AccessTokenResponse) resp.getData();
if ("0".equals(data.getErrorCode())) { if ("0".equals(data.getErrorCode())) {
accessToken.set(data.getAccessToken()); accessToken.set(data.getAccessToken());
redisUtil.set(FSSP_ACCESS_TOKEN, data.getAccessToken(), data.getExpireTime()); redisUtil.set(FSSP_ACCESS_TOKEN, data.getAccessToken(), data.getExpireTime());
@ -121,8 +121,8 @@ public class FsspJobHandler {
Map<String, String> headers = Maps.newHashMap(); Map<String, String> headers = Maps.newHashMap();
String accesstoken = redisUtil.get(FSSP_ACCESS_TOKEN); String accesstoken = redisUtil.get(FSSP_ACCESS_TOKEN);
headers.put(ACCESSTOKEN, StringUtils.isNotBlank(accesstoken) ? accesstoken : this.getAccessToken()); headers.put(ACCESSTOKEN, StringUtils.isNotBlank(accesstoken) ? accesstoken : this.getAccessToken());
FsspHttpClient.post(fsspYhjymxReq, config.getYhjymxUrl(), FsspResp.class, headers, resp -> { FsspHttpClient.post(fsspYhjymxReq, config.getYhjymxUrl(), FsspResponse.class, headers, resp -> {
FsspDataResp data = resp.getData(); FsspDataResponse data = resp.getData();
if (data != null) { if (data != null) {
data.getRows().forEach(row -> { data.getRows().forEach(row -> {
LngJkRpDto lngJkRpDto = (LngJkRpDto) row; LngJkRpDto lngJkRpDto = (LngJkRpDto) row;
@ -157,8 +157,8 @@ public class FsspJobHandler {
Map<String, String> headers = Maps.newHashMap(); Map<String, String> headers = Maps.newHashMap();
String accesstoken = redisUtil.get(FSSP_ACCESS_TOKEN); String accesstoken = redisUtil.get(FSSP_ACCESS_TOKEN);
headers.put(ACCESSTOKEN, StringUtils.isNotBlank(accesstoken) ? accesstoken : this.getAccessToken()); headers.put(ACCESSTOKEN, StringUtils.isNotBlank(accesstoken) ? accesstoken : this.getAccessToken());
FsspHttpClient.post(fsspDzhdxxReq, config.getDzhdxxUrl(), FsspResp.class, headers, resp -> { FsspHttpClient.post(fsspDzhdxxReq, config.getDzhdxxUrl(), FsspResponse.class, headers, resp -> {
FsspDataResp data = resp.getData(); FsspDataResponse data = resp.getData();
if (data != null) { if (data != null) {
data.getRows().forEach(row -> { data.getRows().forEach(row -> {
LngJkRpBillDto lngJkRpBillDto = (LngJkRpBillDto) row; LngJkRpBillDto lngJkRpBillDto = (LngJkRpBillDto) row;
@ -230,8 +230,8 @@ public class FsspJobHandler {
Map<String, String> headers = Maps.newHashMap(); Map<String, String> headers = Maps.newHashMap();
String accesstoken = redisUtil.get(FSSP_ACCESS_TOKEN); String accesstoken = redisUtil.get(FSSP_ACCESS_TOKEN);
headers.put(ACCESSTOKEN, StringUtils.isNotBlank(accesstoken) ? accesstoken : this.getAccessToken()); headers.put(ACCESSTOKEN, StringUtils.isNotBlank(accesstoken) ? accesstoken : this.getAccessToken());
FsspHttpClient.post(fsspPzReq, config.getPzUrl(), FsspResp.class, headers, resp -> { FsspHttpClient.post(fsspPzReq, config.getPzUrl(), FsspResponse.class, headers, resp -> {
FsspDataResp data = resp.getData(); FsspDataResponse data = resp.getData();
data.getRows().forEach(row -> { data.getRows().forEach(row -> {
PzResp pzResp = (PzResp) row; PzResp pzResp = (PzResp) row;
list.add(pzResp); list.add(pzResp);

View File

@ -1,8 +1,8 @@
package com.xjrsoft.module.fssp.mapper; package com.xjrsoft.module.externalApi.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.github.yulichang.base.MPJBaseMapper; import com.github.yulichang.base.MPJBaseMapper;
import com.xjrsoft.module.fssp.entity.LngJkRpBill; import com.xjrsoft.module.externalApi.entity.LngJkRpBill;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
/** /**

View File

@ -1,8 +1,8 @@
package com.xjrsoft.module.fssp.mapper; package com.xjrsoft.module.externalApi.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.github.yulichang.base.MPJBaseMapper; import com.github.yulichang.base.MPJBaseMapper;
import com.xjrsoft.module.fssp.entity.LngJkRp; import com.xjrsoft.module.externalApi.entity.LngJkRp;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
/** /**

View File

@ -1,9 +1,9 @@
package com.xjrsoft.module.fssp.service; package com.xjrsoft.module.externalApi.service;
import com.github.yulichang.base.MPJBaseService; import com.github.yulichang.base.MPJBaseService;
import com.github.yulichang.extension.mapping.base.MPJDeepService; import com.github.yulichang.extension.mapping.base.MPJDeepService;
import com.github.yulichang.extension.mapping.base.MPJRelationService; import com.github.yulichang.extension.mapping.base.MPJRelationService;
import com.xjrsoft.module.fssp.entity.LngJkRpBill; import com.xjrsoft.module.externalApi.entity.LngJkRpBill;
/** /**
* @title: service * @title: service

View File

@ -1,9 +1,9 @@
package com.xjrsoft.module.fssp.service; package com.xjrsoft.module.externalApi.service;
import com.github.yulichang.base.MPJBaseService; import com.github.yulichang.base.MPJBaseService;
import com.github.yulichang.extension.mapping.base.MPJDeepService; import com.github.yulichang.extension.mapping.base.MPJDeepService;
import com.github.yulichang.extension.mapping.base.MPJRelationService; import com.github.yulichang.extension.mapping.base.MPJRelationService;
import com.xjrsoft.module.fssp.entity.LngJkRp; import com.xjrsoft.module.externalApi.entity.LngJkRp;
/** /**
* @title: service * @title: service

View File

@ -1,9 +1,9 @@
package com.xjrsoft.module.fssp.service.impl; package com.xjrsoft.module.externalApi.service.impl;
import com.github.yulichang.base.MPJBaseServiceImpl; import com.github.yulichang.base.MPJBaseServiceImpl;
import com.xjrsoft.module.fssp.entity.LngJkRpBill; import com.xjrsoft.module.externalApi.entity.LngJkRpBill;
import com.xjrsoft.module.fssp.mapper.LngJkRpBillMapper; import com.xjrsoft.module.externalApi.mapper.LngJkRpBillMapper;
import com.xjrsoft.module.fssp.service.LngJkRpBillService; import com.xjrsoft.module.externalApi.service.LngJkRpBillService;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;

View File

@ -1,9 +1,9 @@
package com.xjrsoft.module.fssp.service.impl; package com.xjrsoft.module.externalApi.service.impl;
import com.github.yulichang.base.MPJBaseServiceImpl; import com.github.yulichang.base.MPJBaseServiceImpl;
import com.xjrsoft.module.fssp.entity.LngJkRp; import com.xjrsoft.module.externalApi.entity.LngJkRp;
import com.xjrsoft.module.fssp.mapper.LngJkRpMapper; import com.xjrsoft.module.externalApi.mapper.LngJkRpMapper;
import com.xjrsoft.module.fssp.service.LngJkRpService; import com.xjrsoft.module.externalApi.service.LngJkRpService;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;