销项合并新增接口合并

beta-prop-all^2
dongxiaoke 2 years ago
parent 79b5343d98
commit 9b94fb1ea8
  1. 47
      jianshui-admin/src/main/java/com/jianshui/api/controller/http/invoice/v1/InvoiceController.java
  2. 41
      jianshui-admin/src/main/java/com/jianshui/api/controller/http/invoiceall/v1/InvoiceAllController.java
  3. 5
      jianshui-common/src/main/java/com/jianshui/common/constant/WebServiceConstant.java
  4. 37
      jianshui-invoice-all/src/main/java/com/jianshui/invoiceall/domain/dto/jcsk/RedInvoiceDetailDTO.java
  5. 25
      jianshui-invoice-all/src/main/java/com/jianshui/invoiceall/domain/dto/jcsk/RedInvoiceDetailJsonDataDTO.java
  6. 11
      jianshui-invoice-all/src/main/java/com/jianshui/invoiceall/service/IInvoiceAll.java
  7. 53
      jianshui-invoice-all/src/main/java/com/jianshui/invoiceall/service/impl/InvoiceAllImpl.java
  8. 25
      jianshui-invoice/src/main/java/com/jianshui/invoice/domain/dto/api/InvoiceAllRedInvoiceDetailJsonDataTWODTO.java
  9. 36
      jianshui-invoice/src/main/java/com/jianshui/invoice/domain/dto/api/InvoiceAllRedInvoiceDetailTWODTO.java
  10. 25
      jianshui-invoice/src/main/java/com/jianshui/invoice/domain/dto/api/jcsk/RedInvoiceDetailJsonDataTWODTO.java
  11. 37
      jianshui-invoice/src/main/java/com/jianshui/invoice/domain/dto/api/jcsk/RedInvoiceDetailTWODTO.java
  12. 14
      jianshui-invoice/src/main/java/com/jianshui/invoice/service/IInvoiceApiService.java
  13. 10
      jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/AisinoConsoleInvoiceApiServiceImpl.java
  14. 10
      jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/ElephantInvoiceApiServiceImpl.java
  15. 52
      jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/JcskInvoiceApiServiceImpl.java

@ -10,10 +10,7 @@ import com.jianshui.common.utils.http.HttpHelper;
import com.jianshui.invoice.domain.BillInfo;
import com.jianshui.invoice.domain.Redinfo;
import com.jianshui.invoice.domain.dto.*;
import com.jianshui.invoice.domain.dto.api.InvoiceAllFileAcquisitionOnTWODTO;
import com.jianshui.invoice.domain.dto.api.InvoiceAllFileAcquisitionTWODTO;
import com.jianshui.invoice.domain.dto.api.InvoiceAllKshcTWODTO;
import com.jianshui.invoice.domain.dto.api.InvoiceAllShhzTWODTO;
import com.jianshui.invoice.domain.dto.api.*;
import com.jianshui.invoice.service.IInvoiceApiService;
import com.jianshui.invoice.service.IInvoiceRequestService;
import com.jianshui.invoice.factory.IInvoiceRequestFactory;
@ -21,10 +18,7 @@ import com.jianshui.invoice.factory.IInvoiceResponseFactory;
import com.jianshui.invoice.factory.IInvoiceServiceFactory;
import com.jianshui.invoice.service.IInvoiceResponseService;
import com.jianshui.invoice.utils.ApiRequestUtils;
import com.jianshui.invoiceall.domain.dto.InvoiceAllFileAcquisitionDTO;
import com.jianshui.invoiceall.domain.dto.InvoiceAllFileAcquisitionOnDTO;
import com.jianshui.invoiceall.domain.dto.InvoiceAllKshcDTO;
import com.jianshui.invoiceall.domain.dto.InvoiceAllShhzDTO;
import com.jianshui.invoiceall.domain.dto.*;
import com.jianshui.invoiceall.service.IInvoiceAll;
import com.jianshui.invoiceall.service.IInvoiceAllRequestService;
import com.jianshui.invoiceall.service.IInvoiceAllResponseService;
@ -1153,6 +1147,43 @@ public class InvoiceController {
}
@ApiOperation("查询红字信息表明细")
@ApiImplicitParams({
@ApiImplicitParam(name = "", value = "身份认证", dataType = "string", example = "1130", required = true),
@ApiImplicitParam(name = "order", value = "请求体", required = true)})
@PostMapping({"/api/invoice_all/v2/queryRedInfoDetail/{identity}", "/api/invoice_all/v2/queryRedInfoDetail"})
public Object queryRedInfoDetail(HttpServletRequest request, String identity) throws Exception {
// auditRedInfo
if (StringUtils.isEmpty(identity)) {
return AjaxResult.error(ErrorCode.EMPTY_IDENTITY);
}
Companyservice companyservice = iCompanyserviceService.selectCompanyserviceByIdentity(identity);
if (companyservice == null) {
return AjaxResult.error(ErrorCode.COMPANY_NOT_FOUND);
}
// 获得入口报文适配器
String requestAdapterKey = serviceManageService.getRequestAdapterKey("invoice", companyservice.getCompanyid());
IInvoiceRequestService invoiceRequestService = invoiceRequestFactory.getService(requestAdapterKey);
JSONObject decryptResult = invoiceRequestService.decrypt(request, companyservice, "");
// 获得请求实例,并且进行扣费
String serviceKey = serviceManageService.getCompanyServiceSupplier("invoice", companyservice.getCompanyid());
serviceManageService.companyConsume("invoice", companyservice.getCompanyid());
InvoiceAllRedInvoiceDetailTWODTO invoiceAllRedInvoiceDetailDTO= decryptResult.toJavaObject(InvoiceAllRedInvoiceDetailTWODTO.class);
IInvoiceApiService invoiceService = invoiceServiceFactory.getService(serviceKey);
HXResponse result = invoiceService.queryRedInfoDetail(invoiceAllRedInvoiceDetailDTO, companyservice);
String responseAdapterKey = serviceManageService.getResponseAdapterKey("invoice", companyservice.getCompanyid());
IInvoiceResponseService invoiceResponseService = invoiceResponseFactory.getService(responseAdapterKey);
return invoiceResponseService.response(result, companyservice, "");
}

@ -618,6 +618,47 @@ public class InvoiceAllController {
@ApiOperation("查询红字信息表明细")
@ApiImplicitParams({
@ApiImplicitParam(name = "", value = "身份认证", dataType = "string", example = "1130", required = true),
@ApiImplicitParam(name = "order", value = "请求体", required = true)})
@PostMapping({"/api/invoice_all/v1/queryRedInfoDetail/{identity}", "/api/invoice_all/v1/queryRedInfoDetail"})
public Object queryRedInfoDetail(HttpServletRequest request, String identity) throws Exception {
if (StringUtils.isEmpty(identity)) {
return AjaxResult.error(ErrorCode.EMPTY_IDENTITY);
}
Companyservice companyservice = iCompanyserviceService.selectCompanyserviceByIdentity(identity);
if (companyservice == null) {
return AjaxResult.error(ErrorCode.COMPANY_NOT_FOUND);
}
// 获得入口报文适配器
String requestAdapterKey = serviceManageService.getRequestAdapterKey(SERVICE_KEY, companyservice.getCompanyid());
IInvoiceAllRequestService incomeRequestService = invoiceAllRequestFactory.getService(requestAdapterKey);
JSONObject requestBody = incomeRequestService.decrypt(request, companyservice);
// 获得请求实例,并且进行扣费
String serviceKey = serviceManageService.getCompanyServiceSupplier(SERVICE_KEY, companyservice.getCompanyid());
IInvoiceAll invoiceAllService = iInvoceiAllServiceFactory.getService(serviceKey);
InvoiceAllRedInvoiceDetailDTO invoiceAllRedInvoiceDetailDTO= requestBody.toJavaObject(InvoiceAllRedInvoiceDetailDTO.class);
AjaxResult result = invoiceAllService.queryRedInfoDetail(companyservice, invoiceAllRedInvoiceDetailDTO);
//返回处理 增加调用次数
if (result.isSuccess()) {
serviceManageService.companyConsume(SERVICE_KEY, companyservice.getCompanyid());
}
//返回报文处理器
String responseAdapterKey = serviceManageService.getResponseAdapterKey(SERVICE_KEY, companyservice.getCompanyid());
IInvoiceAllResponseService incomeResponseService = invoiceAllResponseFactory.getService(responseAdapterKey);
return incomeResponseService.response(result, companyservice, "");
}

@ -90,6 +90,11 @@ public class WebServiceConstant {
*/
public final static String QDFPWJHQ = "qdfpwjhq";
/**
* 查询红字信息表明细
*/
public final static String CXHZFPXXQRDMX = "cxhzfpxxqrdmx";

@ -0,0 +1,37 @@
package com.jianshui.invoiceall.domain.dto.jcsk;
import com.jianshui.invoiceall.domain.dto.InvoiceAllRedInvoiceDetailJsonDataDTO;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotEmpty;
/**
* 查询红字信息表明细
* @author dxk
* @date 2022年12月09日 17:16
*/
@Data
public class RedInvoiceDetailDTO {
@NotEmpty
@ApiModelProperty(value = "true")
private String async;
@NotEmpty
@ApiModelProperty(value = "办税人身份证号")
private String bsrysfzjhm;
@NotEmpty
@ApiModelProperty(value = "地区编码(参考码表)")
private String dqbm;
@NotEmpty
@ApiModelProperty(value = "纳税人识别号")
private String nsrsbh;
private InvoiceAllRedInvoiceDetailJsonDataDTO jsonData;
}

@ -0,0 +1,25 @@
package com.jianshui.invoiceall.domain.dto.jcsk;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotEmpty;
/**
* 查询红字信息表明细
* @author dxk
* @date 2022年12月09日 17:16
*/
@Data
public class RedInvoiceDetailJsonDataDTO {
@NotEmpty
@ApiModelProperty(value = "红字发票信息确认单id")
private String hzfpxxqrdid;
@NotEmpty
@ApiModelProperty(value = "销售方纳税人识别号")
private String xsfnsrsbh;
}

@ -139,10 +139,13 @@ public interface IInvoiceAll {
AjaxResult getFileAcquisitionOn(Companyservice companyservice, InvoiceAllFileAcquisitionOnDTO invoiceAllFileAcquisitionDTO);
/**
* 查询红字信息表明细
* @param companyservice
* @param invoiceAllRedInvoiceDetailDTO
* @return
*/
AjaxResult queryRedInfoDetail(Companyservice companyservice, InvoiceAllRedInvoiceDetailDTO invoiceAllRedInvoiceDetailDTO);

@ -1153,5 +1153,58 @@ public class InvoiceAllImpl implements IInvoiceAll {
return AjaxResult.success(result);
}
/**
* 查询红字申请表明细
* @param companyservice
* @param invoiceAllRedInvoiceDetailDTO
* @return
*/
@Override
public AjaxResult queryRedInfoDetail(Companyservice companyservice, InvoiceAllRedInvoiceDetailDTO invoiceAllRedInvoiceDetailDTO) {
RedInvoiceDetailDTO redInvoiceDetailDTO = BeanUtil.copyProperties(invoiceAllRedInvoiceDetailDTO, RedInvoiceDetailDTO.class);
InvoiceAllRedInvoiceDetailJsonDataDTO redInvoiceDetailJsonDataDTO = BeanUtil.copyProperties(invoiceAllRedInvoiceDetailDTO.getJsonData(),InvoiceAllRedInvoiceDetailJsonDataDTO.class);
redInvoiceDetailDTO.setJsonData(redInvoiceDetailJsonDataDTO);
ValidateUtils.validate(redInvoiceDetailDTO);
ValidateUtils.validate(redInvoiceDetailJsonDataDTO);
JSONObject result = null;
try {
result = ApiHttp.request(WebServiceConstant.CXHZFPXXQRDMX, WebServiceConstant.URL, redInvoiceDetailDTO, 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)) {
JSONObject json = JSONUtil.parseObj(data);
String requestId = json.getOrDefault("requestId", "").toString();
if (StrUtil.isEmpty(requestId)) {
return AjaxResult.error(msg);
}
InvoiceAllApiLog allApiLog = new InvoiceAllApiLog();
allApiLog.setUrl(WebServiceConstant.QDFPWJHQ);
allApiLog.setSendMsg(redInvoiceDetailDTO.toString());
allApiLog.setResultMsg(JSONUtil.toJsonStr(result));
allApiLog.setCompany(companyservice.getSellertax());
allApiLog.setIdentityId(companyservice.getIdentity());
allApiLog.setRequestId(requestId);
allApiLog.setCreateTime(new Date());
allApiLogMapper.insertInvoiceAllApiLog(allApiLog);
} else {
return AjaxResult.error(msg);
}
} catch (Exception e) {
e.printStackTrace();
log.error("【金四服务类】【金财数科】【查询红字申请表明细】API请求异常,外部报文返回code非0000。错误信息:{}", e.getMessage());
return AjaxResult.error(ErrorCode.INCOME_ERROR);
}
return AjaxResult.success(result);
}
}

@ -0,0 +1,25 @@
package com.jianshui.invoice.domain.dto.api;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotEmpty;
/**
* 查询红字信息表明细
* @author dxk
* @date 2022年12月09日 17:16
*/
@Data
public class InvoiceAllRedInvoiceDetailJsonDataTWODTO {
@NotEmpty
@ApiModelProperty(value = "红字发票信息确认单id")
private String hzfpxxqrdid;
@NotEmpty
@ApiModelProperty(value = "销售方纳税人识别号")
private String xsfnsrsbh;
}

@ -0,0 +1,36 @@
package com.jianshui.invoice.domain.dto.api;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotEmpty;
/**
* 查询红字信息表明细
* @author dxk
* @date 2022年12月09日 17:16
*/
@Data
public class InvoiceAllRedInvoiceDetailTWODTO {
@NotEmpty
@ApiModelProperty(value = "true")
private String async;
@NotEmpty
@ApiModelProperty(value = "办税人身份证号")
private String bsrysfzjhm;
@NotEmpty
@ApiModelProperty(value = "地区编码(参考码表)")
private String dqbm;
@NotEmpty
@ApiModelProperty(value = "纳税人识别号")
private String nsrsbh;
private InvoiceAllRedInvoiceDetailJsonDataTWODTO jsonData;
}

@ -0,0 +1,25 @@
package com.jianshui.invoice.domain.dto.api.jcsk;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotEmpty;
/**
* 查询红字信息表明细
* @author dxk
* @date 2022年12月09日 17:16
*/
@Data
public class RedInvoiceDetailJsonDataTWODTO {
@NotEmpty
@ApiModelProperty(value = "红字发票信息确认单id")
private String hzfpxxqrdid;
@NotEmpty
@ApiModelProperty(value = "销售方纳税人识别号")
private String xsfnsrsbh;
}

@ -0,0 +1,37 @@
package com.jianshui.invoice.domain.dto.api.jcsk;
import com.jianshui.invoice.domain.dto.api.InvoiceAllRedInvoiceDetailJsonDataTWODTO;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotEmpty;
/**
* 查询红字信息表明细
* @author dxk
* @date 2022年12月09日 17:16
*/
@Data
public class RedInvoiceDetailTWODTO {
@NotEmpty
@ApiModelProperty(value = "true")
private String async;
@NotEmpty
@ApiModelProperty(value = "办税人身份证号")
private String bsrysfzjhm;
@NotEmpty
@ApiModelProperty(value = "地区编码(参考码表)")
private String dqbm;
@NotEmpty
@ApiModelProperty(value = "纳税人识别号")
private String nsrsbh;
private InvoiceAllRedInvoiceDetailJsonDataTWODTO jsonData;
}

@ -7,10 +7,7 @@ import com.jianshui.invoice.domain.BillInfo;
import com.jianshui.invoice.domain.Invoice;
import com.jianshui.invoice.domain.Redinfo;
import com.jianshui.invoice.domain.dto.*;
import com.jianshui.invoice.domain.dto.api.InvoiceAllFileAcquisitionOnTWODTO;
import com.jianshui.invoice.domain.dto.api.InvoiceAllFileAcquisitionTWODTO;
import com.jianshui.invoice.domain.dto.api.InvoiceAllKshcTWODTO;
import com.jianshui.invoice.domain.dto.api.InvoiceAllShhzTWODTO;
import com.jianshui.invoice.domain.dto.api.*;
import javax.servlet.http.HttpServletRequest;
@ -258,6 +255,11 @@ public interface IInvoiceApiService {
HXResponse auditRedInfo(InvoiceAllShhzTWODTO invoiceAllShhzTWODTO, Companyservice companyservice);
/**
* 查询红字信息表明细
* @param invoiceAllRedInvoiceDetailDTO
* @param companyservice
* @return
*/
HXResponse queryRedInfoDetail(InvoiceAllRedInvoiceDetailTWODTO invoiceAllRedInvoiceDetailDTO, Companyservice companyservice);
}

@ -18,10 +18,7 @@ import com.jianshui.common.utils.uuid.IdUtils;
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.InvoiceAllFileAcquisitionOnTWODTO;
import com.jianshui.invoice.domain.dto.api.InvoiceAllFileAcquisitionTWODTO;
import com.jianshui.invoice.domain.dto.api.InvoiceAllKshcTWODTO;
import com.jianshui.invoice.domain.dto.api.InvoiceAllShhzTWODTO;
import com.jianshui.invoice.domain.dto.api.*;
import com.jianshui.invoice.domain.dto.api.aisino.console.*;
import com.jianshui.invoice.domain.vo.api.aisino.console.AisinoConsoleInvoiceAddVO;
import com.jianshui.invoice.mapper.BillInfoMapper;
@ -976,5 +973,10 @@ public class AisinoConsoleInvoiceApiServiceImpl implements IInvoiceApiService {
return null;
}
@Override
public HXResponse queryRedInfoDetail(InvoiceAllRedInvoiceDetailTWODTO invoiceAllRedInvoiceDetailDTO, Companyservice companyservice) {
return null;
}
}

