From 2774c079076bd4f2b4f3a6ab235e6fd2a0c554c8 Mon Sep 17 00:00:00 2001 From: xingze <13153582609@163.com> Date: Mon, 2 Sep 2024 18:30:32 +0800 Subject: [PATCH] =?UTF-8?q?feature:=20=E7=BA=A2=E5=AD=97=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E8=BF=94=E5=9B=9E=E6=8A=A5=E6=96=87=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../http/invoice/v1/InvoiceController.java | 5 +- .../AisinoInvoiceResponseAdapterImpl.java | 65 +++++++++++++++++++ .../api/ElephantInvoiceApiV6ServiceImpl.java | 11 ++-- 3 files changed, 73 insertions(+), 8 deletions(-) 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 81677fb..ce35fb9 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 @@ -383,13 +383,14 @@ public class InvoiceController { IInvoiceApiService invoiceService = invoiceServiceFactory.getService(serviceKey); HXResponse tempResult = invoiceService.findReadInfoByHzqrdbh(billInfo, companyservice); result.add(tempResult.getData()); - HXResponse hxResponse = new HXResponse("0000", "查询成功", result); + HXResponse hxResponse = new HXResponse(tempResult.getStatus(), tempResult.getMessage(), result); String responseAdapterKey = serviceManageService.getResponseAdapterKey("invoice", companyservice.getCompanyid()); IInvoiceResponseService invoiceResponseService = invoiceResponseFactory.getService(responseAdapterKey); - return invoiceResponseService.response(hxResponse, companyservice, "query"); + Object query = invoiceResponseService.response(hxResponse, companyservice, "hzqrdFind"); + return query; } diff --git a/jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/adapter/response/AisinoInvoiceResponseAdapterImpl.java b/jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/adapter/response/AisinoInvoiceResponseAdapterImpl.java index eb6713f..ce0d941 100644 --- a/jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/adapter/response/AisinoInvoiceResponseAdapterImpl.java +++ b/jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/adapter/response/AisinoInvoiceResponseAdapterImpl.java @@ -99,6 +99,71 @@ public class AisinoInvoiceResponseAdapterImpl implements IInvoiceResponseService queryResult.put("list", new ArrayList<>()); } + + // 红字确认单查询 + if (StringUtils.equals("hzqrdFind", query)) { + // 判断有无data + Object datas = result.getData(); + + // 如果datas不为Null + if (datas != null) { + // 如果返回将诶过为invioce + List responses = new ArrayList<>(); + if (datas instanceof List) { + for (int ij = 0; ij < ((List) datas).size(); ij++) { + Object data = ((List) datas).get(ij); + // 转为HxInvoice + Invoice invoice = (Invoice) data; + if (invoice == null) { + continue; + } + AisinoJnInvoiceResponse invoiceResponse = new AisinoJnInvoiceResponse(); + BeanUtils.copyProperties(invoice, invoiceResponse); + String invoiceType = DictUtils.getDictLabel("invoice_type", invoice.getInvoiceType()); + if (invoiceType != null) { + invoiceResponse.setInvoiceType(invoiceType); + } + + // 处理发票状态 + + // 处理Detail + List detailList = invoice.getInvoiceDetailList(); + if (detailList != null) { + List invoiceDetailResponses = new ArrayList<>(); + for (int i = 0; i < detailList.size(); i++) { + AisinoJnInvoiceDetailResponse response = new AisinoJnInvoiceDetailResponse(); + InvoiceDetail tempDetail = detailList.get(i); + BeanUtils.copyProperties(tempDetail, response); + Integer hsbz = tempDetail.getHsbz(); + if (hsbz == 0) { + response.setHsbz("false"); + response.setTaxamt(null); + // 如果不含税 + } else { + // 如果含税 + response.setHsbz("true"); + response.setTaxfreeamt(response.getTaxamt()); + } + invoiceDetailResponses.add(response); + } + invoiceResponse.setInvoiceDetailList(invoiceDetailResponses); + } + responses.add(invoiceResponse); + } + + JSONObject queryResult = new JSONObject(); + queryResult.put("message", result.getMessage()); + queryResult.put("list", responses); + queryResult.put("status", result.getStatus()); + return queryResult; + } + + } + JSONObject queryResult = new JSONObject(); + queryResult.put("result", result.getMessage()); + queryResult.put("list", new ArrayList<>()); + } + // 如果是开具红票 if (StringUtils.equals("add_redinfo", query)) { return result; 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 106b725..b25ffd0 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 @@ -1260,11 +1260,11 @@ public class ElephantInvoiceApiV6ServiceImpl implements IInvoiceApiService { } catch (UnsupportedEncodingException | InvalidKeyException | NoSuchAlgorithmException e) { log.error("【销项发票】【大象接口】【发票开具】发票请求异常,请求报文{},销方信息{}", JSONUtil.parse(queryBody).toString(), JSONObject.toJSONString(companyservice)); e.printStackTrace(); - throw new JianshuiServiceException("系统异常!"); + return new HXResponse("9999", "系统异常!"); } // 判断外层报文是否成功 if (queryResult.isError()) { - throw new JianshuiServiceException(queryResult.getMsg()); + return new HXResponse("9999", "未查询到发票结果"); } JSONObject contentJson = queryResult.getJsonData(); ElephantInvoiceQueryResultDTO queryResultDTO = contentJson.toJavaObject(ElephantInvoiceQueryResultDTO.class); @@ -1281,13 +1281,12 @@ public class ElephantInvoiceApiV6ServiceImpl implements IInvoiceApiService { if (billInfo.getFpqqlsh() != null) { tempInvoice.setFpqqlsh(billInfo.getFpqqlsh()); } - return new HXResponse(queryResultDTO.getZTXX(), tempInvoice); + return new HXResponse("9999", queryResultDTO.getZTXX()); } List ddfpzxxes = queryResultDTO.getDDFPZXX(); if (ddfpzxxes.size() > 1) { - HXResponse response = new HXResponse("9996", "一次只能查询一张发票"); - return response; + return new HXResponse("9999", "一次只能查询一张发票"); } DDFPZXX ddfpzxx = ddfpzxxes.get(0); DDFPXX ddfpxx = ddfpzxx.getDDFPXX(); @@ -1378,7 +1377,7 @@ public class ElephantInvoiceApiV6ServiceImpl implements IInvoiceApiService { } catch (ParseException e) { e.printStackTrace(); log.error("【销项发票】【大象接口】【订单查询】 发票格式化日期错误。请求报文{},大象返回报文{},原始报文{}", queryBody.toJSONString(), queryResult.toString(), JSONObject.toJSONString(billInfo)); - throw new JianshuiServiceException("日期处理错误,请联系管理员!"); + return new HXResponse("9999", "日期处理错误,请联系管理员!"); } invoice.setBuyerName(ddfpxx.getGMFMC()); // "购方名称" invoice.setBuyerTaxnum(ddfpxx.getGMFSBH()); // "购方税号"