销项合并测试:获取发票打印XML

beta-prop-all^2
dongxiaoke 2 years ago
parent 727fd0aa5b
commit 173cf9917b
  1. 4
      jianshui-admin/src/main/java/com/jianshui/api/controller/http/invoice/v1/InvoiceController.java
  2. 32
      jianshui-invoice/src/main/java/com/jianshui/invoice/domain/dto/api/InvoiceAllPrintXMLTWODTO.java
  3. 33
      jianshui-invoice/src/main/java/com/jianshui/invoice/domain/dto/api/jcsk/PrintXMLJsonDataTWODTO.java
  4. 33
      jianshui-invoice/src/main/java/com/jianshui/invoice/domain/dto/api/jcsk/PrintXMLTWODTO.java
  5. 2
      jianshui-invoice/src/main/java/com/jianshui/invoice/service/IInvoiceApiService.java
  6. 2
      jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/AisinoConsoleInvoiceApiServiceImpl.java
  7. 2
      jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/ElephantInvoiceApiServiceImpl.java
  8. 56
      jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/JcskInvoiceApiServiceImpl.java
  9. 1
      jianshui-invoice/src/main/java/com/jianshui/invoice/utils/IncomeTest.java

@ -24,6 +24,7 @@ import com.jianshui.system.service.IServiceManageService;
import io.swagger.annotations.*;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
@ -1083,7 +1084,8 @@ public class InvoiceController {
IInvoiceApiService invoiceService = invoiceServiceFactory.getService(serviceKey);
HXResponse result = invoiceService.getPrintXML(decryptResult, companyservice);
InvoiceAllPrintXMLTWODTO invoiceAllPrintXMLTWODTO = BeanUtil.copyProperties(decryptResult,InvoiceAllPrintXMLTWODTO.class);
HXResponse result = invoiceService.getPrintXML(invoiceAllPrintXMLTWODTO, companyservice);
String responseAdapterKey = serviceManageService.getResponseAdapterKey("invoice", companyservice.getCompanyid());
IInvoiceResponseService invoiceResponseService = invoiceResponseFactory.getService(responseAdapterKey);

@ -0,0 +1,32 @@
package com.jianshui.invoice.domain.dto.api;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
/**
* 获取发票打印xml
*/
@Data
public class InvoiceAllPrintXMLTWODTO {
@NotEmpty
@ApiModelProperty(value = "打印类型")
private String dylx;
@NotEmpty
@ApiModelProperty(value = "发票号码")
private String fphm;
@ApiModelProperty(value = "红字确认单编号")
@NotEmpty
private String hzqrdbh;
@NotEmpty
@ApiModelProperty(value = "纳税人识别号")
private String nsrsbh;
}

@ -0,0 +1,33 @@
package com.jianshui.invoice.domain.dto.api.jcsk;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotEmpty;
/**
* 获取发票打印xml
*/
@Data
public class PrintXMLJsonDataTWODTO {
@NotEmpty
@ApiModelProperty(value = "打印类型")
private String dylx;
@NotEmpty
@ApiModelProperty(value = "发票号码")
private String fphm;
@ApiModelProperty(value = "红字确认单编号")
@NotEmpty
private String hzqrdbh;
@NotEmpty
@ApiModelProperty(value = "纳税人识别号")
private String nsrsbh;
}

@ -0,0 +1,33 @@
package com.jianshui.invoice.domain.dto.api.jcsk;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotEmpty;
/**
* 获取发票打印xml
*/
@Data
public class PrintXMLTWODTO {
@NotEmpty
@ApiModelProperty(value = "true")
private String async;
@NotEmpty
@ApiModelProperty(value = "办税人身份证号")
private String bsrysfzjhm;
@ApiModelProperty(value = "*地区编码(参考码表)")
@NotEmpty
private String dqbm;
@NotEmpty
@ApiModelProperty(value = "纳税人识别号")
private String nsrsbh;
private PrintXMLJsonDataTWODTO jsonData;
}

@ -226,7 +226,7 @@ public interface IInvoiceApiService {
* @param companyservice
* @return
*/
HXResponse getPrintXML(JSONObject decryptResult, Companyservice companyservice);
HXResponse getPrintXML(InvoiceAllPrintXMLTWODTO invoiceAllPrintXMLTWODTO, Companyservice companyservice);
/**
*快速红冲

@ -973,7 +973,7 @@ public class AisinoConsoleInvoiceApiServiceImpl implements IInvoiceApiService {
}
@Override
public HXResponse getPrintXML(JSONObject decryptResult, Companyservice companyservice) {
public HXResponse getPrintXML(InvoiceAllPrintXMLTWODTO invoiceAllPrintXMLTWODTO, Companyservice companyservice) {
return null;
}

@ -1760,7 +1760,7 @@ public class ElephantInvoiceApiServiceImpl implements IInvoiceApiService {
}
@Override
public HXResponse getPrintXML(JSONObject decryptResult, Companyservice companyservice) {
public HXResponse getPrintXML(InvoiceAllPrintXMLTWODTO invoiceAllPrintXMLTWODTO, Companyservice companyservice) {
return null;
}

@ -944,24 +944,62 @@ public class JcskInvoiceApiServiceImpl implements IInvoiceApiService {
}
@Override
public HXResponse getPrintXML(JSONObject decryptResult, Companyservice companyservice) {
public HXResponse getPrintXML(InvoiceAllPrintXMLTWODTO invoiceAllPrintXMLTWODTO, Companyservice companyservice) {
// 查询用户信息组装
InvoiceAllYhdj yhdj = getUserInfo(companyservice);
if (BeanUtil.isEmpty(yhdj)) {
return new HXResponse("未查询到登记信息!");
}
PrintXMLTWODTO printXMLTWODTO = new PrintXMLTWODTO();
PrintXMLJsonDataTWODTO jsonDataTWODTO = BeanUtil.copyProperties(invoiceAllPrintXMLTWODTO,PrintXMLJsonDataTWODTO.class);
jsonDataTWODTO.setNsrsbh(yhdj.getNsrsbh());
printXMLTWODTO.setBsrysfzjhm(yhdj.getBsrysfzjhm());
printXMLTWODTO.setNsrsbh(yhdj.getNsrsbh());
printXMLTWODTO.setAsync("true");
printXMLTWODTO.setDqbm(yhdj.getDqbm());
printXMLTWODTO.setJsonData(jsonDataTWODTO);
ValidateUtils.validate(printXMLTWODTO);
ValidateUtils.validate(jsonDataTWODTO);
cn.hutool.json.JSONObject result = null;
try {
result = ApiHttp.request(WebServiceConstant.GET_PRINT_XML, WebServiceConstant.URL, decryptResult, companyservice);
// TODO: 2022/12/11 返回处理 VO整理,数据存储。
result = ApiHttp.request(WebServiceConstant.GET_PRINT_XML, WebServiceConstant.URL, printXMLTWODTO, companyservice);
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.GET_PRINT_XML);
allApiLog.setSendMsg(printXMLTWODTO.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) {
e.printStackTrace();
log.error("【金四服务类】【金财数科】【获取二维码】API请求异常,外部报文返回code非0000。错误信息:{}", e.getMessage());
return new HXResponse("获取二维码错误!");
log.error("【金四服务类】【金财数科】【获取发票打印XML】API请求异常,外部报文返回code非0000。错误信息:{}", e.getMessage());
return new HXResponse("获取发票打印XML错误!");
}
// TODO 处理日志
HXResponse response = new HXResponse("0000", "同步成功", result);
return response;
}
@Override

@ -181,6 +181,7 @@ public class IncomeTest {
" \"ZTBZ\": \"1\",\n" + // 当给 1 时继续请求,0 时结束请求
" \"taxNo\": \"9111122223333CKFPT\"\n" + // 测试税号
"}";
m = AisinoInvoiceDecryptUtil.encrypt(order, key);
System.out.println("json : \n" + order);
System.out.println(m);