From 31d3c53238bdfda5184118b87e5dd8f2ef3ab976 Mon Sep 17 00:00:00 2001 From: liufeilong Date: Wed, 22 Feb 2023 16:45:08 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=8F=91=E7=A5=A8=E6=8E=A8=E9=80=81?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E5=AE=8C=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dxhy/order/constant/OrderInfoEnum.java | 18 +++--- .../service/impl/PushInvoiceServiceImpl.java | 57 ++++++++++++++++++- 2 files changed, 63 insertions(+), 12 deletions(-) diff --git a/order-management-common/src/main/java/com/dxhy/order/constant/OrderInfoEnum.java b/order-management-common/src/main/java/com/dxhy/order/constant/OrderInfoEnum.java index 8915cd99..757317c9 100644 --- a/order-management-common/src/main/java/com/dxhy/order/constant/OrderInfoEnum.java +++ b/order-management-common/src/main/java/com/dxhy/order/constant/OrderInfoEnum.java @@ -1231,15 +1231,15 @@ public enum OrderInfoEnum { /** * 接口业务ID - * FI006 金税平台将金税开票信息返回SAP的接口(ERP-FI-INT-033) - * FI007 SAP销售结算信息传给金税系统(ERP-FI-INT-034) - * FI008 金税发票作废信息返回到SAP(ERP-FI-INT-041) - * FI010 销售结算报账单的驳回状态传给发票系统(ERP-FI-INT-046) - */ - INTERFACE_BUSINESS_ID_FPKJTS("FI006","发票开具回推"), - INTERFACE_BUSINESS_ID_FPKJ("FI007","发票开具"), - INTERFACE_BUSINESS_ID_FPZFTS("FI008","发票作废回推"), - INTERFACE_BUSINESS_ID_DDZTGX("FI010","订单状态更新"), + * FI006 FI843 金税平台将金税开票信息返回SAP的接口(ERP-FI-INT-033) + * FI007 FI840 SAP销售结算信息传给金税系统(ERP-FI-INT-034) + * FI008 FI844 金税发票作废信息返回到SAP(ERP-FI-INT-041) + * FI010 FI841 销售结算报账单的驳回状态传给发票系统(ERP-FI-INT-046) + */ + INTERFACE_BUSINESS_ID_FPKJTS("FI843","发票开具回推"), + INTERFACE_BUSINESS_ID_FPKJ("FI840","发票开具"), + INTERFACE_BUSINESS_ID_FPZFTS("FI844","发票作废回推"), + INTERFACE_BUSINESS_ID_DDZTGX("FI841","订单状态更新"), ; /** diff --git a/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/manager/service/impl/PushInvoiceServiceImpl.java b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/manager/service/impl/PushInvoiceServiceImpl.java index 87b85b10..1b9b09a8 100644 --- a/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/manager/service/impl/PushInvoiceServiceImpl.java +++ b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/manager/service/impl/PushInvoiceServiceImpl.java @@ -28,6 +28,7 @@ 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.PoCommonRequestParam; import com.dxhy.order.consumer.openapi.protocol.po.PoCommonResponseParam; +import com.dxhy.order.consumer.openapi.protocol.po.generateinvoicepush.sap.FpkjtsMxSap; 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; @@ -38,7 +39,9 @@ import com.dxhy.order.consumer.openapi.protocol.v4.push.*; import com.dxhy.order.consumer.openapi.protocol.v5.DxhyInterfaceResponse; import com.dxhy.order.consumer.openapi.protocol.v5.invalid.ZffptsV5; import com.dxhy.order.consumer.openapi.protocol.v5.invalid.ZffpxxV5; +import com.dxhy.order.consumer.openapi.protocol.v5.order.DdfpxxV5; import com.dxhy.order.consumer.openapi.protocol.v5.order.DdfpzxxV5; +import com.dxhy.order.consumer.openapi.protocol.v5.order.DdmxxxV5; import com.dxhy.order.consumer.openapi.protocol.v6.order.QdTxxBO; import com.dxhy.order.consumer.openapi.service.CommonDisposeService; import com.dxhy.order.consumer.openapi.service.InterfaceServiceV5; @@ -65,6 +68,7 @@ import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.math.BigDecimal; import java.text.SimpleDateFormat; import java.util.*; @@ -327,7 +331,7 @@ public class PushInvoiceServiceImpl implements PushInvoiceService { boolean sendPushDelay = false; String errorMsg = ""; //TODO lfl 系统来源待赋值 - String xtly = ""; + String xtly = "SAP"; try { //查询多个推送地址 @@ -864,9 +868,56 @@ public class PushInvoiceServiceImpl implements PushInvoiceService { //发票开具推送 if(OrderInfoEnum.SYS_SOURCE_SAP.getKey().equals(xtly)){ DdfpzxxV5 ddfpzxxV5 = JsonUtils.getInstance().parseObject(content, DdfpzxxV5.class); + DdfpxxV5 ddfpxx = ddfpzxxV5.getDDFPXX(); + List ddmxxx = ddfpzxxV5.getDDMXXX(); FpkjtsReqSap fpkjtsReqSap = new FpkjtsReqSap(); - //TODO lfl 发票推送数据转换 - + List itemList = new ArrayList<>(); + //主信息 + fpkjtsReqSap.setZJSDH(ddfpxx.getDDH()); + fpkjtsReqSap.setZFPDM(ddfpxx.getFPDM()); + fpkjtsReqSap.setZFPHM(ddfpxx.getFPHM()); + //TODO lfl 发票类型需要做转换 + fpkjtsReqSap.setZFPLX(ddfpxx.getFPLXDM()); + fpkjtsReqSap.setZXFBM(ddfpxx.getXHFSBH()); + fpkjtsReqSap.setZGFBH(ddfpxx.getGMFSBH()); + fpkjtsReqSap.setZBHSJEY(ddfpxx.getHJJE()); + fpkjtsReqSap.setZZSEY(ddfpxx.getHJSE()); + fpkjtsReqSap.setZHSJEY(ddfpxx.getJSHJ()); + fpkjtsReqSap.setZZBZ(ddfpxx.getBZ()); + fpkjtsReqSap.setZFPZT(ConfigureConstant.STRING_1);//0-作废、1-正常 + fpkjtsReqSap.setZKPRQ(ddfpxx.getKPRQ()); + fpkjtsReqSap.setZGFMC(ddfpxx.getGMFMC()); + fpkjtsReqSap.setZGFSH(ddfpxx.getGMFSBH()); + fpkjtsReqSap.setZXFMC(ddfpxx.getXHFMC()); + fpkjtsReqSap.setZXFSH(ddfpxx.getXHFSBH()); + fpkjtsReqSap.setZTID(ddfpxx.getFPDM()+ddfpxx.getFPHM()+ddfpxx.getFPLXDM()); + fpkjtsReqSap.setZGFZH(ddfpxx.getGMFZH()); + fpkjtsReqSap.setZGFDH(ddfpxx.getGMFDH()); + fpkjtsReqSap.setZXFDH(ddfpxx.getXHFDH()); + fpkjtsReqSap.setZXFZH(ddfpxx.getXHFZH()); + fpkjtsReqSap.setZGSDM(""); + fpkjtsReqSap.setZYWDJ(""); + //明细信息 + ddmxxx.stream().forEach(f -> { + FpkjtsMxSap detail = new FpkjtsMxSap(); + detail.setZJSDH(ddfpxx.getDDH()); + detail.setZFPDM(ddfpxx.getFPDM()); + detail.setZFPHM(ddfpxx.getFPHM()); + detail.setZFPHH(f.getXH()); + detail.setMATNR(""); + detail.setZGGXH(f.getGGXH()); + detail.setZSLDW(f.getDW()); + detail.setZZSL(f.getSPSL()); + detail.setZTAX(f.getSL()); + detail.setZBHSJEY(f.getJE()); + detail.setZZSEY(f.getSE()); + detail.setZHSJEY(new BigDecimal(f.getJE()).add(new BigDecimal(f.getSE())).toString()); + detail.setINVOICEDATE(ddfpxx.getKPRQ()); + detail.setINVOICETYPE(ddfpxx.getFPLXDM()); + detail.setZHWMC(f.getXMMC()); + detail.setZSM(""); + }); + fpkjtsReqSap.setITITEM(itemList); IsInput isInput = new IsInput(); isInput.setSYSID(OrderInfoEnum.SYS_SIGN_FP.getKey()); isInput.setIFYWID(OrderInfoEnum.INTERFACE_BUSINESS_ID_FPKJTS.getKey());