销项合并测试:红字发票开具

beta-enc
dongxiaoke 2 years ago
parent 0af1f553ba
commit 2aad5f7b24
  1. 11
      jianshui-invoice/src/main/java/com/jianshui/invoice/domain/dto/api/jcsk/red/AddRedInvoiceTwoDTO.java
  2. 2
      jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/adapter/request/AisinoInvoiceRequestAdapterImpl.java
  3. 86
      jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/JcskInvoiceApiServiceImpl.java

@ -11,7 +11,7 @@ public class AddRedInvoiceTwoDTO {
/** invoiceline*/ /** invoiceline*/
@Alias("invoiceType") @Alias("invoiceType")
@NotEmpty(message = "发票类型代码不能为空") // @NotEmpty(message = "发票类型代码不能为空")
private String fplxdm; // 发票类型代码 private String fplxdm; // 发票类型代码
/**fpqqlsh */ /**fpqqlsh */
@ -21,12 +21,12 @@ public class AddRedInvoiceTwoDTO {
/** */ /** */
@Alias("originFpdm") @Alias("originFpdm")
@NotEmpty(message = "原发票类型代码不能为空") // @NotEmpty(message = "原发票类型代码不能为空")
private String yfplxdm; // 原发票类型代码 private String yfplxdm; // 原发票类型代码
/** */ /** */
@Alias("originFphm") @Alias("originFphm")
@NotEmpty(message = "原全电发票号码不能为空") // @NotEmpty(message = "原全电发票号码不能为空")
private String yfphm; // 原全电发票号码 private String yfphm; // 原全电发票号码
/** */ /** */
@ -43,6 +43,11 @@ public class AddRedInvoiceTwoDTO {
@Alias("tdyslxdm") @Alias("tdyslxdm")
private String ytdyslxdm; // 原特定要素类型代码 private String ytdyslxdm; // 原特定要素类型代码
private String async;
private String bsrysfzjhm;
private String dqbm;
private String nsrsbh;

@ -103,7 +103,7 @@ public class AisinoInvoiceRequestAdapterImpl implements IInvoiceRequestService {
// 平台解密 // 平台解密
try { try {
// TODO: 2023/4/23 调试屏蔽 // TODO: 2023/4/23 调试屏蔽
order = AisinoInvoiceDecryptUtil.decrypt(order, JKey); // order = AisinoInvoiceDecryptUtil.decrypt(order, JKey);
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
throw new JianshuiParamErrorException(ErrorCode.DECRYPT_ERROR, companyservice, "invoice"); throw new JianshuiParamErrorException(ErrorCode.DECRYPT_ERROR, companyservice, "invoice");

@ -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 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.*;
import com.jianshui.invoice.domain.dto.api.jcsk.*; import com.jianshui.invoice.domain.dto.api.jcsk.*;
@ -229,30 +230,14 @@ public class JcskInvoiceApiServiceImpl implements IInvoiceApiService {
//billinfo => 红字报文 //billinfo => 红字报文
AddRedInvoiceTwoDTO addRedInvoiceDTO = BeanUtil.copyProperties(billInfo, AddRedInvoiceTwoDTO.class); AddRedInvoiceTwoDTO addRedInvoiceDTO = BeanUtil.copyProperties(billInfo, AddRedInvoiceTwoDTO.class);
ValidateUtils.validate(addRedInvoiceDTO); ValidateUtils.validate(addRedInvoiceDTO);
addRedInvoiceDTO.setAsync("true");
addRedInvoiceDTO.setBsrysfzjhm(queryDTO.getBsrysfzjhm());
addRedInvoiceDTO.setDqbm(queryDTO.getDqbm());
addRedInvoiceDTO.setNsrsbh(queryDTO.getNsrsbh());
// 查找原Invoice QueryWrapper<Redinfo> redinfoQueryWrapper = new QueryWrapper<>();
QueryWrapper<Invoice> invoiceQueryWrapper = new QueryWrapper<>(); redinfoQueryWrapper.eq("red_info_no",addRedInvoiceDTO.getHzfpxxqrdid());
invoiceQueryWrapper.eq("fphm", addRedInvoiceDTO.getYfphm()); Redinfo redinfo = redinfoMapper.selectOne(redinfoQueryWrapper);
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; cn.hutool.json.JSONObject result = null;
try { try {
@ -273,14 +258,10 @@ public class JcskInvoiceApiServiceImpl implements IInvoiceApiService {
if (data == null) { if (data == null) {
return new HXResponse(ErrorCode.INCOME_ERROR.toString()); return new HXResponse(ErrorCode.INCOME_ERROR.toString());
} }
String requestId = data.getStr("requestId"); String requestId = data.getStr("requestId");
redBillInfo.setFpqqlsh(requestId);
redBillInfo.setOutTradeOrderno(requestId);
billInfoMapper.updateById(redBillInfo);
HXResponse response = new HXResponse("0000", "同步成功"); HXResponse response = new HXResponse("0000", "同步成功");
response.put("fpqqlsh", billInfo.getSystemOrderno()); response.put("fpqqlsh", requestId);
return response; return response;
} else { } else {
return new HXResponse(ErrorCode.INCOME_ERROR + "未获取到开票类型!".toString()); return new HXResponse(ErrorCode.INCOME_ERROR + "未获取到开票类型!".toString());
@ -1134,30 +1115,31 @@ public class JcskInvoiceApiServiceImpl implements IInvoiceApiService {
cn.hutool.json.JSONObject result = null; cn.hutool.json.JSONObject result = null;
try { try {
// result = ApiHttp.request(WebServiceConstant.TYCXJK, WebServiceConstant.URL, queryDTO, companyservice); result = ApiHttp.request(WebServiceConstant.TYCXJK, WebServiceConstant.URL, queryDTO, companyservice);
result = new cn.hutool.json.JSONObject(); // TODO: 2023/5/11 测试
result.set("code", "0000"); // result = new cn.hutool.json.JSONObject();
result.set("msg", "123"); // result.set("code", "0000");
result.set("data", "{\n" + // result.set("msg", "123");
" \"hzfpxxqrdbh\": \"37021423051000203148\",\n" + // result.set("data", "{\n" +
" \"hzfpxxqrdid\": \"953bf4ef7ac74c24ae9a056262939f96\",\n" + // " \"hzfpxxqrdbh\": \"37021423051000203148\",\n" +
" \"hzfpxxqrdZtdm\": \"01\",\n" + // " \"hzfpxxqrdid\": \"953bf4ef7ac74c24ae9a056262939f96\",\n" +
" \"lrrq\": \"2023-05-09 09:47:53\",\n" + // " \"hzfpxxqrdZtdm\": \"01\",\n" +
" \"hzfpxx\": {\n" + // " \"lrrq\": \"2023-05-09 09:47:53\",\n" +
" \"fpqqlsh\": \"c817769da5c27e3fbda4fe5ce72857f7\",\n" + // " \"hzfpxx\": {\n" +
" \"gmfnsrsbh\": \"91370102MA3UD2FG21\",\n" + // " \"fpqqlsh\": \"c817769da5c27e3fbda4fe5ce72857f7\",\n" +
" \"gmfmc\": \"山东慧永信息科技有限公司\",\n" + // " \"gmfnsrsbh\": \"91370102MA3UD2FG21\",\n" +
" \"xsfmc\": \"城阳区兴顺通制冷设备维修服务部\",\n" + // " \"gmfmc\": \"山东慧永信息科技有限公司\",\n" +
" \"xsfnsrsbh\": \"92370214MACAAEK16E\",\n" + // " \"xsfmc\": \"城阳区兴顺通制冷设备维修服务部\",\n" +
" \"kprq\": \"2023-05-09 09:47:54\",\n" + // " \"xsfnsrsbh\": \"92370214MACAAEK16E\",\n" +
" \"fphm\": \"23922000000005190521\",\n" + // " \"kprq\": \"2023-05-09 09:47:54\",\n" +
" \"ewmUrl\": \"https://dppt.qingdao.chinatax.gov.cn:8443/v/2_23922000000005190521_202305090947549016EF6F4\",\n" + // " \"fphm\": \"23922000000005190521\",\n" +
" \"pdfUrl\": \"https://rocgw.jcsk100.com/external/d/v/qingdao_23922000000005190521_202305090947549016EF6F4_cde295cba75225c66fe9902c88fc4d03_pdf\",\n" + // " \"ewmUrl\": \"https://dppt.qingdao.chinatax.gov.cn:8443/v/2_23922000000005190521_202305090947549016EF6F4\",\n" +
" \"ofdUrl\": \"https://rocgw.jcsk100.com/external/d/v/qingdao_23922000000005190521_202305090947549016EF6F4_cde295cba75225c66fe9902c88fc4d03_ofd\",\n" + // " \"pdfUrl\": \"https://rocgw.jcsk100.com/external/d/v/qingdao_23922000000005190521_202305090947549016EF6F4_cde295cba75225c66fe9902c88fc4d03_pdf\",\n" +
" \"xmlUrl\": \"https://rocgw.jcsk100.com/external/d/v/qingdao_23922000000005190521_202305090947549016EF6F4_cde295cba75225c66fe9902c88fc4d03_xml\"\n" + // " \"ofdUrl\": \"https://rocgw.jcsk100.com/external/d/v/qingdao_23922000000005190521_202305090947549016EF6F4_cde295cba75225c66fe9902c88fc4d03_ofd\",\n" +
" }\n" + // " \"xmlUrl\": \"https://rocgw.jcsk100.com/external/d/v/qingdao_23922000000005190521_202305090947549016EF6F4_cde295cba75225c66fe9902c88fc4d03_xml\"\n" +
"}"); // " }\n" +
// "}");
String code = result.get("code") != null ? result.get("code").toString() : ""; String code = result.get("code") != null ? result.get("code").toString() : "";

Loading…
Cancel
Save