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