销项合并测试:发票详细信息查询

beta-enc
dongxiaoke 2 years ago
parent 33cf801e09
commit 727fd0aa5b
  1. 6
      jianshui-admin/src/main/java/com/jianshui/api/controller/http/invoice/v1/InvoiceController.java
  2. 31
      jianshui-invoice/src/main/java/com/jianshui/invoice/domain/dto/api/InvoiceAllFileAcquisitionOnDetailTWODTO.java
  3. 18
      jianshui-invoice/src/main/java/com/jianshui/invoice/domain/dto/api/InvoiceAllFileAcquisitionOnTWODTO.java
  4. 31
      jianshui-invoice/src/main/java/com/jianshui/invoice/domain/dto/api/InvoiceAllFileQueryTWODTO.java
  5. 29
      jianshui-invoice/src/main/java/com/jianshui/invoice/domain/dto/api/jcsk/FileQueryJsonDataTWODTO.java
  6. 37
      jianshui-invoice/src/main/java/com/jianshui/invoice/domain/dto/api/jcsk/FileQueryTWODTO.java
  7. 6
      jianshui-invoice/src/main/java/com/jianshui/invoice/service/IInvoiceApiService.java
  8. 2
      jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/AisinoConsoleInvoiceApiServiceImpl.java
  9. 2
      jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/ElephantInvoiceApiServiceImpl.java
  10. 88
      jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/JcskInvoiceApiServiceImpl.java

