feat: 发票添加
parent
60e33434d3
commit
d5308f06e6
|
|
@ -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<InvoiceAddResponse> httpResponse = apiClient.post(url, headers, request.toJsonRequest(), InvoiceAddResponse.class);
|
||||
HttpResponse<InvoiceInvalidResponse> httpResponse = apiClient.post(url, headers, request.toJsonRequest(), InvoiceInvalidResponse.class);
|
||||
return httpResponse.getServiceResponse();
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除发票-批量删除
|
||||
* 查询
|
||||
*/
|
||||
public InvoiceQueryResponse query(InvoiceQueryRequest request) {
|
||||
String url = "/invoice/query";
|
||||
|
|
|
|||
|
|
@ -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 {
|
||||
/**
|
||||
* 渠道编号
|
||||
|
|
|
|||
|
|
@ -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 {
|
||||
/**
|
||||
* 渠道编号
|
||||
|
|
|
|||
|
|
@ -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<String> 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;
|
||||
}
|
||||
}
|
||||
|
|
@ -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;
|
||||
}
|
||||
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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<InvoiceData> 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;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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())) {
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue