产品CRM税务接口API接入标准规范1.0

This commit is contained in:
ZZM 2025-08-01 09:30:39 +08:00
parent da4a7059f7
commit 999c1c533b
10 changed files with 138 additions and 147 deletions

View File

@ -0,0 +1,26 @@
package com.kakarote.crm.constant;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* 税务接口服务ID
*/
@Getter
@AllArgsConstructor
public enum CrmTaxServiceIdEnum {
TAX_AUTHORITY_QUERY("JXSW.DZSWJ.CSXT.CXSWJG","税务机关查询服务"),
ENTERPRISE_CREDIT_RATING("JXSW.DZSWJ.CSXT.QYXYDJCX", "企业信用等级查询"),
ENTERPRISE_RISK_DETAIL("JXSW.DZSWJ.CSXT.QYTSFXMXCX", "查询企业推送风险明细"),
TAXPAYER_QUALIFICATION_CODE("JXSW.DZSWJ.CSXT.NSRZGRDXXCX", "查询纳税人资格代码列表"),
ENTERPRISE_INSURED_COUNT("JXSW.DZSWJ.CSXT.QYCBRSCX", "查询企业参保人数"),
ENTERPRISE_INCOME_TAX_ANNUAL("JXSW.DZSWJ.CSXT.QYSDSNDSBXXCX", "查询企业所得税年度申报信息"),
THREE_YEAR_INVOICE_SUMMARY("JXSW.DZSWJ.CSXT.CXFPHZXX", "查询近三年发票汇总"),
;
private final String id;
private final String description;
}

View File

@ -24,7 +24,6 @@ public class CrmSyncSwjgDTO implements Serializable {
public String toString() {
return "{" +
"swjgdm:'" + swjgdm + '\'' +
", sjswjgdm:'" + sjswjgdm + '\'' +
'}';
}
}

View File