@ -1,5 +1,6 @@
package com.jianshui.api.controller.http.invoice.v1; package com.jianshui.api.controller.http.invoice.v1;
import cn.hutool.core.bean.BeanUtil;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.jianshui.common.core.domain.AjaxResult; import com.jianshui.common.core.domain.AjaxResult;
import com.jianshui.common.core.domain.entity.Companyservice; import com.jianshui.common.core.domain.entity.Companyservice;
@ -1045,7 +1046,8 @@ public class InvoiceController {
serviceManageService.companyConsume("invoice", companyservice.getCompanyid()); serviceManageService.companyConsume("invoice", companyservice.getCompanyid());
IInvoiceApiService invoiceService = invoiceServiceFactory.getService(serviceKey); IInvoiceApiService invoiceService = invoiceServiceFactory.getService(serviceKey);
HXResponse result = invoiceService.query(decryptResult, companyservice); InvoiceAllFileQueryTWODTO invoiceAllFileQueryTWODTO = BeanUtil.copyProperties(decryptResult,InvoiceAllFileQueryTWODTO.class);
HXResponse result = invoiceService.query(invoiceAllFileQueryTWODTO, companyservice);
String responseAdapterKey = serviceManageService.getResponseAdapterKey("invoice", companyservice.getCompanyid()); String responseAdapterKey = serviceManageService.getResponseAdapterKey("invoice", companyservice.getCompanyid());
IInvoiceResponseService invoiceResponseService = invoiceResponseFactory.getService(responseAdapterKey); IInvoiceResponseService invoiceResponseService = invoiceResponseFactory.getService(responseAdapterKey);
@ -1060,7 +1062,6 @@ public class InvoiceController {
@ApiImplicitParam(name = "order", value = "请求体", required = true)}) @ApiImplicitParam(name = "order", value = "请求体", required = true)})
@PostMapping({"/api/invoice_all/v2/print_xml/{identity}", "/api/invoice_all/v2/print_xml"}) @PostMapping({"/api/invoice_all/v2/print_xml/{identity}", "/api/invoice_all/v2/print_xml"})
public Object printXmlml(HttpServletRequest request, String identity) throws Exception { public Object printXmlml(HttpServletRequest request, String identity) throws Exception {
// getPrintXML
if (StringUtils.isEmpty(identity)) { if (StringUtils.isEmpty(identity)) {
return AjaxResult.error(ErrorCode.EMPTY_IDENTITY); return AjaxResult.error(ErrorCode.EMPTY_IDENTITY);
@ -1081,6 +1082,7 @@ public class InvoiceController {
serviceManageService.companyConsume("invoice", companyservice.getCompanyid()); serviceManageService.companyConsume("invoice", companyservice.getCompanyid());
IInvoiceApiService invoiceService = invoiceServiceFactory.getService(serviceKey); IInvoiceApiService invoiceService = invoiceServiceFactory.getService(serviceKey);
HXResponse result = invoiceService.getPrintXML(decryptResult, companyservice); HXResponse result = invoiceService.getPrintXML(decryptResult, companyservice);
String responseAdapterKey = serviceManageService.getResponseAdapterKey("invoice", companyservice.getCompanyid()); String responseAdapterKey = serviceManageService.getResponseAdapterKey("invoice", companyservice.getCompanyid());

@ -1,31 +0,0 @@
package com.jianshui.invoice.domain.dto.api;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotEmpty;
/**
* 全电发票文件获取
* @author kk
* @date 2022年12月09日 17:16
*/
@Data
public class InvoiceAllFileAcquisitionOnDetailTWODTO {
@NotEmpty
@ApiModelProperty(value = "发票号码")
private String fphm;
@NotEmpty
@ApiModelProperty(value = "开票日期")
private String kprq;
@NotEmpty
@ApiModelProperty(value = "文件格式")
private String wjgs;
}

@ -16,22 +16,16 @@ public class InvoiceAllFileAcquisitionOnTWODTO {
@NotEmpty @NotEmpty
@ApiModelProperty(value = "true") @ApiModelProperty(value = "发票号码")
private String async; private String fphm;
@NotEmpty @NotEmpty
@ApiModelProperty(value = "办税人身份证号") @ApiModelProperty(value = "开票日期")
private String bsrysfzjhm; private String kprq;
@NotEmpty @NotEmpty
@ApiModelProperty(value = "*地区编码(参考码表)") @ApiModelProperty(value = "文件格式")
private String dqbm; private String wjgs;
@NotEmpty
@ApiModelProperty(value = "*纳税人识别号")
private String nsrsbh;
private InvoiceAllFileAcquisitionOnDetailTWODTO jsonData;
} }

@ -0,0 +1,31 @@
package com.jianshui.invoice.domain.dto.api;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotEmpty;
/**
* 单张发票查询
*/
@Data
public class InvoiceAllFileQueryTWODTO {
@ApiModelProperty(value = "发票请求流水号")
private String fpqqlsh;
@ApiModelProperty(value = "全电发票号码")
private String fphm;
@ApiModelProperty(value = "开票日期")
private String kprq;
@ApiModelProperty(value = "纸质发票代码")
private String zzfpdm;
@ApiModelProperty(value = "纸质发票号码")
private String zzfphm;
}

@ -0,0 +1,29 @@
package com.jianshui.invoice.domain.dto.api.jcsk;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 单张发票查询
*/
@Data
public class FileQueryJsonDataTWODTO {
@ApiModelProperty(value = "发票请求流水号")
private String fpqqlsh;
@ApiModelProperty(value = "全电发票号码")
private String fphm;
@ApiModelProperty(value = "开票日期")
private String kprq;
@ApiModelProperty(value = "纸质发票代码")
private String zzfpdm;
@ApiModelProperty(value = "纸质发票号码")
private String zzfphm;
}

@ -0,0 +1,37 @@
package com.jianshui.invoice.domain.dto.api.jcsk;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotEmpty;
/**
* 单张发票查询
*/
@Data
public class FileQueryTWODTO {
@NotEmpty
private String appkey;
@NotEmpty
private String serviceId;
@NotEmpty
private String bsrysfzjhm;
@NotEmpty
private String dqbm;
@NotEmpty
private String async;
@NotEmpty
private String nsrsbh;
private FileQueryJsonDataTWODTO jsondata;
}

@ -215,12 +215,10 @@ public interface IInvoiceApiService {
HXResponse qrcode(JSONObject decryptResult, Companyservice companyservice); HXResponse qrcode(JSONObject decryptResult, Companyservice companyservice);
/** /**
*获取人脸二维码 *全电发票文件获取
* @param decryptResult
* @param companyservice
* @return * @return
*/ */
HXResponse query(JSONObject decryptResult, Companyservice companyservice); HXResponse query(InvoiceAllFileQueryTWODTO invoiceAllFileQueryTWODTO, Companyservice companyservice);
/** /**
*获取发票打印XML *获取发票打印XML

@ -968,7 +968,7 @@ public class AisinoConsoleInvoiceApiServiceImpl implements IInvoiceApiService {
} }
@Override @Override
public HXResponse query(JSONObject decryptResult, Companyservice companyservice) { public HXResponse query(InvoiceAllFileQueryTWODTO invoiceAllFileQueryTWODTO, Companyservice companyservice) {
return null; return null;
} }

@ -1755,7 +1755,7 @@ public class ElephantInvoiceApiServiceImpl implements IInvoiceApiService {
} }
@Override @Override
public HXResponse query(JSONObject decryptResult, Companyservice companyservice) { public HXResponse query(InvoiceAllFileQueryTWODTO invoiceAllFileQueryTWODTO, Companyservice companyservice) {
return null; return null;
} }

@ -5,6 +5,7 @@ import java.util.Date;
import cn.hutool.core.bean.copier.CopyOptions; import cn.hutool.core.bean.copier.CopyOptions;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.map.MapUtil; import cn.hutool.core.map.MapUtil;
import cn.hutool.json.JSONNull;
import com.baomidou.mybatisplus.core.conditions.query.Query; import com.baomidou.mybatisplus.core.conditions.query.Query;
import com.jianshui.common.utils.BeanToMapUtils; import com.jianshui.common.utils.BeanToMapUtils;
import com.jianshui.invoice.domain.dto.api.*; import com.jianshui.invoice.domain.dto.api.*;
@ -781,9 +782,21 @@ public class JcskInvoiceApiServiceImpl implements IInvoiceApiService {
@Override @Override
public HXResponse getFileAcquisitionOn(InvoiceAllFileAcquisitionOnTWODTO invoiceAllFileAcquisitionOnTWODTO, Companyservice companyservice) { public HXResponse getFileAcquisitionOn(InvoiceAllFileAcquisitionOnTWODTO invoiceAllFileAcquisitionOnTWODTO, Companyservice companyservice) {
FileAcquisitionOnTwoDTO fileAcquisitionOnDTO = BeanUtil.copyProperties(invoiceAllFileAcquisitionOnTWODTO, FileAcquisitionOnTwoDTO.class);
FileAcquisitionOnDetailTwoDTO fileAcquisitionOnDetailDTO = BeanUtil.copyProperties(invoiceAllFileAcquisitionOnTWODTO.getJsonData(), FileAcquisitionOnDetailTwoDTO.class); FileAcquisitionOnTwoDTO fileAcquisitionOnDTO = new FileAcquisitionOnTwoDTO();
FileAcquisitionOnDetailTwoDTO fileAcquisitionOnDetailDTO = BeanUtil.copyProperties(invoiceAllFileAcquisitionOnTWODTO, FileAcquisitionOnDetailTwoDTO.class);
fileAcquisitionOnDTO.setJsonData(fileAcquisitionOnDetailDTO); fileAcquisitionOnDTO.setJsonData(fileAcquisitionOnDetailDTO);
// 查询用户信息组装
InvoiceAllYhdj yhdj = getUserInfo(companyservice);
if (BeanUtil.isEmpty(yhdj)) {
return new HXResponse("未查询到登记信息!");
}
fileAcquisitionOnDTO.setAsync("true");
fileAcquisitionOnDTO.setNsrsbh(yhdj.getNsrsbh());
fileAcquisitionOnDTO.setDqbm(yhdj.getDqbm());
fileAcquisitionOnDTO.setBsrysfzjhm(yhdj.getBsrysfzjhm());
ValidateUtils.validate(fileAcquisitionOnDTO); ValidateUtils.validate(fileAcquisitionOnDTO);
ValidateUtils.validate(fileAcquisitionOnDetailDTO); ValidateUtils.validate(fileAcquisitionOnDetailDTO);
@ -811,6 +824,8 @@ public class JcskInvoiceApiServiceImpl implements IInvoiceApiService {
allApiLog.setCreateTime(new Date()); allApiLog.setCreateTime(new Date());
allApiLogMapper.insertInvoiceAllApiLog(allApiLog); allApiLogMapper.insertInvoiceAllApiLog(allApiLog);
HXResponse response = new HXResponse("0000", "同步成功", JSONUtil.parse(data));
return response;
} else { } else {
return new HXResponse(msg); return new HXResponse(msg);
} }
@ -820,9 +835,6 @@ public class JcskInvoiceApiServiceImpl implements IInvoiceApiService {
return new HXResponse("全电发票文件获取错误!"); return new HXResponse("全电发票文件获取错误!");
} }
HXResponse response = new HXResponse("0000", "同步成功", result);
return response;
} }
/** /**
@ -876,26 +888,65 @@ public class JcskInvoiceApiServiceImpl implements IInvoiceApiService {
} }
@Override @Override
public HXResponse query(JSONObject decryptResult, Companyservice companyservice) { public HXResponse query(InvoiceAllFileQueryTWODTO invoiceAllFileQueryTWODTO, Companyservice companyservice) {
FileQueryTWODTO fileQueryTWODTO = new FileQueryTWODTO();
FileQueryJsonDataTWODTO fileQueryJsonDataTWODTO = BeanUtil.copyProperties(invoiceAllFileQueryTWODTO, FileQueryJsonDataTWODTO.class);
fileQueryTWODTO.setJsondata(fileQueryJsonDataTWODTO);
// 查询用户信息组装
InvoiceAllYhdj yhdj = getUserInfo(companyservice);
if (BeanUtil.isEmpty(yhdj)) {
return new HXResponse("未查询到登记信息!");
}
fileQueryTWODTO.setDqbm(yhdj.getDqbm());
fileQueryTWODTO.setBsrysfzjhm(yhdj.getBsrysfzjhm());
fileQueryTWODTO.setNsrsbh(yhdj.getNsrsbh());
fileQueryTWODTO.setAsync("true");
cn.hutool.json.JSONObject result = null; cn.hutool.json.JSONObject result = null;
try { try {
result = ApiHttp.request(WebServiceConstant.QUERY, WebServiceConstant.URL, decryptResult, companyservice); result = ApiHttp.request(WebServiceConstant.QUERY, WebServiceConstant.URL, fileQueryTWODTO, companyservice);
// TODO: 2022/12/11 返回处理 VO整理,数据存储。
String code = result.get("code") != null ? result.get("code").toString() : "";
String msg = result.get("msg") != null ? result.get("msg").toString() : "";
String data = result.get("data") != null ? result.get("data").toString() : "";
if ("0000".equals(code) && StrUtil.isNotEmpty(data)) {
cn.hutool.json.JSONObject json = JSONUtil.parseObj(data);
String requestId = json.getOrDefault("requestId", "").toString();
if (StrUtil.isEmpty(requestId)) {
return new HXResponse(msg);
}
InvoiceAllApiLog allApiLog = new InvoiceAllApiLog();
allApiLog.setUrl(WebServiceConstant.QUERY);
allApiLog.setSendMsg(fileQueryTWODTO.toString());
allApiLog.setResultMsg(JSONUtil.toJsonStr(result));
allApiLog.setCompany(companyservice.getSellertax());
allApiLog.setIdentityId(companyservice.getIdentity());
allApiLog.setRequestId(requestId);
allApiLog.setCreateTime(new Date());
allApiLogMapper.insertInvoiceAllApiLog(allApiLog);
HXResponse response = new HXResponse("0000", "同步成功", JSONUtil.parse(data));
return response;
} else {
return new HXResponse(msg);
}
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
log.error("【金四服务类】【金财数科】【获取二维码】API请求异常,外部报文返回code非0000。错误信息:{}", e.getMessage()); log.error("【金四服务类】【金财数科】【单张发票查询】API请求异常,外部报文返回code非0000。错误信息:{}", e.getMessage());
return new HXResponse("发票查询错误"); return new HXResponse("发票查询错误");
} }
// TODO 处理日志
HXResponse response = new HXResponse("0000", "同步成功", result);
return response;
} }
@Override @Override
public HXResponse getPrintXML(JSONObject decryptResult, Companyservice companyservice) { public HXResponse getPrintXML(JSONObject decryptResult, Companyservice companyservice) {
cn.hutool.json.JSONObject result = null; cn.hutool.json.JSONObject result = null;
try { try {
result = ApiHttp.request(WebServiceConstant.GET_PRINT_XML, WebServiceConstant.URL, decryptResult, companyservice); result = ApiHttp.request(WebServiceConstant.GET_PRINT_XML, WebServiceConstant.URL, decryptResult, companyservice);
@ -1248,8 +1299,7 @@ public class JcskInvoiceApiServiceImpl implements IInvoiceApiService {
} }
} }
} } else if (WebServiceConstant.FPEWMXZ.equals(finalServiceId)) {
else if (WebServiceConstant.FPEWMXZ.equals(finalServiceId)) {
// 获取发票下载地址 // 获取发票下载地址
cn.hutool.json.JSONObject json = JSONUtil.parseObj(data); cn.hutool.json.JSONObject json = JSONUtil.parseObj(data);
String ewmUrl = json.getOrDefault("ewmUrl", "").toString(); String ewmUrl = json.getOrDefault("ewmUrl", "").toString();
@ -1268,8 +1318,7 @@ public class JcskInvoiceApiServiceImpl implements IInvoiceApiService {
} }
// TODO: 2023/3/29 返回数据处理 // TODO: 2023/3/29 返回数据处理
response.put("data", JSONUtil.parse(data)); response.put("data", JSONUtil.parse(data));
} } else if (WebServiceConstant.ADD_RED_INVOICE.equals(finalServiceId)) {
else if (WebServiceConstant.ADD_RED_INVOICE.equals(finalServiceId)) {
// 查找原发票信息 // 查找原发票信息
AddRedInvoiceTWOVO addRedInvoiceVO = BeanUtil.copyProperties(data, AddRedInvoiceTWOVO.class); AddRedInvoiceTWOVO addRedInvoiceVO = BeanUtil.copyProperties(data, AddRedInvoiceTWOVO.class);
QueryWrapper<BillInfo> billInfoQueryWrapper = new QueryWrapper<>(); QueryWrapper<BillInfo> billInfoQueryWrapper = new QueryWrapper<>();
@ -1307,8 +1356,7 @@ public class JcskInvoiceApiServiceImpl implements IInvoiceApiService {
response.put("data", invoice); response.put("data", invoice);
} }
} } else if (WebServiceConstant.KSHC.equals(finalServiceId)) {
else if (WebServiceConstant.KSHC.equals(finalServiceId)) {
// 快速冲红 // 快速冲红
// TODO: 后期存库 // TODO: 后期存库
// KschVO kschVO = BeanUtil.copyProperties(data,KschVO.class); // KschVO kschVO = BeanUtil.copyProperties(data,KschVO.class);

Loading…
Cancel
Save