From 24fa1ab0bb8308b84a06920733dfafff20074a2f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B7=AF=E6=98=8E=E6=85=A7?= <1191093413@qq.com> Date: Sat, 12 Oct 2024 15:47:43 +0800 Subject: [PATCH] =?UTF-8?q?feature:=E5=AF=B9=E6=8E=A5=E5=8F=91=E7=A5=A8?= =?UTF-8?q?=E7=94=A8=E9=80=94=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../http/invoice/v1/InvoiceController.java | 36 +++++++++++++++++++ .../jianshui/common/constant/Constants.java | 2 ++ .../elephant/ElephantConstantsV6.java | 20 +++++++++++ .../invoice/service/IInvoiceApiService.java | 1 + .../AisinoConsoleInvoiceApiServiceImpl.java | 5 +++ ...noConsoleInvoiceApiZhongQiServiceImpl.java | 5 +++ .../api/ElephantInvoiceApiServiceImpl.java | 5 +++ ...ephantInvoiceApiV6ByInspurServiceImpl.java | 5 +++ .../api/ElephantInvoiceApiV6ServiceImpl.java | 24 ++++++++++++- .../impl/api/JcskInvoiceApiServiceImpl.java | 5 +++ 10 files changed, 107 insertions(+), 1 deletion(-) 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 2067e3b..d461045 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 @@ -2345,6 +2345,42 @@ public class InvoiceController { + /** + * 查询发票用途状态信息接口(数电专用) + */ + @ApiImplicitParams({ + @ApiImplicitParam(name = "identity", value = "身份认证", dataType = "java.lang.Void", example = "1130", required = true), + @ApiImplicitParam(name = "order", value = "请求体", dataType = "java.lang.Void", required = true)}) + @PostMapping({"/api/invoice/v1/queryInvoiceUseInfo/{identity}", "/api/invoice/v1/queryInvoiceUseInfo", "/invoice/queryInvoiceUseInfo"}) + public Object queryInvoiceUseInfo(HttpServletRequest request, String identity) throws Exception { + if (StringUtils.isEmpty(identity)) { + return AjaxResult.error(ErrorCode.EMPTY_IDENTITY); + } + Companyservice companyservice = iCompanyserviceService.selectCompanyserviceByIdentity(identity); + if (companyservice == null) { + return AjaxResult.error(ErrorCode.COMPANY_NOT_FOUND); + } + // 获得入口报文适配器 + String requestAdapterKey = serviceManageService.getRequestAdapterKey("invoice", companyservice.getCompanyid()); + IInvoiceRequestService invoiceRequestService = invoiceRequestFactory.getService(requestAdapterKey); + JSONObject decryptResult = invoiceRequestService.decrypt(request, companyservice, ""); + + // 获得请求实例,并且进行扣费 + String serviceKey = serviceManageService.getCompanyServiceSupplier("invoice", companyservice.getCompanyid()); + serviceManageService.companyConsume("invoice", companyservice.getCompanyid()); + + IInvoiceApiService invoiceService = invoiceServiceFactory.getService(serviceKey); + HXResponse result = invoiceService.queryInvoiceUseInfo(decryptResult, companyservice); + +// String responseAdapterKey = serviceManageService.getResponseAdapterKey("invoice", companyservice.getCompanyid()); +// IInvoiceResponseService invoiceResponseService = invoiceResponseFactory.getService(responseAdapterKey); +// +// return invoiceResponseService.response(result, companyservice, ""); + + return result; + + } + } diff --git a/jianshui-common/src/main/java/com/jianshui/common/constant/Constants.java b/jianshui-common/src/main/java/com/jianshui/common/constant/Constants.java index 7322235..d559a75 100644 --- a/jianshui-common/src/main/java/com/jianshui/common/constant/Constants.java +++ b/jianshui-common/src/main/java/com/jianshui/common/constant/Constants.java @@ -164,6 +164,8 @@ public class Constants { public static final int INT_0 = 0; + public static final int INT_1 = 1; + public static final String JSONObject = "JSONObject"; public static final String JSONArray = "JSONArray"; diff --git a/jianshui-invoice/src/main/java/com/jianshui/invoice/constant/elephant/ElephantConstantsV6.java b/jianshui-invoice/src/main/java/com/jianshui/invoice/constant/elephant/ElephantConstantsV6.java index ad684df..d620609 100644 --- a/jianshui-invoice/src/main/java/com/jianshui/invoice/constant/elephant/ElephantConstantsV6.java +++ b/jianshui-invoice/src/main/java/com/jianshui/invoice/constant/elephant/ElephantConstantsV6.java @@ -1,5 +1,21 @@ package com.jianshui.invoice.constant.elephant; +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.util.ObjUtil; +import cn.hutool.core.util.StrUtil; +import cn.hutool.json.JSONUtil; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.dxhy.order.protocol.httprequest.ResponseWrapper; +import com.dxhy.order.protocol.invoke.DxhyInterfaceResponse; +import com.dxhy.order.utils.InterfaceUtil; +import com.jianshui.common.constant.Constants; +import com.jianshui.common.utils.JsonKeyCase; +import com.jianshui.common.utils.StringUtils; +import com.jianshui.common.utils.http.HttpUtils; +import com.jianshui.invoice.domain.dto.HXResponse; +import org.apache.commons.lang3.ObjectUtils; + /** * @Description 大象常量 * @Author 巩权林 @@ -163,4 +179,8 @@ public class ElephantConstantsV6 { */ public static String SIGN = "eseal/v1/sign"; + // 数电-红字确认单确认 + public static String INVOICE_USE_INFO_LOCALHOST = "/invoice/api/v6/QueryInvoiceUseInfo"; + public static String INVOICE_USE_INFO_METHOD = "QueryInvoiceUseInfo"; + } 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 a45445e..48393de 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 @@ -378,4 +378,5 @@ public interface IInvoiceApiService { HXResponse findReadInfoByHzqrdbh(BillInfo billInfo, Companyservice companyservice); + HXResponse queryInvoiceUseInfo(JSONObject decryptResult, Companyservice companyservice); } \ No newline at end of file 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 0578ff3..6c285da 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 @@ -1097,6 +1097,11 @@ public class AisinoConsoleInvoiceApiServiceImpl implements IInvoiceApiService { return null; } + @Override + public HXResponse queryInvoiceUseInfo(JSONObject decryptResult, Companyservice companyservice) { + return null; + } + @Override public AjaxResult syncStockInfo(Companyservice companyservice) { diff --git a/jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/AisinoConsoleInvoiceApiZhongQiServiceImpl.java b/jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/AisinoConsoleInvoiceApiZhongQiServiceImpl.java index 89ea10c..23d9360 100644 --- a/jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/AisinoConsoleInvoiceApiZhongQiServiceImpl.java +++ b/jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/AisinoConsoleInvoiceApiZhongQiServiceImpl.java @@ -580,6 +580,11 @@ public class AisinoConsoleInvoiceApiZhongQiServiceImpl implements IInvoiceApiSer return null; } + @Override + public HXResponse queryInvoiceUseInfo(JSONObject decryptResult, 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 fbc3d50..0a1f5cf 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 @@ -925,6 +925,11 @@ public class ElephantInvoiceApiServiceImpl implements IInvoiceApiService { return null; } + @Override + public HXResponse queryInvoiceUseInfo(JSONObject decryptResult, Companyservice companyservice) { + return null; + } + /** * 申请/上传 红字发票 diff --git a/jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/ElephantInvoiceApiV6ByInspurServiceImpl.java b/jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/ElephantInvoiceApiV6ByInspurServiceImpl.java index e2a9a12..c2d2018 100644 --- a/jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/ElephantInvoiceApiV6ByInspurServiceImpl.java +++ b/jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/ElephantInvoiceApiV6ByInspurServiceImpl.java @@ -1205,6 +1205,11 @@ public class ElephantInvoiceApiV6ByInspurServiceImpl implements IInvoiceApiServi return null; } + @Override + public HXResponse queryInvoiceUseInfo(JSONObject decryptResult, Companyservice companyservice) { + return null; + } + /** * 红字确认单列表查询(数电专用) diff --git a/jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/ElephantInvoiceApiV6ServiceImpl.java b/jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/ElephantInvoiceApiV6ServiceImpl.java index ed72cb5..f8e6ed9 100644 --- a/jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/ElephantInvoiceApiV6ServiceImpl.java +++ b/jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/ElephantInvoiceApiV6ServiceImpl.java @@ -1508,6 +1508,28 @@ public class ElephantInvoiceApiV6ServiceImpl implements IInvoiceApiService { return response; } + @Override + public HXResponse queryInvoiceUseInfo(JSONObject decryptResult, Companyservice companyservice) { + decryptResult = JsonKeyCase.JsonKeyCase(decryptResult); + log.info("调用大象V6接口报文key转大写后的报文为{}", decryptResult); + DxhyInterfaceResponse dxhyInterfaceResponse = null; + try { + dxhyInterfaceResponse = ElephantUtils.sendRequestWithoutTokenV6(ElephantConstantsV6.INVOICE_USE_INFO_LOCALHOST, ElephantConstantsV6.INVOICE_USE_INFO_METHOD, JSONUtil.parse(decryptResult), companyservice); + } catch (UnsupportedEncodingException | InvalidKeyException | NoSuchAlgorithmException e) { + log.error("【销项发票】【大象接口】【数电】【红字确认单确认接口】发票请求异常,请求报文{},销方信息{}", decryptResult, JSONObject.toJSONString(companyservice)); + e.printStackTrace(); + return new HXResponse("009999", "系统异常!"); + } + + HXResponse hxResponse = parseResult(dxhyInterfaceResponse); + if (hxResponse.isSuccess() && ObjectUtils.isNotEmpty(hxResponse.getData()) && StringUtils.isNotBlank(hxResponse.getData().toString())){ + + JSONObject jsonObject = JSON.parseObject(hxResponse.getData().toString()); + hxResponse.setData(JsonKeyCase.JsonKeyCase(jsonObject, Constants.INT_1)); + } + return hxResponse; + } + /** * 简税和金财数科 发票类型互换 @@ -1732,7 +1754,7 @@ public class ElephantInvoiceApiV6ServiceImpl implements IInvoiceApiService { * @param dxhyInterfaceResponse * @return */ - public HXResponse parseResult(DxhyInterfaceResponse dxhyInterfaceResponse) { + public HXResponse parseResult(DxhyInterfaceResponse dxhyInterfaceResponse) { if (BeanUtil.isEmpty(dxhyInterfaceResponse)) { return new HXResponse("9999", "接口请求失败!返回内容不存在!", "", false); 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 f4acd4f..87e762e 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 @@ -1732,6 +1732,11 @@ public class JcskInvoiceApiServiceImpl implements IInvoiceApiService { return null; } + @Override + public HXResponse queryInvoiceUseInfo(JSONObject decryptResult, Companyservice companyservice) { + return null; + } + /** * 简税和金财数科 发票类型互换 *