|
|
|
@ -1,6 +1,5 @@ |
|
|
|
|
package com.jianshui.invoice.service.impl.api; |
|
|
|
|
import com.jianshui.invoice.domain.dto.api.jcsk.SqhzJsonDataDetailTwoDTO; |
|
|
|
|
import com.jianshui.invoice.domain.dto.api.jcsk.SqhzJsonDataTwoDTO; |
|
|
|
|
import com.jianshui.invoice.domain.dto.api.jcsk.*; |
|
|
|
|
|
|
|
|
|
import cn.hutool.core.bean.BeanUtil; |
|
|
|
|
import cn.hutool.core.date.DateUtil; |
|
|
|
@ -24,8 +23,6 @@ import com.jianshui.invoice.constant.aisino.console.AisinoConsoleConstants; |
|
|
|
|
import com.jianshui.invoice.domain.*; |
|
|
|
|
import com.jianshui.invoice.domain.dto.*; |
|
|
|
|
import com.jianshui.invoice.domain.dto.api.aisino.console.*; |
|
|
|
|
import com.jianshui.invoice.domain.dto.api.jcsk.QueryTwoDTO; |
|
|
|
|
import com.jianshui.invoice.domain.dto.api.jcsk.SqhzTwoDTO; |
|
|
|
|
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.InvoiceAllAddmxListTwoDTO; |
|
|
|
@ -458,25 +455,29 @@ public class JcskInvoiceApiServiceImpl implements IInvoiceApiService { |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/*else if (WebServiceConstant.KSHC.equals(finalServiceId)) { |
|
|
|
|
else if (WebServiceConstant.KSHC.equals(finalServiceId)) { |
|
|
|
|
// 快速冲红
|
|
|
|
|
// TODO: 后期存库
|
|
|
|
|
KschVO kschVO = BeanUtil.copyProperties(data,KschVO.class); |
|
|
|
|
InvoiceAllKschVO invoiceAllKschVO = BeanUtil.copyProperties(kschVO,InvoiceAllKschVO.class); |
|
|
|
|
// KschVO kschVO = BeanUtil.copyProperties(data,KschVO.class);
|
|
|
|
|
// InvoiceAllKschVO invoiceAllKschVO = BeanUtil.copyProperties(kschVO,InvoiceAllKschVO.class);
|
|
|
|
|
|
|
|
|
|
}else if (WebServiceConstant.SQHZFPXXQRD.equals(finalServiceId)) { |
|
|
|
|
// 申请红字信息表
|
|
|
|
|
// TODO: 后期存库
|
|
|
|
|
}else if (WebServiceConstant.CXHZFPXXQRD.equals(finalServiceId)) { |
|
|
|
|
// 查询红字信息表
|
|
|
|
|
// TODO: 后期存库
|
|
|
|
|
// TODO: 2023/4/4 返回报文处理
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}else if (WebServiceConstant.SHHZFPXXQRD.equals(finalServiceId)) { |
|
|
|
|
// 审核红字信息表
|
|
|
|
|
// TODO: 后期存库
|
|
|
|
|
}else if (WebServiceConstant.QDFPWJHQ.equals(finalServiceId)) { |
|
|
|
|
// 审核红字信息表
|
|
|
|
|
// TODO: 全电发票文件获取
|
|
|
|
|
}*/ |
|
|
|
|
} |
|
|
|
|
return response; |
|
|
|
|
} else { |
|
|
|
|
return new HXResponse(msg); |
|
|
|
@ -609,7 +610,7 @@ public class JcskInvoiceApiServiceImpl implements IInvoiceApiService { |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
HXResponse response = new HXResponse("0000", "申请成功"); |
|
|
|
|
response.put("data",requestId); |
|
|
|
|
response.put("queryid",requestId); |
|
|
|
|
return response; |
|
|
|
|
|
|
|
|
|
} else { |
|
|
|
@ -680,48 +681,75 @@ public class JcskInvoiceApiServiceImpl implements IInvoiceApiService { |
|
|
|
|
return response; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// 组装报文
|
|
|
|
|
AisinoConsoleInvoiceRedDownloadDTO downloadDTO = BeanUtil.copyProperties(redInfoResult, AisinoConsoleInvoiceRedDownloadDTO.class); |
|
|
|
|
downloadDTO.setYQZT("N"); |
|
|
|
|
downloadDTO.setXXBFW("0"); |
|
|
|
|
downloadDTO.setPAGENO("1"); |
|
|
|
|
downloadDTO.setPAGESIZE("1000"); |
|
|
|
|
|
|
|
|
|
String param = JSONUtil.toXmlStr(JSONUtil.parse(downloadDTO)); |
|
|
|
|
param = "<?xml version=\"1.0\" encoding=\"GBK\"?>\n" + |
|
|
|
|
"<FPXT>\n" + |
|
|
|
|
" <INPUT>\n" + param + "</INPUT>\n" + |
|
|
|
|
"</FPXT>"; |
|
|
|
|
|
|
|
|
|
//发起请求
|
|
|
|
|
AjaxResult ajaxResult = null; |
|
|
|
|
try { |
|
|
|
|
ajaxResult = AisinoConsoleUtil.sendRequest(AisinoConsoleConstants.RED_DOWLOAD, param, companyservice); |
|
|
|
|
} catch (Exception e) { |
|
|
|
|
log.error("【销项发票】【总部控制台接口】【发票作废】发票请求异常,请求报文{},销方信息{}", "", JSONObject.toJSONString(companyservice)); |
|
|
|
|
e.printStackTrace(); |
|
|
|
|
throw new JianshuiServiceException("系统异常!"); |
|
|
|
|
} |
|
|
|
|
// TODO: 组装进数科需要的报文。 待处理。
|
|
|
|
|
|
|
|
|
|
// 查询用户登记参数
|
|
|
|
|
QueryWrapper<InvoiceAllYhdj> yhdjQueryWrapper = new QueryWrapper<>(); |
|
|
|
|
yhdjQueryWrapper.eq("nsrsbh", companyservice.getSellertax()); |
|
|
|
|
yhdjQueryWrapper.eq("identity", companyservice.getIdentity()); |
|
|
|
|
InvoiceAllYhdj invoiceAllYhdj = yhdjMapper.selectOne(yhdjQueryWrapper); |
|
|
|
|
|
|
|
|
|
//返回报文解析
|
|
|
|
|
if (ajaxResult.isError()) { |
|
|
|
|
throw new JianshuiServiceException(ajaxResult.getMsg()); |
|
|
|
|
if (BeanUtil.isEmpty(invoiceAllYhdj)) { |
|
|
|
|
return new HXResponse("用户未登记!"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
cn.hutool.json.JSONObject resultJSON = JSONUtil.parseObj(ajaxResult.get("data")); |
|
|
|
|
String retcode = resultJSON.get("retcode") != null ? resultJSON.get("retcode").toString() : ""; |
|
|
|
|
String retmsg = resultJSON.get("retmsg") != null ? resultJSON.get("retmsg").toString() : ""; |
|
|
|
|
// 这里直接用传入的报文进行转换
|
|
|
|
|
CxhzTwoDTO cxhzDTO = BeanUtil.copyProperties(downloadRedInfoDTO,CxhzTwoDTO.class); |
|
|
|
|
cxhzDTO.setAsync("true"); |
|
|
|
|
cxhzDTO.setNsrsbh(invoiceAllYhdj.getNsrsbh()); |
|
|
|
|
cxhzDTO.setDqbm(invoiceAllYhdj.getDqbm()); |
|
|
|
|
|
|
|
|
|
// todo-k: 下载的返回报文需要单独处理,更新信息表状态?
|
|
|
|
|
// todo-k: 返回的格式看看怎么处理一把,VO都已经创建
|
|
|
|
|
CxhzJsonDataTwoDTO cxhzJsonDataDTO = BeanUtil.copyProperties(downloadRedInfoDTO,CxhzJsonDataTwoDTO.class); |
|
|
|
|
|
|
|
|
|
if (!StringUtils.equals("0000", retcode)) { |
|
|
|
|
ValidateUtils.validate(cxhzDTO); |
|
|
|
|
ValidateUtils.validate(cxhzJsonDataDTO); |
|
|
|
|
|
|
|
|
|
cxhzDTO.setJsonData(cxhzJsonDataDTO); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
cn.hutool.json.JSONObject result = null; |
|
|
|
|
try { |
|
|
|
|
result = ApiHttp.request(WebServiceConstant.CXHZFPXXQRD, WebServiceConstant.URL, cxhzDTO, 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); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// TODO: 2023/4/3 数据库存储:根据业务调整
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
InvoiceAllApiLog allApiLog = new InvoiceAllApiLog(); |
|
|
|
|
allApiLog.setUrl(WebServiceConstant.CXHZFPXXQRD); |
|
|
|
|
allApiLog.setSendMsg(cxhzDTO.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", "申请成功"); |
|
|
|
|
response.put("queryid",requestId); |
|
|
|
|
return response; |
|
|
|
|
|
|
|
|
|
} else { |
|
|
|
|
return new HXResponse(msg); |
|
|
|
|
} |
|
|
|
|
} catch (Exception e) { |
|
|
|
|
e.printStackTrace(); |
|
|
|
|
log.error("【金四服务类】【金财数科】【查询红字信息表】API请求异常,外部报文返回code非0000。错误信息:{}", e.getMessage()); |
|
|
|
|
return new HXResponse("查询红字信息表接口异常"); |
|
|
|
|
|
|
|
|
|
return new HXResponse(retmsg); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return null; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|