From 840f7c3d7fdc06c942accf8eb848caa30b5c0c5e Mon Sep 17 00:00:00 2001 From: liufeilong Date: Tue, 28 Feb 2023 17:07:46 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20po=E5=8F=91=E7=A5=A8=E5=BC=80=E5=85=B7?= =?UTF-8?q?=E3=80=81=E5=8F=91=E7=A5=A8=E5=9B=9E=E6=8E=A8=E3=80=81=E4=BD=9C?= =?UTF-8?q?=E5=BA=9F=E5=9B=9E=E6=8E=A8=E6=8E=A5=E5=8F=A3=E8=B0=83=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/PushInvoiceServiceImpl.java | 23 ++++++++++++------- .../po/generateinvoice/sap/FpkjMxSap.java | 2 +- .../generateinvoicepush/sap/FpkjtsReqSap.java | 2 ++ .../consumer/utils/BeanTransitionUtils.java | 20 +++++++++++++--- .../impl/InvalidInvoiceServiceImpl.java | 10 ++++---- 5 files changed, 40 insertions(+), 17 deletions(-) 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 8da718c8..ce718438 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 @@ -401,8 +401,9 @@ public class PushInvoiceServiceImpl implements PushInvoiceService { String sapkey = es_output.getSAPKEY(); String ztype = es_output.getZTYPE(); String zmessage = es_output.getZMESSAGE(); + List resultList = new ArrayList<>(); DdfptsV5 ddfptsV5 = new DdfptsV5(); - ddfptsV5.setDDQQLSH(sapkey); + ddfptsV5.setDDQQLSH(fpTsMqData.getFpTsMqData().getFpqqlsh()); ddfptsV5.setNSRSBH(""); if(OrderInfoContentEnum.INVOICE_ERROR_CODE_OP_S.getKey().equals(ztype)){ ddfptsV5.setZTDM(ConfigureConstant.STRING_000000); @@ -414,7 +415,8 @@ public class PushInvoiceServiceImpl implements PushInvoiceService { dxhyInterfaceResponse.setReturnMessage("处理成功"); dxhyInterfaceResponse.setEncryptCode(ConfigurerInfo.ENCRYPTCODE_0); dxhyInterfaceResponse.setZipCode(ConfigurerInfo.ENCRYPTCODE_0); - dxhyInterfaceResponse.setContent(Base64Encoding.encode(JsonUtils.getInstance().toJsonString(ddfptsV5))); + resultList.add(ddfptsV5); + dxhyInterfaceResponse.setContent(Base64Encoding.encode(JsonUtils.getInstance().toJsonString(resultList))); }else{ dxhyInterfaceResponse = JsonUtils.getInstance().parseObject(result, DxhyInterfaceResponse.class); } @@ -426,9 +428,9 @@ public class PushInvoiceServiceImpl implements PushInvoiceService { String ztype = es_output.getZTYPE(); String zmessage = es_output.getZMESSAGE(); ZffpxxV5 zffpxxV5 = new ZffpxxV5(); - zffpxxV5.setXHFSBH(""); - zffpxxV5.setFPDM(""); - zffpxxV5.setFPHM(""); + zffpxxV5.setXHFSBH(fpTsMqData.getZfTsMqData().getNsrsbh()); + zffpxxV5.setFPDM(fpTsMqData.getZfTsMqData().getFpdm()); + zffpxxV5.setFPHM(fpTsMqData.getZfTsMqData().getFphm()); if(OrderInfoContentEnum.INVOICE_ERROR_CODE_OP_S.getKey().equals(ztype)){ zffpxxV5.setZTDM(ConfigureConstant.STRING_000000); }else { @@ -874,6 +876,7 @@ public class PushInvoiceServiceImpl implements PushInvoiceService { DdfpzxxV5 ddfpzxxV5 = JsonUtils.getInstance().parseObject(content.substring(1,content.length()-1), DdfpzxxV5.class); DdfpxxV5 ddfpxx = ddfpzxxV5.getDDFPXX(); List ddmxxx = ddfpzxxV5.getDDMXXX(); + List mainList = new ArrayList<>(); FpkjtsReqSap fpkjtsReqSap = new FpkjtsReqSap(); List itemList = new ArrayList<>(); //主信息 @@ -919,6 +922,7 @@ public class PushInvoiceServiceImpl implements PushInvoiceService { detail.setINVOICETYPE(ddfpxx.getFPLXDM()); detail.setZHWMC(f.getXMMC()); detail.setZSM(""); + itemList.add(detail); }); fpkjtsReqSap.setITITEM(itemList); IsInput isInput = new IsInput(); @@ -927,7 +931,8 @@ public class PushInvoiceServiceImpl implements PushInvoiceService { isInput.setBSKEY(apiInvoiceCommonMapperService.getGenerateShotKey()); isInput.setZORG(""); isInput.setZFILED5(poClient); - String jsonString = JsonUtils.getInstance().toJsonString(fpkjtsReqSap); + mainList.add(fpkjtsReqSap); + String jsonString = JsonUtils.getInstance().toJsonString(mainList); isInput.setZDATA(jsonString); PoCommonRequestParam poCommonRequestParam = new PoCommonRequestParam(); poCommonRequestParam.setIS_INPUT(isInput); @@ -938,6 +943,7 @@ public class PushInvoiceServiceImpl implements PushInvoiceService { //发票作废推送 if(OrderInfoEnum.SYS_SOURCE_SAP.getKey().equals(xtly)){ ZffptsV5 zffptsV5 = JsonUtils.getInstance().parseObject(content, ZffptsV5.class); + List zfList = new ArrayList<>(); FpzftsReqSap fpzftsReqSap = new FpzftsReqSap(); fpzftsReqSap.setZFPDM(zffptsV5.getFPDM()); fpzftsReqSap.setZFPHM(zffptsV5.getFPHM()); @@ -948,8 +954,9 @@ public class PushInvoiceServiceImpl implements PushInvoiceService { isInput.setIFYWID(OrderInfoEnum.INTERFACE_BUSINESS_ID_FPKJTS.getKey()); isInput.setBSKEY(apiInvoiceCommonMapperService.getGenerateShotKey()); isInput.setZORG(""); - isInput.setZFILED5(""); - String jsonString = JsonUtils.getInstance().toJsonString(fpzftsReqSap); + isInput.setZFILED5(poClient); + zfList.add(fpzftsReqSap); + String jsonString = JsonUtils.getInstance().toJsonString(zfList); isInput.setZDATA(jsonString); PoCommonRequestParam poCommonRequestParam = new PoCommonRequestParam(); poCommonRequestParam.setIS_INPUT(isInput); diff --git a/order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/protocol/po/generateinvoice/sap/FpkjMxSap.java b/order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/protocol/po/generateinvoice/sap/FpkjMxSap.java index 9757bb1b..6d81e010 100644 --- a/order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/protocol/po/generateinvoice/sap/FpkjMxSap.java +++ b/order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/protocol/po/generateinvoice/sap/FpkjMxSap.java @@ -34,7 +34,7 @@ public class FpkjMxSap { */ private String ZZSL; /** - * 税额 + * 税率 */ private String ZTAX; /** diff --git a/order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/protocol/po/generateinvoicepush/sap/FpkjtsReqSap.java b/order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/protocol/po/generateinvoicepush/sap/FpkjtsReqSap.java index 293ef94e..4003d1a3 100644 --- a/order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/protocol/po/generateinvoicepush/sap/FpkjtsReqSap.java +++ b/order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/protocol/po/generateinvoicepush/sap/FpkjtsReqSap.java @@ -1,5 +1,6 @@ package com.dxhy.order.consumer.openapi.protocol.po.generateinvoicepush.sap; +import com.alibaba.fastjson.annotation.JSONField; import lombok.Data; import java.util.List; @@ -266,5 +267,6 @@ public class FpkjtsReqSap { /** * 行项目结构 */ + @JSONField(name = "IT_ITEM") private List ITITEM; } diff --git a/order-management-consumer/src/main/java/com/dxhy/order/consumer/utils/BeanTransitionUtils.java b/order-management-consumer/src/main/java/com/dxhy/order/consumer/utils/BeanTransitionUtils.java index cb76957d..1c16a435 100644 --- a/order-management-consumer/src/main/java/com/dxhy/order/consumer/utils/BeanTransitionUtils.java +++ b/order-management-consumer/src/main/java/com/dxhy/order/consumer/utils/BeanTransitionUtils.java @@ -58,6 +58,7 @@ import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; import javax.annotation.Resource; +import java.math.BigDecimal; import java.text.DecimalFormat; import java.util.*; @@ -3249,22 +3250,35 @@ public class BeanTransitionUtils { ddtxxBO.setHJJE(req.getZBHSJE()); ddtxxBO.setHJSE(req.getZZSE()); ddtxxBO.setDDH(req.getZJSDH()); + //TODO lfl 清单标志怎么处理? + ddtxxBO.setQDBZ("0"); //明细信息 List ititem = req.getITITEM(); for(int i=0;i < ititem.size();i++){ FpkjMxSap detail = ititem.get(i); DdmxxxBO ddmxxxBO = new DdmxxxBO(); ddmxxxBO.setXH(i+1+""); - ddmxxxBO.setFPHXZ("0"); + //detail.getZSFZKH() 1:普通行;2:折扣行 折扣行上一行是被折扣行 + if(ConfigureConstant.STRING_1.equals(detail.getZSFZKH())){ + ddmxxxBO.setFPHXZ(ConfigureConstant.STRING_0); + }else if(ConfigureConstant.STRING_2.equals(detail.getZSFZKH())){ + ddmxxxBO.setFPHXZ(ConfigureConstant.STRING_1); + ddmxList.get(i-1).setFPHXZ(ConfigureConstant.STRING_2); + }else { + ddmxxxBO.setFPHXZ(ConfigureConstant.STRING_0); + } ddmxxxBO.setZXBM(detail.getMATNR()); ddmxxxBO.setXMMC(detail.getZCPMC()); ddmxxxBO.setGGXH(detail.getCHARG()); ddmxxxBO.setDW(detail.getZSLDW()); ddmxxxBO.setSPSL(detail.getZZSL()); + ddmxxxBO.setSL(new BigDecimal(detail.getZTAX()).divide(new BigDecimal("100"),2,BigDecimal.ROUND_HALF_UP).toString()); ddmxxxBO.setDJ(detail.getZZDJ()); - ddmxxxBO.setJE(detail.getZBHSJE()); - ddmxxxBO.setHSBZ("0"); + ddmxxxBO.setJE(detail.getZHSJE()); + ddmxxxBO.setHSBZ(ConfigureConstant.STRING_1); ddmxxxBO.setSE(detail.getZZSE()); + //TODO lfl 优惠政策标识 取税编对应的优惠政策标识! + ddmxxxBO.setYHZCBS("0"); ddmxList.add(ddmxxxBO); } } diff --git a/order-management-invoice/src/main/java/com/dxhy/order/invoice/module/invoice/service/impl/InvalidInvoiceServiceImpl.java b/order-management-invoice/src/main/java/com/dxhy/order/invoice/module/invoice/service/impl/InvalidInvoiceServiceImpl.java index de6e901f..c8ee1d2d 100644 --- a/order-management-invoice/src/main/java/com/dxhy/order/invoice/module/invoice/service/impl/InvalidInvoiceServiceImpl.java +++ b/order-management-invoice/src/main/java/com/dxhy/order/invoice/module/invoice/service/impl/InvalidInvoiceServiceImpl.java @@ -798,13 +798,13 @@ public class InvalidInvoiceServiceImpl implements InvalidInvoiceService { //作废推送数据存放队列 ZfTsMqData zfTsMqData = new ZfTsMqData(); - zfTsMqData.setFpdm(invalidInvoiceInfo.getFpdm()); - zfTsMqData.setFphm(invalidInvoiceInfo.getFphm()); - zfTsMqData.setNsrsbh(invalidInvoiceInfo.getXhfNsrsbh()); + zfTsMqData.setFpdm(invalidInvoiceInfoData.getFpdm()); + zfTsMqData.setFphm(invalidInvoiceInfoData.getFphm()); + zfTsMqData.setNsrsbh(invalidInvoiceInfoData.getXhfNsrsbh()); CommonTsMqData commonTsMqData = new CommonTsMqData(); commonTsMqData.setPushType(OrderInfoEnum.INTERFACE_TYPE_INVOICE_PUSH_STATUS_2.getKey()); - commonTsMqData.setNsrsbh(invalidInvoiceInfo.getXhfNsrsbh()); - commonTsMqData.setEntId(invalidInvoiceInfo.getEntId()); + commonTsMqData.setNsrsbh(invalidInvoiceInfoData.getXhfNsrsbh()); + commonTsMqData.setEntId(invalidInvoiceInfoData.getEntId()); commonTsMqData.setZfTsMqData(zfTsMqData); rabbitMqSendMessageService.autoSendRabbitMqMessageForBusiness(NsrQueueEnum.PUSH_MESSAGE.getValue(), JsonUtils.getInstance().toJsonString(commonTsMqData));