From 173cf9917ba726e92060a814b67c27b72fa9d589 Mon Sep 17 00:00:00 2001 From: dongxiaoke <1910333201@qq.com> Date: Wed, 17 May 2023 09:43:07 +0800 Subject: [PATCH] =?UTF-8?q?=E9=94=80=E9=A1=B9=E5=90=88=E5=B9=B6=E6=B5=8B?= =?UTF-8?q?=E8=AF=95=EF=BC=9A=E8=8E=B7=E5=8F=96=E5=8F=91=E7=A5=A8=E6=89=93?= =?UTF-8?q?=E5=8D=B0XML?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../http/invoice/v1/InvoiceController.java | 4 +- .../dto/api/InvoiceAllPrintXMLTWODTO.java | 32 +++++++++++ .../dto/api/jcsk/PrintXMLJsonDataTWODTO.java | 33 +++++++++++ .../domain/dto/api/jcsk/PrintXMLTWODTO.java | 33 +++++++++++ .../invoice/service/IInvoiceApiService.java | 2 +- .../AisinoConsoleInvoiceApiServiceImpl.java | 2 +- .../api/ElephantInvoiceApiServiceImpl.java | 2 +- .../impl/api/JcskInvoiceApiServiceImpl.java | 56 ++++++++++++++++--- .../jianshui/invoice/utils/IncomeTest.java | 1 + 9 files changed, 152 insertions(+), 13 deletions(-) create mode 100644 jianshui-invoice/src/main/java/com/jianshui/invoice/domain/dto/api/InvoiceAllPrintXMLTWODTO.java create mode 100644 jianshui-invoice/src/main/java/com/jianshui/invoice/domain/dto/api/jcsk/PrintXMLJsonDataTWODTO.java create mode 100644 jianshui-invoice/src/main/java/com/jianshui/invoice/domain/dto/api/jcsk/PrintXMLTWODTO.java diff --git a/jianshui-admin/src/main/java/com/jianshui/api/controller/http/invoice/v1/InvoiceController.java b/jianshui-admin/src/main/java/com/jianshui/api/controller/http/invoice/v1/InvoiceController.java index 391ae86..da72cb7 100644 --- a/jianshui-admin/src/main/java/com/jianshui/api/controller/http/invoice/v1/InvoiceController.java +++ b/jianshui-admin/src/main/java/com/jianshui/api/controller/http/invoice/v1/InvoiceController.java @@ -24,6 +24,7 @@ import com.jianshui.system.service.IServiceManageService; import io.swagger.annotations.*; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Bean; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; @@ -1083,7 +1084,8 @@ public class InvoiceController { IInvoiceApiService invoiceService = invoiceServiceFactory.getService(serviceKey); - HXResponse result = invoiceService.getPrintXML(decryptResult, companyservice); + InvoiceAllPrintXMLTWODTO invoiceAllPrintXMLTWODTO = BeanUtil.copyProperties(decryptResult,InvoiceAllPrintXMLTWODTO.class); + HXResponse result = invoiceService.getPrintXML(invoiceAllPrintXMLTWODTO, companyservice); String responseAdapterKey = serviceManageService.getResponseAdapterKey("invoice", companyservice.getCompanyid()); IInvoiceResponseService invoiceResponseService = invoiceResponseFactory.getService(responseAdapterKey); diff --git a/jianshui-invoice/src/main/java/com/jianshui/invoice/domain/dto/api/InvoiceAllPrintXMLTWODTO.java b/jianshui-invoice/src/main/java/com/jianshui/invoice/domain/dto/api/InvoiceAllPrintXMLTWODTO.java new file mode 100644 index 0000000..bfc91a5 --- /dev/null +++ b/jianshui-invoice/src/main/java/com/jianshui/invoice/domain/dto/api/InvoiceAllPrintXMLTWODTO.java @@ -0,0 +1,32 @@ +package com.jianshui.invoice.domain.dto.api; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; + +/** + * 获取发票打印xml + */ +@Data +public class InvoiceAllPrintXMLTWODTO { + + @NotEmpty + @ApiModelProperty(value = "打印类型") + private String dylx; + + @NotEmpty + @ApiModelProperty(value = "发票号码") + private String fphm; + + @ApiModelProperty(value = "红字确认单编号") + @NotEmpty + private String hzqrdbh; + + @NotEmpty + @ApiModelProperty(value = "纳税人识别号") + private String nsrsbh; + + +} diff --git a/jianshui-invoice/src/main/java/com/jianshui/invoice/domain/dto/api/jcsk/PrintXMLJsonDataTWODTO.java b/jianshui-invoice/src/main/java/com/jianshui/invoice/domain/dto/api/jcsk/PrintXMLJsonDataTWODTO.java new file mode 100644 index 0000000..48b98da --- /dev/null +++ b/jianshui-invoice/src/main/java/com/jianshui/invoice/domain/dto/api/jcsk/PrintXMLJsonDataTWODTO.java @@ -0,0 +1,33 @@ +package com.jianshui.invoice.domain.dto.api.jcsk; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotEmpty; + +/** + * 获取发票打印xml + */ +@Data +public class PrintXMLJsonDataTWODTO { + + @NotEmpty + @ApiModelProperty(value = "打印类型") + private String dylx; + + @NotEmpty + @ApiModelProperty(value = "发票号码") + private String fphm; + + @ApiModelProperty(value = "红字确认单编号") + @NotEmpty + private String hzqrdbh; + + @NotEmpty + @ApiModelProperty(value = "纳税人识别号") + private String nsrsbh; + + + + +} diff --git a/jianshui-invoice/src/main/java/com/jianshui/invoice/domain/dto/api/jcsk/PrintXMLTWODTO.java b/jianshui-invoice/src/main/java/com/jianshui/invoice/domain/dto/api/jcsk/PrintXMLTWODTO.java new file mode 100644 index 0000000..a2cc46f --- /dev/null +++ b/jianshui-invoice/src/main/java/com/jianshui/invoice/domain/dto/api/jcsk/PrintXMLTWODTO.java @@ -0,0 +1,33 @@ +package com.jianshui.invoice.domain.dto.api.jcsk; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotEmpty; + +/** + * 获取发票打印xml + */ +@Data +public class PrintXMLTWODTO { + + @NotEmpty + @ApiModelProperty(value = "true") + private String async; + + @NotEmpty + @ApiModelProperty(value = "办税人身份证号") + private String bsrysfzjhm; + + @ApiModelProperty(value = "*地区编码(参考码表)") + @NotEmpty + private String dqbm; + + @NotEmpty + @ApiModelProperty(value = "纳税人识别号") + private String nsrsbh; + + private PrintXMLJsonDataTWODTO jsonData; + + +} diff --git a/jianshui-invoice/src/main/java/com/jianshui/invoice/service/IInvoiceApiService.java b/jianshui-invoice/src/main/java/com/jianshui/invoice/service/IInvoiceApiService.java index 6b50690..5134e0d 100644 --- a/jianshui-invoice/src/main/java/com/jianshui/invoice/service/IInvoiceApiService.java +++ b/jianshui-invoice/src/main/java/com/jianshui/invoice/service/IInvoiceApiService.java @@ -226,7 +226,7 @@ public interface IInvoiceApiService { * @param companyservice * @return */ - HXResponse getPrintXML(JSONObject decryptResult, Companyservice companyservice); + HXResponse getPrintXML(InvoiceAllPrintXMLTWODTO invoiceAllPrintXMLTWODTO, Companyservice companyservice); /** *快速红冲 diff --git a/jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/AisinoConsoleInvoiceApiServiceImpl.java b/jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/AisinoConsoleInvoiceApiServiceImpl.java index 3959656..2984c16 100644 --- a/jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/AisinoConsoleInvoiceApiServiceImpl.java +++ b/jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/AisinoConsoleInvoiceApiServiceImpl.java @@ -973,7 +973,7 @@ public class AisinoConsoleInvoiceApiServiceImpl implements IInvoiceApiService { } @Override - public HXResponse getPrintXML(JSONObject decryptResult, Companyservice companyservice) { + public HXResponse getPrintXML(InvoiceAllPrintXMLTWODTO invoiceAllPrintXMLTWODTO, Companyservice companyservice) { return null; } diff --git a/jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/ElephantInvoiceApiServiceImpl.java b/jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/ElephantInvoiceApiServiceImpl.java index 9e94eea..e5f46d5 100644 --- a/jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/ElephantInvoiceApiServiceImpl.java +++ b/jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/ElephantInvoiceApiServiceImpl.java @@ -1760,7 +1760,7 @@ public class ElephantInvoiceApiServiceImpl implements IInvoiceApiService { } @Override - public HXResponse getPrintXML(JSONObject decryptResult, Companyservice companyservice) { + public HXResponse getPrintXML(InvoiceAllPrintXMLTWODTO invoiceAllPrintXMLTWODTO, Companyservice companyservice) { return null; } diff --git a/jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/JcskInvoiceApiServiceImpl.java b/jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/JcskInvoiceApiServiceImpl.java index 3401ea2..e4a7a29 100644 --- a/jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/JcskInvoiceApiServiceImpl.java +++ b/jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/JcskInvoiceApiServiceImpl.java @@ -944,24 +944,62 @@ public class JcskInvoiceApiServiceImpl implements IInvoiceApiService { } @Override - public HXResponse getPrintXML(JSONObject decryptResult, Companyservice companyservice) { + public HXResponse getPrintXML(InvoiceAllPrintXMLTWODTO invoiceAllPrintXMLTWODTO, Companyservice companyservice) { + // 查询用户信息组装 + InvoiceAllYhdj yhdj = getUserInfo(companyservice); + if (BeanUtil.isEmpty(yhdj)) { + return new HXResponse("未查询到登记信息!"); + } + + PrintXMLTWODTO printXMLTWODTO = new PrintXMLTWODTO(); + PrintXMLJsonDataTWODTO jsonDataTWODTO = BeanUtil.copyProperties(invoiceAllPrintXMLTWODTO,PrintXMLJsonDataTWODTO.class); + jsonDataTWODTO.setNsrsbh(yhdj.getNsrsbh()); + printXMLTWODTO.setBsrysfzjhm(yhdj.getBsrysfzjhm()); + printXMLTWODTO.setNsrsbh(yhdj.getNsrsbh()); + printXMLTWODTO.setAsync("true"); + printXMLTWODTO.setDqbm(yhdj.getDqbm()); + printXMLTWODTO.setJsonData(jsonDataTWODTO); + + ValidateUtils.validate(printXMLTWODTO); + ValidateUtils.validate(jsonDataTWODTO); cn.hutool.json.JSONObject result = null; try { - result = ApiHttp.request(WebServiceConstant.GET_PRINT_XML, WebServiceConstant.URL, decryptResult, companyservice); - // TODO: 2022/12/11 返回处理 VO整理,数据存储。 + result = ApiHttp.request(WebServiceConstant.GET_PRINT_XML, WebServiceConstant.URL, printXMLTWODTO, companyservice); + + String code = result.get("code") != null ? result.get("code").toString() : ""; + String msg = result.get("msg") != null ? result.get("msg").toString() : ""; + String data = result.get("data") != null ? result.get("data").toString() : ""; + + if ("0000".equals(code) && StrUtil.isNotEmpty(data)) { + cn.hutool.json.JSONObject json = JSONUtil.parseObj(data); + String requestId = json.getOrDefault("requestId", "").toString(); + if (StrUtil.isEmpty(requestId)) { + return new HXResponse(msg); + } + InvoiceAllApiLog allApiLog = new InvoiceAllApiLog(); + allApiLog.setUrl(WebServiceConstant.GET_PRINT_XML); + allApiLog.setSendMsg(printXMLTWODTO.toString()); + allApiLog.setResultMsg(JSONUtil.toJsonStr(result)); + allApiLog.setCompany(companyservice.getSellertax()); + allApiLog.setIdentityId(companyservice.getIdentity()); + allApiLog.setRequestId(requestId); + allApiLog.setCreateTime(new Date()); + allApiLogMapper.insertInvoiceAllApiLog(allApiLog); + + HXResponse response = new HXResponse("0000", "同步成功", JSONUtil.parse(data)); + return response; + } else { + return new HXResponse(msg); + } } catch (Exception e) { e.printStackTrace(); - log.error("【金四服务类】【金财数科】【获取二维码】API请求异常,外部报文返回code非0000。错误信息:{}", e.getMessage()); - return new HXResponse("获取二维码错误!"); + log.error("【金四服务类】【金财数科】【获取发票打印XML】API请求异常,外部报文返回code非0000。错误信息:{}", e.getMessage()); + return new HXResponse("获取发票打印XML错误!"); } - // TODO 处理日志 - - HXResponse response = new HXResponse("0000", "同步成功", result); - return response; } @Override diff --git a/jianshui-invoice/src/main/java/com/jianshui/invoice/utils/IncomeTest.java b/jianshui-invoice/src/main/java/com/jianshui/invoice/utils/IncomeTest.java index 6d4619b..dada513 100644 --- a/jianshui-invoice/src/main/java/com/jianshui/invoice/utils/IncomeTest.java +++ b/jianshui-invoice/src/main/java/com/jianshui/invoice/utils/IncomeTest.java @@ -181,6 +181,7 @@ public class IncomeTest { " \"ZTBZ\": \"1\",\n" + // 当给 1 时继续请求,0 时结束请求 " \"taxNo\": \"9111122223333CKFPT\"\n" + // 测试税号 "}"; + m = AisinoInvoiceDecryptUtil.encrypt(order, key); System.out.println("json : \n" + order); System.out.println(m);