Compare commits

...

2 Commits

  1. 58
      jianshui-admin/src/main/java/com/jianshui/api/controller/http/invoice/v1/InvoiceController.java
  2. 3
      jianshui-framework/src/main/java/com/jianshui/framework/config/SecurityConfig.java
  3. 2
      jianshui-invoice/src/main/java/com/jianshui/invoice/constant/elephant/ElephantConstantsV6.java
  4. 48
      jianshui-invoice/src/main/java/com/jianshui/invoice/domain/dto/QueryInvoiceListDTO.java
  5. 3
      jianshui-invoice/src/main/java/com/jianshui/invoice/service/IInvoiceApiService.java
  6. 2
      jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/adapter/request/AisinoInvoiceRequestAdapterImpl.java
  7. 5
      jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/AisinoConsoleInvoiceApiServiceImpl.java
  8. 5
      jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/AisinoConsoleInvoiceApiZhongQiServiceImpl.java
  9. 9
      jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/ElephantInvoiceApiServiceImpl.java
  10. 6
      jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/ElephantInvoiceApiV6ByInspurServiceImpl.java
  11. 26
      jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/ElephantInvoiceApiV6ServiceImpl.java
  12. 7
      jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/JcskInvoiceApiServiceImpl.java

@ -3,41 +3,29 @@ package com.jianshui.api.controller.http.invoice.v1;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.codec.Base64Decoder;
import cn.hutool.core.codec.Base64Encoder;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONUtil;
import com.alibaba.druid.support.json.JSONUtils;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.api.R;
import com.dxhy.order.protocol.invoke.DxhyInterfaceResponse;
import com.google.gson.Gson;
import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
import com.jianshui.common.constant.HttpStatus;
import com.jianshui.common.core.domain.AjaxResult;
import com.jianshui.common.core.domain.entity.Companyservice;
import com.jianshui.common.enums.ErrorCode;
import com.jianshui.common.exception.jianshui.JianshuiParamErrorException;
import com.jianshui.common.exception.jianshui.JianshuiServiceException;
import com.jianshui.common.utils.StringUtils;
import com.jianshui.common.utils.http.HttpHelper;
import com.jianshui.common.utils.uuid.IdUtils;
import com.jianshui.framework.manager.AsyncManager;
import com.jianshui.invoice.constant.elephant.ElephantConstants;
import com.jianshui.invoice.domain.*;
import com.jianshui.invoice.domain.ele.EleNewMessage;
import com.jianshui.invoice.domain.ele.EleOuterMessage;
import com.jianshui.invoice.domain.ele.FindRedInfoDTO;
import com.jianshui.invoice.domain.ele.HZSQDMessage;
import com.jianshui.invoice.mapper.InvoiceBackMapper;
import com.jianshui.invoice.mapper.InvoiceFileMapper;
import com.jianshui.invoice.service.impl.api.ElephantInvoiceApiV6ServiceImpl;
import com.jianshui.invoice.task.AddInvoiceBatchTask;
import com.jianshui.invoice.task.InvoiceBackTask;
import com.jianshui.invoice.utils.elephant.ElephantUtils;
import com.jianshui.platform.dto.InvoiceAdd.BillInfoPDTO;
import com.jianshui.invoice.domain.dto.*;
import com.jianshui.invoice.domain.dto.api.*;
@ -58,14 +46,8 @@ import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.rendering.PDFRenderer;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.scheduling.annotation.Async;
import org.springframework.ui.Model;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import org.springframework.web.servlet.ModelAndView;
import javax.imageio.ImageIO;
import javax.servlet.http.HttpServletRequest;
@ -73,8 +55,6 @@ import javax.servlet.http.HttpServletResponse;
import java.awt.image.BufferedImage;
import java.io.*;
import java.net.URLEncoder;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import java.util.*;
/**
@ -113,6 +93,42 @@ public class InvoiceController {
private InvoiceFileMapper invoiceFileMapper;
/**
* 发票列表查询接口
* @param request
* @param identity
* @return
* @throws Exception
*/
@PostMapping({"/api/invoice/v1/queryInvoiceList", "/api/invoice/v1/queryInvoiceList/{identity}", "/invoice/queryInvoiceList"})
public Object queryInvoiceList(HttpServletRequest request, String identity) throws Exception {
log.info("发票列表查询接口,开始执行");
if (StringUtils.isEmpty(identity)) {
DxhyInterfaceResponse dxhyInterfaceResponse = new DxhyInterfaceResponse();
dxhyInterfaceResponse.setCode("9999");
dxhyInterfaceResponse.setMessage("身份认证参数为空");
return dxhyInterfaceResponse;
}
Companyservice companyservice = iCompanyserviceService.selectCompanyserviceByIdentity(identity);
if (companyservice == null) {
DxhyInterfaceResponse dxhyInterfaceResponse = new DxhyInterfaceResponse();
dxhyInterfaceResponse.setCode("9999");
dxhyInterfaceResponse.setMessage("企业信息不存在");
return dxhyInterfaceResponse;
}
String requestAdapterKey = serviceManageService.getRequestAdapterKey("invoice", companyservice.getCompanyid());
IInvoiceRequestService invoiceRequestService = invoiceRequestFactory.getService(requestAdapterKey);
JSONObject decryptResult = invoiceRequestService.decrypt(request, companyservice, "query_invoice_list");
// 获得请求实例,并且进行扣费
log.info("发票列表查询接口,解密数据{}", decryptResult);
QueryInvoiceListDTO queryInvoiceList = decryptResult.toJavaObject(QueryInvoiceListDTO.class);
log.info("发票列表查询接口,转换数据{}", JSONUtil.toJsonStr(queryInvoiceList));
String serviceKey = serviceManageService.getCompanyServiceSupplier("invoice", companyservice.getCompanyid());
serviceManageService.companyConsume("invoice", companyservice.getCompanyid());
IInvoiceApiService invoiceService = invoiceServiceFactory.getService(serviceKey);
return invoiceService.queryInvoiceList(queryInvoiceList, companyservice);
}
/**
* 功能描述: 红字查询接口
*

@ -134,7 +134,8 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter {
"/invoice/QuerySdInvoiceFileDownload",
"/invoice/QueryFastRedInvoiceResult",
"/invoice/issueFastRedInvoice",
"/invoice/fastRedInvoice"
"/invoice/fastRedInvoice",
"/invoice/queryInvoiceList"
)
.permitAll() // 所有原有发票
.antMatchers(

@ -63,6 +63,8 @@ public class ElephantConstantsV6 {
public static String REDINFO_DOWNLOAD_METHOD = "DownloadRedInvoiceApplicationResult";
public static String REDINFO_FIND_LOCALHOST = "/invoice/api/v6/GetRedInvoiceApplication";
public static String REDINFO_FIND_METHOD = "GetRedInvoiceApplication";
public static String INVOICE_LIST_INFO_URL = "/invoice/api/v6/QueryInvoiceList";
public static String INVOICE_LIST_METHOD = "QueryInvoiceList";
// 数电-生成动态二维码

@ -0,0 +1,48 @@
package com.jianshui.invoice.domain.dto;
import lombok.Data;
import java.util.List;
@Data
public class QueryInvoiceListDTO {
// 纳税人识别号
private String NSRSBH;
// 归集标签(查询类型)需有值
private String GJBQ;
// 发票状态代码
private List<String> FPZT_DM;
// 发票来源代码(必填)
private String FPLY_DM;
// 发票类型代码
private List<String> FPLX_DM;
// 开票日期起(必填)
private String KPRQQ;
// 开票日期止(必填)
private String KPRQZ;
// 发票号码
private String QDFP_HM;
// 纸质发票代码
private String ZZFPDM;
// 纸质发票号码
private String ZZFPHM;
// 对方纳税人识别号
private String DFNSRSBH;
// 对方纳税人名称
private String DFNSRMC;
// 购买方纳税人识别号
private String GHF_NSRSBH;
// 购买方名称
private String GHF_MC;
// 查询页码
private String CXYM;
// 查询标志
private String CXBZ;
// 每页条数
private String TS;
// 登录账号
private String YHM;
}

@ -371,4 +371,7 @@ public interface IInvoiceApiService {
HXResponse loginVerificated(JSONObject decryptResult, Companyservice companyservice);
HXResponse saveInvoice(String identity, String billInfoId, JSONObject resultJSON);
/** 查询发票列表 */
HXResponse queryInvoiceList(QueryInvoiceListDTO queryInvoiceList, Companyservice companyservice);
}