@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.fasterxml.jackson.core.type.TypeReference;
import com.kakarote.core.security.EncryptionService;
import com.kakarote.core.servlet.BaseServiceImpl;
import com.kakarote.crm.constant.CrmTaxServiceIdEnum;
import com.kakarote.crm.entity.DTO.CrmSyncNsrzgDTO;
import com.kakarote.crm.entity.DTO.CrmWebServiceResponseDTO;
import com.kakarote.crm.entity.PO.CrmNsrzg;
@ -13,6 +14,7 @@ import com.kakarote.crm.mapper.CrmQyjbxxMapper;
import com.kakarote.crm.service.ICrmNsrzgService;
import com.kakarote.crm.util.AecUtils;
import com.kakarote.crm.util.JsonUtil;
import com.kakarote.crm.util.WebServiceHandlerUtil;
import com.kakarote.crm.webService.config.TaxWebServiceConfig;
import com.kakarote.crm.webService.entity.Body;
import com.kakarote.crm.webService.util.WebServiceUtil;
@ -101,28 +103,16 @@ public class CrmNsrzgServiceImpl extends BaseServiceImpl<CrmNsrzgMapper, CrmNsrz
@Override
public List<CrmNsrzg> syncDataByDjxh(CrmSyncNsrzgDTO crmSyncNsrzgDTO) throws Exception {
Body object = new Body();
object.setSid("JXSW.DZSWJ.CSXT.NSRZGRDXXCX");
object.setParams(crmSyncNsrzgDTO.toString());
String respJson = WebServiceHandlerUtil.connect(
CrmTaxServiceIdEnum.TAXPAYER_QUALIFICATION_CODE.getId(),
crmSyncNsrzgDTO.toString(),
config
);
String sid = object.getSid ();
System.out.println("config:"+config.getEtaxServiceUrl());
System.out.println("config:"+config.getAecEncryptKey());
String requestXml = WebServiceUtil.createRequestXml (sid, object.getParams (), config);
System.out.println ("requestXml = " + requestXml);
String response = WebServiceUtil.getEtaxService (config).doService (sid, requestXml);
System.out.println ("response = " + response);
XmlService service = WebServiceUtil.getResponse (response);
String respJson = AecUtils.decrypt (service.getBody (), config.getAecEncryptKey ());
System.out.println ("respJson = " + respJson);
CrmWebServiceResponseDTO<List<CrmNsrzg>> dto = JsonUtil.toObject(respJson, new TypeReference<CrmWebServiceResponseDTO<List<CrmNsrzg>>>() {});
CrmWebServiceResponseDTO<List<CrmNsrzg>> dto = JsonUtil.toObject(
respJson,
new TypeReference<CrmWebServiceResponseDTO<List<CrmNsrzg>>>() {}
);
List<CrmNsrzg> crmNsrzgList = dto.getData();

View File

@ -4,6 +4,7 @@ import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.fasterxml.jackson.core.type.TypeReference;
import com.kakarote.core.servlet.BaseServiceImpl;
import com.kakarote.crm.constant.CrmTaxServiceIdEnum;
import com.kakarote.crm.entity.DTO.CrmSyncQycbrsDTO;
import com.kakarote.crm.entity.DTO.CrmWebServiceResponseDTO;
import com.kakarote.crm.entity.PO.CrmQycbrs;
@ -14,6 +15,7 @@ import com.kakarote.crm.mapper.CrmQyjbxxMapper;
import com.kakarote.crm.service.ICrmQycbrsService;
import com.kakarote.crm.util.AecUtils;
import com.kakarote.crm.util.JsonUtil;
import com.kakarote.crm.util.WebServiceHandlerUtil;
import com.kakarote.crm.webService.config.TaxWebServiceConfig;
import com.kakarote.crm.webService.entity.Body;
import com.kakarote.crm.webService.util.WebServiceUtil;
@ -121,26 +123,11 @@ public class CrmQycbrsServiceImpl extends BaseServiceImpl<CrmQycbrsMapper, CrmQy
@Override
public List<CrmQycbrs> syncDataByDjxhAndYf(CrmSyncQycbrsDTO crmSyncQycbrsDTO) throws Exception {
Body object = new Body();
object.setSid("JXSW.DZSWJ.CSXT.QYCBRSCX");
object.setParams(crmSyncQycbrsDTO.toString());
String sid = object.getSid ();
System.out.println("config:"+config.getEtaxServiceUrl());
System.out.println("config:"+config.getAecEncryptKey());
String requestXml = WebServiceUtil.createRequestXml (sid, object.getParams (), config);
System.out.println ("requestXml = " + requestXml);
String response = WebServiceUtil.getEtaxService (config).doService (sid, requestXml);
System.out.println ("response = " + response);
XmlService service = WebServiceUtil.getResponse (response);
String respJson = AecUtils.decrypt (service.getBody (), config.getAecEncryptKey ());
System.out.println ("respJson = " + respJson);
String respJson = WebServiceHandlerUtil.connect(
CrmTaxServiceIdEnum.ENTERPRISE_INSURED_COUNT.getId(),
crmSyncQycbrsDTO.toString(),
config
);
CrmWebServiceResponseDTO<List<CrmQycbrs>> dto = JsonUtil.toObject(respJson, new TypeReference<CrmWebServiceResponseDTO<List<CrmQycbrs>>>() {});

View File

@ -5,6 +5,7 @@ import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.fasterxml.jackson.core.type.TypeReference;
import com.kakarote.core.servlet.BaseServiceImpl;
import com.kakarote.crm.constant.CrmTaxServiceIdEnum;
import com.kakarote.crm.entity.BO.CrmQueryQyfxmxBO;
import com.kakarote.crm.entity.DTO.CrmSyncQyfxmxDTO;
import com.kakarote.crm.entity.DTO.CrmWebServiceResponseDTO;
@ -17,6 +18,7 @@ import com.kakarote.crm.mapper.CrmQyjbxxMapper;
import com.kakarote.crm.service.ICrmQyfxmxService;
import com.kakarote.crm.util.AecUtils;
import com.kakarote.crm.util.JsonUtil;
import com.kakarote.crm.util.WebServiceHandlerUtil;
import com.kakarote.crm.webService.config.TaxWebServiceConfig;
import com.kakarote.crm.webService.entity.Body;
import com.kakarote.crm.webService.util.WebServiceUtil;
@ -122,9 +124,6 @@ public class CrmQyfxmxServiceImpl extends BaseServiceImpl<CrmQyfxmxMapper, CrmQy
@Override
public List<CrmQyfxmx> syncDataByDjxhAndPjnd(CrmSyncQyfxmxDTO crmSyncQyfxmxDTO) throws Exception {
Body object = new Body();
object.setSid("JXSW.DZSWJ.CSXT.QYTSFXMXCX");
String year = crmSyncQyfxmxDTO.getPjnd();
DateTime fxscsjq = DateUtil.beginOfYear(DateUtil.parse(year + "-01-01"));
@ -136,26 +135,16 @@ public class CrmQyfxmxServiceImpl extends BaseServiceImpl<CrmQyfxmxMapper, CrmQy
CrmQueryQyfxmxBO bo = new CrmQueryQyfxmxBO(djxh,fxscsjqStr,fxscsjzStr);
object.setParams(bo.toString());
String respJson = WebServiceHandlerUtil.connect(
CrmTaxServiceIdEnum.ENTERPRISE_RISK_DETAIL.getId(),
bo.toString(),
config
);
String sid = object.getSid ();
System.out.println("config:"+config.getEtaxServiceUrl());
System.out.println("config:"+config.getAecEncryptKey());
String requestXml = WebServiceUtil.createRequestXml (sid, object.getParams (), config);
System.out.println ("requestXml = " + requestXml);
String response = WebServiceUtil.getEtaxService (config).doService (sid, requestXml);
System.out.println ("response = " + response);
XmlService service = WebServiceUtil.getResponse (response);
String respJson = AecUtils.decrypt (service.getBody (), config.getAecEncryptKey ());
System.out.println ("respJson = " + respJson);
CrmWebServiceResponseDTO<List<CrmQyfxmx>> dto = JsonUtil.toObject(respJson, new TypeReference<CrmWebServiceResponseDTO<List<CrmQyfxmx>>>() {});
CrmWebServiceResponseDTO<List<CrmQyfxmx>> dto = JsonUtil.toObject(
respJson,
new TypeReference<CrmWebServiceResponseDTO<List<CrmQyfxmx>>>() {}
);
List<CrmQyfxmx> qyfxmxLsit = dto.getData();

View File

@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.fasterxml.jackson.core.type.TypeReference;
import com.kakarote.core.servlet.BaseServiceImpl;
import com.kakarote.crm.constant.CrmTaxServiceIdEnum;
import com.kakarote.crm.entity.BO.CrmAddMergeListBO;
import com.kakarote.crm.entity.DTO.CrmSyncQyjxfpAndQyxxfpDTO;
import com.kakarote.crm.entity.DTO.CrmWebServiceResponseDTO;
@ -22,6 +23,7 @@ import com.kakarote.crm.service.ICrmQyjxfpService;
import com.kakarote.crm.service.ICrmQyxxfpService;
import com.kakarote.crm.util.AecUtils;
import com.kakarote.crm.util.JsonUtil;
import com.kakarote.crm.util.WebServiceHandlerUtil;
import com.kakarote.crm.webService.config.TaxWebServiceConfig;
import com.kakarote.crm.webService.entity.Body;
import com.kakarote.crm.webService.util.WebServiceUtil;
@ -180,26 +182,11 @@ public class CrmQyjxfpServiceImpl extends BaseServiceImpl<CrmQyjxfpMapper, CrmQy
@Override
public CrmMergeListVO syncDataByShxydm(CrmSyncQyjxfpAndQyxxfpDTO dto,String nd) throws Exception {
Body object = new Body();
object.setSid("JXSW.DZSWJ.CSXT.CXFPHZXX");
object.setParams(dto.toString());
String sid = object.getSid ();
System.out.println("config:"+config.getEtaxServiceUrl());
System.out.println("config:"+config.getAecEncryptKey());
String requestXml = WebServiceUtil.createRequestXml (sid, object.getParams (), config);
System.out.println ("requestXml = " + requestXml);
String response = WebServiceUtil.getEtaxService (config).doService (sid, requestXml);
System.out.println ("response = " + response);
XmlService service = WebServiceUtil.getResponse (response);
String respJson = AecUtils.decrypt (service.getBody (), config.getAecEncryptKey ());
System.out.println ("respJson = " + respJson);
String respJson = WebServiceHandlerUtil.connect(
CrmTaxServiceIdEnum.THREE_YEAR_INVOICE_SUMMARY.getId(),
dto.toString(),
config
);
CrmWebServiceResponseDTO<CrmAddMergeListBO> responseDTO = JsonUtil.toObject(
respJson,

View File

@ -4,6 +4,7 @@ import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.fasterxml.jackson.core.type.TypeReference;
import com.kakarote.core.servlet.BaseServiceImpl;
import com.kakarote.crm.constant.CrmTaxServiceIdEnum;
import com.kakarote.crm.entity.DTO.CrmSyncDataQynsrdjDTO;
import com.kakarote.crm.entity.PO.CrmQyjbxx;
import com.kakarote.crm.entity.PO.CrmQynsrdj;
@ -14,6 +15,7 @@ import com.kakarote.crm.mapper.CrmQynsrdjMapper;
import com.kakarote.crm.service.ICrmQynsrdjService;
import com.kakarote.crm.util.AecUtils;
import com.kakarote.crm.util.JsonUtil;
import com.kakarote.crm.util.WebServiceHandlerUtil;
import com.kakarote.crm.webService.config.TaxWebServiceConfig;
import com.kakarote.crm.webService.entity.Body;
import com.kakarote.crm.webService.util.WebServiceUtil;
@ -94,28 +96,15 @@ public class CrmQynsrdjServiceImpl extends BaseServiceImpl<CrmQynsrdjMapper, Crm
@Override
public CrmQynsrdj syncDataByDjxhAndPjnd(CrmSyncDataQynsrdjDTO crmSyncDataQynsrdjDTO) throws Exception {
Body object = new Body();
object.setSid("JXSW.DZSWJ.CSXT.QYXYDJCX");
object.setParams(crmSyncDataQynsrdjDTO.toString());
String respJson = WebServiceHandlerUtil.connect(
CrmTaxServiceIdEnum.ENTERPRISE_CREDIT_RATING.getId(),
crmSyncDataQynsrdjDTO.toString(),
config);
String sid = object.getSid ();
System.out.println("config:"+config.getEtaxServiceUrl());
System.out.println("config:"+config.getAecEncryptKey());
String requestXml = WebServiceUtil.createRequestXml (sid, object.getParams (), config);
System.out.println ("requestXml = " + requestXml);
String response = WebServiceUtil.getEtaxService (config).doService (sid, requestXml);
System.out.println ("response = " + response);
XmlService service = WebServiceUtil.getResponse (response);
String respJson = AecUtils.decrypt (service.getBody (), config.getAecEncryptKey ());
System.out.println ("respJson = " + respJson);
CrmWebServiceResponseDTO<CrmQynsrdj> dto = JsonUtil.toObject(respJson, new TypeReference<CrmWebServiceResponseDTO<CrmQynsrdj>>() {});
CrmWebServiceResponseDTO<CrmQynsrdj> dto = JsonUtil.toObject(
respJson,
new TypeReference<CrmWebServiceResponseDTO<CrmQynsrdj>>() {}
);
CrmQynsrdj crmQynsrdj = dto.getData();
crmQynsrdj.setPjnd(crmSyncDataQynsrdjDTO.getPjnd());

View File

@ -5,6 +5,7 @@ import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.fasterxml.jackson.core.type.TypeReference;
import com.kakarote.core.servlet.BaseServiceImpl;
import com.kakarote.crm.constant.CrmTaxServiceIdEnum;
import com.kakarote.crm.entity.DTO.CrmSyncDataQynsrdjDTO;
import com.kakarote.crm.entity.DTO.CrmSyncQysdsndsbDTO;
import com.kakarote.crm.entity.DTO.CrmWebServiceResponseDTO;
@ -16,6 +17,7 @@ import com.kakarote.crm.mapper.CrmQysdsndsbMapper;
import com.kakarote.crm.service.ICrmQysdsndsbService;
import com.kakarote.crm.util.AecUtils;
import com.kakarote.crm.util.JsonUtil;
import com.kakarote.crm.util.WebServiceHandlerUtil;
import com.kakarote.crm.webService.config.TaxWebServiceConfig;
import com.kakarote.crm.webService.entity.Body;
import com.kakarote.crm.webService.util.WebServiceUtil;
@ -122,28 +124,16 @@ public class CrmQysdsndsbServiceImpl extends BaseServiceImpl<CrmQysdsndsbMapper,
@Override
public List<CrmQysdsndsb> syncDataByDjxhAndNd(CrmSyncQysdsndsbDTO crmSyncQysdsndsbDTO) throws Exception {
Body object = new Body();
object.setSid("JXSW.DZSWJ.CSXT.QYSDSNDSBXXCX");
object.setParams(crmSyncQysdsndsbDTO.toString());
String respJson = WebServiceHandlerUtil.connect(
CrmTaxServiceIdEnum.ENTERPRISE_INCOME_TAX_ANNUAL.getId(),
crmSyncQysdsndsbDTO.toString(),
config
);
String sid = object.getSid ();
System.out.println("config:"+config.getEtaxServiceUrl());
System.out.println("config:"+config.getAecEncryptKey());
String requestXml = WebServiceUtil.createRequestXml (sid, object.getParams (), config);
System.out.println ("requestXml = " + requestXml);
String response = WebServiceUtil.getEtaxService (config).doService (sid, requestXml);
System.out.println ("response = " + response);
XmlService service = WebServiceUtil.getResponse (response);
String respJson = AecUtils.decrypt (service.getBody (), config.getAecEncryptKey ());
System.out.println ("respJson = " + respJson);
CrmWebServiceResponseDTO<List<CrmQysdsndsb>> dto = JsonUtil.toObject(respJson, new TypeReference<CrmWebServiceResponseDTO<List<CrmQysdsndsb>>>() {});
CrmWebServiceResponseDTO<List<CrmQysdsndsb>> dto = JsonUtil.toObject(
respJson,
new TypeReference<CrmWebServiceResponseDTO<List<CrmQysdsndsb>>>() {}
);
List<CrmQysdsndsb> crmQysdsndsbList = dto.getData();

View File

@ -3,6 +3,7 @@ package com.kakarote.crm.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.fasterxml.jackson.core.type.TypeReference;
import com.kakarote.core.servlet.BaseServiceImpl;
import com.kakarote.crm.constant.CrmTaxServiceIdEnum;
import com.kakarote.crm.entity.DTO.CrmSyncSwjgDTO;
import com.kakarote.crm.entity.PO.CrmSwjg;
import com.kakarote.crm.entity.DTO.CrmWebServiceResponseDTO;
@ -10,6 +11,7 @@ import com.kakarote.crm.mapper.CrmSwjgMapper;
import com.kakarote.crm.service.ICrmSwjgService;
import com.kakarote.crm.util.AecUtils;
import com.kakarote.crm.util.JsonUtil;
import com.kakarote.crm.util.WebServiceHandlerUtil;
import com.kakarote.crm.webService.config.TaxWebServiceConfig;
import com.kakarote.crm.webService.entity.Body;
import com.kakarote.crm.webService.util.WebServiceUtil;
@ -52,28 +54,15 @@ public class CrmSwjgServiceImpl extends BaseServiceImpl<CrmSwjgMapper, CrmSwjg>
@Override
public List<CrmSwjg> syncDataBySwjgDmAndSjswjgDm(CrmSyncSwjgDTO crmSyncSwjgDTO) throws Exception {
Body object = new Body();
object.setSid("JXSW.DZSWJ.CSXT.CXSWJG");
object.setParams(crmSyncSwjgDTO.toString());
String respJson = WebServiceHandlerUtil.connect(
CrmTaxServiceIdEnum.TAX_AUTHORITY_QUERY.getId(),
crmSyncSwjgDTO.toString(),
config);
String sid = object.getSid ();
System.out.println("config:"+config.getEtaxServiceUrl());
System.out.println("config:"+config.getAecEncryptKey());
String requestXml = WebServiceUtil.createRequestXml (sid, object.getParams (), config);
System.out.println ("requestXml = " + requestXml);
String response = WebServiceUtil.getEtaxService (config).doService (sid, requestXml);
System.out.println ("response = " + response);
XmlService service = WebServiceUtil.getResponse (response);
String respJson = AecUtils.decrypt (service.getBody (), config.getAecEncryptKey ());
System.out.println ("respJson = " + respJson);
CrmWebServiceResponseDTO<List<CrmSwjg>> dto = JsonUtil.toObject(respJson, new TypeReference<CrmWebServiceResponseDTO<List<CrmSwjg>>>() {});
CrmWebServiceResponseDTO<List<CrmSwjg>> dto = JsonUtil.toObject(
respJson,
new TypeReference<CrmWebServiceResponseDTO<List<CrmSwjg>>>() {}
);
List<CrmSwjg> crmSwjgList = dto.getData();

View File

@ -0,0 +1,45 @@
package com.kakarote.crm.util;
import com.kakarote.crm.webService.config.TaxWebServiceConfig;
import com.kakarote.crm.webService.entity.Body;
import com.kakarote.crm.webService.util.WebServiceUtil;
import com.kakarote.crm.webService.util.XmlService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
@Component
public class WebServiceHandlerUtil {
private static final Logger log = LoggerFactory.getLogger(WebServiceHandlerUtil.class);
public static String connect(String serveID,String param,TaxWebServiceConfig config) throws Exception {
Body object = new Body();
object.setSid(serveID);
object.setParams(param);
String sid = object.getSid ();
log.info("config:"+config.getEtaxServiceUrl());
log.info("config:"+config.getAecEncryptKey());
String requestXml = WebServiceUtil.createRequestXml (sid, object.getParams (), config);
log.info("requestXml:"+requestXml);
String response = WebServiceUtil.getEtaxService (config).doService (sid, requestXml);
log.info("response:"+response);
XmlService service = WebServiceUtil.getResponse (response);
String respJson = AecUtils.decrypt (service.getBody (), config.getAecEncryptKey ());
log.info("respJson:"+respJson);
return respJson;
}
}