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 ed1b64c..52b7c6a 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 @@ -1197,8 +1197,17 @@ public class ElephantInvoiceApiV6ByInspurServiceImpl implements IInvoiceApiServi @Override public HXResponse queryInvoiceList(QueryInvoiceListDTO queryInvoiceList, Companyservice companyservice) { + log.info("发票列表查询接口,传入信息", JSONUtil.toJsonStr(queryInvoiceList)); + DxhyInterfaceResponse dxhyInterfaceResponse = null; + try { + dxhyInterfaceResponse = ElephantUtils.sendRequestWithoutTokenV6(ElephantConstantsV6.INVOICE_LIST_INFO_URL, ElephantConstantsV6.INVOICE_LIST_METHOD, JSONUtil.parse(queryInvoiceList), companyservice); + } catch (UnsupportedEncodingException | InvalidKeyException | NoSuchAlgorithmException e) { + log.error("【销项发票】【大象接口】【发票列表查询】发票请求异常,请求报文{},销方信息{}", JSONUtil.parse(queryInvoiceList).toString(), JSONObject.toJSONString(companyservice)); + e.printStackTrace(); + throw new JianshuiServiceException("系统异常!"); + } - return null; + return parseResult(dxhyInterfaceResponse); } @Override @@ -1507,7 +1516,23 @@ public class ElephantInvoiceApiV6ByInspurServiceImpl implements IInvoiceApiServi @Override public HXResponse queryTaxpayerGeneralInfo(JSONObject decryptResult, Companyservice companyservice) { - return null; + decryptResult = JsonKeyCase.JsonKeyCase(decryptResult); + log.info("调用大象V6接口报文key转大写后的报文为{}", decryptResult); + DxhyInterfaceResponse dxhyInterfaceResponse = null; + try { + dxhyInterfaceResponse = ElephantUtils.sendRequestWithoutTokenV6(ElephantConstantsV6.QUERY_TAXPAYER_GENERAL_INFO_LOCALHOST, ElephantConstantsV6.QUERY_TAXPAYER_GENERAL_INFO_METHOD, JSONUtil.parse(decryptResult), companyservice); + } catch (UnsupportedEncodingException | InvalidKeyException | NoSuchAlgorithmException e) { + log.error("【销项发票】【大象接口】【数电】【红字确认单确认接口】发票请求异常,请求报文{},销方信息{},异常{}", decryptResult, JSONObject.toJSONString(companyservice),e); + return new HXResponse("009999", "系统异常!"); + } + + HXResponse hxResponse = parseResult(dxhyInterfaceResponse); + hxResponse.put("msg", hxResponse.getMessage()); + if (hxResponse.isSuccess() && ObjectUtils.isNotEmpty(hxResponse.getData()) && StringUtils.isNotBlank(hxResponse.getData().toString())){ + JSONObject jsonObject = JSON.parseObject(hxResponse.getData().toString()); + hxResponse.setData(jsonObject); + } + return hxResponse; } @@ -1587,7 +1612,7 @@ public class ElephantInvoiceApiV6ByInspurServiceImpl implements IInvoiceApiServi e.printStackTrace(); return new HXResponse("009999", "系统异常!"); } - HXResponse hxResponse = parseResult(dxhyInterfaceResponse); + HXResponse hxResponse = parseResultRedApply(dxhyInterfaceResponse); if("000000".equals(hxResponse.get("code"))){ cn.hutool.json.JSONObject data = JSONUtil.parseObj(hxResponse.getData()); @@ -1606,7 +1631,7 @@ public class ElephantInvoiceApiV6ByInspurServiceImpl implements IInvoiceApiServi allApiLogMapper.insertInvoiceAllApiLog(allApiLog); } } - return parseResult(dxhyInterfaceResponse); + return parseResultRedApply(dxhyInterfaceResponse); } @@ -1718,6 +1743,54 @@ public class ElephantInvoiceApiV6ByInspurServiceImpl implements IInvoiceApiServi Object data = dxhyInterfaceResponse.getData() != null ? dxhyInterfaceResponse.getData() : ""; String code = dxhyInterfaceResponse.getCode() != null ? dxhyInterfaceResponse.getCode() : ""; + if ("000000".equals(code)) { + if (ObjUtil.isNotEmpty(data)) { + cn.hutool.json.JSONObject dataJson = JSONUtil.parseObj(data); + String ztdm = dataJson.get("ZTDM") != null ? dataJson.get("ZTDM").toString() : ""; + String ztxx = dataJson.get("ZTXX") != null ? dataJson.get("ZTXX").toString() : ""; + String dataTemp = dataJson.get("DATA") != null ? dataJson.get("DATA").toString() : ""; + + if ("000000".equals(ztdm)) { + cn.hutool.json.JSONObject json = null; + if (StrUtil.isNotEmpty(dataTemp)) { + json = JSONUtil.parseObj(dataTemp); + } else { + json = JSONUtil.parseObj(data); + } + // 键值转小写 +// JSONObject lowerCaseJson = new JSONObject(); +// json.forEach((key, value) -> { +// String lowerCaseKey = key.toLowerCase(); +// lowerCaseJson.put(lowerCaseKey, value); +// }); + return new HXResponse(code, "", json, true); + } else { + return new HXResponse(ztdm, ztxx, "", true); + } + } + } else { + return new HXResponse(code, "接口请求失败!", "", false); + } + + return new HXResponse(code, "接口请求失败!", "", false); + } + + /** + * 大象红字确认单申请返回 + * + * @param dxhyInterfaceResponse + * @return + */ + public HXResponse parseResultRedApply(DxhyInterfaceResponse dxhyInterfaceResponse) { + + if (BeanUtil.isEmpty(dxhyInterfaceResponse)) { + return new HXResponse("9999", "接口请求失败!返回内容不存在!", "", false); + } + + // 大象通用返回处理,返回简税HXResponse + Object data = dxhyInterfaceResponse.getData() != null ? dxhyInterfaceResponse.getData() : ""; + String code = dxhyInterfaceResponse.getCode() != null ? dxhyInterfaceResponse.getCode() : ""; + if ("000000".equals(code)) { if (ObjUtil.isNotEmpty(data)) { cn.hutool.json.JSONObject dataJson = JSONUtil.parseObj(data); @@ -1738,7 +1811,7 @@ public class ElephantInvoiceApiV6ByInspurServiceImpl implements IInvoiceApiServi String lowerCaseKey = key.toLowerCase(); lowerCaseJson.put(lowerCaseKey, value); }); - return new HXResponse(code, "", json, true); + return new HXResponse(code, "", lowerCaseJson, true); } else { return new HXResponse(ztdm, ztxx, "", true); } @@ -2728,6 +2801,7 @@ public class ElephantInvoiceApiV6ByInspurServiceImpl implements IInvoiceApiServi HXResponse hxResponse = queryInvoice(queryBillInfoDTO, companyservice); if(StringUtils.equals("0000",hxResponse.getCode())){ + addHzxxToRespon(hxResponse, allApiLog); return hxResponse; } @@ -2737,6 +2811,7 @@ public class ElephantInvoiceApiV6ByInspurServiceImpl implements IInvoiceApiServi queryWrapper.orderByDesc(Invoice::getId).last("limit 1"); Invoice invoice = invoiceMapper.selectOne(queryWrapper); + addHzxxToRespon(hxResponse, allApiLog); response.put("data",invoice); return response; @@ -2760,6 +2835,7 @@ public class ElephantInvoiceApiV6ByInspurServiceImpl implements IInvoiceApiServi HXResponse hxResponse = parseResult(dxhyInterfaceResponse); hxResponse = parseDxhyRes(hxResponse,companyservice); + addHzxxToRespon(hxResponse, allApiLog); return hxResponse; }else if (WebServiceConstant.CXHZFPXXQRD.equals(finalServiceId)) { @@ -2819,6 +2895,22 @@ public class ElephantInvoiceApiV6ByInspurServiceImpl implements IInvoiceApiServi } + private void addHzxxToRespon(HXResponse hxResponse, InvoiceAllApiLog allApiLog) { + try { + if (StringUtils.isNotBlank(allApiLog.getResultMsg()) && ObjectUtils.isNotEmpty(hxResponse.getData())) { + log.info("表中记录结果信息为:{}",allApiLog.getResultMsg()); + JSONObject data = JSON.parseObject(JSON.toJSONString(hxResponse.getData())); + JSONObject result = JSON.parseObject(allApiLog.getResultMsg()); + for (String key : result.keySet()) { + data.put(key, result.get(key)); + } + log.info("添加后数据后data:{}",data); + hxResponse.put("data",data); + } + }catch (Exception e){ + log.error("【销项发票】查询红字单和发票添加红字信息异常",e); + } + } /** 转换大象返回报文为简税报文 */ private HXResponse parseDxhyRes(HXResponse hxResponse,Companyservice companyservice) {