@ -143,7 +143,7 @@ public class AisinoInvoiceRequestAdapterImpl implements IInvoiceRequestService {
// throw new JianshuiParamErrorException(ErrorCode.IDENTITY_NOT_MATCH,"invoice);
// }
// 红字查询
if (StringUtils.equals(serviceKey, "find_redinfo")) {
if (StringUtils.equals(serviceKey, "find_redinfo") || StringUtils.equals(serviceKey, "query_invoice_list")) {
return json;
}
// 如果是开票或者查询

@ -1087,6 +1087,11 @@ public class AisinoConsoleInvoiceApiServiceImpl implements IInvoiceApiService {
return null;
}
@Override
public HXResponse queryInvoiceList(QueryInvoiceListDTO queryInvoiceList, Companyservice companyservice) {
return null;
}
@Override
public AjaxResult syncStockInfo(Companyservice companyservice) {

@ -20,7 +20,6 @@ import com.jianshui.common.exception.jianshui.JianshuiServiceException;
import com.jianshui.common.utils.*;
import com.jianshui.common.utils.spring.SpringUtils;
import com.jianshui.common.utils.uuid.IdUtils;
import com.jianshui.framework.manager.AsyncManager;
import com.jianshui.invoice.constant.aisino.console.AisinoConsoleConstants;
import com.jianshui.invoice.domain.*;
import com.jianshui.invoice.domain.dto.*;
@ -571,6 +570,10 @@ public class AisinoConsoleInvoiceApiZhongQiServiceImpl implements IInvoiceApiSer
}
}
@Override
public HXResponse queryInvoiceList(QueryInvoiceListDTO queryInvoiceList, Companyservice companyservice) {
return null;
}
/**

@ -27,10 +27,6 @@ import com.jianshui.invoice.domain.dto.adapter.response.RedInfoDTO;
import com.jianshui.invoice.domain.dto.adapter.response.RedInfoDetailDTO;
import com.jianshui.invoice.domain.dto.api.*;
import com.jianshui.invoice.domain.dto.api.elephant.*;
import com.jianshui.invoice.domain.dto.api.elephant.addInvoice.Bdcxsxx;
import com.jianshui.invoice.domain.dto.api.elephant.addInvoice.Fjys;
import com.jianshui.invoice.domain.dto.api.elephant.addInvoice.Hwys;
import com.jianshui.invoice.domain.dto.api.elephant.addInvoice.Jzfwxx;
import com.jianshui.invoice.domain.ele.EleNewMessage;
import com.jianshui.invoice.domain.ele.EleOuterMessage;
import com.jianshui.invoice.domain.ele.HZSQDMessage;
@ -929,6 +925,11 @@ public class ElephantInvoiceApiServiceImpl implements IInvoiceApiService {
return null;
}
@Override
public HXResponse queryInvoiceList(QueryInvoiceListDTO queryInvoiceList, Companyservice companyservice) {
return null;
}
/**
* 申请/上传 红字发票

@ -51,7 +51,6 @@ import com.jianshui.invoice.service.IBillInfoService;
import com.jianshui.invoice.service.IInvoiceApiService;
import com.jianshui.invoice.task.QueryInvoiceTask;
import com.jianshui.invoice.utils.BillInfoInspurUtils;
import com.jianshui.invoice.utils.BillInfoUtils;
import com.jianshui.invoice.utils.elephant.ElephantUtils;
import com.jianshui.queue.utils.RedisQueueUtil;
import com.jianshui.storage.domain.StorageUrlDTO;
@ -1206,6 +1205,11 @@ public class ElephantInvoiceApiV6ByInspurServiceImpl implements IInvoiceApiServi
return null;
}
@Override
public HXResponse queryInvoiceList(QueryInvoiceListDTO queryInvoiceList, Companyservice companyservice) {
return null;
}
/**
* 红字确认单列表查询数电专用

@ -1,15 +1,12 @@
package com.jianshui.invoice.service.impl.api;
import ch.qos.logback.core.joran.spi.ElementPath;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.codec.Base64;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.http.HttpUtil;
import cn.hutool.json.JSONConfig;
import cn.hutool.json.JSONUtil;
import com.alibaba.druid.support.json.JSONUtils;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
@ -55,7 +52,6 @@ import com.jianshui.invoice.service.IBillInfoService;
import com.jianshui.invoice.service.IInvoiceApiService;
import com.jianshui.invoice.task.QueryInvoiceTask;
import com.jianshui.invoice.utils.BillInfoUtils;
import com.jianshui.invoice.utils.JsonCaseUtils;
import com.jianshui.invoice.utils.elephant.ElephantUtils;
import com.jianshui.queue.utils.RedisQueueUtil;
import com.jianshui.storage.domain.StorageUrlDTO;
@ -71,28 +67,21 @@ import com.jianshui.system.service.ISysConfigService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.ibatis.annotations.Lang;
import org.joda.time.format.DateTimeFormat;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.env.Environment;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import javax.servlet.http.HttpServletRequest;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.math.BigDecimal;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.format.DateTimeFormatter;
import java.util.*;
import java.util.stream.Collectors;
/**
* 销项实现
@ -1250,6 +1239,21 @@ public class ElephantInvoiceApiV6ServiceImpl implements IInvoiceApiService {
return null;
}
@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 parseResult(dxhyInterfaceResponse);
}
/**
* 红字确认单列表查询数电专用

@ -32,7 +32,6 @@ import com.jianshui.invoice.domain.dto.api.jcsk.add.InvoiceAllAddTwoDTO;
import com.jianshui.invoice.domain.dto.api.jcsk.add.InvoiceAllAddmxListTwoDTO;
import com.jianshui.invoice.domain.dto.api.jcsk.red.AddRedInvoiceTwoDTO;
import com.jianshui.invoice.domain.ele.EleNewMessage;
import com.jianshui.invoice.domain.vo.InvoiceAllQycodeResultElEVO;
import com.jianshui.invoice.domain.vo.jcsk.*;
import com.jianshui.invoice.mapper.*;
import com.jianshui.invoice.service.IInvoiceApiService;
@ -42,7 +41,6 @@ import com.jianshui.system.mapper.InvoiceAllApiLogMapper;
import com.jianshui.system.mapper.InvoiceAllYhdjMapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;
@ -1724,6 +1722,11 @@ public class JcskInvoiceApiServiceImpl implements IInvoiceApiService {
return null;
}
@Override
public HXResponse queryInvoiceList(QueryInvoiceListDTO queryInvoiceList, Companyservice companyservice) {
return null;
}
/**
* 简税和金财数科 发票类型互换
*

Loading…
Cancel
Save