中交建-销项合并测试:蓝字发票开具接口测试

beta-prop-all^2
dongxiaoke 2 years ago
parent 0840168fb2
commit ed695bed65
  1. 4
      jianshui-invoice-all/src/main/java/com/jianshui/invoiceall/service/impl/InvoiceAllImpl.java
  2. 2
      jianshui-invoice/src/main/java/com/jianshui/invoice/domain/BillInfo.java
  3. 12
      jianshui-invoice/src/main/java/com/jianshui/invoice/domain/dto/api/jcsk/add/InvoiceAllAddInfoTwoDTO.java
  4. 1
      jianshui-invoice/src/main/java/com/jianshui/invoice/domain/dto/api/jcsk/add/InvoiceAllAddmxListTwoDTO.java
  5. 2
      jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/AisinoConsoleInvoiceApiServiceImpl.java
  6. 62
      jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/JcskInvoiceApiServiceImpl.java
  7. 11
      jianshui-invoice/src/main/java/com/jianshui/invoice/utils/JcskConverJSInvoiceTypeUtils.java

@ -833,9 +833,9 @@ public class InvoiceAllImpl implements IInvoiceAll {
map.put("08", "b"); //增值税电子专用发票 08
map.put("87", "j"); //机动车发票 87
map.put("88", "u"); //二手车发票 88
// TODO-kk: 2023/1/16 这个命名是根据什么
map.put("82", "q"); //全电普票
map.put("81", "q"); //全电专票
map.put("81", "r"); //全电专票
if (jcsk2js) {
String resp = map.get(invoiceType);
return StringUtils.isNotEmpty(resp) ? resp : invoiceType;

@ -205,7 +205,7 @@ public class BillInfo extends BaseEntity
@Excel(name = "税额")
private BigDecimal tax;
/** 含税金额 */
/** 含税金额 =》 数科 hjje */
@Excel(name = "含税金额")
private BigDecimal taxamt;

@ -5,6 +5,8 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.List;
/**
@ -66,13 +68,15 @@ public class InvoiceAllAddInfoTwoDTO {
@ApiModelProperty(value = "购买方银行账号")
private String gmfyhzh;
@NotEmpty
@Alias("taxamt")
@NotNull
@ApiModelProperty(value = "合计金额")
private String hjje;
private BigDecimal hjje;
@NotEmpty
@Alias("tax")
@NotNull
@ApiModelProperty(value = "合计税额")
private String hjse;
private BigDecimal hjse;
/** hsbz*/
@NotEmpty

@ -35,6 +35,7 @@ public class InvoiceAllAddmxListTwoDTO {
private String ggxh;
/** */
@Alias("taxamt")
@NotEmpty
@ApiModelProperty(value = "金额")
private String je;

@ -836,7 +836,7 @@ public class AisinoConsoleInvoiceApiServiceImpl implements IInvoiceApiService {
String retcode = resultJSON.get("retcode") != null ? resultJSON.get("retcode").toString() : "";
String retmsg = resultJSON.get("retmsg") != null ? resultJSON.get("retmsg").toString() : "";
if("5011".equals(retcode)){
return new HXResponse("发票打印成功,发票号码="+printInvoiceDTO.getInfoNumber()+",发票代码="+printInvoiceDTO.getInfoTypeCode());
return new HXResponse("0000","发票打印成功,发票号码="+printInvoiceDTO.getInfoNumber()+",发票代码="+printInvoiceDTO.getInfoTypeCode());
}else{
return new HXResponse("发票打印失败,发票号码="+printInvoiceDTO.getInfoNumber()+",发票代码="+printInvoiceDTO.getInfoTypeCode()+",原因="+retmsg);
}

@ -2,6 +2,8 @@ package com.jianshui.invoice.service.impl.api;
import java.util.Date;
import cn.hutool.core.bean.copier.CopyOptions;
import cn.hutool.core.map.MapUtil;
import com.jianshui.common.utils.BeanToMapUtils;
import com.jianshui.invoice.domain.dto.api.*;
import com.jianshui.invoice.domain.dto.api.jcsk.*;
@ -121,7 +123,7 @@ public class JcskInvoiceApiServiceImpl implements IInvoiceApiService {
// 忽略明细属性
InvoiceAllAddInfoTwoDTO invoiceAllAddInfoTwoDTO = BeanUtil.copyProperties(billInfo, InvoiceAllAddInfoTwoDTO.class
,"fjxxList","mxList","tdywxx","ext");
// TODO: 2023/4/24 明细处理 必填非必填对应
// 发票类型处理
ValidateUtils.validate(invoiceAllAddInfoTwoDTO);
@ -141,6 +143,17 @@ public class JcskInvoiceApiServiceImpl implements IInvoiceApiService {
// 报文转换存储
billInfo.setCompanyId(companyservice.getCompanyid());
billInfo.setServiceSupplierKey("JCSK");
String invoiceType = getInvoiceType(billInfo.getInvoiceType(),true);
if(StrUtil.isEmpty(invoiceType)){
return new HXResponse("发票类型代码不存在!");
}
billInfo.setInvoiceType(invoiceType);
String systemOrderno = IdUtils.randomSystemOrderno();
billInfo.setSystemOrderno(systemOrderno);
billInfo.setOutTradeOrderno(systemOrderno);
if(BeanUtil.isEmpty(billInfo.getClerk())){
billInfo.setClerk("");
}
try {
int resBillInfo = billInfoMapper.insertBillInfo(billInfo);
if (resBillInfo > 0) {
@ -151,6 +164,11 @@ public class JcskInvoiceApiServiceImpl implements IInvoiceApiService {
}
//数据库存储
List<BillDetail> billDetailList = billInfo.getBillDetailList();
Long index = 0L;
for (BillDetail billDetail : billDetailList) {
billDetail.setBillInfoId(billInfoID);
billDetail.setIndex(++index);
}
int billDetailResult = billInfoMapper.batchBillDetail(billDetailList);
}
} catch (Exception e) {
@ -162,11 +180,10 @@ public class JcskInvoiceApiServiceImpl implements IInvoiceApiService {
cn.hutool.json.JSONObject result = null;
// TODO: 2023/4/23 调试
log.info("金财数科蓝字请求报文打印=",JSONUtil.parse(invoiceAllAddTwoDTO));
return null;
/*try {
result = ApiHttp.request(WebServiceConstant.LZFPKJ, WebServiceConstant.URL, invoiceAllAddTwoDTO, companyservice);
try {
Map<String,Object> map = BeanToMapUtils.fastJsonBean2Map(invoiceAllAddTwoDTO);
result = ApiHttp.request(WebServiceConstant.LZFPKJ, WebServiceConstant.URL, JSONUtil.parse(map), companyservice);
String code = result.get("code") != null ? result.get("code").toString() : "";
String msg = result.get("msg") != null ? result.get("msg").toString() : "";
@ -209,7 +226,7 @@ public class JcskInvoiceApiServiceImpl implements IInvoiceApiService {
} catch (Exception e) {
log.error("【金四服务类】【金财数科】【蓝字发票开具】API请求异常,外部报文返回code非0000。错误信息:{}", e.getMessage());
return new HXResponse("蓝字发票开具异常");
}*/
}
} else if ("2".equals(kpType)) {
@ -1309,6 +1326,31 @@ public class JcskInvoiceApiServiceImpl implements IInvoiceApiService {
* @return
*/
private static String getInvoiceType(String invoiceType, boolean jcsk2js) {
/**
* 全电发票铁路电子客票51
* 全电发票航空运输电子客票行程单 61
* 机动车销售电子统一发票 83
* 二手车销售电子统一发票 84
* 纸质专票(全电开具) 85
* 纸质普票(全电开具) 86
* 货物运输业增值税专用发票 02
* 机动车销售统一发票 03
* 二手车销售统一发票 15
*
* 纸质发票机动车销售统一发票 87
* 纸质发票二手车销售统一发票 88
* 增值税专票 01
* 增值税普票 04
* 增值税电专 08
* 增值税电普 10
* 全电专票 81
* 全电普票 82
*/
// TODO: 2023/4/26 整理所有发票代码统一管理
// a、d、e、f、g、h、i、k、l、m、n、o、q、t、v、w、x、y、z。z
// p/c/s/b/j/u/q/r
Map<String, String> map = new HashMap<>();
map.put("10", "p"); //电子增值税普通发票 10
map.put("04", "c"); //增值税普通发票 04
@ -1316,8 +1358,9 @@ public class JcskInvoiceApiServiceImpl implements IInvoiceApiService {
map.put("08", "b"); //增值税电子专用发票 08
map.put("87", "j"); //机动车发票 87
map.put("88", "u"); //二手车发票 88
map.put("82", "q"); //全电普票
map.put("81", "q"); //全电专票
map.put("81", "r"); //全电专票
if (jcsk2js) {
String resp = map.get(invoiceType);
return StringUtils.isNotEmpty(resp) ? resp : invoiceType;
@ -1333,4 +1376,7 @@ public class JcskInvoiceApiServiceImpl implements IInvoiceApiService {
}
}

@ -0,0 +1,11 @@
package com.jianshui.invoice.utils;
/**
* 金财数科转简税-发票类型代码
*/
public class JcskConverJSInvoiceTypeUtils {
}