From d5308f06e63614cddf7e180997f3043cf945e662 Mon Sep 17 00:00:00 2001 From: 13009 Date: Thu, 11 Jul 2024 10:30:29 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=8F=91=E7=A5=A8=E6=B7=BB=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../equity/invoice/InvoiceService.java | 10 +- .../invoice/model/InvoiceAddRequest.java | 2 + .../invoice/model/InvoiceDelRequest.java | 2 + .../invoice/model/InvoiceInvalidRequest.java | 72 ++++++++++++++ .../invoice/model/InvoiceInvalidResponse.java | 43 +++++++++ .../invoice/model/InvoiceQueryRequest.java | 34 ++----- .../invoice/model/InvoiceQueryResponse.java | 96 +++++++++++++++++++ .../equity/invoice/InvoiceServiceTest.java | 58 ++++++++++- 8 files changed, 285 insertions(+), 32 deletions(-) create mode 100644 scfs-api-service-equity/src/main/java/com/czcb/scfs/service/equity/invoice/model/InvoiceInvalidRequest.java create mode 100644 scfs-api-service-equity/src/main/java/com/czcb/scfs/service/equity/invoice/model/InvoiceInvalidResponse.java diff --git a/scfs-api-service-equity/src/main/java/com/czcb/scfs/service/equity/invoice/InvoiceService.java b/scfs-api-service-equity/src/main/java/com/czcb/scfs/service/equity/invoice/InvoiceService.java index 08d2fda..4a8153d 100644 --- a/scfs-api-service-equity/src/main/java/com/czcb/scfs/service/equity/invoice/InvoiceService.java +++ b/scfs-api-service-equity/src/main/java/com/czcb/scfs/service/equity/invoice/InvoiceService.java @@ -42,18 +42,18 @@ public class InvoiceService { } /** - * 删除发票-批量删除 + * 作废发票 */ - public InvoiceAddResponse deleteBatch(InvoiceAddRequest request) { - String url = "/invoice/delete/batch"; + public InvoiceInvalidResponse invalid(InvoiceInvalidRequest request) { + String url = "/invoice/invalid"; HttpHeaders headers = new HttpHeaders(); headers.addHeader(API_VERSION, V_2); - HttpResponse httpResponse = apiClient.post(url, headers, request.toJsonRequest(), InvoiceAddResponse.class); + HttpResponse httpResponse = apiClient.post(url, headers, request.toJsonRequest(), InvoiceInvalidResponse.class); return httpResponse.getServiceResponse(); } /** - * 删除发票-批量删除 + * 查询 */ public InvoiceQueryResponse query(InvoiceQueryRequest request) { String url = "/invoice/query"; diff --git a/scfs-api-service-equity/src/main/java/com/czcb/scfs/service/equity/invoice/model/InvoiceAddRequest.java b/scfs-api-service-equity/src/main/java/com/czcb/scfs/service/equity/invoice/model/InvoiceAddRequest.java index 7ea3935..0fb6fec 100644 --- a/scfs-api-service-equity/src/main/java/com/czcb/scfs/service/equity/invoice/model/InvoiceAddRequest.java +++ b/scfs-api-service-equity/src/main/java/com/czcb/scfs/service/equity/invoice/model/InvoiceAddRequest.java @@ -1,6 +1,7 @@ package com.czcb.scfs.service.equity.invoice.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; @@ -14,6 +15,7 @@ import java.util.Date; */ @Data @Accessors(chain = true) +@TransType("243301") public class InvoiceAddRequest implements ApiRequest { /** * 渠道编号 diff --git a/scfs-api-service-equity/src/main/java/com/czcb/scfs/service/equity/invoice/model/InvoiceDelRequest.java b/scfs-api-service-equity/src/main/java/com/czcb/scfs/service/equity/invoice/model/InvoiceDelRequest.java index 64c477b..c4dff81 100644 --- a/scfs-api-service-equity/src/main/java/com/czcb/scfs/service/equity/invoice/model/InvoiceDelRequest.java +++ b/scfs-api-service-equity/src/main/java/com/czcb/scfs/service/equity/invoice/model/InvoiceDelRequest.java @@ -1,6 +1,7 @@ package com.czcb.scfs.service.equity.invoice.model; import com.czcb.scfs.api.core.ApiRequest; +import com.czcb.scfs.api.core.agrs.TransType; import com.czcb.scfs.api.core.util.DateTimes; import com.czcb.scfs.api.core.validation.Size; import com.google.gson.annotations.SerializedName; @@ -16,6 +17,7 @@ import java.util.List; */ @Data @Accessors(chain = true) +@TransType("243300") public class InvoiceDelRequest implements ApiRequest { /** * 渠道编号 diff --git a/scfs-api-service-equity/src/main/java/com/czcb/scfs/service/equity/invoice/model/InvoiceInvalidRequest.java b/scfs-api-service-equity/src/main/java/com/czcb/scfs/service/equity/invoice/model/InvoiceInvalidRequest.java new file mode 100644 index 0000000..d5e813b --- /dev/null +++ b/scfs-api-service-equity/src/main/java/com/czcb/scfs/service/equity/invoice/model/InvoiceInvalidRequest.java @@ -0,0 +1,72 @@ +package com.czcb.scfs.service.equity.invoice.model; + +import com.czcb.scfs.api.core.ApiRequest; +import com.czcb.scfs.api.core.agrs.TransType; +import com.czcb.scfs.api.core.util.DateTimes; +import com.czcb.scfs.api.core.validation.Size; +import com.google.gson.annotations.SerializedName; +import lombok.Data; +import lombok.experimental.Accessors; + +import java.util.Arrays; +import java.util.List; + +/** + * @author wangwei + * @since 2024/7/8 + */ +@Data +@Accessors(chain = true) +@TransType("243302") +public class InvoiceInvalidRequest 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("invalid") + private String invalid = "1"; + + /** + * 发票编号 + */ + @Size(min = 1, max = 50, message = "数据条数1-50") + @SerializedName("invoice_nos") + private List invoiceNos; + + public static InvoiceInvalidRequest of(String channelNo, String appNo, String serialNo, String... invoiceNos) { + InvoiceInvalidRequest request = new InvoiceInvalidRequest(); + request.setChannelNo(channelNo); + request.setAppNo(appNo); + request.setSerialNo(serialNo); + request.setTransDate(DateTimes.ofNowDate()); + request.setTransTradeTime(DateTimes.ofNow()); + request.setInvoiceNos(Arrays.asList(invoiceNos)); + return request; + } +} diff --git a/scfs-api-service-equity/src/main/java/com/czcb/scfs/service/equity/invoice/model/InvoiceInvalidResponse.java b/scfs-api-service-equity/src/main/java/com/czcb/scfs/service/equity/invoice/model/InvoiceInvalidResponse.java new file mode 100644 index 0000000..2e8002c --- /dev/null +++ b/scfs-api-service-equity/src/main/java/com/czcb/scfs/service/equity/invoice/model/InvoiceInvalidResponse.java @@ -0,0 +1,43 @@ +package com.czcb.scfs.service.equity.invoice.model; + +import com.czcb.scfs.api.core.PageApiResponse; +import com.google.gson.annotations.SerializedName; +import lombok.Data; +import lombok.experimental.Accessors; + +/** + * @author wangwei + * @since 2024/7/8 + */ +@Data +@Accessors(chain = true) +public class InvoiceInvalidResponse implements PageApiResponse { + /** + * 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-equity/src/main/java/com/czcb/scfs/service/equity/invoice/model/InvoiceQueryRequest.java b/scfs-api-service-equity/src/main/java/com/czcb/scfs/service/equity/invoice/model/InvoiceQueryRequest.java index 0c3cc03..1c82a19 100644 --- a/scfs-api-service-equity/src/main/java/com/czcb/scfs/service/equity/invoice/model/InvoiceQueryRequest.java +++ b/scfs-api-service-equity/src/main/java/com/czcb/scfs/service/equity/invoice/model/InvoiceQueryRequest.java @@ -1,19 +1,18 @@ package com.czcb.scfs.service.equity.invoice.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.experimental.Accessors; -import java.math.BigDecimal; -import java.util.Date; - /** * @author wangwei * @since 2024/7/8 */ @Data @Accessors(chain = true) +@TransType("243303") public class InvoiceQueryRequest implements PageApiRequest { /** * 渠道编号 @@ -51,15 +50,17 @@ public class InvoiceQueryRequest implements PageApiRequest { @SerializedName("invoice_no") private String invoiceNo; /** - * 发票类型 1、通用发票 2、累计循环发票 + * 发票登记日期-开始 */ - @SerializedName("invoice_type") - private String invoiceType; + @SerializedName("invoice_register_date_start") + private String invoiceRegisterDateStart; + /** - * 发票登记日期 + * 发票登记日期-开始 */ - @SerializedName("invoice_register_date") - private Date invoiceRegisterDate; + @SerializedName("invoice_register_date_end") + private String invoiceRegisterDateEnd; + /** * 付款账户账号 */ @@ -90,19 +91,4 @@ public class InvoiceQueryRequest implements PageApiRequest { */ @SerializedName("settle_account_name") private String settleAccountName; - /** - * 发票归属日期起 - */ - @SerializedName("invoice_belong_start_date") - private Date invoiceBelongStartDate; - /** - * 发票归属日期止 - */ - @SerializedName("invoice_belong_end_date") - private Date invoiceBelongEndDate; - /** - * 发票金额 - */ - @SerializedName("invoice_amount") - private BigDecimal invoiceAmount; } diff --git a/scfs-api-service-equity/src/main/java/com/czcb/scfs/service/equity/invoice/model/InvoiceQueryResponse.java b/scfs-api-service-equity/src/main/java/com/czcb/scfs/service/equity/invoice/model/InvoiceQueryResponse.java index b61d3db..f6f98a8 100644 --- a/scfs-api-service-equity/src/main/java/com/czcb/scfs/service/equity/invoice/model/InvoiceQueryResponse.java +++ b/scfs-api-service-equity/src/main/java/com/czcb/scfs/service/equity/invoice/model/InvoiceQueryResponse.java @@ -5,6 +5,10 @@ import com.google.gson.annotations.SerializedName; import lombok.Data; import lombok.experimental.Accessors; +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.List; + /** * @author wangwei * @since 2024/7/8 @@ -40,4 +44,96 @@ public class InvoiceQueryResponse implements PageApiResponse { */ @SerializedName("sys_time") private String sysTime; + + @SerializedName("data") + private List data; + + @Data + public static class InvoiceData implements Serializable { + /** + * 发票编号 + */ + @SerializedName("invoice_no") + private String invoiceNo; + /** + * 发票类型 1、通用发票 2、累计循环发票 + */ + @SerializedName("invoice_type") + private String invoiceType; + /** + * 发票登记日期 + */ + @SerializedName("invoice_register_date") + private String invoiceRegisterDate; + /** + * 付款账户账号 + */ + @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; + /** + * 归集账户账号(待清算账户/可控电商A2) + */ + @SerializedName("settle_account_no") + private String settleAccountNo; + /** + * 归集账户户名(待清算账户/可控电商A2) + */ + @SerializedName("settle_account_name") + private String settleAccountName; + /** + * 发票归属日期起 + */ + @SerializedName("invoice_belong_start_date") + private String invoiceBelongStartDate; + /** + * 发票归属日期止 + */ + @SerializedName("invoice_belong_end_date") + private String invoiceBelongEndDate; + /** + * 发票金额 + */ + @SerializedName("invoice_amount") + private BigDecimal invoiceAmount; + /** + * 发票状态 + */ + @SerializedName("invoice_status") + private String invoiceStatus; + /** + * 已结算金额 + */ + @SerializedName("settle_amount") + private BigDecimal settleAmount; + /** + * 结算状态 0、未结算 1、已结算 2、部分结算 + */ + @SerializedName("settle_status") + private String settleStatus; + /** + * 创建时间 + */ + @SerializedName("create_time") + private String createTime; + /** + * 更新时间 + */ + @SerializedName("update_time") + private String updateTime; + } } diff --git a/scfs-api-test/src/test/java/com/czcb/scfs/api/test/equity/invoice/InvoiceServiceTest.java b/scfs-api-test/src/test/java/com/czcb/scfs/api/test/equity/invoice/InvoiceServiceTest.java index fcbcad7..f2d4f21 100644 --- a/scfs-api-test/src/test/java/com/czcb/scfs/api/test/equity/invoice/InvoiceServiceTest.java +++ b/scfs-api-test/src/test/java/com/czcb/scfs/api/test/equity/invoice/InvoiceServiceTest.java @@ -3,12 +3,12 @@ package com.czcb.scfs.api.test.equity.invoice; import com.czcb.scfs.api.core.util.DateTimes; import com.czcb.scfs.api.core.util.Nonce; import com.czcb.scfs.service.equity.invoice.InvoiceService; -import com.czcb.scfs.service.equity.invoice.model.InvoiceDelRequest; -import com.czcb.scfs.service.equity.invoice.model.InvoiceDelResponse; +import com.czcb.scfs.service.equity.invoice.model.*; import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; import javax.annotation.Resource; +import java.math.BigDecimal; import java.util.Arrays; @SpringBootTest @@ -25,11 +25,63 @@ class InvoiceServiceTest { request.setSerialNo(Nonce.ofNonce()); request.setTransDate(DateTimes.ofNowDate()); request.setTransTradeTime(DateTimes.ofNow()); -// request.setInvoiceNos(Arrays.asList("2200000909090990")); + request.setInvoiceNos(Arrays.asList("222")); InvoiceDelResponse response = invoiceService.del(request); if ("000000".equals(response.getRecode())) { } } + + @Test + void add() { + InvoiceAddRequest request = new InvoiceAddRequest(); + request.setChannelNo("1028"); + request.setAppNo("1000"); + request.setInvoiceNo("22555ww555333552"); + request.setAccountNo("1111"); + request.setAccountName("test"); + request.setOppAccountNo("223332"); + request.setOppAccountName("22"); + request.setInvoiceAmount(BigDecimal.ONE); + request.setSerialNo(Nonce.ofNonce()); + request.setTransDate(DateTimes.ofNowDate()); + request.setTransTradeTime(DateTimes.ofNow()); + + InvoiceAddResponse response = invoiceService.add(request); + if ("000000".equals(response.getRecode())) { + + } + } + + @Test + void invalid() { + InvoiceInvalidRequest request = new InvoiceInvalidRequest(); + request.setChannelNo("0000"); + request.setAppNo("1000"); + request.setSerialNo(Nonce.ofNonce()); + request.setTransDate(DateTimes.ofNowDate()); + request.setTransTradeTime(DateTimes.ofNow()); + request.setInvoiceNos(Arrays.asList("22555555552")); + + InvoiceInvalidResponse response = invoiceService.invalid(request); + if ("000000".equals(response.getRecode())) { + + } + } + + @Test + void query() { + InvoiceQueryRequest request = new InvoiceQueryRequest(); + request.setChannelNo("0000"); + request.setAppNo("1000"); + request.setSerialNo(Nonce.ofNonce()); + request.setTransDate(DateTimes.ofNowDate()); + request.setTransTradeTime(DateTimes.ofNow()); + + InvoiceQueryResponse response = invoiceService.query(request); + if ("000000".equals(response.getRecode())) { + + } + } } \ No newline at end of file