From bcc73dc44ccb0dd8892b02f21c45eb48a1bc9b98 Mon Sep 17 00:00:00 2001 From: quyixiao <2621048238@qq.com> Date: Sun, 23 Mar 2025 23:27:34 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../financial/BankReceiptNewController.java | 73 ++++++++++++ .../financial/BusTicketController.java | 81 +++++++++++++ .../financial/FerryTicketController.java | 67 +++++++++++ .../financial/InvoiceController.java | 106 ++++++++++++++++++ .../financial/MultipleInvoiceController.java | 56 +++++++++ .../resp/financial/BankReceiptNewResp.java | 26 +++++ .../api/resp/financial/BusTicketResp.java | 21 ++++ .../api/resp/financial/FerryTicketResp.java | 19 ++++ .../heyu/api/resp/financial/InvoiceResp.java | 42 +++++++ 9 files changed, 491 insertions(+) create mode 100644 api-web/api-interface/src/main/java/com/heyu/api/controller/financial/BankReceiptNewController.java create mode 100644 api-web/api-interface/src/main/java/com/heyu/api/controller/financial/BusTicketController.java create mode 100644 api-web/api-interface/src/main/java/com/heyu/api/controller/financial/FerryTicketController.java create mode 100644 api-web/api-interface/src/main/java/com/heyu/api/controller/financial/InvoiceController.java create mode 100644 api-web/api-interface/src/main/java/com/heyu/api/controller/financial/MultipleInvoiceController.java create mode 100644 api-web/api-interface/src/main/java/com/heyu/api/resp/financial/BankReceiptNewResp.java create mode 100644 api-web/api-interface/src/main/java/com/heyu/api/resp/financial/BusTicketResp.java create mode 100644 api-web/api-interface/src/main/java/com/heyu/api/resp/financial/FerryTicketResp.java create mode 100644 api-web/api-interface/src/main/java/com/heyu/api/resp/financial/InvoiceResp.java diff --git a/api-web/api-interface/src/main/java/com/heyu/api/controller/financial/BankReceiptNewController.java b/api-web/api-interface/src/main/java/com/heyu/api/controller/financial/BankReceiptNewController.java new file mode 100644 index 0000000..8318d9a --- /dev/null +++ b/api-web/api-interface/src/main/java/com/heyu/api/controller/financial/BankReceiptNewController.java @@ -0,0 +1,73 @@ +package com.heyu.api.controller.financial; + + +import com.heyu.api.baidu.handle.financial.BBankReceiptNewHandle; +import com.heyu.api.baidu.request.financial.BBankReceiptNewRequest; +import com.heyu.api.controller.BaseController; +import com.heyu.api.data.annotation.CacheResult; +import com.heyu.api.data.annotation.NotIntercept; +import com.heyu.api.data.utils.ApiR; +import com.heyu.api.data.utils.MapUtils; +import com.heyu.api.data.utils.R; +import com.heyu.api.resp.financial.BankReceiptNewResp; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.Map; + + +/*** + * https://console.bce.baidu.com/support/?_=1740575657628×tamp=1742739144533#/api?product=AI&project=%E6%96%87%E5%AD%97%E8%AF%86%E5%88%AB&parent=%E8%B4%A2%E5%8A%A1%E7%A5%A8%E6%8D%AEOCR&api=rest%2F2.0%2Focr%2Fv1%2Fbank_receipt_new&method=post + * + *银行回单识别 + * + *接口描述 + * 支持对不同版式银行回单进行结构化识别,包括标题、付款人户名、付款人开户银行、付款人账号、收款人户名、收款人开户银行、收款人账号、大写金额、小写金额、流水号、回单编号、交易日期、摘要、用途 14个关键字段。 + * + * + */ +@Slf4j +@RestController +@RequestMapping("/bankReceipt") +@NotIntercept +public class BankReceiptNewController extends BaseController { + + + @Autowired + private BBankReceiptNewHandle bankReceiptNewHandle; + + + @RequestMapping("/recognize") + @CacheResult + public R recognize(BBankReceiptNewRequest req) { + ApiR bR = bankReceiptNewHandle.handle(req); + if (bR.isSuccess()) { + Map data = bR.getData(); + BankReceiptNewResp resp = new BankReceiptNewResp(); + + resp.setTitle(MapUtils.getByExpr(data, "words_result.标题.[0].word"));// 标题 + resp.setPayPersonName(MapUtils.getByExpr(data, "words_result.付款人户名.[0].word")); // 付款人户名 + resp.setPayBankName(MapUtils.getByExpr(data, "words_result.付款人开户银行.[0].word")); //付款人开户银行 + resp.setPayAcount(MapUtils.getByExpr(data, "words_result.付款人账号.[0].word"));//付款人账号 + resp.setPayeeAcount(MapUtils.getByExpr(data, "words_result.收款人户名.[0].word")); //付款人账号 + resp.setPayeeName(MapUtils.getByExpr(data, "words_result.付款人户名.[0].word")); //收款人户名 + resp.setPayeeBankName(MapUtils.getByExpr(data, "words_result.收款人开户银行.[0].word"));//收款人开户银行 + resp.setPayeeBankAccount(MapUtils.getByExpr(data, "words_result.收款人账号.[0].word")); // 收款人账号 + resp.setCapsAmount(MapUtils.getByExpr(data, "words_result.大写金额.[0].word")); // 大写金额 + resp.setLowerCaseAmount(MapUtils.getByExpr(data, "words_result.小写金额.[0].word")); // 小写金额 + resp.setSerialNumber(MapUtils.getByExpr(data, "words_result.流水号.[0].word")); // 流水号 + resp.setReplyNumber(MapUtils.getByExpr(data, "words_result.回单编号.[0].word"));// 回单编号; + resp.setTradeDate(MapUtils.getByExpr(data, "words_result.交易日期.[0].word")); // 交易日期 + resp.setSummary(MapUtils.getByExpr(data, "words_result.摘要.[0].word"));// 摘要 + resp.setUse(MapUtils.getByExpr(data, "words_result.用途.[0].word"));//用途 + + return R.ok().setData(resp); + } + + return R.error(); + } + + +} diff --git a/api-web/api-interface/src/main/java/com/heyu/api/controller/financial/BusTicketController.java b/api-web/api-interface/src/main/java/com/heyu/api/controller/financial/BusTicketController.java new file mode 100644 index 0000000..b49185f --- /dev/null +++ b/api-web/api-interface/src/main/java/com/heyu/api/controller/financial/BusTicketController.java @@ -0,0 +1,81 @@ +package com.heyu.api.controller.financial; + + +import com.heyu.api.baidu.handle.financial.BBusTicketHandle; +import com.heyu.api.baidu.request.financial.BBusTicketRequest; +import com.heyu.api.baidu.response.financial.BBusTicketResp; +import com.heyu.api.controller.BaseController; +import com.heyu.api.data.annotation.CacheResult; +import com.heyu.api.data.annotation.NotIntercept; +import com.heyu.api.data.utils.ApiR; +import com.heyu.api.data.utils.R; +import com.heyu.api.resp.financial.BusTicketResp; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + + +/*** + * + * + *https://console.bce.baidu.com/support/?_=1740575657628×tamp=1740578576329#/api?product=AI&project=%E6%96%87%E5%AD%97%E8%AF%86%E5%88%AB&parent=%E8%B4%A2%E5%8A%A1%E7%A5%A8%E6%8D%AEOCR&api=rest%2F2.0%2Focr%2Fv1%2Fbus_ticket&method=post + * 汽车票识别 + * + * + * 接口描述 + * 支持对全国范围不同版式汽车票的发票代码、发票号码、到达站、出发站、日期、时间、金额、身份证号、姓名、开票日期10个字段进行结构化识别。 + * + */ + +@Slf4j +@RestController +@RequestMapping("/bus/ticket") +@NotIntercept +public class BusTicketController extends BaseController { + + + @Autowired + private BBusTicketHandle bBusTicketHandle; + + + @RequestMapping("/recognize") + @CacheResult + public R recognize(BBusTicketRequest req) { + + BusTicketResp resp = new BusTicketResp(); + ApiR bR = bBusTicketHandle.handle(req); + + if (bR.isSuccess()) { + BBusTicketResp bBusTicketResp = bR.getData(); + BBusTicketResp.WordsResultDTO wordsResultDTO = bBusTicketResp.getWordsResult(); + + resp.setDestinationStation(wordsResultDTO.getDestinationStation()); // 到达站 + resp.setIdNum(wordsResultDTO.getIdNum());// 身份证号 + resp.setTime(wordsResultDTO.getTime()); //时间 + resp.setInvoiceCode(wordsResultDTO.getInvoiceCode()); //发票代码 + resp.setInvoiceNum(wordsResultDTO.getInvoiceNum()); // 发票号码 + resp.setStartingStation(wordsResultDTO.getStartingStation()); //出发站 + resp.setDate(wordsResultDTO.getDate()); //日期 + resp.setName(wordsResultDTO.getName()); //姓名 + resp.setFare(wordsResultDTO.getFare()); //金额 + + return R.ok().setData(resp); + } + return R.error(); + } + +} + + + + + + + + + + + + + diff --git a/api-web/api-interface/src/main/java/com/heyu/api/controller/financial/FerryTicketController.java b/api-web/api-interface/src/main/java/com/heyu/api/controller/financial/FerryTicketController.java new file mode 100644 index 0000000..9deca4c --- /dev/null +++ b/api-web/api-interface/src/main/java/com/heyu/api/controller/financial/FerryTicketController.java @@ -0,0 +1,67 @@ +package com.heyu.api.controller.financial; + + +import com.heyu.api.baidu.handle.financial.BFerryTicketHandle; +import com.heyu.api.baidu.request.financial.BFerryTicketRequest; +import com.heyu.api.baidu.response.financial.BFerryTicketResp; +import com.heyu.api.controller.BaseController; +import com.heyu.api.data.annotation.CacheResult; +import com.heyu.api.data.annotation.NotIntercept; +import com.heyu.api.data.utils.ApiR; +import com.heyu.api.data.utils.R; +import com.heyu.api.resp.financial.FerryTicketResp; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * https://console.bce.baidu.com/support/?_=1740575657628×tamp=1740579219270#/api?product=AI&project=%E6%96%87%E5%AD%97%E8%AF%86%E5%88%AB&parent=%E8%B4%A2%E5%8A%A1%E7%A5%A8%E6%8D%AEOCR&api=rest%2F2.0%2Focr%2Fv1%2Fferry_ticket&method=post + *

+ *

+ * 船票识别 + * + * 接口描述 + * 对全国范围内不同版式的客运船票、货运船票进行结构化识别,包括发票代码、发票号码、发票日期、发票类型、总金额、出发地点、到达地点等7个字段。 + */ +@Slf4j +@RestController +@RequestMapping("/ferry/ticket") +@NotIntercept +public class FerryTicketController extends BaseController { + + @Autowired + private BFerryTicketHandle bFerryTicketHandle; + + @RequestMapping("/recognize") + @CacheResult + public R recognize(BFerryTicketRequest req) { + + FerryTicketResp resp = new FerryTicketResp(); + + + ApiR bR = bFerryTicketHandle.handle(req); + if (bR.isSuccess()) { + BFerryTicketResp bFerryTicketResp = bR.getData(); + + + BFerryTicketResp.WordsResultDTO wordsResultDTO = bFerryTicketResp.getWordsResult(); + + resp.setInvoiceType(wordsResultDTO.getInvoiceType()); //发票类型 + resp.setInvoiceCode(wordsResultDTO.getInvoiceCode()); // 发票代码 + resp.setInvoiceNum(wordsResultDTO.getInvoiceNum()); //发票号码 + resp.setStartingStation(wordsResultDTO.getStartingStation()); // 出发地点 + resp.setDestinationStation(wordsResultDTO.getDestinationStation()); //到达地点 + resp.setInvoiceDate(wordsResultDTO.getInvoiceDate()); // 开票日期 + resp.setFare(wordsResultDTO.getFare()); // 总金额 + + + return R.ok().setData(resp); + } + + + return R.error(); + } + + +} diff --git a/api-web/api-interface/src/main/java/com/heyu/api/controller/financial/InvoiceController.java b/api-web/api-interface/src/main/java/com/heyu/api/controller/financial/InvoiceController.java new file mode 100644 index 0000000..ab712ae --- /dev/null +++ b/api-web/api-interface/src/main/java/com/heyu/api/controller/financial/InvoiceController.java @@ -0,0 +1,106 @@ +package com.heyu.api.controller.financial; + + +import com.heyu.api.baidu.handle.financial.BInvoiceHandle; +import com.heyu.api.baidu.request.financial.BInvoiceRequest; +import com.heyu.api.baidu.response.financial.BInvoiceResp; +import com.heyu.api.data.annotation.CacheResult; +import com.heyu.api.data.annotation.NotIntercept; +import com.heyu.api.data.utils.ApiR; +import com.heyu.api.data.utils.R; +import com.heyu.api.resp.financial.InvoiceResp; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.ArrayList; +import java.util.List; + +/*** + * https://console.bce.baidu.com/support/?_=1740575657628×tamp=1742742293465#/api?product=AI&project=%E6%96%87%E5%AD%97%E8%AF%86%E5%88%AB&parent=%E8%B4%A2%E5%8A%A1%E7%A5%A8%E6%8D%AEOCR&api=rest%2F2.0%2Focr%2Fv1%2Finvoice&method=post + * + * 通用机打发票识别 + * + * + * + * 接口描述 + * 支持对国家/地方税务局发行的横/竖版通用机打发票的23个关键字段进行结构化识别,包括发票类型、发票号码、发票代码、开票日期、合计金额大写、合计金额小写、商品名称、商品单位、商品单价、商品数量、商品金额、机打代码、 + * 机打号码、校验码、销售方名称、销售方纳税人识别号、购买方名称、购买方纳税人识别号、合计税额等。 + * + * + * 在线调试 + * 您可以在 示例代码中心 中调试该接口,可进行签名验证、查看在线调用的请求内容和返回结果、示例代码的自动生成。 + */ +@Slf4j +@RestController +@RequestMapping("/invoice") +@NotIntercept +public class InvoiceController { + + + @Autowired + private BInvoiceHandle bInvoiceHandle; + + + @RequestMapping("/recognize") + @CacheResult + public R recognize(BInvoiceRequest req) { + + InvoiceResp resp = new InvoiceResp(); + + + ApiR bR = bInvoiceHandle.handle(req); + if (bR.isSuccess()) { + BInvoiceResp bInvoiceResp = bR.getData(); + BInvoiceResp.WordsResultDTO wordsResultDTO = bInvoiceResp.getWordsResult(); + + resp.setCity(wordsResultDTO.getCity()); //市 + resp.setInvoiceNum(wordsResultDTO.getInvoiceNum()); // 发票号码 + resp.setSellerName(wordsResultDTO.getSellerName()); // 销售方名称 + resp.setIndustrySort(wordsResultDTO.getIndustrySort()); // 行业分类 + resp.setProvince(wordsResultDTO.getProvince()); // 省 + + List commodityAmountList = new ArrayList<>(); + + for (BInvoiceResp.WordsResultDTO.CommodityAmountDTO commodityAmountDTO : wordsResultDTO.getCommodityAmount()) { + InvoiceResp.CommodityDTO commodityDTO = new InvoiceResp.CommodityDTO(); + commodityDTO.setWord(commodityAmountDTO.getWord()); + commodityDTO.setRow(commodityAmountDTO.getRow()); + commodityAmountList.add(commodityDTO); + } + + resp.setCommodityAmount(commodityAmountList); // 商品金额 + + resp.setInvoiceDate(wordsResultDTO.getInvoiceDate()); //开票日期 + resp.setPurchaserName(wordsResultDTO.getPurchaserName()); //购买方名称 + resp.setCommodityNum(wordsResultDTO.getCommodityNum()); //商品数量 + resp.setInvoiceCode(wordsResultDTO.getCheckCode()); // 发票代码 + resp.setCommodityUnit(wordsResultDTO.getCommodityUnit()); //商品单位 + resp.setSheetNum(wordsResultDTO.getSheetNum()); //联次 + resp.setPurchaserRegisterNum(wordsResultDTO.getPurchaserRegisterNum()); //购买方纳税人识别号 + resp.setTime(wordsResultDTO.getTime()); //时间 + resp.setCommodityPrice(wordsResultDTO.getCommodityPrice()); // 商品单价 + resp.setAmountInFiguers(wordsResultDTO.getAmountInFiguers()); //合计金额小写 + resp.setAmountInWords(wordsResultDTO.getAmountInWords()); //合计金额大写 + resp.setCheckCode(wordsResultDTO.getCheckCode()); //校验码 + resp.setTotalTax(wordsResultDTO.getTotalTax()); //合计税额 + resp.setInvoiceType(wordsResultDTO.getInvoiceType()); // 发票类型 + resp.setSellerRegisterNum(wordsResultDTO.getSellerRegisterNum()); // 销售方纳税人识别号 + + List commodityNameDTOS = new ArrayList<>(); + for (BInvoiceResp.WordsResultDTO.CommodityNameDTO commodityNameDTO : wordsResultDTO.getCommodityName()) { + InvoiceResp.CommodityDTO commodityDTO = new InvoiceResp.CommodityDTO(); + + commodityDTO.setRow(commodityNameDTO.getRow()); + commodityDTO.setWord(commodityNameDTO.getWord()); + + commodityNameDTOS.add(commodityDTO); + } + + resp.setCommodityName(commodityNameDTOS); // 商品名称 + } + + return R.error(); + } +} diff --git a/api-web/api-interface/src/main/java/com/heyu/api/controller/financial/MultipleInvoiceController.java b/api-web/api-interface/src/main/java/com/heyu/api/controller/financial/MultipleInvoiceController.java new file mode 100644 index 0000000..6aa897b --- /dev/null +++ b/api-web/api-interface/src/main/java/com/heyu/api/controller/financial/MultipleInvoiceController.java @@ -0,0 +1,56 @@ +package com.heyu.api.controller.financial; + + +import com.heyu.api.baidu.handle.financial.BMultipleInvoiceHandle; +import com.heyu.api.baidu.request.financial.BMultipleInvoiceRequest; +import com.heyu.api.controller.BaseController; +import com.heyu.api.data.annotation.CacheResult; +import com.heyu.api.data.annotation.NotIntercept; +import com.heyu.api.data.utils.ApiR; +import com.heyu.api.data.utils.R; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.Map; + + +/*** + * https://console.bce.baidu.com/support/?_=1740494347073×tamp=1742743299843#/api?product=AI&project=%E6%96%87%E5%AD%97%E8%AF%86%E5%88%AB&parent=%E8%B4%A2%E5%8A%A1%E7%A5%A8%E6%8D%AEOCR&api=rest%2F2.0%2Focr%2Fv1%2Fmultiple_invoice&method=post + * + *智能财务票据识别 + * + * + * + * + */ +@Slf4j +@RestController +@RequestMapping("/multiple/invoice") +@NotIntercept +public class MultipleInvoiceController extends BaseController { + + + @Autowired + private BMultipleInvoiceHandle bMultipleInvoiceHandle; + + + @RequestMapping("/recognize") + @CacheResult + public R recognize(BMultipleInvoiceRequest req) { + + + + ApiR bR = bMultipleInvoiceHandle.handle(req); + if(bR.isSuccess()){ + Map data = bR.getData(); + + + } + + return R.error(); + } + + +} diff --git a/api-web/api-interface/src/main/java/com/heyu/api/resp/financial/BankReceiptNewResp.java b/api-web/api-interface/src/main/java/com/heyu/api/resp/financial/BankReceiptNewResp.java new file mode 100644 index 0000000..553f164 --- /dev/null +++ b/api-web/api-interface/src/main/java/com/heyu/api/resp/financial/BankReceiptNewResp.java @@ -0,0 +1,26 @@ +package com.heyu.api.resp.financial; + +import com.heyu.api.data.dto.BaseResp; +import lombok.Data; + +@Data +public class BankReceiptNewResp extends BaseResp { + + + private String title ; // 标题 + private String payPersonName; // 付款人户名 + private String payBankName; //付款人开户银行 + private String payAcount;//付款人账号 + private String payeeAcount; //付款人账号 + private String payeeName; //收款人户名 + private String payeeBankName;//收款人开户银行 + private String payeeBankAccount; // 收款人账号 + private String capsAmount; // 大写金额 + private String lowerCaseAmount; // 小写金额 + private String serialNumber ; // 流水号 + private String replyNumber ;// 回单编号; + private String tradeDate; // 交易日期 + private String summary;// 摘要 + private String use;//用途 + +} diff --git a/api-web/api-interface/src/main/java/com/heyu/api/resp/financial/BusTicketResp.java b/api-web/api-interface/src/main/java/com/heyu/api/resp/financial/BusTicketResp.java new file mode 100644 index 0000000..c26e4ce --- /dev/null +++ b/api-web/api-interface/src/main/java/com/heyu/api/resp/financial/BusTicketResp.java @@ -0,0 +1,21 @@ +package com.heyu.api.resp.financial; + +import com.heyu.api.data.dto.BaseResp; +import lombok.Data; + + +@Data +public class BusTicketResp extends BaseResp { + + + + private String destinationStation; // 到达站 + private String idNum;// 身份证号 + private String time; //时间 + private String invoiceCode; //发票代码 + private String invoiceNum; // 发票号码 + private String startingStation; //出发站 + private String date; //日期 + private String name; //姓名 + private String fare; //金额 +} diff --git a/api-web/api-interface/src/main/java/com/heyu/api/resp/financial/FerryTicketResp.java b/api-web/api-interface/src/main/java/com/heyu/api/resp/financial/FerryTicketResp.java new file mode 100644 index 0000000..bae78da --- /dev/null +++ b/api-web/api-interface/src/main/java/com/heyu/api/resp/financial/FerryTicketResp.java @@ -0,0 +1,19 @@ +package com.heyu.api.resp.financial; + + +import com.heyu.api.data.dto.BaseResp; +import lombok.Data; + +@Data +public class FerryTicketResp extends BaseResp { + + + private String invoiceType; //发票类型 + private String invoiceCode; // 发票代码 + private String invoiceNum; //发票号码 + private String startingStation; // 出发地点 + private String destinationStation; //到达地点 + private String invoiceDate; // 开票日期 + private String fare; // 总金额 + +} diff --git a/api-web/api-interface/src/main/java/com/heyu/api/resp/financial/InvoiceResp.java b/api-web/api-interface/src/main/java/com/heyu/api/resp/financial/InvoiceResp.java new file mode 100644 index 0000000..54ba6ea --- /dev/null +++ b/api-web/api-interface/src/main/java/com/heyu/api/resp/financial/InvoiceResp.java @@ -0,0 +1,42 @@ +package com.heyu.api.resp.financial; + +import com.heyu.api.data.dto.BaseResp; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +public class InvoiceResp extends BaseResp { + + + private String city; //市 + private String invoiceNum; // 发票号码 + private String sellerName; // 销售方名称 + private String industrySort; // 行业分类 + private String province; // 省 + private List commodityAmount; // 商品金额 + private String invoiceDate; //开票日期 + private String purchaserName; //购买方名称 + private List commodityNum; //商品数量 + private String invoiceCode; // 发票代码 + private List commodityUnit; //商品单位 + private String sheetNum; //联次 + private String purchaserRegisterNum; //购买方纳税人识别号 + private String time; //时间 + private List commodityPrice; // 商品单价 + private String amountInFiguers; //合计金额小写 + private String amountInWords; //合计金额大写 + private String checkCode; //校验码 + private String totalTax; //合计税额 + private String invoiceType; // 发票类型 + private String sellerRegisterNum; // 销售方纳税人识别号 + private List commodityName; // 商品名称 + + @NoArgsConstructor + @Data + public static class CommodityDTO { + private String word; //内容 + private String row; //行号 + } +}