销项合并:蓝字发票

用户登记接口
beta-prop-all
dongxiaoke 2 years ago
parent d45b10e571
commit 6eab638f0b
  1. 4
      jianshui-invoice/src/main/java/com/jianshui/invoice/domain/BillInfo.java
  2. 22
      jianshui-invoice/src/main/java/com/jianshui/invoice/domain/dto/api/jcsk/red/AddRedInvoiceTwoDTO.java
  3. 210
      jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/JcskInvoiceApiServiceImpl.java

@ -131,7 +131,7 @@ public class BillInfo extends BaseEntity
private String terminalNumber; private String terminalNumber;
/** 开票类型 */ /** 开票类型 */
@Excel(name = "开票类型") @Excel(name = "开票类型:1正票 2红票")
private String kptype; private String kptype;
/** 原billInfo订单号 */ /** 原billInfo订单号 */
@ -150,6 +150,8 @@ public class BillInfo extends BaseEntity
@Excel(name = "原发票号码") @Excel(name = "原发票号码")
private String originFphm; private String originFphm;
/** 推送方式 */ /** 推送方式 */
@Excel(name = "推送方式") @Excel(name = "推送方式")
private String tsfs; private String tsfs;

@ -1,28 +1,50 @@
package com.jianshui.invoice.domain.dto.api.jcsk.red; package com.jianshui.invoice.domain.dto.api.jcsk.red;
import cn.hutool.core.annotation.Alias;
import lombok.Data; import lombok.Data;
import javax.validation.constraints.NotEmpty; import javax.validation.constraints.NotEmpty;
@Data @Data
public class AddRedInvoiceTwoDTO { public class AddRedInvoiceTwoDTO {
/** invoiceline*/
@Alias("invoiceType")
@NotEmpty(message = "发票类型代码不能为空") @NotEmpty(message = "发票类型代码不能为空")
private String fplxdm; // 发票类型代码 private String fplxdm; // 发票类型代码
/**fpqqlsh */
@Alias("fpqqlsh")
@NotEmpty(message = "发票请求流水号不能为空") @NotEmpty(message = "发票请求流水号不能为空")
private String fpqqlsh; // 发票请求流水号 private String fpqqlsh; // 发票请求流水号
/** */
@Alias("originFpdm")
@NotEmpty(message = "原发票类型代码不能为空") @NotEmpty(message = "原发票类型代码不能为空")
private String yfplxdm; // 原发票类型代码 private String yfplxdm; // 原发票类型代码
/** */
@Alias("originFphm")
@NotEmpty(message = "原全电发票号码不能为空") @NotEmpty(message = "原全电发票号码不能为空")
private String yfphm; // 原全电发票号码 private String yfphm; // 原全电发票号码
/** */
@Alias("redInvoiceInfoCode")
@NotEmpty(message = "红字发票信息确认单id不能为空") @NotEmpty(message = "红字发票信息确认单id不能为空")
private String hzfpxxqrdid; // 红字发票信息确认单id private String hzfpxxqrdid; // 红字发票信息确认单id
/** */
@Alias("sellerTaxnum")
@NotEmpty(message = "销方税号不能为空") @NotEmpty(message = "销方税号不能为空")
private String xsfnsrsbh; // 销方税号 private String xsfnsrsbh; // 销方税号
/** */
@Alias("tdyslxdm")
private String ytdyslxdm; // 原特定要素类型代码 private String ytdyslxdm; // 原特定要素类型代码
} }