@ -26,10 +26,7 @@ import com.jianshui.invoice.domain.dto.*;
import com.jianshui.invoice.domain.dto.adapter.request.nuonuo2.QueryInvoiceDTO;
import com.jianshui.invoice.domain.dto.adapter.response.RedInfoDTO;
import com.jianshui.invoice.domain.dto.adapter.response.RedInfoDetailDTO;
import com.jianshui.invoice.domain.dto.api.InvoiceAllFileAcquisitionOnTWODTO;
import com.jianshui.invoice.domain.dto.api.InvoiceAllFileAcquisitionTWODTO;
import com.jianshui.invoice.domain.dto.api.InvoiceAllKshcTWODTO;
import com.jianshui.invoice.domain.dto.api.InvoiceAllShhzTWODTO;
import com.jianshui.invoice.domain.dto.api.*;
import com.jianshui.invoice.domain.dto.api.elephant.*;
import com.jianshui.invoice.mapper.BillInfoMapper;
import com.jianshui.invoice.mapper.InvoiceMapper;
@ -1782,5 +1779,10 @@ public class ElephantInvoiceApiServiceImpl implements IInvoiceApiService {
return null;
}
@Override
public HXResponse queryRedInfoDetail(InvoiceAllRedInvoiceDetailTWODTO invoiceAllRedInvoiceDetailDTO, Companyservice companyservice) {
return null;
}
}

