diff --git a/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/ar/CreditContractService.java b/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/ar/CreditContractService.java new file mode 100644 index 0000000..930993e --- /dev/null +++ b/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/ar/CreditContractService.java @@ -0,0 +1,28 @@ +package com.czcb.scfs.api.service.v2.ar; + +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.ar.model.CreditContractLimitQueryRequest; +import com.czcb.scfs.api.service.v2.ar.model.CreditContractLimitQueryResponse; + +public class CreditContractService { + + private final ApiClient apiClient; + + public CreditContractService(ApiClient apiClient) { + this.apiClient = apiClient; + } + + /** + * 312105-合同详情查看(农都) + */ + public CreditContractLimitQueryResponse creditContractLimitQuery(CreditContractLimitQueryRequest request) { + String url = "/credit/contract/limit-used/query"; + HttpResponse httpResponse = apiClient.post(url, HttpHeaders.apiVersionV2(), + request.toJsonRequest(), CreditContractLimitQueryResponse.class); + return httpResponse.getServiceResponse(); + } + + +} diff --git a/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/ar/model/CreditContractLimitQueryRequest.java b/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/ar/model/CreditContractLimitQueryRequest.java new file mode 100644 index 0000000..97e87f9 --- /dev/null +++ b/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/ar/model/CreditContractLimitQueryRequest.java @@ -0,0 +1,59 @@ +package com.czcb.scfs.api.service.v2.ar.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.experimental.Accessors; + + +/** + * 242909-合同已用额度查询 + * + * @author yuchuan + * @since 2025/12/29 + */ +@Data +@Accessors(chain = true) +@TransType("242909") +public class CreditContractLimitQueryRequest 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; + + + @SerializedName("apply_account_no") + private String applyAccountNo;//贷款申请账号 + + @SerializedName("apply_account_name") + private String applyAccountName;//贷款申请户名 + + @SerializedName("contract_no") + private String contractNo;//贷款合同编号 +} diff --git a/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/ar/model/CreditContractLimitQueryResponse.java b/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/ar/model/CreditContractLimitQueryResponse.java new file mode 100644 index 0000000..99bbf9b --- /dev/null +++ b/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/ar/model/CreditContractLimitQueryResponse.java @@ -0,0 +1,73 @@ +package com.czcb.scfs.api.service.v2.ar.model; + +import com.czcb.scfs.api.core.ApiResponse; +import com.google.gson.annotations.SerializedName; +import lombok.Data; +import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; +import java.util.List; + +/** + * 242909-合同已用额度查询 + * + * @author yuchuan + * @since 2025/12/29 + */ +@Data +@Accessors(chain = true) +public class CreditContractLimitQueryResponse 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; + + + @SerializedName("data") + private List creditContractLimitList; + + @Data + @Accessors(chain = true) + public static class CreditContractLimit implements Serializable { + + @SerializedName("contract_no") + private String contractNo;//贷款合同编号 + + @SerializedName("business_limit") + private BigDecimal businessLimit;//授信额度 + + @SerializedName("used_limit") + private BigDecimal usedLimit;//已用额度 + + @SerializedName("credit_limit_end") + private Date creditLimitEnd;//额度期限止 + + } +} 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 3bb7217..b0e7712 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 @@ -5,10 +5,7 @@ import com.czcb.scfs.api.core.Profile; import com.czcb.scfs.api.core.http.ApiClientBuilder; import com.czcb.scfs.api.service.echo.EchoService; import com.czcb.scfs.api.service.v2.account.AccountService; -import com.czcb.scfs.api.service.v2.ar.ArcOrderDeliveryService; -import com.czcb.scfs.api.service.v2.ar.ContractInfoService; -import com.czcb.scfs.api.service.v2.ar.OrderPurchaseService; -import com.czcb.scfs.api.service.v2.ar.ProjectInfoService; +import com.czcb.scfs.api.service.v2.ar.*; import com.czcb.scfs.api.service.v2.bills.BillService; import com.czcb.scfs.api.service.v2.bmd.BmdService; import com.czcb.scfs.api.service.v2.cat.order.OrderService; @@ -335,4 +332,12 @@ public class ScfsAutoConfiguration { return new OrderPurchaseService(apiClient); } + @Bean + @ConditionalOnMissingBean + @ConditionalOnClass(CreditContractService.class) + public CreditContractService creditContractService(ApiClient apiClient) { + return new CreditContractService(apiClient); + } + + } diff --git a/scfs-api-test/src/test/java/com/czcb/scfs/api/test/service/ArServiceTest.java b/scfs-api-test/src/test/java/com/czcb/scfs/api/test/service/ArServiceTest.java index d62c3e2..e03d445 100644 --- a/scfs-api-test/src/test/java/com/czcb/scfs/api/test/service/ArServiceTest.java +++ b/scfs-api-test/src/test/java/com/czcb/scfs/api/test/service/ArServiceTest.java @@ -2,6 +2,7 @@ package com.czcb.scfs.api.test.service; import com.czcb.scfs.api.service.v2.ar.ContractInfoService; +import com.czcb.scfs.api.service.v2.ar.CreditContractService; import com.czcb.scfs.api.service.v2.ar.OrderPurchaseService; import com.czcb.scfs.api.service.v2.ar.ProjectInfoService; import com.czcb.scfs.api.service.v2.ar.model.*; @@ -22,6 +23,8 @@ public class ArServiceTest { private ProjectInfoService projectInfoService; @Resource private OrderPurchaseService orderPurchaseService; + @Resource + private CreditContractService creditContractService; //303305-项目详情查看(农都) @@ -72,7 +75,7 @@ public class ArServiceTest { System.out.println(response); } - //312105-合同详情查看(农都) + //312106-合同分页查询(农都) @Test void arContractInfoPageQuery() { ArContractInfoPageQueryRequest request = new ArContractInfoPageQueryRequest(); @@ -225,4 +228,21 @@ public class ArServiceTest { ArOrderPurchaseInvalidResponse response = orderPurchaseService.arOrderPurchaseInvalid(request); System.out.println(response); } + + //312105-合同详情查看(农都) + @Test + void creditContractLimitQuery() { + CreditContractLimitQueryRequest request = new CreditContractLimitQueryRequest(); + request.setChannelNo("0000"); + request.setAppNo("10"); + request.setSerialNo(UUID.randomUUID().toString().replace("-", "")); + request.setTransDate("2024-03-20"); + request.setTransTradeTime("2024-01-02 09:11:53"); + + request.setApplyAccountNo("1038250924000010"); + request.setApplyAccountName("晋城王台科工贸有限公司"); + + CreditContractLimitQueryResponse response = creditContractService.creditContractLimitQuery(request); + System.out.println(response); + } }