feat: 适配发票作废推送接口(初版)

liufeilong 2 years ago committed by WangQi
parent c72b49c585
commit 95980d24c6
  1. 144
      order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/manager/service/impl/PushInvoiceServiceImpl.java
  2. 4
      order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/protocol/po/generateinvoicepush/sap/FpkjtsMxSap.java
  3. 8
      order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/protocol/po/generateinvoicepush/sap/FpkjtsReqSap.java
  4. 29
      order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/protocol/po/voidinvoicepush/sap/FpzftsReqSap.java

@ -28,7 +28,8 @@ import com.dxhy.order.consumer.openapi.protocol.po.EsOutput;
import com.dxhy.order.consumer.openapi.protocol.po.IsInput; import com.dxhy.order.consumer.openapi.protocol.po.IsInput;
import com.dxhy.order.consumer.openapi.protocol.po.PoCommonRequestParam; import com.dxhy.order.consumer.openapi.protocol.po.PoCommonRequestParam;
import com.dxhy.order.consumer.openapi.protocol.po.PoCommonResponseParam; import com.dxhy.order.consumer.openapi.protocol.po.PoCommonResponseParam;
import com.dxhy.order.consumer.openapi.protocol.po.pushinvoice.sap.FptsReqSap; import com.dxhy.order.consumer.openapi.protocol.po.generateinvoicepush.sap.FpkjtsReqSap;
import com.dxhy.order.consumer.openapi.protocol.po.voidinvoicepush.sap.FpzftsReqSap;
import com.dxhy.order.consumer.openapi.protocol.v4.ResponseV4BO; import com.dxhy.order.consumer.openapi.protocol.v4.ResponseV4BO;
import com.dxhy.order.consumer.openapi.protocol.v4.invalid.ZftsxxReqBO; import com.dxhy.order.consumer.openapi.protocol.v4.invalid.ZftsxxReqBO;
import com.dxhy.order.consumer.openapi.protocol.v4.invalid.ZfxxRspBO; import com.dxhy.order.consumer.openapi.protocol.v4.invalid.ZfxxRspBO;
@ -325,6 +326,8 @@ public class PushInvoiceServiceImpl implements PushInvoiceService {
//判断数据是否需要放入延时队列再次推送 //判断数据是否需要放入延时队列再次推送
boolean sendPushDelay = false; boolean sendPushDelay = false;
String errorMsg = ""; String errorMsg = "";
//TODO lfl 系统来源待赋值
String xtly = "";
try { try {
//查询多个推送地址 //查询多个推送地址
@ -333,6 +336,8 @@ public class PushInvoiceServiceImpl implements PushInvoiceService {
queryPushInfo.setNsrsbh(fpTsMqData.getNsrsbh()); queryPushInfo.setNsrsbh(fpTsMqData.getNsrsbh());
//接口类型为发票状态推送 //接口类型为发票状态推送
queryPushInfo.setInterfaceType(fpTsMqData.getPushType()); queryPushInfo.setInterfaceType(fpTsMqData.getPushType());
//byzd1作为系统来源字段使用
queryPushInfo.setByzd1(xtly);
List<PushInfo> pushInfoList = pushInfoMapper.selectListByPushInfo(queryPushInfo); List<PushInfo> pushInfoList = pushInfoMapper.selectListByPushInfo(queryPushInfo);
log.info("查询到的推送地址信息:{}", JsonUtils.getInstance().toJsonString(pushInfoList)); log.info("查询到的推送地址信息:{}", JsonUtils.getInstance().toJsonString(pushInfoList));
@ -341,8 +346,7 @@ public class PushInvoiceServiceImpl implements PushInvoiceService {
String error = "税号:" + fpTsMqData.getNsrsbh() + ",推送地址没有配置"; String error = "税号:" + fpTsMqData.getNsrsbh() + ",推送地址没有配置";
return R.error(error); return R.error(error);
} }
//TODO lfl 系统来源待赋值
String xtly = "";
String fptsParam = ""; String fptsParam = "";
//多个地址循环推送 //多个地址循环推送
for (PushInfo pushInfo : pushInfoList) { for (PushInfo pushInfo : pushInfoList) {
@ -360,7 +364,7 @@ public class PushInvoiceServiceImpl implements PushInvoiceService {
} }
Map<String, String> requestMap = commonDisposeService.getRequestParameter(pushInfo.getNsrsbh(), pushInfo.getZipCode(), pushInfo.getEncryptCode(), content, pushInfo.getPushUrl(), pushInfo.getInterfaceType(), pushInfo.getVersionIdent()); Map<String, String> requestMap = commonDisposeService.getRequestParameter(pushInfo.getNsrsbh(), pushInfo.getZipCode(), pushInfo.getEncryptCode(), content, pushInfo.getPushUrl(), pushInfo.getInterfaceType(), pushInfo.getVersionIdent());
if(OrderInfoEnum.SYS_SOURCE_SAP.getKey().equals(xtly)){ if(OrderInfoEnum.SYS_SOURCE_SAP.getKey().equals(xtly)){
fptsParam = convertToYwxtParam(xtly,content); fptsParam = convertToYwxtParam(fpTsMqData,xtly,content);
}else { }else {
fptsParam = JsonUtils.getInstance().toJsonString(requestMap); fptsParam = JsonUtils.getInstance().toJsonString(requestMap);
} }
@ -382,30 +386,58 @@ public class PushInvoiceServiceImpl implements PushInvoiceService {
if (ConfigurerInfo.INTERFACE_VERSION_V5.equals(pushInfo.getVersionIdent()) if (ConfigurerInfo.INTERFACE_VERSION_V5.equals(pushInfo.getVersionIdent())
|| ConfigurerInfo.INTERFACE_VERSION_V6.equals(pushInfo.getVersionIdent())) { || ConfigurerInfo.INTERFACE_VERSION_V6.equals(pushInfo.getVersionIdent())) {
DxhyInterfaceResponse dxhyInterfaceResponse = new DxhyInterfaceResponse(); DxhyInterfaceResponse dxhyInterfaceResponse = new DxhyInterfaceResponse();
if(OrderInfoEnum.SYS_SOURCE_SAP.getKey().equals(xtly)){ if (OrderInfoEnum.INTERFACE_TYPE_INVOICE_PUSH_STATUS_1.getKey().equals(fpTsMqData.getPushType())) {
PoCommonResponseParam poCommonResponseParam = JsonUtils.getInstance().parseObject(result, PoCommonResponseParam.class); if(OrderInfoEnum.SYS_SOURCE_SAP.getKey().equals(xtly)){
EsOutput es_output = poCommonResponseParam.getES_OUTPUT(); PoCommonResponseParam poCommonResponseParam = JsonUtils.getInstance().parseObject(result, PoCommonResponseParam.class);
String sapkey = es_output.getSAPKEY(); EsOutput es_output = poCommonResponseParam.getES_OUTPUT();
String ztype = es_output.getZTYPE(); String sapkey = es_output.getSAPKEY();
String zmessage = es_output.getZMESSAGE(); String ztype = es_output.getZTYPE();
DdfptsV5 ddfptsV5 = new DdfptsV5(); String zmessage = es_output.getZMESSAGE();
ddfptsV5.setDDQQLSH(sapkey); DdfptsV5 ddfptsV5 = new DdfptsV5();
ddfptsV5.setNSRSBH(""); ddfptsV5.setDDQQLSH(sapkey);
if(OrderInfoContentEnum.INVOICE_ERROR_CODE_OP_S.getKey().equals(ztype)){ ddfptsV5.setNSRSBH("");
ddfptsV5.setZTDM(ConfigureConstant.STRING_000000); if(OrderInfoContentEnum.INVOICE_ERROR_CODE_OP_S.getKey().equals(ztype)){
}else { ddfptsV5.setZTDM(ConfigureConstant.STRING_000000);
ddfptsV5.setZTDM(ConfigureConstant.STRING_9999); }else {
ddfptsV5.setZTDM(ConfigureConstant.STRING_9999);
}
ddfptsV5.setZTXX(zmessage);
dxhyInterfaceResponse.setReturnCode(ConfigureConstant.STRING_000000);
dxhyInterfaceResponse.setReturnMessage("处理成功");
dxhyInterfaceResponse.setEncryptCode(ConfigurerInfo.ENCRYPTCODE_0);
dxhyInterfaceResponse.setZipCode(ConfigurerInfo.ENCRYPTCODE_0);
dxhyInterfaceResponse.setContent(Base64Encoding.encode(JsonUtils.getInstance().toJsonString(ddfptsV5)));
}else{
dxhyInterfaceResponse = JsonUtils.getInstance().parseObject(result, DxhyInterfaceResponse.class);
}
}else if (OrderInfoEnum.INTERFACE_TYPE_INVOICE_PUSH_STATUS_2.getKey().equals(fpTsMqData.getPushType())) {
if(OrderInfoEnum.SYS_SOURCE_SAP.getKey().equals(xtly)){
PoCommonResponseParam poCommonResponseParam = JsonUtils.getInstance().parseObject(result, PoCommonResponseParam.class);
EsOutput es_output = poCommonResponseParam.getES_OUTPUT();
String sapkey = es_output.getSAPKEY();
String ztype = es_output.getZTYPE();
String zmessage = es_output.getZMESSAGE();
ZffpxxV5 zffpxxV5 = new ZffpxxV5();
zffpxxV5.setXHFSBH("");
zffpxxV5.setFPDM("");
zffpxxV5.setFPHM("");
if(OrderInfoContentEnum.INVOICE_ERROR_CODE_OP_S.getKey().equals(ztype)){
zffpxxV5.setZTDM(ConfigureConstant.STRING_000000);
}else {
zffpxxV5.setZTDM(ConfigureConstant.STRING_9999);
}
zffpxxV5.setZTXX(zmessage);
dxhyInterfaceResponse.setReturnCode(ConfigureConstant.STRING_000000);
dxhyInterfaceResponse.setReturnMessage("处理成功");
dxhyInterfaceResponse.setEncryptCode(ConfigurerInfo.ENCRYPTCODE_0);
dxhyInterfaceResponse.setZipCode(ConfigurerInfo.ENCRYPTCODE_0);
dxhyInterfaceResponse.setContent(Base64Encoding.encode(JsonUtils.getInstance().toJsonString(zffpxxV5)));
}else{
dxhyInterfaceResponse = JsonUtils.getInstance().parseObject(result, DxhyInterfaceResponse.class);
} }
ddfptsV5.setZTXX(zmessage);
dxhyInterfaceResponse.setReturnCode(ConfigureConstant.STRING_000000);
dxhyInterfaceResponse.setReturnMessage("处理成功");
dxhyInterfaceResponse.setEncryptCode(ConfigurerInfo.ENCRYPTCODE_0);
dxhyInterfaceResponse.setZipCode(ConfigurerInfo.ENCRYPTCODE_0);
dxhyInterfaceResponse.setContent(Base64Encoding.encode(JsonUtils.getInstance().toJsonString(ddfptsV5)));
}else{
dxhyInterfaceResponse = JsonUtils.getInstance().parseObject(result, DxhyInterfaceResponse.class);
} }
if (ObjectUtil.isNotNull(dxhyInterfaceResponse)) { if (ObjectUtil.isNotNull(dxhyInterfaceResponse)) {
if (ConfigureConstant.STRING_000000.equals(dxhyInterfaceResponse.getReturnCode())) { if (ConfigureConstant.STRING_000000.equals(dxhyInterfaceResponse.getReturnCode())) {
CommonRequestParam commonRequestParam1 = new CommonRequestParam(); CommonRequestParam commonRequestParam1 = new CommonRequestParam();
@ -825,27 +857,55 @@ public class PushInvoiceServiceImpl implements PushInvoiceService {
return content; return content;
} }
public String convertToYwxtParam(String xtly,String content){ public String convertToYwxtParam(CommonTsMqData fpTsMqData,String xtly,String content){
String ywxtParam = ""; String ywxtParam = "";
if(OrderInfoEnum.SYS_SOURCE_SAP.getKey().equals(xtly)){
DdfpzxxV5 ddfpzxxV5 = JsonUtils.getInstance().parseObject(content, DdfpzxxV5.class);
FptsReqSap fptsReqSap = new FptsReqSap();
//TODO lfl 发票推送数据转换
IsInput isInput = new IsInput(); if(OrderInfoEnum.INTERFACE_TYPE_INVOICE_PUSH_STATUS_1.getKey().equals(fpTsMqData.getPushType())){
isInput.setSYSID(OrderInfoEnum.SYS_SIGN_FP.getKey()); //发票开具推送
isInput.setIFYWID(OrderInfoEnum.INTERFACE_BUSINESS_ID_FPKJTS.getKey()); if(OrderInfoEnum.SYS_SOURCE_SAP.getKey().equals(xtly)){
isInput.setBSKEY(apiInvoiceCommonMapperService.getGenerateShotKey()); DdfpzxxV5 ddfpzxxV5 = JsonUtils.getInstance().parseObject(content, DdfpzxxV5.class);
isInput.setZORG(""); FpkjtsReqSap fpkjtsReqSap = new FpkjtsReqSap();
isInput.setZFILED5(""); //TODO lfl 发票推送数据转换
String jsonString = JsonUtils.getInstance().toJsonString(fptsReqSap);
Map map = JsonUtils.getInstance().parseObject(jsonString, Map.class); IsInput isInput = new IsInput();
isInput.setZDATA(map); isInput.setSYSID(OrderInfoEnum.SYS_SIGN_FP.getKey());
PoCommonRequestParam poCommonRequestParam = new PoCommonRequestParam(); isInput.setIFYWID(OrderInfoEnum.INTERFACE_BUSINESS_ID_FPKJTS.getKey());
poCommonRequestParam.setISINPUT(isInput); isInput.setBSKEY(apiInvoiceCommonMapperService.getGenerateShotKey());
isInput.setZORG("");
isInput.setZFILED5("");
String jsonString = JsonUtils.getInstance().toJsonString(fpkjtsReqSap);
Map map = JsonUtils.getInstance().parseObject(jsonString, Map.class);
isInput.setZDATA(map);
PoCommonRequestParam poCommonRequestParam = new PoCommonRequestParam();
poCommonRequestParam.setISINPUT(isInput);
ywxtParam = JsonUtils.getInstance().toJsonString(poCommonRequestParam); ywxtParam = JsonUtils.getInstance().toJsonString(poCommonRequestParam);
}
}else if(OrderInfoEnum.INTERFACE_TYPE_INVOICE_PUSH_STATUS_2.getKey().equals(fpTsMqData.getPushType())){
//发票作废推送
if(OrderInfoEnum.SYS_SOURCE_SAP.getKey().equals(xtly)){
ZffptsV5 zffptsV5 = JsonUtils.getInstance().parseObject(content, ZffptsV5.class);
FpzftsReqSap fpzftsReqSap = new FpzftsReqSap();
fpzftsReqSap.setZFPDM(zffptsV5.getFPDM());
fpzftsReqSap.setZFPHM(zffptsV5.getFPHM());
fpzftsReqSap.setZFPZT("");
fpzftsReqSap.setZJSDH("");
IsInput isInput = new IsInput();
isInput.setSYSID(OrderInfoEnum.SYS_SIGN_FP.getKey());
isInput.setIFYWID(OrderInfoEnum.INTERFACE_BUSINESS_ID_FPKJTS.getKey());
isInput.setBSKEY(apiInvoiceCommonMapperService.getGenerateShotKey());
isInput.setZORG("");
isInput.setZFILED5("");
String jsonString = JsonUtils.getInstance().toJsonString(fpzftsReqSap);
Map map = JsonUtils.getInstance().parseObject(jsonString, Map.class);
isInput.setZDATA(map);
PoCommonRequestParam poCommonRequestParam = new PoCommonRequestParam();
poCommonRequestParam.setISINPUT(isInput);
ywxtParam = JsonUtils.getInstance().toJsonString(poCommonRequestParam);
}
} }
return ywxtParam; return ywxtParam;
} }

@ -1,4 +1,4 @@
package com.dxhy.order.consumer.openapi.protocol.po.pushinvoice.sap; package com.dxhy.order.consumer.openapi.protocol.po.generateinvoicepush.sap;
import lombok.Data; import lombok.Data;
@ -8,7 +8,7 @@ import lombok.Data;
* @Date 2023-02-07 * @Date 2023-02-07
**/ **/
@Data @Data
public class FptsMxSap { public class FpkjtsMxSap {
/** /**
* 结算单号 * 结算单号
*/ */

@ -1,16 +1,16 @@
package com.dxhy.order.consumer.openapi.protocol.po.pushinvoice.sap; package com.dxhy.order.consumer.openapi.protocol.po.generateinvoicepush.sap;
import lombok.Data; import lombok.Data;
import java.util.List; import java.util.List;
/** /**
* @Description: SAP-发票推送请求实体 * @Description: SAP-发票开具推送请求实体
* @Author liufeilong * @Author liufeilong
* @Date 2023-02-07 * @Date 2023-02-07
**/ **/
@Data @Data
public class FptsReqSap { public class FpkjtsReqSap {
/** /**
* 结算单号 * 结算单号
*/ */
@ -266,5 +266,5 @@ public class FptsReqSap {
/** /**
* 行项目结构 * 行项目结构
*/ */
private List<FptsMxSap> ITITEM; private List<FpkjtsMxSap> ITITEM;
} }

@ -0,0 +1,29 @@
package com.dxhy.order.consumer.openapi.protocol.po.voidinvoicepush.sap;
import lombok.Data;
/**
* @Description: SAP-发票作废推送请求实体
* @Author liufeilong
* @Date 2023-02-08
**/
@Data
public class FpzftsReqSap {
/**
* 发票代码
*/
private String ZFPDM;
/**
* 发票号码
*/
private String ZFPHM;
/**
* 发票状态
*/
private String ZFPZT;
/**
* 结算单号
*/
private String ZJSDH;
}
Loading…
Cancel
Save