@ -1,10 +1,7 @@
package com.jianshui.invoice.service.impl.api;
import java.util.Date;
import com.jianshui.invoice.domain.dto.api.InvoiceAllFileAcquisitionOnTWODTO;
import com.jianshui.invoice.domain.dto.api.InvoiceAllFileAcquisitionTWODTO;
import com.jianshui.invoice.domain.dto.api.InvoiceAllKshcTWODTO;
import com.jianshui.invoice.domain.dto.api.InvoiceAllShhzTWODTO;
import com.jianshui.invoice.domain.dto.api.*;
import com.jianshui.invoice.domain.dto.api.jcsk.*;
import cn.hutool.core.bean.BeanUtil;
@ -1217,10 +1214,57 @@ public class JcskInvoiceApiServiceImpl implements IInvoiceApiService {
return response;
}
/**
* 查询红字信息表明细
* @param invoiceAllRedInvoiceDetailDTO
* @param companyservice
* @return
*/
@Override
public HXResponse queryRedInfoDetail(InvoiceAllRedInvoiceDetailTWODTO invoiceAllRedInvoiceDetailDTO, Companyservice companyservice) {
RedInvoiceDetailTWODTO redInvoiceDetailDTO = BeanUtil.copyProperties(invoiceAllRedInvoiceDetailDTO, RedInvoiceDetailTWODTO.class);
InvoiceAllRedInvoiceDetailJsonDataTWODTO redInvoiceDetailJsonDataDTO = BeanUtil.copyProperties(invoiceAllRedInvoiceDetailDTO.getJsonData(),InvoiceAllRedInvoiceDetailJsonDataTWODTO.class);
redInvoiceDetailDTO.setJsonData(redInvoiceDetailJsonDataDTO);
ValidateUtils.validate(redInvoiceDetailDTO);
ValidateUtils.validate(redInvoiceDetailJsonDataDTO);
cn.hutool.json.JSONObject result = null;
try {
result = ApiHttp.request(WebServiceConstant.CXHZFPXXQRDMX, WebServiceConstant.URL, redInvoiceDetailDTO, 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);
}
InvoiceAllApiLog allApiLog = new InvoiceAllApiLog();
allApiLog.setUrl(WebServiceConstant.QDFPWJHQ);
allApiLog.setSendMsg(redInvoiceDetailDTO.toString());
allApiLog.setResultMsg(JSONUtil.toJsonStr(result));
allApiLog.setCompany(companyservice.getSellertax());
allApiLog.setIdentityId(companyservice.getIdentity());
allApiLog.setRequestId(requestId);
allApiLog.setCreateTime(new Date());
allApiLogMapper.insertInvoiceAllApiLog(allApiLog);
} else {
return new HXResponse(msg);
}
} catch (Exception e) {
e.printStackTrace();
log.error("【金四服务类】【金财数科】【查询红字申请表明细】API请求异常,外部报文返回code非0000。错误信息:{}", e.getMessage());
return new HXResponse("查询红字申请表明细错误!");
}
HXResponse response = new HXResponse("0000", "同步成功",result);
return response;
}
/**