From a9751770490ad10bb912110ae30a5cbbe46f28ab Mon Sep 17 00:00:00 2001 From: dongxiaoke <1910333201@qq.com> Date: Wed, 17 May 2023 11:48:50 +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=E7=BA=A2=E5=AD=97=E4=BF=A1=E6=81=AF=E8=A1=A8?= =?UTF-8?q?=E5=AE=A1=E6=A0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../http/invoice/v1/InvoiceController.java | 6 +- .../domain/dto/api/InvoiceAllShhzTWODTO.java | 35 ----- .../StaticTWODTO.java} | 9 +- .../invoice/service/IInvoiceApiService.java | 4 +- .../AisinoConsoleInvoiceApiServiceImpl.java | 4 +- .../api/ElephantInvoiceApiServiceImpl.java | 4 +- .../impl/api/JcskInvoiceApiServiceImpl.java | 122 ++++++++++++------ 7 files changed, 93 insertions(+), 91 deletions(-) delete mode 100644 jianshui-invoice/src/main/java/com/jianshui/invoice/domain/dto/api/InvoiceAllShhzTWODTO.java rename jianshui-invoice/src/main/java/com/jianshui/invoice/domain/dto/api/{InvoiceAllKshcTWODTO.java => jcsk/StaticTWODTO.java} (78%) 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 da72cb7..58a78fc 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 @@ -1120,9 +1120,9 @@ public class InvoiceController { String serviceKey = serviceManageService.getCompanyServiceSupplier("invoice", companyservice.getCompanyid()); serviceManageService.companyConsume("invoice", companyservice.getCompanyid()); - InvoiceAllKshcTWODTO invoiceAllKshcDTO= decryptResult.toJavaObject(InvoiceAllKshcTWODTO.class); + InvoiceAllKshcJsonDataTWODTO invoiceAllKshcJsonDataTWODTO= decryptResult.toJavaObject(InvoiceAllKshcJsonDataTWODTO.class); IInvoiceApiService invoiceService = invoiceServiceFactory.getService(serviceKey); - HXResponse result = invoiceService.issueFastRedInvoice(invoiceAllKshcDTO, companyservice); + HXResponse result = invoiceService.issueFastRedInvoice(invoiceAllKshcJsonDataTWODTO, companyservice); String responseAdapterKey = serviceManageService.getResponseAdapterKey("invoice", companyservice.getCompanyid()); IInvoiceResponseService invoiceResponseService = invoiceResponseFactory.getService(responseAdapterKey); @@ -1194,7 +1194,7 @@ public class InvoiceController { String serviceKey = serviceManageService.getCompanyServiceSupplier("invoice", companyservice.getCompanyid()); serviceManageService.companyConsume("invoice", companyservice.getCompanyid()); - InvoiceAllShhzTWODTO invoiceAllShhzDTO= decryptResult.toJavaObject(InvoiceAllShhzTWODTO.class); + InvoiceAllShhzJsonDataTWODTO invoiceAllShhzDTO= decryptResult.toJavaObject(InvoiceAllShhzJsonDataTWODTO.class); IInvoiceApiService invoiceService = invoiceServiceFactory.getService(serviceKey); HXResponse result = invoiceService.auditRedInfo(invoiceAllShhzDTO, companyservice); diff --git a/jianshui-invoice/src/main/java/com/jianshui/invoice/domain/dto/api/InvoiceAllShhzTWODTO.java b/jianshui-invoice/src/main/java/com/jianshui/invoice/domain/dto/api/InvoiceAllShhzTWODTO.java deleted file mode 100644 index 4329c68..0000000 --- a/jianshui-invoice/src/main/java/com/jianshui/invoice/domain/dto/api/InvoiceAllShhzTWODTO.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.jianshui.invoice.domain.dto.api; - -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; - -import javax.validation.constraints.NotEmpty; - -/** - * 审核红字信息表 - * @author dxk - * @date 2022年12月09日 17:16 - */ -@Data -public class InvoiceAllShhzTWODTO { - - @NotEmpty - @ApiModelProperty(value = "true") - private String async; - - @NotEmpty - @ApiModelProperty(value = "办税人身份证号") - private String bsrysfzjhm; - - @NotEmpty - @ApiModelProperty(value = "*地区编码(参考码表)") - private String dqbm; - - @NotEmpty - @ApiModelProperty(value = "*纳税人识别号") - private String nsrsbh; - - private InvoiceAllShhzJsonDataTWODTO jsonData; - - -} diff --git a/jianshui-invoice/src/main/java/com/jianshui/invoice/domain/dto/api/InvoiceAllKshcTWODTO.java b/jianshui-invoice/src/main/java/com/jianshui/invoice/domain/dto/api/jcsk/StaticTWODTO.java similarity index 78% rename from jianshui-invoice/src/main/java/com/jianshui/invoice/domain/dto/api/InvoiceAllKshcTWODTO.java rename to jianshui-invoice/src/main/java/com/jianshui/invoice/domain/dto/api/jcsk/StaticTWODTO.java index 30f387e..82706a1 100644 --- a/jianshui-invoice/src/main/java/com/jianshui/invoice/domain/dto/api/InvoiceAllKshcTWODTO.java +++ b/jianshui-invoice/src/main/java/com/jianshui/invoice/domain/dto/api/jcsk/StaticTWODTO.java @@ -1,4 +1,4 @@ -package com.jianshui.invoice.domain.dto.api; +package com.jianshui.invoice.domain.dto.api.jcsk; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -7,10 +7,10 @@ import javax.validation.constraints.NotEmpty; import javax.validation.constraints.NotNull; /** - * 快速红冲 + * 蓝字发票统计 */ @Data -public class InvoiceAllKshcTWODTO { +public class StaticTWODTO { @NotEmpty @@ -29,9 +29,6 @@ public class InvoiceAllKshcTWODTO { @ApiModelProperty(value = "纳税人识别号") private String nsrsbh; - @NotEmpty - private InvoiceAllKshcJsonDataTWODTO 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 5134e0d..85e2b6a 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 @@ -234,7 +234,7 @@ public interface IInvoiceApiService { * @param companyservice * @return */ - HXResponse issueFastRedInvoice(InvoiceAllKshcTWODTO invoiceAllKshcTWODTO, Companyservice companyservice); + HXResponse issueFastRedInvoice(InvoiceAllKshcJsonDataTWODTO invoiceAllKshcTWODTO, Companyservice companyservice); /** *蓝字发票统计 @@ -250,7 +250,7 @@ public interface IInvoiceApiService { * @param companyservice * @return */ - HXResponse auditRedInfo(InvoiceAllShhzTWODTO invoiceAllShhzTWODTO, Companyservice companyservice); + HXResponse auditRedInfo(InvoiceAllShhzJsonDataTWODTO invoiceAllShhzTWODTO, 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 2984c16..29a8a66 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 @@ -978,7 +978,7 @@ public class AisinoConsoleInvoiceApiServiceImpl implements IInvoiceApiService { } @Override - public HXResponse issueFastRedInvoice(InvoiceAllKshcTWODTO invoiceAllKshcDTO, Companyservice companyservice) { + public HXResponse issueFastRedInvoice(InvoiceAllKshcJsonDataTWODTO invoiceAllKshcDTO, Companyservice companyservice) { return null; } @@ -988,7 +988,7 @@ public class AisinoConsoleInvoiceApiServiceImpl implements IInvoiceApiService { } @Override - public HXResponse auditRedInfo(InvoiceAllShhzTWODTO invoiceAllShhzTWODTO, Companyservice companyservice) { + public HXResponse auditRedInfo(InvoiceAllShhzJsonDataTWODTO invoiceAllShhzTWODTO, 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 e5f46d5..fec4729 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 @@ -1765,7 +1765,7 @@ public class ElephantInvoiceApiServiceImpl implements IInvoiceApiService { } @Override - public HXResponse issueFastRedInvoice(InvoiceAllKshcTWODTO invoiceAllKshcDTO, Companyservice companyservice) { + public HXResponse issueFastRedInvoice(InvoiceAllKshcJsonDataTWODTO invoiceAllKshcDTO, Companyservice companyservice) { return null; } @@ -1775,7 +1775,7 @@ public class ElephantInvoiceApiServiceImpl implements IInvoiceApiService { } @Override - public HXResponse auditRedInfo(InvoiceAllShhzTWODTO invoiceAllShhzTWODTO, Companyservice companyservice) { + public HXResponse auditRedInfo(InvoiceAllShhzJsonDataTWODTO invoiceAllShhzTWODTO, 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 e4a7a29..bc15741 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 @@ -124,8 +124,7 @@ public class JcskInvoiceApiServiceImpl implements IInvoiceApiService { ValidateUtils.validate(invoiceAllAddTwoDTO); // 忽略明细属性 - InvoiceAllAddInfoTwoDTO invoiceAllAddInfoTwoDTO = BeanUtil.copyProperties(billInfo, InvoiceAllAddInfoTwoDTO.class - , "fjxxList", "mxList", "tdywxx", "ext"); + InvoiceAllAddInfoTwoDTO invoiceAllAddInfoTwoDTO = BeanUtil.copyProperties(billInfo, InvoiceAllAddInfoTwoDTO.class, "fjxxList", "mxList", "tdywxx", "ext"); // 发票类型处理 ValidateUtils.validate(invoiceAllAddInfoTwoDTO); @@ -207,14 +206,12 @@ public class JcskInvoiceApiServiceImpl implements IInvoiceApiService { allApiLog.setIdentityId(companyservice.getIdentity()); allApiLog.setRequestId(requestId); allApiLog.setCreateTime(new Date()); - AsyncManager.me().execute( - new TimerTask() { - @Override - public void run() { - allApiLogMapper.insertInvoiceAllApiLog(allApiLog); - } - } - ); + AsyncManager.me().execute(new TimerTask() { + @Override + public void run() { + allApiLogMapper.insertInvoiceAllApiLog(allApiLog); + } + }); HXResponse response = new HXResponse("0000", "同步成功"); response.put("fpqqlsh", requestId); @@ -953,7 +950,7 @@ public class JcskInvoiceApiServiceImpl implements IInvoiceApiService { } PrintXMLTWODTO printXMLTWODTO = new PrintXMLTWODTO(); - PrintXMLJsonDataTWODTO jsonDataTWODTO = BeanUtil.copyProperties(invoiceAllPrintXMLTWODTO,PrintXMLJsonDataTWODTO.class); + PrintXMLJsonDataTWODTO jsonDataTWODTO = BeanUtil.copyProperties(invoiceAllPrintXMLTWODTO, PrintXMLJsonDataTWODTO.class); jsonDataTWODTO.setNsrsbh(yhdj.getNsrsbh()); printXMLTWODTO.setBsrysfzjhm(yhdj.getBsrysfzjhm()); printXMLTWODTO.setNsrsbh(yhdj.getNsrsbh()); @@ -1003,8 +1000,21 @@ public class JcskInvoiceApiServiceImpl implements IInvoiceApiService { } @Override - public HXResponse issueFastRedInvoice(InvoiceAllKshcTWODTO invoiceAllKshcDTO, Companyservice companyservice) { - KshcTwoDTO kshcDTO = BeanUtil.copyProperties(invoiceAllKshcDTO, KshcTwoDTO.class); + public HXResponse issueFastRedInvoice(InvoiceAllKshcJsonDataTWODTO invoiceAllKshcDTO, Companyservice companyservice) { + + // 查询用户信息组装 + InvoiceAllYhdj yhdj = getUserInfo(companyservice); + if (BeanUtil.isEmpty(yhdj)) { + return new HXResponse("未查询到登记信息!"); + } + + KshcTwoDTO kshcDTO = new KshcTwoDTO(); + KshcJsonDataTwoDTO jsonDataTwoDTO = BeanUtil.copyProperties(invoiceAllKshcDTO, KshcJsonDataTwoDTO.class); + kshcDTO.setAsync(true); + kshcDTO.setNsrsbh(yhdj.getNsrsbh()); + kshcDTO.setDqbm(yhdj.getDqbm()); + kshcDTO.setBsrysfzjhm(yhdj.getBsrysfzjhm()); + kshcDTO.setJsonData(jsonDataTwoDTO); ValidateUtils.validate(kshcDTO); ValidateUtils.validate(kshcDTO.getJsonData()); @@ -1053,42 +1063,72 @@ public class JcskInvoiceApiServiceImpl implements IInvoiceApiService { // return AjaxResult.error(ErrorCode.INVOICE_NOT_EXISTS); // } - cn.hutool.json.JSONObject result = null; - try { - result = ApiHttp.request(WebServiceConstant.INVOICE_STATIC, WebServiceConstant.URL, decryptResult, companyservice); - } catch (Exception e) { - e.printStackTrace(); - log.error("【金四服务类】【金财数科】【获取二维码】API请求异常,外部报文返回code非0000。错误信息:{}", e.getMessage()); - return new HXResponse("发票统计错误!"); + // 查询用户信息组装 + InvoiceAllYhdj yhdj = getUserInfo(companyservice); + if (BeanUtil.isEmpty(yhdj)) { + return new HXResponse("未查询到登记信息!"); } + StaticTWODTO staticTWODTO = new StaticTWODTO(); + staticTWODTO.setDqbm(yhdj.getDqbm()); + staticTWODTO.setBsrysfzjhm(yhdj.getBsrysfzjhm()); + staticTWODTO.setNsrsbh(yhdj.getNsrsbh()); + staticTWODTO.setAsync(true); - // 处理请求 - if (!StringUtils.equals("0000", result.getStr("code"))) { - log.error("【金四服务类】【金财数科】【获取二维码】API请求异常,外部报文返回code非0000。返回信息:{}", result); - return new HXResponse(result.getStr("message")); - } + ValidateUtils.validate(staticTWODTO); - cn.hutool.json.JSONObject data = result.getJSONObject("data"); - if (data == null) { - return new HXResponse("发票统计错误!"); - } + cn.hutool.json.JSONObject result = null; + try { + result = ApiHttp.request(WebServiceConstant.INVOICE_STATIC, WebServiceConstant.URL, staticTWODTO, companyservice); - log.info("【金四服务类】【金财数科】【蓝字统计】API请求成功,返回信息:{}", result); + 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() : ""; - // String requestId = data.getStr("requestId"); + 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.INVOICE_STATIC); + allApiLog.setSendMsg(staticTWODTO.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", "同步成功", data); - return response; + 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("发票统计错误!"); + } } @Override - public HXResponse auditRedInfo(InvoiceAllShhzTWODTO invoiceAllShhzTWODTO, Companyservice companyservice) { - // TODO: 2023/3/16 外部报文转数科校验 + public HXResponse auditRedInfo(InvoiceAllShhzJsonDataTWODTO invoiceAllShhzTWODTO, Companyservice companyservice) { - ShhzTwoDTO shhzDTO = BeanUtil.copyProperties(invoiceAllShhzTWODTO, ShhzTwoDTO.class); - ValidateUtils.validate(shhzDTO); + // 查询用户信息组装 + InvoiceAllYhdj yhdj = getUserInfo(companyservice); + if (BeanUtil.isEmpty(yhdj)) { + return new HXResponse("未查询到登记信息!"); + } - ShhzJsonDataTwoDTO shhzJsonDataDTO = BeanUtil.copyProperties(shhzDTO.getJsonData(), ShhzJsonDataTwoDTO.class); + ShhzTwoDTO shhzDTO = new ShhzTwoDTO(); + shhzDTO.setAsync("true"); + shhzDTO.setNsrsbh(yhdj.getNsrsbh()); + shhzDTO.setDqbm(yhdj.getDqbm()); + shhzDTO.setBsrysfzjhm(yhdj.getBsrysfzjhm()); + ShhzJsonDataTwoDTO shhzJsonDataDTO = BeanUtil.copyProperties(invoiceAllShhzTWODTO, ShhzJsonDataTwoDTO.class); + shhzJsonDataDTO.setXsfnsrsbh(yhdj.getNsrsbh()); + ValidateUtils.validate(shhzDTO); ValidateUtils.validate(shhzJsonDataDTO); shhzDTO.setJsonData(shhzJsonDataDTO); @@ -1118,6 +1158,9 @@ public class JcskInvoiceApiServiceImpl implements IInvoiceApiService { allApiLog.setCreateTime(new Date()); allApiLogMapper.insertInvoiceAllApiLog(allApiLog); + + HXResponse response = new HXResponse("0000", "同步成功", result); + return response; } else { return new HXResponse(msg); } @@ -1125,11 +1168,8 @@ public class JcskInvoiceApiServiceImpl implements IInvoiceApiService { e.printStackTrace(); log.error("【金四服务类】【金财数科】【审核红字信息表】API请求异常,外部报文返回code非0000。错误信息:{}", e.getMessage()); return new HXResponse("审核红字信息表错误!"); - } - HXResponse response = new HXResponse("0000", "同步成功", result); - return response; } /**