@ -26,7 +26,9 @@ import com.jianshui.invoice.domain.dto.api.jcsk.QueryTwoDTO;
import com.jianshui.invoice.domain.dto.api.jcsk.add.InvoiceAllAddInfoTwoDTO; import com.jianshui.invoice.domain.dto.api.jcsk.add.InvoiceAllAddInfoTwoDTO;
import com.jianshui.invoice.domain.dto.api.jcsk.add.InvoiceAllAddTwoDTO; 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.add.InvoiceAllAddmxListTwoDTO;
import com.jianshui.invoice.domain.dto.api.jcsk.red.AddRedInvoiceTwoDTO;
import com.jianshui.invoice.domain.vo.jcsk.AddInvoiceTWOVO; import com.jianshui.invoice.domain.vo.jcsk.AddInvoiceTWOVO;
import com.jianshui.invoice.domain.vo.jcsk.AddRedInvoiceTWOVO;
import com.jianshui.invoice.mapper.*; import com.jianshui.invoice.mapper.*;
import com.jianshui.invoice.service.IInvoiceApiService; import com.jianshui.invoice.service.IInvoiceApiService;
import com.jianshui.invoice.utils.aisino.console.AisinoConsoleUtil; import com.jianshui.invoice.utils.aisino.console.AisinoConsoleUtil;
@ -83,6 +85,10 @@ public class JcskInvoiceApiServiceImpl implements IInvoiceApiService {
// 请求billInfo // 请求billInfo
Long billInfoID = 0L; Long billInfoID = 0L;
// kptype 1蓝票 2红票
String kpType = billInfo.getKptype();
if ("1".equals(kpType)) {
// 开票实体转换,校验 // 开票实体转换,校验
InvoiceAllAddTwoDTO invoiceAllAddTwoDTO = BeanUtil.copyProperties(billInfo, InvoiceAllAddTwoDTO.class); InvoiceAllAddTwoDTO invoiceAllAddTwoDTO = BeanUtil.copyProperties(billInfo, InvoiceAllAddTwoDTO.class);
ValidateUtils.validate(invoiceAllAddTwoDTO); ValidateUtils.validate(invoiceAllAddTwoDTO);
@ -109,7 +115,7 @@ public class JcskInvoiceApiServiceImpl implements IInvoiceApiService {
billInfoID = billInfo.getId(); billInfoID = billInfo.getId();
if (BeanUtil.isEmpty(billInfo.getId())) { if (BeanUtil.isEmpty(billInfo.getId())) {
log.error("【金四服务类】【金财数科】【蓝字发票开具】API请求异常,billInfoId返回存储错误。"); log.error("【金四服务类】【金财数科】【蓝字发票开具】API请求异常,billInfoId返回存储错误。");
return new HXResponse(ErrorCode.INCOME_ERROR.toString()); return new HXResponse("蓝字发票开具内部错误!");
} }
//数据库存储 //数据库存储
List<BillDetail> billDetailList = billInfo.getBillDetailList(); List<BillDetail> billDetailList = billInfo.getBillDetailList();
@ -118,7 +124,7 @@ public class JcskInvoiceApiServiceImpl implements IInvoiceApiService {
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
log.error("【金四服务类】【金财数科】【蓝字发票开具】API请求异常,billInfo存储错误。错误信息:{}", e.getMessage()); log.error("【金四服务类】【金财数科】【蓝字发票开具】API请求异常,billInfo存储错误。错误信息:{}", e.getMessage());
return new HXResponse(ErrorCode.INCOME_ERROR.toString()); return new HXResponse("蓝字发票开具内部错误!");
} }
cn.hutool.json.JSONObject result = null; cn.hutool.json.JSONObject result = null;
@ -169,16 +175,80 @@ public class JcskInvoiceApiServiceImpl implements IInvoiceApiService {
return new HXResponse("蓝字发票开具异常"); return new HXResponse("蓝字发票开具异常");
} }
} else if ("2".equals(kpType)) {
//billinfo => 红字报文
AddRedInvoiceTwoDTO addRedInvoiceDTO = BeanUtil.copyProperties(billInfo, AddRedInvoiceTwoDTO.class);
ValidateUtils.validate(addRedInvoiceDTO);
// 查找原Invoice
QueryWrapper<Invoice> invoiceQueryWrapper = new QueryWrapper<>();
invoiceQueryWrapper.eq("fphm", addRedInvoiceDTO.getYfphm());
invoiceQueryWrapper.eq("invoice_type", getInvoiceType(addRedInvoiceDTO.getYfplxdm(), false));
Invoice originInvoice = invoiceMapper.selectOne(invoiceQueryWrapper);
if (originInvoice == null) {
return new HXResponse(ErrorCode.INVOICE_NOT_EXISTS.toString());
}
BillInfo redBillInfo = billInfoMapper.selectById(originInvoice.getBillInfoId());
if (billInfo == null) {
return new HXResponse(ErrorCode.INVOICE_NOT_EXISTS.toString());
}
redBillInfo.setId(null);
redBillInfo.setOriginFphm(addRedInvoiceDTO.getYfphm());
redBillInfo.setOutTradeOrderno(addRedInvoiceDTO.getFpqqlsh());
redBillInfo.setFpqqlsh("");
String systemOrderno = IdUtils.randomSystemOrderno();
redBillInfo.setSystemOrderno(systemOrderno);
redBillInfo.setKptype("2");
if (billInfoMapper.insert(redBillInfo) == 0) {
return new HXResponse(ErrorCode.INVOICE_NOT_EXISTS.toString());
}
cn.hutool.json.JSONObject result = null;
try {
result = ApiHttp.request(WebServiceConstant.ADD_RED_INVOICE, WebServiceConstant.URL, addRedInvoiceDTO, companyservice);
} catch (Exception e) {
e.printStackTrace();
log.error("【金四服务类】【金财数科】【获取二维码】API请求异常,外部报文返回code非0000。错误信息:{}", e.getMessage());
return new HXResponse(ErrorCode.INCOME_ERROR.toString());
}
// 处理请求
if (!StringUtils.equals("0000", result.getStr("code"))) {
log.error("【金四服务类】【金财数科】【获取二维码】API请求异常,外部报文返回code非0000。返回信息:{}", result);
return new HXResponse(result.getStr("message"));
}
cn.hutool.json.JSONObject data = result.getJSONObject("data");
if (data == null) {
return new HXResponse(ErrorCode.INCOME_ERROR.toString());
}
String requestId = data.getStr("requestId");
redBillInfo.setFpqqlsh(requestId);
redBillInfo.setOutTradeOrderno(requestId);
billInfoMapper.updateById(redBillInfo);
HXResponse response = new HXResponse("0000", "同步成功");
response.put("fpqqlsh", billInfo.getSystemOrderno());
return response;
} else {
return new HXResponse(ErrorCode.INCOME_ERROR + "未获取到开票类型!".toString());
}
} }
/** /**
* 发票打印 * 发票打印
* @author dxk *
* @date 2022/6/29 13:48
* @param invoice * @param invoice
* @param companyservice * @param companyservice
* @return com.jianshui.common.core.domain.AjaxResult * @return com.jianshui.common.core.domain.AjaxResult
* @author dxk
* @date 2022/6/29 13:48
*/ */
@Override @Override
public AjaxResult printInvoice(Invoice invoice, Companyservice companyservice) { public AjaxResult printInvoice(Invoice invoice, Companyservice companyservice) {
@ -188,11 +258,12 @@ public class JcskInvoiceApiServiceImpl implements IInvoiceApiService {
/** /**
* 发票作废 * 发票作废
* @author dxk *
* @date 2022/6/30 9:43
* @param invoice * @param invoice
* @param companyservice * @param companyservice
* @return com.jianshui.invoice.domain.dto.HXResponse * @return com.jianshui.invoice.domain.dto.HXResponse
* @author dxk
* @date 2022/6/30 9:43
*/ */
@Override @Override
public HXResponse deprecateInvoice(JSONObject invoice, Companyservice companyservice) { public HXResponse deprecateInvoice(JSONObject invoice, Companyservice companyservice) {
@ -207,6 +278,7 @@ public class JcskInvoiceApiServiceImpl implements IInvoiceApiService {
/** /**
* 单个发票查询 * 单个发票查询
*
* @param billInfo * @param billInfo
* @param companyservice * @param companyservice
* @return * @return
@ -215,20 +287,20 @@ public class JcskInvoiceApiServiceImpl implements IInvoiceApiService {
public HXResponse queryInvoice(QueryBillInfoDTO billInfo, Companyservice companyservice) { public HXResponse queryInvoice(QueryBillInfoDTO billInfo, Companyservice companyservice) {
String systemOrderNo = billInfo.getSystemOrderno(); String systemOrderNo = billInfo.getSystemOrderno();
BillInfo billInfoResult = billInfoMapper.selectBySystemOrderNo(companyservice.getCompanyid(),systemOrderNo); BillInfo billInfoResult = billInfoMapper.selectBySystemOrderNo(companyservice.getCompanyid(), systemOrderNo);
// requestId=OutTradeOrderno // requestId=OutTradeOrderno
if(StrUtil.isEmpty(billInfoResult.getOutTradeOrderno())){ if (StrUtil.isEmpty(billInfoResult.getOutTradeOrderno())) {
return new HXResponse("未获取到开票记录!"); return new HXResponse("未获取到开票记录!");
} }
// 查询用户登记参数 // 查询用户登记参数
QueryWrapper<InvoiceAllYhdj> yhdjQueryWrapper = new QueryWrapper<>(); QueryWrapper<InvoiceAllYhdj> yhdjQueryWrapper = new QueryWrapper<>();
yhdjQueryWrapper.eq("nsrsbh",companyservice.getSellertax()); yhdjQueryWrapper.eq("nsrsbh", companyservice.getSellertax());
yhdjQueryWrapper.eq("identity",companyservice.getIdentity()); yhdjQueryWrapper.eq("identity", companyservice.getIdentity());
InvoiceAllYhdj invoiceAllYhdj = yhdjMapper.selectOne(yhdjQueryWrapper); InvoiceAllYhdj invoiceAllYhdj = yhdjMapper.selectOne(yhdjQueryWrapper);
if(BeanUtil.isEmpty(invoiceAllYhdj)) { if (BeanUtil.isEmpty(invoiceAllYhdj)) {
return new HXResponse("用户未登记!"); return new HXResponse("用户未登记!");
} }
@ -256,20 +328,21 @@ public class JcskInvoiceApiServiceImpl implements IInvoiceApiService {
if ("0000".equals(code) && StrUtil.isNotEmpty(data)) { if ("0000".equals(code) && StrUtil.isNotEmpty(data)) {
QueryWrapper<InvoiceAllApiLog> apiLogQueryWrapper = new QueryWrapper<>(); QueryWrapper<InvoiceAllApiLog> apiLogQueryWrapper = new QueryWrapper<>();
apiLogQueryWrapper.eq("request_id",requestId); apiLogQueryWrapper.eq("request_id", requestId);
InvoiceAllApiLog allApiLog = allApiLogMapper.selectOne(apiLogQueryWrapper); InvoiceAllApiLog allApiLog = allApiLogMapper.selectOne(apiLogQueryWrapper);
if(BeanUtil.isNotEmpty(allApiLog) && StrUtil.isNotEmpty(allApiLog.getRequestId())){ if (BeanUtil.isNotEmpty(allApiLog) && StrUtil.isNotEmpty(allApiLog.getRequestId())) {
serviceId = allApiLog.getRequestId(); serviceId = allApiLog.getRequestId();
} }
HXResponse response = new HXResponse("0000", "查询成功"); HXResponse response = new HXResponse("0000", "查询成功");
String finalServiceId = serviceId; String finalServiceId = serviceId;
if (WebServiceConstant.LZFPKJ.equals(finalServiceId)) { if (WebServiceConstant.LZFPKJ.equals(finalServiceId)) {
// 蓝字发票开具 // 蓝字发票开具
AddInvoiceTWOVO addInvoiceVO = BeanUtil.copyProperties(data, AddInvoiceTWOVO.class); AddInvoiceTWOVO addInvoiceVO = BeanUtil.copyProperties(data, AddInvoiceTWOVO.class);
if(BeanUtil.isNotEmpty(addInvoiceVO)){ if (BeanUtil.isNotEmpty(addInvoiceVO)) {
QueryWrapper<BillInfo> billInfoQueryWrapper = new QueryWrapper<>(); QueryWrapper<BillInfo> billInfoQueryWrapper = new QueryWrapper<>();
billInfoQueryWrapper.eq("out_trade_orderno", requestId); billInfoQueryWrapper.eq("out_trade_orderno", requestId);
BillInfo billInfoR = billInfoMapper.selectOne(billInfoQueryWrapper); BillInfo billInfoR = billInfoMapper.selectOne(billInfoQueryWrapper);
@ -318,10 +391,10 @@ public class JcskInvoiceApiServiceImpl implements IInvoiceApiService {
response.put("data", invoice); response.put("data", invoice);
} else { } else {
log.error("【金四服务类】【金财数科】【通用查询接口】API请求异常,billInfo未查询到,requestId={}。", requestId); log.error("【金四服务类】【金财数科】【通用查询接口】API请求异常,billInfo未查询到,requestId={}。", requestId);
// return AjaxResult.error(ErrorCode.INCOME_ERROR); return new HXResponse("查询错误!");
} }
} }
} /*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();
@ -338,21 +411,18 @@ public class JcskInvoiceApiServiceImpl implements IInvoiceApiService {
invoiceMapper.updateInvoice(invoice); invoiceMapper.updateInvoice(invoice);
} }
} }
// TODO: 2023/3/29 返回数据处理
} else if (WebServiceConstant.ADD_RED_INVOICE.equals(finalServiceId)) {
}*/
/*else if (WebServiceConstant.ADD_RED_INVOICE.equals(finalServiceId)) {
// 查找原发票信息 // 查找原发票信息
AddRedInvoiceVO addRedInvoiceVO = BeanUtil.copyProperties(data, AddRedInvoiceVO.class); AddRedInvoiceTWOVO addRedInvoiceVO = BeanUtil.copyProperties(data, AddRedInvoiceTWOVO.class);
QueryWrapper<BillInfo> billInfoQueryWrapper = new QueryWrapper<>(); QueryWrapper<BillInfo> billInfoQueryWrapper = new QueryWrapper<>();
billInfoQueryWrapper.eq("fpqqlsh", requestId); billInfoQueryWrapper.eq("fpqqlsh", requestId);
BillInfo billInfo = billInfoMapper.selectOne(billInfoQueryWrapper); BillInfo billInfoR = billInfoMapper.selectOne(billInfoQueryWrapper);
if (billInfo != null) { if (billInfoR != null) {
// return AjaxResult.error("未查询到原发票信息"); // return AjaxResult.error("未查询到原发票信息");
// 根据billInfo获得原发票号码 // 根据billInfo获得原发票号码
QueryWrapper<BillInfo> originBillInfoWrapper = new QueryWrapper<>(); QueryWrapper<BillInfo> originBillInfoWrapper = new QueryWrapper<>();
originBillInfoWrapper.eq("origin_fphm", billInfo.getOriginFphm()); originBillInfoWrapper.eq("origin_fphm", billInfoR.getOriginFphm());
BillInfo originBillInfo = billInfoMapper.selectOne(originBillInfoWrapper); BillInfo originBillInfo = billInfoMapper.selectOne(originBillInfoWrapper);
if (originBillInfo != null) { if (originBillInfo != null) {
// return AjaxResult.error("未查询到原发票信息"); // return AjaxResult.error("未查询到原发票信息");
@ -377,13 +447,13 @@ public class JcskInvoiceApiServiceImpl implements IInvoiceApiService {
invoice.setcOfdUrl(addRedInvoiceVO.getXmlUrl()); invoice.setcOfdUrl(addRedInvoiceVO.getXmlUrl());
invoice.setState(2); invoice.setState(2);
invoiceMapper.insertInvoice(invoice); invoiceMapper.insertInvoice(invoice);
billInfo.setState(2); billInfoR.setState(2);
billInfoMapper.updateById(billInfo); billInfoMapper.updateById(billInfoR);
response.put("data", invoice);
}
} }
} }
response.put("data", JSONUtil.parseObj(data));
}*/
/*else if (WebServiceConstant.KSHC.equals(finalServiceId)) { /*else if (WebServiceConstant.KSHC.equals(finalServiceId)) {
// 快速冲红 // 快速冲红
@ -419,6 +489,7 @@ public class JcskInvoiceApiServiceImpl implements IInvoiceApiService {
/** /**
* 发票批量查询 * 发票批量查询
*
* @param billInfo * @param billInfo
* @param byWhat * @param byWhat
* @param companyservice * @param companyservice
@ -434,7 +505,9 @@ public class JcskInvoiceApiServiceImpl implements IInvoiceApiService {
return null; return null;
} }
/** 红字信息表上传*/ /**
* 红字信息表上传
*/
@Override @Override
public HXResponse uploadRedInfo(Redinfo redinfo, Companyservice companyservice) { public HXResponse uploadRedInfo(Redinfo redinfo, Companyservice companyservice) {
@ -480,7 +553,7 @@ public class JcskInvoiceApiServiceImpl implements IInvoiceApiService {
// TODO: 2023/3/9 设备号是 jspbh 并非billNO? 申请方税号reqnsrsbh // TODO: 2023/3/9 设备号是 jspbh 并非billNO? 申请方税号reqnsrsbh
// //
redinfo.setJspbh("661024643068230218103524".substring(0,12)); redinfo.setJspbh("661024643068230218103524".substring(0, 12));
redinfo.setReqnsrsbh("9113093067851155XY"); redinfo.setReqnsrsbh("9113093067851155XY");
redinfo.setFjh("123"); redinfo.setFjh("123");
redinfo.setMultTaxRate("0"); redinfo.setMultTaxRate("0");
@ -492,7 +565,7 @@ public class JcskInvoiceApiServiceImpl implements IInvoiceApiService {
redinfoMapper.batchRedinfodetail(redinfodetailList); redinfoMapper.batchRedinfodetail(redinfodetailList);
// 参数校验及参数处理 // 参数校验及参数处理
AisinoConsoleInvoiceRedUploadDTO redUploadDTO = BeanUtil.copyProperties(redinfo,AisinoConsoleInvoiceRedUploadDTO.class); AisinoConsoleInvoiceRedUploadDTO redUploadDTO = BeanUtil.copyProperties(redinfo, AisinoConsoleInvoiceRedUploadDTO.class);
// 填开日期 // 填开日期
redUploadDTO.setDate(redinfo.getBillInputTime()); redUploadDTO.setDate(redinfo.getBillInputTime());
// 信息表类型 // 信息表类型
@ -507,18 +580,17 @@ public class JcskInvoiceApiServiceImpl implements IInvoiceApiService {
ValidateUtils.validate(redUploadDTO); ValidateUtils.validate(redUploadDTO);
if (redinfo.getRedinfodetailList() == null || redinfo.getRedinfodetailList().size() == 0) {
if(redinfo.getRedinfodetailList() == null || redinfo.getRedinfodetailList().size() == 0){
return new HXResponse("格式校验失败,请上传明细信息!"); return new HXResponse("格式校验失败,请上传明细信息!");
} }
String paramChild = ""; String paramChild = "";
List<AisinoConsoleInvoiceRedUploadChildDTO> redUploadChildDTO = BeanUtil.copyToList(redinfo.getRedinfodetailList(),AisinoConsoleInvoiceRedUploadChildDTO.class); List<AisinoConsoleInvoiceRedUploadChildDTO> redUploadChildDTO = BeanUtil.copyToList(redinfo.getRedinfodetailList(), AisinoConsoleInvoiceRedUploadChildDTO.class);
for (AisinoConsoleInvoiceRedUploadChildDTO childDTO : redUploadChildDTO) { for (AisinoConsoleInvoiceRedUploadChildDTO childDTO : redUploadChildDTO) {
// TODO-dxk: 2023/2/27 含税、不含税金额 // TODO-dxk: 2023/2/27 含税、不含税金额
childDTO.setHS_BZ(childDTO.getHS_BZ().equals("false")? "N":"Y"); childDTO.setHS_BZ(childDTO.getHS_BZ().equals("false") ? "N" : "Y");
paramChild = "<GoodsMx>" + JSONUtil.toXmlStr(JSONUtil.parse(childDTO)) + " </GoodsMx>"; paramChild = "<GoodsMx>" + JSONUtil.toXmlStr(JSONUtil.parse(childDTO)) + " </GoodsMx>";
@ -546,10 +618,10 @@ public class JcskInvoiceApiServiceImpl implements IInvoiceApiService {
//发起请求 //发起请求
AjaxResult ajaxResult = null; AjaxResult ajaxResult = null;
try{ try {
ajaxResult = AisinoConsoleUtil.sendRequest(AisinoConsoleConstants.RED_UPLOAD, param, companyservice); ajaxResult = AisinoConsoleUtil.sendRequest(AisinoConsoleConstants.RED_UPLOAD, param, companyservice);
}catch (Exception e){ } catch (Exception e) {
log.error("【销项发票】【总部控制台接口】【发票作废】发票请求异常,请求报文{},销方信息{}","", JSONObject.toJSONString(companyservice)); log.error("【销项发票】【总部控制台接口】【发票作废】发票请求异常,请求报文{},销方信息{}", "", JSONObject.toJSONString(companyservice));
e.printStackTrace(); e.printStackTrace();
throw new JianshuiServiceException("系统异常!"); throw new JianshuiServiceException("系统异常!");
} }
@ -585,7 +657,9 @@ public class JcskInvoiceApiServiceImpl implements IInvoiceApiService {
return null; return null;
} }
/** 红字信息表下载 */ /**
* 红字信息表下载
*/
@Override @Override
public HXResponse downloadRedInfo(DownloadRedInfoDTO downloadRedInfoDTO, Companyservice companyservice) { public HXResponse downloadRedInfo(DownloadRedInfoDTO downloadRedInfoDTO, Companyservice companyservice) {
@ -624,7 +698,7 @@ public class JcskInvoiceApiServiceImpl implements IInvoiceApiService {
} }
// 组装报文 // 组装报文
AisinoConsoleInvoiceRedDownloadDTO downloadDTO = BeanUtil.copyProperties(redInfoResult,AisinoConsoleInvoiceRedDownloadDTO.class); AisinoConsoleInvoiceRedDownloadDTO downloadDTO = BeanUtil.copyProperties(redInfoResult, AisinoConsoleInvoiceRedDownloadDTO.class);
downloadDTO.setYQZT("N"); downloadDTO.setYQZT("N");
downloadDTO.setXXBFW("0"); downloadDTO.setXXBFW("0");
downloadDTO.setPAGENO("1"); downloadDTO.setPAGENO("1");
@ -638,10 +712,10 @@ public class JcskInvoiceApiServiceImpl implements IInvoiceApiService {
//发起请求 //发起请求
AjaxResult ajaxResult = null; AjaxResult ajaxResult = null;
try{ try {
ajaxResult = AisinoConsoleUtil.sendRequest(AisinoConsoleConstants.RED_DOWLOAD, param, companyservice); ajaxResult = AisinoConsoleUtil.sendRequest(AisinoConsoleConstants.RED_DOWLOAD, param, companyservice);
}catch (Exception e){ } catch (Exception e) {
log.error("【销项发票】【总部控制台接口】【发票作废】发票请求异常,请求报文{},销方信息{}","", JSONObject.toJSONString(companyservice)); log.error("【销项发票】【总部控制台接口】【发票作废】发票请求异常,请求报文{},销方信息{}", "", JSONObject.toJSONString(companyservice));
e.printStackTrace(); e.printStackTrace();
throw new JianshuiServiceException("系统异常!"); throw new JianshuiServiceException("系统异常!");
} }
@ -668,7 +742,6 @@ public class JcskInvoiceApiServiceImpl implements IInvoiceApiService {
} }
@Override @Override
public HXResponse deprecateQueryInvoice(DeprecateQueryInvoiceDTO invoice, Companyservice companyservice) { public HXResponse deprecateQueryInvoice(DeprecateQueryInvoiceDTO invoice, Companyservice companyservice) {
return null; return null;
@ -677,6 +750,7 @@ public class JcskInvoiceApiServiceImpl implements IInvoiceApiService {
/** /**
* 打印机查询 * 打印机查询
*
* @param queryPrinterDTO * @param queryPrinterDTO
* @param companyservice * @param companyservice
* @return * @return
@ -693,6 +767,7 @@ public class JcskInvoiceApiServiceImpl implements IInvoiceApiService {
/** /**
* 发票打印 * 发票打印
*
* @param printDTO * @param printDTO
* @param companyservice * @param companyservice
* @return * @return
@ -762,16 +837,17 @@ public class JcskInvoiceApiServiceImpl implements IInvoiceApiService {
/** /**
* 总部控制台转简税发票类型 * 总部控制台转简税发票类型
* @author dxk *
* @date 2022/6/29 17:12
* @param invoiceType * @param invoiceType
* @return java.lang.String * @return java.lang.String
* @author dxk
* @date 2022/6/29 17:12
*/ */
public static String CovertInvoiceTypeReverse(String invoiceType){ public static String CovertInvoiceTypeReverse(String invoiceType) {
if(invoiceType.equals("2")){ if (invoiceType.equals("2")) {
return "p"; return "p";
}else if(invoiceType.equals("0")){ } else if (invoiceType.equals("0")) {
return "s"; return "s";
} }
return ""; return "";
@ -789,4 +865,36 @@ public class JcskInvoiceApiServiceImpl implements IInvoiceApiService {
} }
/**
* 简税和金财数科 发票类型互换
*
* @param invoiceType 发票种类
* @param jcsk2js 是否通过金财数科转换为简税
* @return
*/
private static String getInvoiceType(String invoiceType, boolean jcsk2js) {
Map<String, String> map = new HashMap<>();
map.put("10", "p"); //电子增值税普通发票 10
map.put("04", "c"); //增值税普通发票 04
map.put("01", "s"); //增值税专用发票 01
map.put("08", "b"); //增值税电子专用发票 08
map.put("87", "j"); //机动车发票 87
map.put("88", "u"); //二手车发票 88
map.put("82", "q"); //全电普票
map.put("81", "q"); //全电专票
if (jcsk2js) {
String resp = map.get(invoiceType);
return StringUtils.isNotEmpty(resp) ? resp : invoiceType;
}
for (Map.Entry<String, String> entry : map.entrySet()) {
if (entry.getValue().equals(invoiceType)) {
return entry.getKey();
}
}
return invoiceType;
}
} }