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 0e77abc..5c1559f 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 @@ -1955,5 +1955,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/fastRedInvoice/{identity}", "/api/invoice/v1/fastRedInvoice","/invoice/fastRedInvoice"}) + public Object fastRedInvoice(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.fastRedInvoice(decryptResult, companyservice); + + String responseAdapterKey = serviceManageService.getResponseAdapterKey("invoice", companyservice.getCompanyid()); + IInvoiceResponseService invoiceResponseService = invoiceResponseFactory.getService(responseAdapterKey); + + return invoiceResponseService.response(result, companyservice, ""); + + } + } diff --git a/jianshui-framework/src/main/java/com/jianshui/framework/config/SecurityConfig.java b/jianshui-framework/src/main/java/com/jianshui/framework/config/SecurityConfig.java index ad96186..5a47af0 100644 --- a/jianshui-framework/src/main/java/com/jianshui/framework/config/SecurityConfig.java +++ b/jianshui-framework/src/main/java/com/jianshui/framework/config/SecurityConfig.java @@ -128,7 +128,8 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter { "/invoice/rpaLogin", "/invoice/qrcode", "/invoice/qrcodeResult", - "/invoice/mailDelivery" + "/invoice/mailDelivery", + "/invoice/fastRedInvoice" ) .permitAll() // 所有原有发票 .antMatchers( 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 162d48d..54f8143 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 @@ -70,6 +70,10 @@ public class ElephantConstantsV6 { public static String QUERY_RED_CONFIRMATION_LIST_LOCALHOST = "/invoice/api/v6/QueryRedConfirmationList"; public static String QUERY_RED_CONFIRMATION_LIST_METHOD = "QueryRedConfirmationList"; + // 数电-订单快捷冲红接口(数电专用接口) + public static String ORDER_TO_FAST_RED_INVOICE_LOCALHOST = "/invoice/api/v6/OrderToFastRedInvoice"; + public static String ORDER_TO_FAST_RED_INVOICE_METHOD = "OrderToFastRedInvoice"; + // 数电-红字确认单明细查询 public static String QUERY_RED_CONFIRMATION_ITEM_LIST_LOCALHOST = "/invoice/api/v6/QueryRedConfirmationItemList"; public static String QUERY_RED_CONFIRMATION_ITEM_LIST_METHOD = "QueryRedConfirmationItemList"; 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 e23bd7c..e778760 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 @@ -354,4 +354,7 @@ public interface IInvoiceApiService { /** 邮箱交付*/ HXResponse mailDelivery(InvoiceMailDeliveryDTO mailDeliveryDTO, Companyservice companyservice); + + /** 订单快捷冲红接口(数电专用接口) */ + HXResponse fastRedInvoice(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 302be40..5a66bb5 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 @@ -1051,6 +1051,11 @@ public class AisinoConsoleInvoiceApiServiceImpl implements IInvoiceApiService { return null; } + @Override + public HXResponse fastRedInvoice(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 2c99811..388efb8 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 @@ -537,6 +537,11 @@ public class AisinoConsoleInvoiceApiZhongQiServiceImpl implements IInvoiceApiSer return null; } + @Override + public HXResponse fastRedInvoice(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 5cfac3e..1ffc15d 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 @@ -874,6 +874,11 @@ public class ElephantInvoiceApiServiceImpl implements IInvoiceApiService { return null; } + @Override + public HXResponse fastRedInvoice(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 ff17552..16c6426 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 @@ -1009,6 +1009,24 @@ public class ElephantInvoiceApiV6ServiceImpl implements IInvoiceApiService { } + /* 订单快捷冲红接口(数电专用接口)*/ + @Override + public HXResponse fastRedInvoice(JSONObject decryptResult, Companyservice companyservice) { + + decryptResult = JsonKeyCase.JsonKeyCase(decryptResult); + log.info("调用大象V6接口报文key转大写后的报文为{}",decryptResult); + DxhyInterfaceResponse dxhyInterfaceResponse = null; + try { + dxhyInterfaceResponse = ElephantUtils.sendRequestWithoutTokenV6(ElephantConstantsV6.ORDER_TO_FAST_RED_INVOICE_LOCALHOST, ElephantConstantsV6.ORDER_TO_FAST_RED_INVOICE_METHOD, JSONUtil.parse(decryptResult), companyservice); + } catch (UnsupportedEncodingException | InvalidKeyException | NoSuchAlgorithmException e) { + log.error("【销项发票】【大象接口】【数电】【订单快捷冲红接口】发票请求异常,请求报文{},销方信息{}", decryptResult, JSONObject.toJSONString(companyservice)); + e.printStackTrace(); + return new HXResponse("009999", "系统异常!"); + } + + return parseResult(dxhyInterfaceResponse); + } + /** * 红字确认单列表查询(数电专用) */ 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 1739c9a..842b3b3 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 @@ -1659,6 +1659,11 @@ public class JcskInvoiceApiServiceImpl implements IInvoiceApiService { return null; } + @Override + public HXResponse fastRedInvoice(JSONObject decryptResult, Companyservice companyservice) { + return null; + } + /** * 简税和金财数科 发票类型互换 *