diff --git a/pom.xml b/pom.xml
index 6a01d6a..fdea096 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,7 +4,7 @@
4.0.0
com.czcb.scfs
scfs-api-sdk
- 2.0.16-snapshot
+ 2.0.18-snapshot
scfs-api-sdk
scfs-api-sdk
pom
@@ -75,27 +75,27 @@
com.czcb.scfs
scfs-api-core
- 2.0.16-snapshot
+ 2.0.18-snapshot
com.czcb.scfs
scfs-api-rsa
- 2.0.16-snapshot
+ 2.0.18-snapshot
com.czcb.scfs
scfs-api-service
- 2.0.16-snapshot
+ 2.0.18-snapshot
com.czcb.scfs
scfs-api-sm
- 2.0.16-snapshot
+ 2.0.18-snapshot
com.czcb.scfs
scfs-api-spring-boot-starter
- 2.0.16-snapshot
+ 2.0.18-snapshot
diff --git a/readme.md b/readme.md
index ba8611b..5f364b4 100644
--- a/readme.md
+++ b/readme.md
@@ -63,10 +63,10 @@ openssl x509 -req -days 3650 -in rsa_csr.pem -signkey rsa_private_key.pem -out r
```shell
# 开发测试阶段使用快照版本
-mvn versions:set -DnewVersion=2.0.16-snapshot
+mvn versions:set -DnewVersion=2.0.18-snapshot
# 正式版本,版本号加一
-mvn versions:set -DnewVersion=2.0.16
+mvn versions:set -DnewVersion=2.0.18
```
## 代码扫描
diff --git a/scfs-api-core/pom.xml b/scfs-api-core/pom.xml
index f73ba89..a3ce403 100644
--- a/scfs-api-core/pom.xml
+++ b/scfs-api-core/pom.xml
@@ -5,11 +5,11 @@
com.czcb.scfs
scfs-api-sdk
- 2.0.16-snapshot
+ 2.0.18-snapshot
scfs-api-core
- 2.0.16-snapshot
+ 2.0.18-snapshot
scfs-api-core:核心模块
scfs-api-core
jar
diff --git a/scfs-api-rsa/pom.xml b/scfs-api-rsa/pom.xml
index f1b527b..aef62d5 100644
--- a/scfs-api-rsa/pom.xml
+++ b/scfs-api-rsa/pom.xml
@@ -5,11 +5,11 @@
com.czcb.scfs
scfs-api-sdk
- 2.0.16-snapshot
+ 2.0.18-snapshot
scfs-api-rsa
- 2.0.16-snapshot
+ 2.0.18-snapshot
scfs-api-rsa:RSA模块
封装RSA、AES国密算法
@@ -17,7 +17,7 @@
com.czcb.scfs
scfs-api-core
- 2.0.16-snapshot
+ 2.0.18-snapshot
diff --git a/scfs-api-service/pom.xml b/scfs-api-service/pom.xml
index 0081078..db85ea2 100644
--- a/scfs-api-service/pom.xml
+++ b/scfs-api-service/pom.xml
@@ -5,11 +5,11 @@
com.czcb.scfs
scfs-api-sdk
- 2.0.16-snapshot
+ 2.0.18-snapshot
scfs-api-service
- 2.0.16-snapshot
+ 2.0.18-snapshot
scfs-api-service:业务接口模型
业务接口模型
jar
@@ -24,7 +24,7 @@
com.czcb.scfs
scfs-api-core
- 2.0.16-snapshot
+ 2.0.18-snapshot
diff --git a/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/order/GyOrderService.java b/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/order/GyOrderService.java
new file mode 100644
index 0000000..5b42e5b
--- /dev/null
+++ b/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/order/GyOrderService.java
@@ -0,0 +1,94 @@
+package com.czcb.scfs.api.service.v2.order;
+
+import com.czcb.scfs.api.core.ApiClient;
+import com.czcb.scfs.api.core.http.HttpHeaders;
+import com.czcb.scfs.api.core.http.HttpResponse;
+import com.czcb.scfs.api.service.v2.order.model.*;
+
+import static com.czcb.scfs.api.core.Constants.API_VERSION;
+import static com.czcb.scfs.api.core.Constants.V_2;
+
+/**
+ * 订单(国业)管理
+ *
+ * @author H.T
+ * @since 2025-06-04
+ */
+public class GyOrderService {
+
+ private final ApiClient apiClient;
+
+ public GyOrderService(ApiClient apiClient) {
+ this.apiClient = apiClient;
+ }
+
+ /**
+ * 302107-订单登记(国业)
+ *
+ * @author H.T
+ * @since 2025/6/4
+ */
+ public GyBaseResponse add(GyOrderInfoAddRequest request) {
+ String url = "/gy/order/add";
+ HttpHeaders headers = new HttpHeaders();
+ headers.addHeader(API_VERSION, V_2);
+ HttpResponse httpResponse = apiClient.post(url, headers, request.toJsonRequest(), GyBaseResponse.class);
+ return httpResponse.getServiceResponse();
+ }
+
+ /**
+ * 302108-订单分页查询(国业)
+ *
+ * @author H.T
+ * @since 2025/6/4
+ */
+ public GyOrderInfoQueryPageResponse queryPage(GyOrderInfoQueryPageRequest request) {
+ String url = "/gy/order/query-page";
+ HttpHeaders headers = new HttpHeaders();
+ headers.addHeader(API_VERSION, V_2);
+ HttpResponse httpResponse = apiClient.post(url, headers, request.toJsonRequest(), GyOrderInfoQueryPageResponse.class);
+ return httpResponse.getServiceResponse();
+ }
+
+ /**
+ * 302109-订单作废(国业)
+ *
+ * @author H.T
+ * @since 2025/6/4
+ */
+ public GyBaseResponse invalid(GyOrderInvalidRequest request) {
+ String url = "/gy/order/invalid";
+ HttpHeaders headers = new HttpHeaders();
+ headers.addHeader(API_VERSION, V_2);
+ HttpResponse httpResponse = apiClient.post(url, headers, request.toJsonRequest(), GyBaseResponse.class);
+ return httpResponse.getServiceResponse();
+ }
+
+ /**
+ * 302110-订单融资(国业)
+ *
+ * @author H.T
+ * @since 2025/6/4
+ */
+ public GyOrderLoanResponse loan(GyOrderLoanRequest request) {
+ String url = "/gy/order/loan";
+ HttpHeaders headers = new HttpHeaders();
+ headers.addHeader(API_VERSION, V_2);
+ HttpResponse httpResponse = apiClient.post(url, headers, request.toJsonRequest(), GyOrderLoanResponse.class);
+ return httpResponse.getServiceResponse();
+ }
+
+ /**
+ * 302111-订单结算并还款(国业)
+ *
+ * @author H.T
+ * @since 2025/6/4
+ */
+ public GyBaseResponse settleRepay(GyOrderSettleRepayRequest request) {
+ String url = "/gy/order/settle-repay";
+ HttpHeaders headers = new HttpHeaders();
+ headers.addHeader(API_VERSION, V_2);
+ HttpResponse httpResponse = apiClient.post(url, headers, request.toJsonRequest(), GyBaseResponse.class);
+ return httpResponse.getServiceResponse();
+ }
+}
diff --git a/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/order/model/GyBaseRequest.java b/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/order/model/GyBaseRequest.java
new file mode 100644
index 0000000..d7c55a0
--- /dev/null
+++ b/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/order/model/GyBaseRequest.java
@@ -0,0 +1,42 @@
+package com.czcb.scfs.api.service.v2.order.model;
+
+import com.czcb.scfs.api.core.ApiRequest;
+import com.google.gson.annotations.SerializedName;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+/**
+ * 订单(国业)管理基础请求参数
+ *
+ * @author H.T
+ * @since 2025-06-04
+ */
+@Data
+@Accessors(chain = true)
+public class GyBaseRequest implements ApiRequest {
+ /**
+ * 渠道编号
+ */
+ @SerializedName("channel_no")
+ private String channelNo;
+ /**
+ * 应用编号
+ */
+ @SerializedName("app_no")
+ private String appNo;
+ /**
+ * 流水号
+ */
+ @SerializedName("serial_no")
+ private String serialNo;
+ /**
+ * 操作日期
+ */
+ @SerializedName("trans_date")
+ private String transDate;
+ /**
+ * 操作时间
+ */
+ @SerializedName("trans_tradetime")
+ private String transTradeTime;
+}
diff --git a/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/order/model/GyBaseResponse.java b/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/order/model/GyBaseResponse.java
new file mode 100644
index 0000000..77f2f92
--- /dev/null
+++ b/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/order/model/GyBaseResponse.java
@@ -0,0 +1,42 @@
+package com.czcb.scfs.api.service.v2.order.model;
+
+import com.czcb.scfs.api.core.ApiResponse;
+import com.google.gson.annotations.SerializedName;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+/**
+ * 订单(国业)管理基础应答参数
+ *
+ * @author H.T
+ * @since 2025-06-04
+ */
+@Data
+@Accessors(chain = true)
+public class GyBaseResponse implements ApiResponse {
+ /**
+ * 000000:表示成功
+ */
+ @SerializedName("recode")
+ private String recode;
+ /**
+ * 结果信息
+ */
+ @SerializedName("recode_info")
+ private String recodeInfo;
+ /**
+ * 系统流水号
+ */
+ @SerializedName("sys_serial_no")
+ private String sysSerialNo;
+ /**
+ * 系统日期(YYYY-MM-DD)
+ */
+ @SerializedName("sys_date")
+ private String sysDate;
+ /**
+ * 系统时间(YYYY-MM-DD hh:mm:ss)
+ */
+ @SerializedName("sys_time")
+ private String sysTime;
+}
diff --git a/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/order/model/GyOrderInfoAddRequest.java b/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/order/model/GyOrderInfoAddRequest.java
new file mode 100644
index 0000000..e34d932
--- /dev/null
+++ b/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/order/model/GyOrderInfoAddRequest.java
@@ -0,0 +1,75 @@
+package com.czcb.scfs.api.service.v2.order.model;
+
+import com.czcb.scfs.api.core.ApiRequest;
+import com.czcb.scfs.api.core.agrs.TransType;
+import com.google.gson.annotations.SerializedName;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+import lombok.experimental.Accessors;
+
+import java.math.BigDecimal;
+
+/**
+ * 302107-订单登记(国业)请求参数
+ *
+ * @author H.T
+ * @since 2025-06-04
+ */
+@Data
+@Accessors(chain = true)
+@ToString(callSuper = true)
+@EqualsAndHashCode(callSuper = true)
+@TransType("302107")
+public class GyOrderInfoAddRequest extends GyBaseRequest implements ApiRequest {
+ /**
+ * 订单编号
+ */
+ @SerializedName("order_no")
+ private String orderNo;
+ /**
+ * 订单类型:9-采购订单
+ */
+ @SerializedName("order_type")
+ private String orderType;
+ /**
+ * 下单时间
+ */
+ @SerializedName("order_time")
+ private String orderTime;
+ /**
+ * 订单金额
+ */
+ @SerializedName("order_amount")
+ private BigDecimal orderAmount;
+ /**
+ * 订单剩余待结算金额
+ */
+ @SerializedName("unsettled_amount")
+ private BigDecimal unsettledAmount;
+ /**
+ * 付款账号(合道A1)
+ */
+ @SerializedName("account_no")
+ private String accountNo;
+ /**
+ * 付款户名(合道A1)
+ */
+ @SerializedName("account_name")
+ private String accountName;
+ /**
+ * 收款账号(供应商A1)
+ */
+ @SerializedName("opp_account_no")
+ private String oppAccountNo;
+ /**
+ * 收款户名(供应商A1)
+ */
+ @SerializedName("opp_account_name")
+ private String oppAccountName;
+ /**
+ * 摘要
+ */
+ @SerializedName("remark")
+ private String remark;
+}
diff --git a/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/order/model/GyOrderInfoQueryPageRequest.java b/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/order/model/GyOrderInfoQueryPageRequest.java
new file mode 100644
index 0000000..48b85d4
--- /dev/null
+++ b/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/order/model/GyOrderInfoQueryPageRequest.java
@@ -0,0 +1,98 @@
+package com.czcb.scfs.api.service.v2.order.model;
+
+import com.czcb.scfs.api.core.PageApiRequest;
+import com.czcb.scfs.api.core.agrs.TransType;
+import com.google.gson.annotations.SerializedName;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+import lombok.experimental.Accessors;
+
+/**
+ * 302108-订单分页查询(国业)请求参数
+ *
+ * @author H.T
+ * @since 2025-06-04
+ */
+@Data
+@Accessors(chain = true)
+@ToString(callSuper = true)
+@EqualsAndHashCode(callSuper = true)
+@TransType("302108")
+public class GyOrderInfoQueryPageRequest extends GyBaseRequest implements PageApiRequest {
+ /**
+ * 当前页数
+ */
+ @SerializedName("current_page")
+ private Long currentPage;
+ /**
+ * 每页行数
+ */
+ @SerializedName("current_rows")
+ private Long currentRows;
+ /**
+ * 请求流水号
+ */
+ @SerializedName("req_serial_no")
+ private String reqSerialNo;
+ /**
+ * 系统流水号
+ */
+ @SerializedName("sys_serial_no")
+ private String sysSerialNo;
+ /**
+ * 订单编号
+ */
+ @SerializedName("order_no")
+ private String orderNo;
+ /**
+ * 订单类型
+ */
+ @SerializedName("order_type")
+ private String orderType;
+ /**
+ * 订单状态: 0-正常;1-完结;2-作废
+ */
+ @SerializedName("order_status")
+ private String orderStatus;
+ /**
+ * 订单时间-开始
+ */
+ @SerializedName("order_time_start")
+ private String orderTimeStart;
+ /**
+ * 订单时间-截至
+ */
+ @SerializedName("order_time_end")
+ private String orderTimeEnd;
+ /**
+ * 订单融资状态:0-未融资;1-已融资
+ */
+ @SerializedName("order_loan_status")
+ private String orderLoanStatus;
+ /**
+ * 订单撤销(作废)流水号
+ */
+ @SerializedName("cancel_serial_no")
+ private String cancelSerialNo;
+ /**
+ * 付款账号A1
+ */
+ @SerializedName("account_no")
+ private String accountNo;
+ /**
+ * 收款账号A1
+ */
+ @SerializedName("opp_account_no")
+ private String oppAccountNo;
+ /**
+ * 清算流水号
+ */
+ @SerializedName("settle_serial_no")
+ private String settleSerialNo;
+ /**
+ * 清算状态:0、未清算 1、已清算 2、部分清算
+ */
+ @SerializedName("settle_status")
+ private String settleStatus;
+}
diff --git a/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/order/model/GyOrderInfoQueryPageResponse.java b/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/order/model/GyOrderInfoQueryPageResponse.java
new file mode 100644
index 0000000..0648698
--- /dev/null
+++ b/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/order/model/GyOrderInfoQueryPageResponse.java
@@ -0,0 +1,182 @@
+package com.czcb.scfs.api.service.v2.order.model;
+
+import com.czcb.scfs.api.core.PageApiResponse;
+import com.google.gson.annotations.SerializedName;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.List;
+
+/**
+ * 302108-订单分页查询(国业)响应参数
+ *
+ * @author H.T
+ * @since 2025-06-04
+ */
+@Data
+@Accessors(chain = true)
+@ToString(callSuper = true)
+@EqualsAndHashCode(callSuper = true)
+public class GyOrderInfoQueryPageResponse extends GyBaseResponse implements PageApiResponse {
+ /**
+ * 当前页码
+ */
+ @SerializedName("current_page")
+ private Long currentPage;
+ /**
+ * 总页数
+ */
+ @SerializedName("total_page")
+ private Long totalPage;
+ /**
+ * 总条数
+ */
+ @SerializedName("total_rows")
+ private Long totalRows;
+
+ @SerializedName("data")
+ private List data;
+
+ @Data
+ public static class GyOrderInfoQueryPageData implements Serializable {
+ /**
+ * 请求流水号
+ */
+ @SerializedName("req_serial_no")
+ private String reqSerialNo;
+ /**
+ * 系统流水号
+ */
+ @SerializedName("sys_serial_no")
+ private String sysSerialNo;
+ /**
+ * 订单编号
+ */
+ @SerializedName("order_no")
+ private String orderNo;
+ /**
+ * 订单类型
+ */
+ @SerializedName("order_type")
+ private String orderType;
+ /**
+ * 订单状态: 0-正常;1-完结;2-作废
+ */
+ @SerializedName("order_status")
+ private String orderStatus;
+ /**
+ * 下单时间
+ */
+ @SerializedName("order_time")
+ private String orderTime;
+ /**
+ * 订单金额
+ */
+ @SerializedName("order_amount")
+ private BigDecimal orderAmount;
+ /**
+ * 订单剩余待结算金额
+ */
+ @SerializedName("unsettled_amount")
+ private BigDecimal unsettledAmount;
+ /**
+ * 付款账号
+ */
+ @SerializedName("account_no")
+ private String accountNo;
+ /**
+ * 付款户名
+ */
+ @SerializedName("account_name")
+ private String accountName;
+ /**
+ * 收款账号
+ */
+ @SerializedName("opp_account_no")
+ private String oppAccountNo;
+ /**
+ * 收款户名
+ */
+ @SerializedName("opp_account_name")
+ private String oppAccountName;
+ /**
+ * 贷款申请人账号
+ */
+ @SerializedName("apply_account_no")
+ private String applyAccountNo;
+ /**
+ * 贷款申请人户名
+ */
+ @SerializedName("apply_account_name")
+ private String applyAccountName;
+ /**
+ * 贷款账号(借据编号)
+ */
+ @SerializedName("loan_acc_no")
+ private String loanAccNo;
+ /**
+ * 贷款账号序号
+ */
+ @SerializedName("loan_acc_seq_no")
+ private String loanAccSeqNo;
+ /**
+ * 贷款合同编号
+ */
+ @SerializedName("contract_no")
+ private String contractNo;
+ /**
+ * 放款金额:为实际放款金额,等于=提款金额*放款比例
+ */
+ @SerializedName("loan_amount")
+ private BigDecimal loanAmount;
+ /**
+ * 放款比例
+ */
+ @SerializedName("loan_ratio")
+ private BigDecimal loanRatio;
+ /**
+ * 借据到期日期
+ */
+ @SerializedName("loan_deal_end_date")
+ private String loanDealEndDate;
+ /**
+ * 订单融资状态:0-未融资;1-已融资
+ */
+ @SerializedName("order_loan_status")
+ private String orderLoanStatus;
+ /**
+ * 订单撤销(作废)流水号
+ */
+ @SerializedName("cancel_serial_no")
+ private String cancelSerialNo;
+ /**
+ * 订单撤销(作废)时间
+ */
+ @SerializedName("cancel_time")
+ private String cancelTime;
+ /**
+ * 清算流水号
+ */
+ @SerializedName("settle_serial_no")
+ private String settleSerialNo;
+ /**
+ * 清算状态:0、未清算 1、已清算 2、部分清算
+ */
+ @SerializedName("settle_status")
+ private String settleStatus;
+ /**
+ * 清算时间
+ */
+ @SerializedName("settle_time")
+ private String settleTime;
+ /**
+ * 摘要
+ */
+ @SerializedName("remark")
+ private String remark;
+ }
+}
diff --git a/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/order/model/GyOrderInvalidRequest.java b/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/order/model/GyOrderInvalidRequest.java
new file mode 100644
index 0000000..0c8f293
--- /dev/null
+++ b/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/order/model/GyOrderInvalidRequest.java
@@ -0,0 +1,35 @@
+package com.czcb.scfs.api.service.v2.order.model;
+
+import com.czcb.scfs.api.core.ApiRequest;
+import com.czcb.scfs.api.core.agrs.TransType;
+import com.google.gson.annotations.SerializedName;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+import lombok.experimental.Accessors;
+
+import java.util.List;
+
+/**
+ * 302109-订单作废(国业)请求参数
+ *
+ * @author H.T
+ * @since 2025-06-04
+ */
+@Data
+@Accessors(chain = true)
+@ToString(callSuper = true)
+@EqualsAndHashCode(callSuper = true)
+@TransType("302109")
+public class GyOrderInvalidRequest extends GyBaseRequest implements ApiRequest {
+ /**
+ * 订单编号
+ */
+ @SerializedName("order_no_list")
+ private List orderNoList;
+ /**
+ * 是否作废 1-作废 0:有效
+ */
+ @SerializedName("invalid")
+ private String invalid;
+}
diff --git a/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/order/model/GyOrderLoanRequest.java b/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/order/model/GyOrderLoanRequest.java
new file mode 100644
index 0000000..4af5558
--- /dev/null
+++ b/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/order/model/GyOrderLoanRequest.java
@@ -0,0 +1,66 @@
+package com.czcb.scfs.api.service.v2.order.model;
+
+import com.czcb.scfs.api.core.ApiRequest;
+import com.czcb.scfs.api.core.agrs.TransType;
+import com.czcb.scfs.api.service.v2.file.model.FileMaterial;
+import com.google.gson.annotations.SerializedName;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+import lombok.experimental.Accessors;
+
+import java.util.List;
+
+/**
+ * 302110-订单融资(国业)请求参数
+ *
+ * @author H.T
+ * @since 2025-06-04
+ */
+@Data
+@Accessors(chain = true)
+@ToString(callSuper = true)
+@EqualsAndHashCode(callSuper = true)
+@TransType("302110")
+public class GyOrderLoanRequest extends GyBaseRequest implements ApiRequest {
+ /**
+ * 贷款申请人账号A1
+ */
+ @SerializedName("apply_account_no")
+ private String applyAccountNo;
+ /**
+ * 贷款申请人户名
+ */
+ @SerializedName("apply_account_name")
+ private String applyAccountName;
+ /**
+ * 收款账号A1
+ */
+ @SerializedName("opp_account_no")
+ private String oppAccountNo;
+ /**
+ * 收款户名A1
+ */
+ @SerializedName("opp_account_name")
+ private String oppAccountName;
+ /**
+ * 借款期限
+ */
+ @SerializedName("period")
+ private String period;
+ /**
+ * 验证码
+ */
+ @SerializedName("verify_code")
+ private String verifyCode;
+ /**
+ * 订单编号
+ */
+ @SerializedName("order_no_list")
+ private List orderNoList;
+ /**
+ * 放款资料
+ */
+ @SerializedName("file_list")
+ private List fileList;
+}
diff --git a/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/order/model/GyOrderLoanResponse.java b/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/order/model/GyOrderLoanResponse.java
new file mode 100644
index 0000000..8260276
--- /dev/null
+++ b/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/order/model/GyOrderLoanResponse.java
@@ -0,0 +1,38 @@
+package com.czcb.scfs.api.service.v2.order.model;
+
+import com.czcb.scfs.api.core.ApiResponse;
+import com.google.gson.annotations.SerializedName;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+import lombok.experimental.Accessors;
+
+import java.math.BigDecimal;
+
+/**
+ * 302110-订单融资(国业)响应参数
+ *
+ * @author H.T
+ * @since 2025-06-04
+ */
+@Data
+@ToString(callSuper = true)
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = true)
+public class GyOrderLoanResponse extends GyBaseResponse implements ApiResponse {
+ /**
+ * 贷款账号(借据编号)
+ */
+ @SerializedName("loan_acc_no")
+ private String loanAccNo;
+ /**
+ * 贷款账号序号
+ */
+ @SerializedName("loan_acc_seq_no")
+ private String loanAccSeqNo;
+ /**
+ * 放款金额
+ */
+ @SerializedName("loan_amount")
+ private BigDecimal loanAmount;
+}
diff --git a/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/order/model/GyOrderSettleRepayRequest.java b/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/order/model/GyOrderSettleRepayRequest.java
new file mode 100644
index 0000000..5053600
--- /dev/null
+++ b/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/order/model/GyOrderSettleRepayRequest.java
@@ -0,0 +1,28 @@
+package com.czcb.scfs.api.service.v2.order.model;
+
+import com.czcb.scfs.api.core.ApiRequest;
+import com.czcb.scfs.api.core.agrs.TransType;
+import com.google.gson.annotations.SerializedName;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+import lombok.experimental.Accessors;
+
+/**
+ * 302111-订单结算并还款(国业)请求参数
+ *
+ * @author H.T
+ * @since 2025-06-04
+ */
+@Data
+@Accessors(chain = true)
+@ToString(callSuper = true)
+@EqualsAndHashCode(callSuper = true)
+@TransType("302111")
+public class GyOrderSettleRepayRequest extends GyBaseRequest implements ApiRequest {
+ /**
+ * 订单编号
+ */
+ @SerializedName("order_no")
+ private String orderNo;
+}
diff --git a/scfs-api-service/src/test/java/com/czcb/scfs/api/service/v2/order/GyOrderServiceTest.java b/scfs-api-service/src/test/java/com/czcb/scfs/api/service/v2/order/GyOrderServiceTest.java
new file mode 100644
index 0000000..c072079
--- /dev/null
+++ b/scfs-api-service/src/test/java/com/czcb/scfs/api/service/v2/order/GyOrderServiceTest.java
@@ -0,0 +1,458 @@
+package com.czcb.scfs.api.service.v2.order;
+
+import com.czcb.scfs.api.core.ApiClient;
+import com.czcb.scfs.api.core.http.HttpHeaders;
+import com.czcb.scfs.api.core.http.HttpResponse;
+import com.czcb.scfs.api.core.http.RequestBody;
+import com.czcb.scfs.api.core.util.Json;
+import com.czcb.scfs.api.service.MockHttpResponse;
+import com.czcb.scfs.api.service.v2.file.model.FileMaterial;
+import com.czcb.scfs.api.service.v2.order.model.*;
+import org.assertj.core.util.Lists;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.Mockito;
+import org.mockito.junit.jupiter.MockitoExtension;
+
+import java.math.BigDecimal;
+
+@ExtendWith(MockitoExtension.class)
+class GyOrderServiceTest {
+
+ @InjectMocks
+ private GyOrderService service;
+
+ @Mock
+ private ApiClient apiClient;
+
+ @Test
+ void addTest() {
+ GyOrderInfoAddRequest request = new GyOrderInfoAddRequest();
+ extractedGyOrderInfoAddRequestParams(request);
+ extractedGyOrderInfoAddRequestAssertions(request);
+
+ System.out.println(Json.toJson(request));
+ String requestJson = Json.toJson(request);
+ Assertions.assertEquals("{\"order_no\":\"setOrderNo\",\"order_type\":\"setOrderType\",\"order_time\":\"setOrderTime\",\"order_amount\":100.0,\"unsettled_amount\":100.0,\"account_no\":\"setAccountNo\",\"account_name\":\"setAccountName\",\"opp_account_no\":\"setOppAccountNo\",\"opp_account_name\":\"setOppAccountName\",\"remark\":\"setRemark\",\"channel_no\":\"setChannelNo\",\"app_no\":\"setAppNo\",\"serial_no\":\"setSerialNo\",\"trans_date\":\"setTransDate\",\"trans_tradetime\":\"setTransTradeTime\"}", requestJson);
+
+ GyBaseResponse response = new GyBaseResponse();
+ extractedGyBaseResponseParams(response);
+ extractedGyBaseResponseAssertions(response);
+
+ System.out.println(Json.toJson(response));
+ String responseJson = Json.toJson(response);
+ Assertions.assertEquals("{\"recode\":\"setRecode\",\"recode_info\":\"setRecodeInfo\",\"sys_serial_no\":\"setSysSerialNo\",\"sys_date\":\"setSysDate\",\"sys_time\":\"setSysTime\"}", responseJson);
+
+ HttpResponse httpResponse = MockHttpResponse.create("/gy/order/add", response, GyBaseResponse.class);
+ Mockito.when(apiClient.post(
+ Mockito.eq("/gy/order/add"),
+ Mockito.any(HttpHeaders.class),
+ Mockito.any(RequestBody.class),
+ Mockito.eq(GyBaseResponse.class)))
+ .thenReturn(httpResponse);
+
+ GyBaseResponse result = service.add(request);
+
+ System.out.println(Json.toJson(result));
+ String resultJson = Json.toJson(result);
+ Assertions.assertEquals("{\"recode\":\"setRecode\",\"recode_info\":\"setRecodeInfo\",\"sys_serial_no\":\"setSysSerialNo\",\"sys_date\":\"setSysDate\",\"sys_time\":\"setSysTime\"}", resultJson);
+ }
+ void extractedGyOrderInfoAddRequestParams(GyOrderInfoAddRequest request) {
+ request.setUnsettledAmount(BigDecimal.valueOf(100.00));
+ request.setOppAccountName("setOppAccountName");
+ request.setOrderAmount(BigDecimal.valueOf(100.00));
+ request.setOrderTime("setOrderTime");
+ request.setAccountName("setAccountName");
+ request.setOppAccountNo("setOppAccountNo");
+ request.setAccountNo("setAccountNo");
+ request.setRemark("setRemark");
+ request.setOrderNo("setOrderNo");
+ request.setOrderType("setOrderType");
+ request.setTransTradeTime("setTransTradeTime");
+ request.setTransDate("setTransDate");
+ request.setSerialNo("setSerialNo");
+ request.setChannelNo("setChannelNo");
+ request.setAppNo("setAppNo");
+ }
+ void extractedGyOrderInfoAddRequestAssertions(GyOrderInfoAddRequest request) {
+ Assertions.assertEquals(BigDecimal.valueOf(100.00), request.getUnsettledAmount());
+ Assertions.assertEquals("setOppAccountName", request.getOppAccountName());
+ Assertions.assertEquals(BigDecimal.valueOf(100.00), request.getOrderAmount());
+ Assertions.assertEquals("setOrderTime", request.getOrderTime());
+ Assertions.assertEquals("setAccountName", request.getAccountName());
+ Assertions.assertEquals("setOppAccountNo", request.getOppAccountNo());
+ Assertions.assertEquals("setAccountNo", request.getAccountNo());
+ Assertions.assertEquals("setRemark", request.getRemark());
+ Assertions.assertEquals("setOrderNo", request.getOrderNo());
+ Assertions.assertEquals("setOrderType", request.getOrderType());
+ Assertions.assertEquals("setTransTradeTime", request.getTransTradeTime());
+ Assertions.assertEquals("setTransDate", request.getTransDate());
+ Assertions.assertEquals("setSerialNo", request.getSerialNo());
+ Assertions.assertEquals("setChannelNo", request.getChannelNo());
+ Assertions.assertEquals("setAppNo", request.getAppNo());
+ }
+ void extractedGyBaseResponseParams(GyBaseResponse response) {
+ response.setRecodeInfo("setRecodeInfo");
+ response.setSysDate("setSysDate");
+ response.setSysSerialNo("setSysSerialNo");
+ response.setRecode("setRecode");
+ response.setSysTime("setSysTime");
+ }
+ void extractedGyBaseResponseAssertions(GyBaseResponse response) {
+ Assertions.assertEquals("setRecodeInfo", response.getRecodeInfo());
+ Assertions.assertEquals("setSysDate", response.getSysDate());
+ Assertions.assertEquals("setSysSerialNo", response.getSysSerialNo());
+ Assertions.assertEquals("setRecode", response.getRecode());
+ Assertions.assertEquals("setSysTime", response.getSysTime());
+ }
+
+ @Test
+ void queryPageTest() {
+ GyOrderInfoQueryPageRequest request = new GyOrderInfoQueryPageRequest();
+ extractedGyOrderInfoQueryPageRequestParams(request);
+ extractedGyOrderInfoQueryPageRequestAssertions(request);
+
+ System.out.println(Json.toJson(request));
+ String requestJson = Json.toJson(request);
+ Assertions.assertEquals("{\"current_page\":1,\"current_rows\":1,\"req_serial_no\":\"setReqSerialNo\",\"sys_serial_no\":\"setSysSerialNo\",\"order_no\":\"setOrderNo\",\"order_type\":\"setOrderType\",\"order_status\":\"setOrderStatus\",\"order_time_start\":\"setOrderTimeStart\",\"order_time_end\":\"setOrderTimeEnd\",\"order_loan_status\":\"setOrderLoanStatus\",\"cancel_serial_no\":\"setCancelSerialNo\",\"account_no\":\"setAccountNo\",\"opp_account_no\":\"setOppAccountNo\",\"settle_serial_no\":\"setSettleSerialNo\",\"settle_status\":\"setSettleStatus\",\"channel_no\":\"setChannelNo\",\"app_no\":\"setAppNo\",\"serial_no\":\"setSerialNo\",\"trans_date\":\"setTransDate\",\"trans_tradetime\":\"setTransTradeTime\"}", requestJson);
+
+ GyOrderInfoQueryPageResponse response = new GyOrderInfoQueryPageResponse();
+ extractedGyOrderInfoQueryPageResponseParams(response);
+ extractedGyOrderInfoQueryPageResponseAssertions(response);
+
+ System.out.println(Json.toJson(response));
+ String responseJson = Json.toJson(response);
+ Assertions.assertEquals("{\"current_page\":1,\"total_page\":1,\"total_rows\":1,\"data\":[{\"req_serial_no\":\"setReqSerialNo\",\"sys_serial_no\":\"setSysSerialNo\",\"order_no\":\"setOrderNo\",\"order_type\":\"setOrderType\",\"order_status\":\"setOrderStatus\",\"order_amount\":100.0,\"unsettled_amount\":100.0,\"account_no\":\"setAccountNo\",\"account_name\":\"setAccountName\",\"opp_account_no\":\"setOppAccountNo\",\"opp_account_name\":\"setOppAccountName\",\"apply_account_no\":\"setApplyAccountNo\",\"apply_account_name\":\"setApplyAccountName\",\"loan_acc_no\":\"setLoanAccNo\",\"loan_acc_seq_no\":\"setLoanAccSeqNo\",\"contract_no\":\"setContractNo\",\"loan_amount\":100.0,\"loan_ratio\":100.0,\"order_loan_status\":\"setOrderLoanStatus\",\"cancel_serial_no\":\"setCancelSerialNo\",\"settle_serial_no\":\"setSettleSerialNo\",\"settle_status\":\"setSettleStatus\",\"remark\":\"setRemark\"}],\"recode\":\"setRecode\",\"recode_info\":\"setRecodeInfo\",\"sys_serial_no\":\"setSysSerialNo\",\"sys_date\":\"setSysDate\",\"sys_time\":\"setSysTime\"}", responseJson);
+
+ HttpResponse httpResponse = MockHttpResponse.create("/gy/order/query-page", response, GyOrderInfoQueryPageResponse.class);
+ Mockito.when(apiClient.post(
+ Mockito.eq("/gy/order/query-page"),
+ Mockito.any(HttpHeaders.class),
+ Mockito.any(RequestBody.class),
+ Mockito.eq(GyOrderInfoQueryPageResponse.class)))
+ .thenReturn(httpResponse);
+
+ GyOrderInfoQueryPageResponse result = service.queryPage(request);
+
+ System.out.println(Json.toJson(result));
+ String resultJson = Json.toJson(result);
+ Assertions.assertEquals("{\"current_page\":1,\"total_page\":1,\"total_rows\":1,\"data\":[{\"req_serial_no\":\"setReqSerialNo\",\"sys_serial_no\":\"setSysSerialNo\",\"order_no\":\"setOrderNo\",\"order_type\":\"setOrderType\",\"order_status\":\"setOrderStatus\",\"order_amount\":100.0,\"unsettled_amount\":100.0,\"account_no\":\"setAccountNo\",\"account_name\":\"setAccountName\",\"opp_account_no\":\"setOppAccountNo\",\"opp_account_name\":\"setOppAccountName\",\"apply_account_no\":\"setApplyAccountNo\",\"apply_account_name\":\"setApplyAccountName\",\"loan_acc_no\":\"setLoanAccNo\",\"loan_acc_seq_no\":\"setLoanAccSeqNo\",\"contract_no\":\"setContractNo\",\"loan_amount\":100.0,\"loan_ratio\":100.0,\"order_loan_status\":\"setOrderLoanStatus\",\"cancel_serial_no\":\"setCancelSerialNo\",\"settle_serial_no\":\"setSettleSerialNo\",\"settle_status\":\"setSettleStatus\",\"remark\":\"setRemark\"}],\"recode\":\"setRecode\",\"recode_info\":\"setRecodeInfo\",\"sys_serial_no\":\"setSysSerialNo\",\"sys_date\":\"setSysDate\",\"sys_time\":\"setSysTime\"}", resultJson);
+ }
+ void extractedGyOrderInfoQueryPageRequestParams(GyOrderInfoQueryPageRequest request) {
+ request.setCancelSerialNo("setCancelSerialNo");
+ request.setOrderTimeStart("setOrderTimeStart");
+ request.setOrderLoanStatus("setOrderLoanStatus");
+ request.setSettleSerialNo("setSettleSerialNo");
+ request.setCurrentPage(1L);
+ request.setSysSerialNo("setSysSerialNo");
+ request.setAccountNo("setAccountNo");
+ request.setOrderType("setOrderType");
+ request.setSettleStatus("setSettleStatus");
+ request.setOrderStatus("setOrderStatus");
+ request.setReqSerialNo("setReqSerialNo");
+ request.setOrderNo("setOrderNo");
+ request.setOppAccountNo("setOppAccountNo");
+ request.setCurrentRows(1L);
+ request.setOrderTimeEnd("setOrderTimeEnd");
+ request.setTransTradeTime("setTransTradeTime");
+ request.setAppNo("setAppNo");
+ request.setChannelNo("setChannelNo");
+ request.setTransDate("setTransDate");
+ request.setSerialNo("setSerialNo");
+ }
+ void extractedGyOrderInfoQueryPageRequestAssertions(GyOrderInfoQueryPageRequest request) {
+ Assertions.assertEquals("setCancelSerialNo", request.getCancelSerialNo());
+ Assertions.assertEquals("setOrderTimeStart", request.getOrderTimeStart());
+ Assertions.assertEquals("setOrderLoanStatus", request.getOrderLoanStatus());
+ Assertions.assertEquals("setSettleSerialNo", request.getSettleSerialNo());
+ Assertions.assertEquals(1L, request.getCurrentPage());
+ Assertions.assertEquals("setSysSerialNo", request.getSysSerialNo());
+ Assertions.assertEquals("setAccountNo", request.getAccountNo());
+ Assertions.assertEquals("setOrderType", request.getOrderType());
+ Assertions.assertEquals("setSettleStatus", request.getSettleStatus());
+ Assertions.assertEquals("setOrderStatus", request.getOrderStatus());
+ Assertions.assertEquals("setReqSerialNo", request.getReqSerialNo());
+ Assertions.assertEquals("setOrderNo", request.getOrderNo());
+ Assertions.assertEquals("setOppAccountNo", request.getOppAccountNo());
+ Assertions.assertEquals(1L, request.getCurrentRows());
+ Assertions.assertEquals("setOrderTimeEnd", request.getOrderTimeEnd());
+ Assertions.assertEquals("setTransTradeTime", request.getTransTradeTime());
+ Assertions.assertEquals("setAppNo", request.getAppNo());
+ Assertions.assertEquals("setChannelNo", request.getChannelNo());
+ Assertions.assertEquals("setTransDate", request.getTransDate());
+ Assertions.assertEquals("setSerialNo", request.getSerialNo());
+ }
+ void extractedGyOrderInfoQueryPageResponseParams(GyOrderInfoQueryPageResponse response) {
+ response.setCurrentPage(1L);
+ response.setTotalRows(1L);
+ GyOrderInfoQueryPageResponse.GyOrderInfoQueryPageData gyorderinfoquerypagedata = new GyOrderInfoQueryPageResponse.GyOrderInfoQueryPageData();
+ extractedGyOrderInfoQueryPageResponseGyOrderInfoQueryPageDataNestParams(gyorderinfoquerypagedata);
+ response.setData(Lists.list(gyorderinfoquerypagedata));
+ response.setTotalPage(1L);
+ response.setSysSerialNo("setSysSerialNo");
+ response.setSysDate("setSysDate");
+ response.setSysTime("setSysTime");
+ response.setRecode("setRecode");
+ response.setRecodeInfo("setRecodeInfo");
+ }
+ void extractedGyOrderInfoQueryPageResponseGyOrderInfoQueryPageDataNestParams(GyOrderInfoQueryPageResponse.GyOrderInfoQueryPageData nest) {
+ nest.setCancelSerialNo("setCancelSerialNo");
+ nest.setOrderLoanStatus("setOrderLoanStatus");
+ nest.setSettleSerialNo("setSettleSerialNo");
+ nest.setApplyAccountName("setApplyAccountName");
+ nest.setApplyAccountNo("setApplyAccountNo");
+ nest.setOppAccountName("setOppAccountName");
+ nest.setUnsettledAmount(BigDecimal.valueOf(100.00));
+ nest.setSysSerialNo("setSysSerialNo");
+ nest.setAccountNo("setAccountNo");
+ nest.setOrderType("setOrderType");
+ nest.setSettleStatus("setSettleStatus");
+ nest.setOrderStatus("setOrderStatus");
+ nest.setReqSerialNo("setReqSerialNo");
+ nest.setOrderNo("setOrderNo");
+ nest.setOppAccountNo("setOppAccountNo");
+ nest.setLoanAmount(BigDecimal.valueOf(100.00));
+ nest.setOrderAmount(BigDecimal.valueOf(100.00));
+ nest.setLoanAccSeqNo("setLoanAccSeqNo");
+ nest.setAccountName("setAccountName");
+ nest.setRemark("setRemark");
+ nest.setLoanAccNo("setLoanAccNo");
+ nest.setContractNo("setContractNo");
+ nest.setLoanRatio(BigDecimal.valueOf(100.00));
+ }
+ void extractedGyOrderInfoQueryPageResponseGyOrderInfoQueryPageDataNestAssertions(GyOrderInfoQueryPageResponse.GyOrderInfoQueryPageData nest) {
+ Assertions.assertEquals("setCancelSerialNo", nest.getCancelSerialNo());
+ Assertions.assertEquals("setOrderLoanStatus", nest.getOrderLoanStatus());
+ Assertions.assertEquals("setSettleSerialNo", nest.getSettleSerialNo());
+ Assertions.assertEquals("setApplyAccountName", nest.getApplyAccountName());
+ Assertions.assertEquals("setApplyAccountNo", nest.getApplyAccountNo());
+ Assertions.assertEquals("setOppAccountName", nest.getOppAccountName());
+ Assertions.assertEquals(BigDecimal.valueOf(100.00), nest.getUnsettledAmount());
+ Assertions.assertEquals("setSysSerialNo", nest.getSysSerialNo());
+ Assertions.assertEquals("setAccountNo", nest.getAccountNo());
+ Assertions.assertEquals("setOrderType", nest.getOrderType());
+ Assertions.assertEquals("setSettleStatus", nest.getSettleStatus());
+ Assertions.assertEquals("setOrderStatus", nest.getOrderStatus());
+ Assertions.assertEquals("setReqSerialNo", nest.getReqSerialNo());
+ Assertions.assertEquals("setOrderNo", nest.getOrderNo());
+ Assertions.assertEquals("setOppAccountNo", nest.getOppAccountNo());
+ Assertions.assertEquals(BigDecimal.valueOf(100.00), nest.getLoanAmount());
+ Assertions.assertEquals(BigDecimal.valueOf(100.00), nest.getOrderAmount());
+ Assertions.assertEquals("setLoanAccSeqNo", nest.getLoanAccSeqNo());
+ Assertions.assertEquals("setAccountName", nest.getAccountName());
+ Assertions.assertEquals("setRemark", nest.getRemark());
+ Assertions.assertEquals("setLoanAccNo", nest.getLoanAccNo());
+ Assertions.assertEquals("setContractNo", nest.getContractNo());
+ Assertions.assertEquals(BigDecimal.valueOf(100.00), nest.getLoanRatio());
+ }
+ void extractedGyOrderInfoQueryPageResponseAssertions(GyOrderInfoQueryPageResponse response) {
+ Assertions.assertEquals(1L, response.getCurrentPage());
+ Assertions.assertEquals(1L, response.getTotalRows());
+ for (GyOrderInfoQueryPageResponse.GyOrderInfoQueryPageData gyorderinfoquerypagedata : response.getData()) {
+ extractedGyOrderInfoQueryPageResponseGyOrderInfoQueryPageDataNestAssertions(gyorderinfoquerypagedata);
+ }
+ Assertions.assertEquals(1L, response.getTotalPage());
+ Assertions.assertEquals("setSysSerialNo", response.getSysSerialNo());
+ Assertions.assertEquals("setSysDate", response.getSysDate());
+ Assertions.assertEquals("setSysTime", response.getSysTime());
+ Assertions.assertEquals("setRecode", response.getRecode());
+ Assertions.assertEquals("setRecodeInfo", response.getRecodeInfo());
+ }
+
+ @Test
+ void invalidTest() {
+ GyOrderInvalidRequest request = new GyOrderInvalidRequest();
+ extractedGyOrderInvalidRequestParams(request);
+ extractedGyOrderInvalidRequestAssertions(request);
+
+ System.out.println(Json.toJson(request));
+ String requestJson = Json.toJson(request);
+ Assertions.assertEquals("{\"order_no_list\":[\"123456789\"],\"invalid\":\"setInvalid\",\"channel_no\":\"setChannelNo\",\"app_no\":\"setAppNo\",\"serial_no\":\"setSerialNo\",\"trans_date\":\"setTransDate\",\"trans_tradetime\":\"setTransTradeTime\"}", requestJson);
+
+ GyBaseResponse response = new GyBaseResponse();
+ extractedGyBaseResponseParams(response);
+ extractedGyBaseResponseAssertions(response);
+
+ System.out.println(Json.toJson(response));
+ String responseJson = Json.toJson(response);
+ Assertions.assertEquals("{\"recode\":\"setRecode\",\"recode_info\":\"setRecodeInfo\",\"sys_serial_no\":\"setSysSerialNo\",\"sys_date\":\"setSysDate\",\"sys_time\":\"setSysTime\"}", responseJson);
+
+ HttpResponse httpResponse = MockHttpResponse.create("/gy/order/invalid", response, GyBaseResponse.class);
+ Mockito.when(apiClient.post(
+ Mockito.eq("/gy/order/invalid"),
+ Mockito.any(HttpHeaders.class),
+ Mockito.any(RequestBody.class),
+ Mockito.eq(GyBaseResponse.class)))
+ .thenReturn(httpResponse);
+
+ GyBaseResponse result = service.invalid(request);
+
+ System.out.println(Json.toJson(result));
+ String resultJson = Json.toJson(result);
+ Assertions.assertEquals("{\"recode\":\"setRecode\",\"recode_info\":\"setRecodeInfo\",\"sys_serial_no\":\"setSysSerialNo\",\"sys_date\":\"setSysDate\",\"sys_time\":\"setSysTime\"}", resultJson);
+ }
+ void extractedGyOrderInvalidRequestParams(GyOrderInvalidRequest request) {
+ request.setOrderNoList(Lists.list("123456789"));
+ request.setInvalid("setInvalid");
+ request.setTransTradeTime("setTransTradeTime");
+ request.setTransDate("setTransDate");
+ request.setSerialNo("setSerialNo");
+ request.setChannelNo("setChannelNo");
+ request.setAppNo("setAppNo");
+ }
+ void extractedGyOrderInvalidRequestAssertions(GyOrderInvalidRequest request) {
+ Assertions.assertNotNull(request.getOrderNoList());
+ Assertions.assertEquals("setInvalid", request.getInvalid());
+ Assertions.assertEquals("setTransTradeTime", request.getTransTradeTime());
+ Assertions.assertEquals("setTransDate", request.getTransDate());
+ Assertions.assertEquals("setSerialNo", request.getSerialNo());
+ Assertions.assertEquals("setChannelNo", request.getChannelNo());
+ Assertions.assertEquals("setAppNo", request.getAppNo());
+ }
+
+ @Test
+ void loanTest() {
+ GyOrderLoanRequest request = new GyOrderLoanRequest();
+ extractedGyOrderLoanRequestParams(request);
+ extractedGyOrderLoanRequestAssertions(request);
+
+ System.out.println(Json.toJson(request));
+ String requestJson = Json.toJson(request);
+ Assertions.assertEquals("{\"apply_account_no\":\"setApplyAccountNo\",\"apply_account_name\":\"setApplyAccountName\",\"opp_account_no\":\"setOppAccountNo\",\"opp_account_name\":\"setOppAccountName\",\"period\":\"setPeriod\",\"verify_code\":\"setVerifyCode\",\"order_no_list\":[\"123456789\"],\"file_list\":[{\"file_no\":\"setFileNo\",\"file_type\":\"setFileType\"}],\"channel_no\":\"setChannelNo\",\"app_no\":\"setAppNo\",\"serial_no\":\"setSerialNo\",\"trans_date\":\"setTransDate\",\"trans_tradetime\":\"setTransTradeTime\"}", requestJson);
+
+ GyOrderLoanResponse response = new GyOrderLoanResponse();
+ extractedGyOrderLoanResponseParams(response);
+ extractedGyOrderLoanResponseAssertions(response);
+
+ System.out.println(Json.toJson(response));
+ String responseJson = Json.toJson(response);
+ Assertions.assertEquals("{\"loan_acc_no\":\"setLoanAccNo\",\"loan_acc_seq_no\":\"setLoanAccSeqNo\",\"loan_amount\":100.0,\"recode\":\"setRecode\",\"recode_info\":\"setRecodeInfo\",\"sys_serial_no\":\"setSysSerialNo\",\"sys_date\":\"setSysDate\",\"sys_time\":\"setSysTime\"}", responseJson);
+
+ HttpResponse httpResponse = MockHttpResponse.create("/gy/order/loan", response, GyOrderLoanResponse.class);
+ Mockito.when(apiClient.post(
+ Mockito.eq("/gy/order/loan"),
+ Mockito.any(HttpHeaders.class),
+ Mockito.any(RequestBody.class),
+ Mockito.eq(GyOrderLoanResponse.class)))
+ .thenReturn(httpResponse);
+
+ GyOrderLoanResponse result = service.loan(request);
+
+ System.out.println(Json.toJson(result));
+ String resultJson = Json.toJson(result);
+ Assertions.assertEquals("{\"loan_acc_no\":\"setLoanAccNo\",\"loan_acc_seq_no\":\"setLoanAccSeqNo\",\"loan_amount\":100.0,\"recode\":\"setRecode\",\"recode_info\":\"setRecodeInfo\",\"sys_serial_no\":\"setSysSerialNo\",\"sys_date\":\"setSysDate\",\"sys_time\":\"setSysTime\"}", resultJson);
+ }
+ void extractedGyOrderLoanRequestParams(GyOrderLoanRequest request) {
+ request.setOppAccountName("setOppAccountName");
+ request.setApplyAccountNo("setApplyAccountNo");
+ request.setApplyAccountName("setApplyAccountName");
+ request.setOppAccountNo("setOppAccountNo");
+ request.setOrderNoList(Lists.list("123456789"));
+ FileMaterial filematerial = new FileMaterial();
+ extractedGyOrderLoanRequestFileMaterialNestParams(filematerial);
+ request.setFileList(Lists.list(filematerial));
+ request.setVerifyCode("setVerifyCode");
+ request.setPeriod("setPeriod");
+ request.setTransTradeTime("setTransTradeTime");
+ request.setTransDate("setTransDate");
+ request.setSerialNo("setSerialNo");
+ request.setChannelNo("setChannelNo");
+ request.setAppNo("setAppNo");
+ }
+ void extractedGyOrderLoanRequestFileMaterialNestParams(FileMaterial nest) {
+ nest.setFileNo("setFileNo");
+ nest.setFileType("setFileType");
+ }
+ void extractedGyOrderLoanRequestFileMaterialNestAssertions(FileMaterial nest) {
+ Assertions.assertEquals("setFileNo", nest.getFileNo());
+ Assertions.assertEquals("setFileType", nest.getFileType());
+ }
+ void extractedGyOrderLoanRequestAssertions(GyOrderLoanRequest request) {
+ Assertions.assertEquals("setOppAccountName", request.getOppAccountName());
+ Assertions.assertEquals("setApplyAccountNo", request.getApplyAccountNo());
+ Assertions.assertEquals("setApplyAccountName", request.getApplyAccountName());
+ Assertions.assertEquals("setOppAccountNo", request.getOppAccountNo());
+ Assertions.assertNotNull(request.getOrderNoList());
+ for (FileMaterial filematerial : request.getFileList()) {
+ extractedGyOrderLoanRequestFileMaterialNestAssertions(filematerial);
+ }
+ Assertions.assertEquals("setVerifyCode", request.getVerifyCode());
+ Assertions.assertEquals("setPeriod", request.getPeriod());
+ Assertions.assertEquals("setTransTradeTime", request.getTransTradeTime());
+ Assertions.assertEquals("setTransDate", request.getTransDate());
+ Assertions.assertEquals("setSerialNo", request.getSerialNo());
+ Assertions.assertEquals("setChannelNo", request.getChannelNo());
+ Assertions.assertEquals("setAppNo", request.getAppNo());
+ }
+ void extractedGyOrderLoanResponseParams(GyOrderLoanResponse response) {
+ response.setLoanAmount(BigDecimal.valueOf(100.00));
+ response.setLoanAccNo("setLoanAccNo");
+ response.setLoanAccSeqNo("setLoanAccSeqNo");
+ response.setRecodeInfo("setRecodeInfo");
+ response.setSysDate("setSysDate");
+ response.setSysSerialNo("setSysSerialNo");
+ response.setRecode("setRecode");
+ response.setSysTime("setSysTime");
+ }
+ void extractedGyOrderLoanResponseAssertions(GyOrderLoanResponse response) {
+ Assertions.assertEquals(BigDecimal.valueOf(100.00), response.getLoanAmount());
+ Assertions.assertEquals("setLoanAccNo", response.getLoanAccNo());
+ Assertions.assertEquals("setLoanAccSeqNo", response.getLoanAccSeqNo());
+ Assertions.assertEquals("setRecodeInfo", response.getRecodeInfo());
+ Assertions.assertEquals("setSysDate", response.getSysDate());
+ Assertions.assertEquals("setSysSerialNo", response.getSysSerialNo());
+ Assertions.assertEquals("setRecode", response.getRecode());
+ Assertions.assertEquals("setSysTime", response.getSysTime());
+ }
+ @Test
+ void settleRepayTest() {
+ GyOrderSettleRepayRequest request = new GyOrderSettleRepayRequest();
+ extractedGyOrderSettleRepayRequestParams(request);
+ extractedGyOrderSettleRepayRequestAssertions(request);
+
+ System.out.println(Json.toJson(request));
+ String requestJson = Json.toJson(request);
+ Assertions.assertEquals("{\"order_no\":\"setOrderNo\",\"channel_no\":\"setChannelNo\",\"app_no\":\"setAppNo\",\"serial_no\":\"setSerialNo\",\"trans_date\":\"setTransDate\",\"trans_tradetime\":\"setTransTradeTime\"}", requestJson);
+
+ GyBaseResponse response = new GyBaseResponse();
+ extractedGyBaseResponseParams(response);
+ extractedGyBaseResponseAssertions(response);
+
+ System.out.println(Json.toJson(response));
+ String responseJson = Json.toJson(response);
+ Assertions.assertEquals("{\"recode\":\"setRecode\",\"recode_info\":\"setRecodeInfo\",\"sys_serial_no\":\"setSysSerialNo\",\"sys_date\":\"setSysDate\",\"sys_time\":\"setSysTime\"}", responseJson);
+
+ HttpResponse httpResponse = MockHttpResponse.create("/gy/order/settle-repay", response, GyBaseResponse.class);
+ Mockito.when(apiClient.post(
+ Mockito.eq("/gy/order/settle-repay"),
+ Mockito.any(HttpHeaders.class),
+ Mockito.any(RequestBody.class),
+ Mockito.eq(GyBaseResponse.class)))
+ .thenReturn(httpResponse);
+
+ GyBaseResponse result = service.settleRepay(request);
+
+ System.out.println(Json.toJson(result));
+ String resultJson = Json.toJson(result);
+ Assertions.assertEquals("{\"recode\":\"setRecode\",\"recode_info\":\"setRecodeInfo\",\"sys_serial_no\":\"setSysSerialNo\",\"sys_date\":\"setSysDate\",\"sys_time\":\"setSysTime\"}", resultJson);
+ }
+ void extractedGyOrderSettleRepayRequestParams(GyOrderSettleRepayRequest request) {
+ request.setOrderNo("setOrderNo");
+ request.setTransTradeTime("setTransTradeTime");
+ request.setTransDate("setTransDate");
+ request.setSerialNo("setSerialNo");
+ request.setChannelNo("setChannelNo");
+ request.setAppNo("setAppNo");
+ }
+ void extractedGyOrderSettleRepayRequestAssertions(GyOrderSettleRepayRequest request) {
+ Assertions.assertEquals("setOrderNo", request.getOrderNo());
+ Assertions.assertEquals("setTransTradeTime", request.getTransTradeTime());
+ Assertions.assertEquals("setTransDate", request.getTransDate());
+ Assertions.assertEquals("setSerialNo", request.getSerialNo());
+ Assertions.assertEquals("setChannelNo", request.getChannelNo());
+ Assertions.assertEquals("setAppNo", request.getAppNo());
+ }
+}
diff --git a/scfs-api-sm/pom.xml b/scfs-api-sm/pom.xml
index 2f40def..4c83e6a 100644
--- a/scfs-api-sm/pom.xml
+++ b/scfs-api-sm/pom.xml
@@ -5,11 +5,11 @@
com.czcb.scfs
scfs-api-sdk
- 2.0.16-snapshot
+ 2.0.18-snapshot
scfs-api-sm
- 2.0.16-snapshot
+ 2.0.18-snapshot
scfs-api-sm:国密模块
封装SM2、SM4国密算法
@@ -17,7 +17,7 @@
com.czcb.scfs
scfs-api-core
- 2.0.16-snapshot
+ 2.0.18-snapshot
diff --git a/scfs-api-spring-boot-starter/pom.xml b/scfs-api-spring-boot-starter/pom.xml
index 0456ab6..3595224 100644
--- a/scfs-api-spring-boot-starter/pom.xml
+++ b/scfs-api-spring-boot-starter/pom.xml
@@ -5,11 +5,11 @@
com.czcb.scfs
scfs-api-sdk
- 2.0.16-snapshot
+ 2.0.18-snapshot
scfs-api-spring-boot-starter
- 2.0.16-snapshot
+ 2.0.18-snapshot
scfs-spring-boot-starter
scfs-spring-boot-starter
@@ -17,22 +17,22 @@
com.czcb.scfs
scfs-api-core
- 2.0.16-snapshot
+ 2.0.18-snapshot
com.czcb.scfs
scfs-api-service
- 2.0.16-snapshot
+ 2.0.18-snapshot
com.czcb.scfs
scfs-api-rsa
- 2.0.16-snapshot
+ 2.0.18-snapshot
com.czcb.scfs
scfs-api-sm
- 2.0.16-snapshot
+ 2.0.18-snapshot
org.springframework.boot
diff --git a/scfs-api-spring-boot-starter/src/main/java/com/czcb/scfs/spring/boot/starter/ScfsAutoConfiguration.java b/scfs-api-spring-boot-starter/src/main/java/com/czcb/scfs/spring/boot/starter/ScfsAutoConfiguration.java
index ebc21b2..e97cf19 100644
--- a/scfs-api-spring-boot-starter/src/main/java/com/czcb/scfs/spring/boot/starter/ScfsAutoConfiguration.java
+++ b/scfs-api-spring-boot-starter/src/main/java/com/czcb/scfs/spring/boot/starter/ScfsAutoConfiguration.java
@@ -12,10 +12,7 @@ import com.czcb.scfs.api.service.v2.cat.project.ProjectService;
import com.czcb.scfs.api.service.v2.communal.CommunalDataService;
import com.czcb.scfs.api.service.v2.entpay.EntPayService;
import com.czcb.scfs.api.service.v2.loan.CreditPayService;
-import com.czcb.scfs.api.service.v2.order.OrderManageService;
-import com.czcb.scfs.api.service.v2.order.OrderSettleService;
-import com.czcb.scfs.api.service.v2.order.OrderTradeUnitPayService;
-import com.czcb.scfs.api.service.v2.order.TradeOrdersSltService;
+import com.czcb.scfs.api.service.v2.order.*;
import com.czcb.scfs.api.service.v2.waybill.WayBillService;
import com.czcb.scfs.api.service.v2.face.FaceService;
import com.czcb.scfs.api.service.v2.file.FileService;
@@ -272,4 +269,14 @@ public class ScfsAutoConfiguration {
return new OrderTradeUnitPayService(apiClient);
}
+ /**
+ * 订单(国业)管理
+ */
+ @Bean
+ @ConditionalOnMissingBean
+ @ConditionalOnClass(GyOrderService.class)
+ public GyOrderService gyOrderService(ApiClient apiClient) {
+ return new GyOrderService(apiClient);
+ }
+
}
diff --git a/scfs-api-test/pom.xml b/scfs-api-test/pom.xml
index f3ea7b0..050a68e 100644
--- a/scfs-api-test/pom.xml
+++ b/scfs-api-test/pom.xml
@@ -5,11 +5,11 @@
com.czcb.scfs
scfs-api-sdk
- 2.0.16-snapshot
+ 2.0.18-snapshot
scfs-api-test
- 2.0.16-snapshot
+ 2.0.18-snapshot
scfs-api-test
scfs-api-test