From b9c967314ffcee8002c80109eb6242d19273685e Mon Sep 17 00:00:00 2001 From: liufeilong Date: Tue, 21 Feb 2023 17:15:41 +0800 Subject: [PATCH 1/5] =?UTF-8?q?feat:=20=E6=A0=B9=E6=8D=AE=E7=BB=84?= =?UTF-8?q?=E7=BB=87=E7=BC=96=E7=A0=81=E8=8E=B7=E5=8F=96=E7=BB=84=E7=BB=87?= =?UTF-8?q?=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../baseservice/config/UserCenterConfig.java | 9 +++++++ .../user/service/UserInfoService.java | 8 ++++++ .../service/impl/UserInfoServiceImpl.java | 26 ++++++++++++++++++- 3 files changed, 42 insertions(+), 1 deletion(-) diff --git a/order-management-base-service/src/main/java/com/dxhy/order/baseservice/config/UserCenterConfig.java b/order-management-base-service/src/main/java/com/dxhy/order/baseservice/config/UserCenterConfig.java index 9e46c26d..865c2b75 100644 --- a/order-management-base-service/src/main/java/com/dxhy/order/baseservice/config/UserCenterConfig.java +++ b/order-management-base-service/src/main/java/com/dxhy/order/baseservice/config/UserCenterConfig.java @@ -117,6 +117,15 @@ public class UserCenterConfig { public String configQueryBigBOrgInfoByCode() { return dbUserInfoUrl + "/api/dept/queryOrgInfoByCode"; } + + /** + * 根据组织编码获取销方信息 + * + * @return + */ + public String configQueryBigBOrgInfoByEnterpriseNumbers() { + return dbUserInfoUrl + "/api/dept/queryDeptInfoByEnterpriseNumber"; + } /** * 推送大B日志消息 diff --git a/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/thirdservice/user/service/UserInfoService.java b/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/thirdservice/user/service/UserInfoService.java index 38398e2a..11b664c8 100644 --- a/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/thirdservice/user/service/UserInfoService.java +++ b/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/thirdservice/user/service/UserInfoService.java @@ -78,6 +78,14 @@ public interface UserInfoService { * @return */ DeptEntity querySysDeptEntityByTaxplayercode(String taxpayerCode); + + /** + * 根据组织编号获取组织信息 + * + * @param enterpriseNumbers + * @return + */ + DeptEntity querySysDeptEntityByEnterpriseNumbers(String enterpriseNumbers); /** * 获取企业初始化信息 diff --git a/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/thirdservice/user/service/impl/UserInfoServiceImpl.java b/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/thirdservice/user/service/impl/UserInfoServiceImpl.java index ec23392b..3858d3a7 100644 --- a/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/thirdservice/user/service/impl/UserInfoServiceImpl.java +++ b/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/thirdservice/user/service/impl/UserInfoServiceImpl.java @@ -264,7 +264,31 @@ public class UserInfoServiceImpl implements UserInfoService { } return null; } - + + @Override + public DeptEntity querySysDeptEntityByEnterpriseNumbers(String enterpriseNumbers) { + Map paraMap = new HashMap<>(2); + paraMap.put("enterpriseNumber", enterpriseNumbers); + Map headMap = new HashMap<>(2); + headMap.put("Content-Type", ConfigureConstant.STRING_APPLICATION_JSON); + try { + String queryTaxInfo = userCenterConfig.configQueryBigBOrgInfoByEnterpriseNumbers(); + log.info("{},获取企业信息的接口,url:{},入参:{}", LOGGER_MSG, queryTaxInfo, JsonUtils.getInstance().toJsonString(paraMap)); + String result = HttpUtils.doPostWithHeader(queryTaxInfo, JsonUtils.getInstance().toJsonString(paraMap), headMap); + log.info("{}调用用户信息获取信息为:{}", LOGGER_MSG, result); + if (StringUtils.isNotBlank(result)) { + JSONObject jsonObject = JSON.parseObject(result); + if (!jsonObject.isEmpty() && ConfigureConstant.STRING_0000.equals(jsonObject.get(OrderManagementConstant.CODE))) { + return JsonUtils.getInstance().parseObject(jsonObject.getString(OrderManagementConstant.DATA), DeptEntity.class); + } + } + } catch (Exception e) { + log.error("{}调用用户信息获取服务异常:{}", LOGGER_MSG, e); + return null; + } + return null; + } + @Override public DeptEntity querySysDeptEntityFromUrl(String taxpayerCode, String taxpayerName, String entId) { Map paraMap = new HashMap<>(2); From 5558492e9a8fcc43d4c2ffa0fa547d8a5b7ba9f9 Mon Sep 17 00:00:00 2001 From: liufeilong Date: Wed, 22 Feb 2023 10:47:27 +0800 Subject: [PATCH 2/5] =?UTF-8?q?feat:=20=E5=BC=80=E7=A5=A8=E6=8E=A5?= =?UTF-8?q?=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 | 19 +++++++- .../com/dxhy/order/utils/CommonUtils.java | 23 +++++++++ .../openapi/api/InvoiceRestApiV6.java | 8 +++- .../consumer/utils/BeanTransitionUtils.java | 47 +++++++++++++++++-- 4 files changed, 92 insertions(+), 5 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 922a0ba0..8915cd99 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 @@ -32,6 +32,12 @@ public enum OrderInfoEnum { FPHXZ_CODE_2("2", "被折扣行"), FPHXZ_CODE_6("6", "清单红字发票"), + /** + * 山能发票行性质 1正常行,2折扣行 + */ + SN_FPHXZ_CODE_1("1", "正常行"), + SN_FPHXZ_CODE_2("2", "折扣行"), + /** * 全电发票行性质 00正常行、01折扣行、02被折扣行 */ @@ -338,7 +344,18 @@ public enum OrderInfoEnum { TICKET_POOL_INVOICE_TYPE_04("04", "增值税普通发票"), TICKET_POOL_INVOICE_TYPE_10("10", "增值税电子普通发票"), TICKET_POOL_INVOICE_TYPE_08("08", "增值税电子专用发票"), - + + /** + * 山能业务系统发票类型 + * 1-增值税普通发票 + * 0-增值税专用发票 + * 2-增值税电子普通发票 + * 待补全全电发票类型" + */ + SN_INVOICE_TYPE_0("0", "增值税专用发票"), + SN_INVOICE_TYPE_1("1", "增值税普通发票"), + SN_INVOICE_TYPE_2("2", "增值税电子普通发票"), + /** * 开票类型(0:蓝票;1:红票) */ diff --git a/order-management-common/src/main/java/com/dxhy/order/utils/CommonUtils.java b/order-management-common/src/main/java/com/dxhy/order/utils/CommonUtils.java index 3da44b10..25a5e437 100644 --- a/order-management-common/src/main/java/com/dxhy/order/utils/CommonUtils.java +++ b/order-management-common/src/main/java/com/dxhy/order/utils/CommonUtils.java @@ -355,6 +355,29 @@ public class CommonUtils { log.debug("{}旧版本发票种类转换为新税控发票种类,请求参数为:{},输出参数为:{}", LOGGER_MSG, fpzldm, fplxdm); return fplxdm; } + + /** + * 山能业务系统发票种类转标品开票接口发票种类代码 + * @param fpzldm + * @return + */ + public static String transSnFplxdm(String fpzldm) { + String fplxdm; + if (OrderInfoEnum.SN_INVOICE_TYPE_0.getKey().equals(fpzldm)) { + //增值税专用发票 + fplxdm = OrderInfoEnum.ORDER_INVOICE_TYPE_004.getKey(); + } else if (OrderInfoEnum.SN_INVOICE_TYPE_1.getKey().equals(fpzldm)) { + //增值税普通发票 + fplxdm = OrderInfoEnum.ORDER_INVOICE_TYPE_007.getKey(); + } else if (OrderInfoEnum.SN_INVOICE_TYPE_2.getKey().equals(fpzldm)) { + //增值税电子普通发票 + fplxdm = OrderInfoEnum.ORDER_INVOICE_TYPE_026.getKey(); + } else { + fplxdm = fpzldm; + } + log.debug("{}山能业务系统发票种类转换为标品开票接口发票种类,请求参数为:{},输出参数为:{}", LOGGER_MSG, fpzldm, fplxdm); + return fplxdm; + } /** diff --git a/order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/api/InvoiceRestApiV6.java b/order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/api/InvoiceRestApiV6.java index dbf66c41..84e7d387 100644 --- a/order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/api/InvoiceRestApiV6.java +++ b/order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/api/InvoiceRestApiV6.java @@ -7,6 +7,8 @@ import com.dxhy.order.baseservice.module.buyer.protocol.GmfxxcxReqBO; import com.dxhy.order.baseservice.module.buyer.protocol.GmfxxcxRspBO; import com.dxhy.order.baseservice.module.buyer.protocol.GmfxxtbReqBO; import com.dxhy.order.baseservice.module.buyer.protocol.GmfxxtbRspBO; +import com.dxhy.order.baseservice.module.thirdservice.user.model.DeptEntity; +import com.dxhy.order.baseservice.module.thirdservice.user.service.UserInfoService; import com.dxhy.order.constant.OrderInfoContentEnum; import com.dxhy.order.consumer.openapi.protocol.v4.grouptax.GroupTaxReqBO; import com.dxhy.order.consumer.openapi.protocol.v4.grouptax.GroupTaxRespBO; @@ -86,6 +88,9 @@ public class InvoiceRestApiV6 { @Resource private InterfaceServiceV6 interfaceServiceV6; + @Resource + private UserInfoService userInfoService; + /** * 统一SDK对外接口方法 @@ -204,7 +209,8 @@ public class InvoiceRestApiV6 { if (ConfigurerInfo.GENERATE_QD_INVOICE.equals(interfaceName)) { //全电开票接口 PoCommonRequestParam requestParam = JsonUtils.getInstance().parseObject(reqStr, PoCommonRequestParam.class); - DdpcxxReqBO ddpcxxReq = BeanTransitionUtils.transitionPoKpReq(requestParam); + DeptEntity deptEntity = userInfoService.querySysDeptEntityByEnterpriseNumbers(requestParam.getISINPUT().getZDATA().get("BUKRS").toString()); + DdpcxxReqBO ddpcxxReq = BeanTransitionUtils.transitionPoKpReq(requestParam,deptEntity); DdpcxxRspV5 ddpcxxRspV5 = interfaceServiceV6.generateQdInvoiceV6(ddpcxxReq, secretId, null); PoCommonResponseParam poCommonResponseParam = BeanTransitionUtils.transitionPoKpResp(ddpcxxRspV5); returnJsonString = JsonUtils.getInstance().toJsonString(poCommonResponseParam); 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 7b42da4f..8d51d37d 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 @@ -10,6 +10,7 @@ import com.dxhy.order.baseservice.module.buyer.protocol.GmfxxCommonBO; import com.dxhy.order.baseservice.module.buyer.protocol.GmfxxtbReqBO; import com.dxhy.order.baseservice.module.commodity.model.CommodityCodeEntity; import com.dxhy.order.baseservice.module.thirdservice.user.model.DeptEntity; +import com.dxhy.order.baseservice.module.thirdservice.user.service.UserInfoService; import com.dxhy.order.constant.*; import com.dxhy.order.consumer.openapi.protocol.Response; import com.dxhy.order.consumer.openapi.protocol.cpy.*; @@ -19,6 +20,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.generateinvoice.sap.FpkjMxSap; import com.dxhy.order.consumer.openapi.protocol.po.generateinvoice.sap.FpkjReqSap; import com.dxhy.order.consumer.openapi.protocol.sld.*; import com.dxhy.order.consumer.openapi.protocol.v4.commodity.SpxxBO; @@ -55,6 +57,7 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; +import javax.annotation.Resource; import java.text.DecimalFormat; import java.util.*; @@ -3212,7 +3215,7 @@ public class BeanTransitionUtils { * @Author: liufeilong * @Date: 2023-02-06 */ - public static DdpcxxReqBO transitionPoKpReq(PoCommonRequestParam requestParam){ + public static DdpcxxReqBO transitionPoKpReq(PoCommonRequestParam requestParam,DeptEntity deptEntity){ DdpcxxReqBO ddpcxxReqBO = new DdpcxxReqBO(); DdpcxxBO ddpcxxBO = new DdpcxxBO(); List ddzxxList = new ArrayList<>(); @@ -3225,14 +3228,52 @@ public class BeanTransitionUtils { Map zdata = isinput.getZDATA(); String zdataString = JsonUtils.getInstance().toJsonString(zdata); FpkjReqSap req = JsonUtils.getInstance().parseObject(zdataString, FpkjReqSap.class); + //批次信息 ddpcxxBO.setDDQQPCH(isinput.getSAPKEY()); - //TODO lfl 20230206 业务数据待转换 + ddpcxxBO.setNSRSBH(deptEntity.getTaxpayerCode()); + ddpcxxBO.setFPLXDM(CommonUtils.transSnFplxdm(req.getZFPLX())); + ddpcxxBO.setKPFS(ConfigureConstant.STRING_1); + //订单头信息 + ddtxxBO.setDDQQLSH(isinput.getSAPKEY()); + ddtxxBO.setKPLX(req.getZSFHZ()); + ddtxxBO.setXHFSBH(deptEntity.getTaxpayerCode()); + ddtxxBO.setXHFMC(deptEntity.getName()); + ddtxxBO.setXHFDZ(deptEntity.getTaxpayerAddress()); + ddtxxBO.setXHFDH(deptEntity.getTaxpayerPhone()); + ddtxxBO.setXHFYH(deptEntity.getTaxpayerBank()); + ddtxxBO.setXHFZH(deptEntity.getTaxpayerAccount()); + ddtxxBO.setGMFBM(req.getZGFBH()); + ddtxxBO.setKPR(req.getZKPRXM()); + ddtxxBO.setSKR(req.getZSKRXM()); + ddtxxBO.setFHR(req.getZFHRXM()); + ddtxxBO.setJSHJ(req.getZHSJE()); + ddtxxBO.setHJJE(req.getZBHSJE()); + ddtxxBO.setHJSE(req.getZZSE()); + ddtxxBO.setDDH(req.getZJSDH()); + //明细信息 + 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"); + ddmxxxBO.setZXBM(detail.getMATNR()); + ddmxxxBO.setXMMC(detail.getZCPMC()); + ddmxxxBO.setGGXH(detail.getCHARG()); + ddmxxxBO.setDW(detail.getZSLDW()); + ddmxxxBO.setSPSL(detail.getZZSL()); + ddmxxxBO.setDJ(detail.getZZDJ()); + ddmxxxBO.setJE(detail.getZBHSJE()); + ddmxxxBO.setHSBZ("0"); + ddmxxxBO.setSE(detail.getZZSE()); + ddmxList.add(ddmxxxBO); + } } - ddzxxBO.setDDTXX(ddtxxBO); ddzxxBO.setDDMXXX(ddmxList); ddzxxList.add(ddzxxBO); ddpcxxReqBO.setDDPCXX(ddpcxxBO); + ddpcxxReqBO.setDDZXX(ddzxxList); return ddpcxxReqBO; } From 9e1c18ca634258fc53e81a4750f9ebccf67451cd Mon Sep 17 00:00:00 2001 From: liufeilong Date: Wed, 22 Feb 2023 16:45:08 +0800 Subject: [PATCH 3/5] =?UTF-8?q?feat:=20=E5=8F=91=E7=A5=A8=E6=8E=A8?= =?UTF-8?q?=E9=80=81=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()); From 5d0ecfec34caa0a00a924dcf781f5edfd817b1ac Mon Sep 17 00:00:00 2001 From: liufeilong Date: Wed, 22 Feb 2023 18:40:51 +0800 Subject: [PATCH 4/5] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0interface=5Freque?= =?UTF-8?q?st=5Fdata=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../order/model/InterfaceRequestData.java | 65 ++++++++++ .../dao/InterfaceRequestDataMapper.java | 19 +++ .../mapper/InterfaceRequestDataMapper.xml | 121 ++++++++++++++++++ 3 files changed, 205 insertions(+) create mode 100644 order-management-common/src/main/java/com/dxhy/order/model/InterfaceRequestData.java create mode 100644 order-management-consumer/src/main/java/com/dxhy/order/consumer/dao/InterfaceRequestDataMapper.java create mode 100644 order-management-consumer/src/main/resources/mybatis/mapper/InterfaceRequestDataMapper.xml diff --git a/order-management-common/src/main/java/com/dxhy/order/model/InterfaceRequestData.java b/order-management-common/src/main/java/com/dxhy/order/model/InterfaceRequestData.java new file mode 100644 index 00000000..a85de7b3 --- /dev/null +++ b/order-management-common/src/main/java/com/dxhy/order/model/InterfaceRequestData.java @@ -0,0 +1,65 @@ +package com.dxhy.order.model; + +import java.util.Date; + +public class InterfaceRequestData { + private String id; + + private String xtly; + + private String ywlx; + + private String batchId; + + private Date createTime; + + private String requestData; + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id == null ? null : id.trim(); + } + + public String getXtly() { + return xtly; + } + + public void setXtly(String xtly) { + this.xtly = xtly == null ? null : xtly.trim(); + } + + public String getYwlx() { + return ywlx; + } + + public void setYwlx(String ywlx) { + this.ywlx = ywlx == null ? null : ywlx.trim(); + } + + public String getBatchId() { + return batchId; + } + + public void setBatchId(String batchId) { + this.batchId = batchId == null ? null : batchId.trim(); + } + + public Date getCreateTime() { + return createTime; + } + + public void setCreateTime(Date createTime) { + this.createTime = createTime; + } + + public String getRequestData() { + return requestData; + } + + public void setRequestData(String requestData) { + this.requestData = requestData == null ? null : requestData.trim(); + } +} \ No newline at end of file diff --git a/order-management-consumer/src/main/java/com/dxhy/order/consumer/dao/InterfaceRequestDataMapper.java b/order-management-consumer/src/main/java/com/dxhy/order/consumer/dao/InterfaceRequestDataMapper.java new file mode 100644 index 00000000..23fab766 --- /dev/null +++ b/order-management-consumer/src/main/java/com/dxhy/order/consumer/dao/InterfaceRequestDataMapper.java @@ -0,0 +1,19 @@ +package com.dxhy.order.consumer.dao; + +import com.dxhy.order.model.InterfaceRequestData; + +public interface InterfaceRequestDataMapper { + int deleteByPrimaryKey(String id); + + int insert(InterfaceRequestData record); + + int insertSelective(InterfaceRequestData record); + + InterfaceRequestData selectByPrimaryKey(String id); + + int updateByPrimaryKeySelective(InterfaceRequestData record); + + int updateByPrimaryKeyWithBLOBs(InterfaceRequestData record); + + int updateByPrimaryKey(InterfaceRequestData record); +} \ No newline at end of file diff --git a/order-management-consumer/src/main/resources/mybatis/mapper/InterfaceRequestDataMapper.xml b/order-management-consumer/src/main/resources/mybatis/mapper/InterfaceRequestDataMapper.xml new file mode 100644 index 00000000..785d73d8 --- /dev/null +++ b/order-management-consumer/src/main/resources/mybatis/mapper/InterfaceRequestDataMapper.xml @@ -0,0 +1,121 @@ + + + + + + + + + + + + + + + id, xtly, ywlx, batch_id, create_time + + + request_data + + + + delete from interface_request_data + where id = #{id,jdbcType=VARCHAR} + + + insert into interface_request_data (id, xtly, ywlx, + batch_id, create_time, request_data + ) + values (#{id,jdbcType=VARCHAR}, #{xtly,jdbcType=VARCHAR}, #{ywlx,jdbcType=VARCHAR}, + #{batchId,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP}, #{requestData,jdbcType=LONGVARCHAR} + ) + + + insert into interface_request_data + + + id, + + + xtly, + + + ywlx, + + + batch_id, + + + create_time, + + + request_data, + + + + + #{id,jdbcType=VARCHAR}, + + + #{xtly,jdbcType=VARCHAR}, + + + #{ywlx,jdbcType=VARCHAR}, + + + #{batchId,jdbcType=VARCHAR}, + + + #{createTime,jdbcType=TIMESTAMP}, + + + #{requestData,jdbcType=LONGVARCHAR}, + + + + + update interface_request_data + + + xtly = #{xtly,jdbcType=VARCHAR}, + + + ywlx = #{ywlx,jdbcType=VARCHAR}, + + + batch_id = #{batchId,jdbcType=VARCHAR}, + + + create_time = #{createTime,jdbcType=TIMESTAMP}, + + + request_data = #{requestData,jdbcType=LONGVARCHAR}, + + + where id = #{id,jdbcType=VARCHAR} + + + update interface_request_data + set xtly = #{xtly,jdbcType=VARCHAR}, + ywlx = #{ywlx,jdbcType=VARCHAR}, + batch_id = #{batchId,jdbcType=VARCHAR}, + create_time = #{createTime,jdbcType=TIMESTAMP}, + request_data = #{requestData,jdbcType=LONGVARCHAR} + where id = #{id,jdbcType=VARCHAR} + + + update interface_request_data + set xtly = #{xtly,jdbcType=VARCHAR}, + ywlx = #{ywlx,jdbcType=VARCHAR}, + batch_id = #{batchId,jdbcType=VARCHAR}, + create_time = #{createTime,jdbcType=TIMESTAMP} + where id = #{id,jdbcType=VARCHAR} + + \ No newline at end of file From 6b70e09022def96962493b9d7908468d96947d2a Mon Sep 17 00:00:00 2001 From: liufeilong Date: Thu, 23 Feb 2023 19:21:54 +0800 Subject: [PATCH 5/5] =?UTF-8?q?feat:=20=E6=8E=A5=E5=85=A5PO?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../baseservice/config/BaseServiceConfig.java | 12 ++++ .../order/constant/ConfigureConstant.java | 2 + .../java/com/dxhy/order/utils/HttpUtils.java | 11 ++++ .../service/impl/PushInvoiceServiceImpl.java | 14 +++-- .../openapi/api/InvoiceOpenGateRestApi.java | 58 +++++++++++++++++++ .../openapi/api/InvoiceRestApiV6.java | 9 ++- .../consumer/openapi/protocol/po/IsInput.java | 2 +- .../openapi/service/InterfaceServiceV6.java | 9 +++ .../service/impl/InterfaceServiceImplV6.java | 20 +++++++ .../consumer/utils/BeanTransitionUtils.java | 9 ++- 10 files changed, 131 insertions(+), 15 deletions(-) diff --git a/order-management-base-service/src/main/java/com/dxhy/order/baseservice/config/BaseServiceConfig.java b/order-management-base-service/src/main/java/com/dxhy/order/baseservice/config/BaseServiceConfig.java index a05e41a3..b6c1b6c3 100644 --- a/order-management-base-service/src/main/java/com/dxhy/order/baseservice/config/BaseServiceConfig.java +++ b/order-management-base-service/src/main/java/com/dxhy/order/baseservice/config/BaseServiceConfig.java @@ -212,6 +212,18 @@ public class BaseServiceConfig { */ @Value("${order.openApiNew.apiUrl:}") private String openApiNewApiUrl; + + /** + * 调用山能PO username + */ + @Value("${order.push.po:userName:}") + private String poUserName; + + /** + * 调用山能PO password + */ + @Value("${order.push.po:password:}") + private String poPassword; /** diff --git a/order-management-common/src/main/java/com/dxhy/order/constant/ConfigureConstant.java b/order-management-common/src/main/java/com/dxhy/order/constant/ConfigureConstant.java index 9a79ac47..3a52b82e 100644 --- a/order-management-common/src/main/java/com/dxhy/order/constant/ConfigureConstant.java +++ b/order-management-common/src/main/java/com/dxhy/order/constant/ConfigureConstant.java @@ -463,6 +463,8 @@ public class ConfigureConstant { * 详见对应正数发票及清单 */ public final static String XJZSXHQD = "详见对应正数发票及清单"; + + public final static String POTOKEN = "6_ca323ed526e74edea7e023c0733a9bef"; /** * 数值类型 diff --git a/order-management-common/src/main/java/com/dxhy/order/utils/HttpUtils.java b/order-management-common/src/main/java/com/dxhy/order/utils/HttpUtils.java index 6b37c6f9..01a23b97 100644 --- a/order-management-common/src/main/java/com/dxhy/order/utils/HttpUtils.java +++ b/order-management-common/src/main/java/com/dxhy/order/utils/HttpUtils.java @@ -72,5 +72,16 @@ public class HttpUtils { log.debug("{}以字符串调用get请求url:{},耗时:{}", LOGGER_MSG, url, endTime - startTime); return body; } + + //请求山能PO + public static String sendPo(String url, String request,String userName,String password) { + long startTime = System.currentTimeMillis(); + HttpRequest httpRequest = new HttpRequest(url); + httpRequest.basicAuth(userName,password); + String body = httpRequest.body(request).timeout(300000).execute().body(); + long endTime = System.currentTimeMillis(); + log.debug("{}以字符串调用post请求url:{},耗时:{}", LOGGER_MSG, url, endTime - startTime); + return body; + } } 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 1b9b09a8..43e57832 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 @@ -5,6 +5,7 @@ import cn.hutool.core.util.RandomUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.json.JSONUtil; import com.alibaba.fastjson.JSONObject; +import com.dxhy.order.baseservice.config.BaseServiceConfig; import com.dxhy.order.baseservice.module.thirdservice.rabbitmq.service.RabbitMqSendMessageService; import com.dxhy.order.baseservice.module.thirdservice.redis.service.RedisService; import com.dxhy.order.baseservice.module.thirdservice.simsback.service.SimsBackService; @@ -149,6 +150,9 @@ public class PushInvoiceServiceImpl implements PushInvoiceService { @Resource private OrderCommonService apiInvoiceCommonMapperService; + + @Resource + private BaseServiceConfig baseServiceConfig; @Override public R pushRouting(String pushMsg) { @@ -379,7 +383,7 @@ public class PushInvoiceServiceImpl implements PushInvoiceService { String result = ""; if (ConfigurerInfo.INTERFACE_VERSION_V5.equals(pushInfo.getVersionIdent()) || ConfigurerInfo.INTERFACE_VERSION_V6.equals(pushInfo.getVersionIdent())) { - result = HttpUtils.doPost(pushInfo.getPushUrl(), fptsParam); + result = HttpUtils.sendPo(pushInfo.getPushUrl(), fptsParam,baseServiceConfig.getPoUserName(),baseServiceConfig.getPoPassword()); } else { result = HttpUtils.doPost(pushInfo.getPushUrl(), requestMap); } @@ -867,7 +871,7 @@ public class PushInvoiceServiceImpl implements PushInvoiceService { if(OrderInfoEnum.INTERFACE_TYPE_INVOICE_PUSH_STATUS_1.getKey().equals(fpTsMqData.getPushType())){ //发票开具推送 if(OrderInfoEnum.SYS_SOURCE_SAP.getKey().equals(xtly)){ - DdfpzxxV5 ddfpzxxV5 = JsonUtils.getInstance().parseObject(content, DdfpzxxV5.class); + DdfpzxxV5 ddfpzxxV5 = JsonUtils.getInstance().parseObject(content.substring(1,content.length()-1), DdfpzxxV5.class); DdfpxxV5 ddfpxx = ddfpzxxV5.getDDFPXX(); List ddmxxx = ddfpzxxV5.getDDMXXX(); FpkjtsReqSap fpkjtsReqSap = new FpkjtsReqSap(); @@ -925,8 +929,7 @@ public class PushInvoiceServiceImpl implements PushInvoiceService { isInput.setZORG(""); isInput.setZFILED5(""); String jsonString = JsonUtils.getInstance().toJsonString(fpkjtsReqSap); - Map map = JsonUtils.getInstance().parseObject(jsonString, Map.class); - isInput.setZDATA(map); + isInput.setZDATA(jsonString); PoCommonRequestParam poCommonRequestParam = new PoCommonRequestParam(); poCommonRequestParam.setISINPUT(isInput); @@ -948,8 +951,7 @@ public class PushInvoiceServiceImpl implements PushInvoiceService { isInput.setZORG(""); isInput.setZFILED5(""); String jsonString = JsonUtils.getInstance().toJsonString(fpzftsReqSap); - Map map = JsonUtils.getInstance().parseObject(jsonString, Map.class); - isInput.setZDATA(map); + isInput.setZDATA(jsonString); PoCommonRequestParam poCommonRequestParam = new PoCommonRequestParam(); poCommonRequestParam.setISINPUT(isInput); diff --git a/order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/api/InvoiceOpenGateRestApi.java b/order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/api/InvoiceOpenGateRestApi.java index 2dd0f017..908e0adb 100644 --- a/order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/api/InvoiceOpenGateRestApi.java +++ b/order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/api/InvoiceOpenGateRestApi.java @@ -2,7 +2,15 @@ package com.dxhy.order.consumer.openapi.api; import com.dxhy.order.constant.ConfigureConstant; import com.dxhy.order.constant.ConfigurerInfo; +import com.dxhy.order.constant.OrderInfoContentEnum; +import com.dxhy.order.constant.OrderInfoEnum; import com.dxhy.order.consumer.config.OpenApiConfig; +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.service.InterfaceServiceV6; +import com.dxhy.order.utils.JsonUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; @@ -50,6 +58,56 @@ public class InvoiceOpenGateRestApi { @Resource private OpenApiConfig openApiConfig; + @Resource + private InterfaceServiceV6 interfaceServiceV6; + + /** + * 山能对外接口PO统一入口 + * @param param + * @return + */ + @RequestMapping(path = "/v6/po", method = {RequestMethod.POST, RequestMethod.GET}) + public String orderApiV6(@RequestBody String param, HttpServletRequest request) { + + log.info("{}-山能对外接口PO统一入口,请求数据为:{}", LOGGER_MESSAGE_V6, param); + String token = request.getHeader("token"); + if(StringUtils.isBlank(token) || !ConfigureConstant.POTOKEN.equals(token)){ + return "非法请求,请停止访问!"; + } + //返回数据 + String resultString = ""; + try { + PoCommonRequestParam requestParam = JsonUtils.getInstance().parseObject(param, PoCommonRequestParam.class); + String interfaceName = ""; + if(OrderInfoEnum.INTERFACE_BUSINESS_ID_FPKJ.getKey().equals(requestParam.getISINPUT().getIFYWID())){ + interfaceName = ConfigurerInfo.GENERATE_QD_INVOICE; + }else if(OrderInfoEnum.INTERFACE_BUSINESS_ID_DDZTGX.getKey().equals(requestParam.getISINPUT().getIFYWID())){ + interfaceName = ConfigurerInfo.ORDER_STATUS_UPDATE; + }else { + log.error("{}-山能对外接口PO业务接口ID:{},未定义", LOGGER_MESSAGE_V6, requestParam.getISINPUT().getIFYWID()); + return "请传输正确的业务ID"; + } + //保存请求报文 + interfaceServiceV6.saveRequestData(interfaceName,param); + //调用销项v6业务处理逻辑 + long startTime = System.currentTimeMillis(); + resultString = invoiceRestApiV6.orderApiV6HandingBusiness(interfaceName, param, ""); + long endTime = System.currentTimeMillis(); + log.info("{}-业务处理结果:{},接口耗时为:{}", LOGGER_MESSAGE_V6, resultString, endTime - startTime); + + } catch (Exception e) { + log.error("{}-处理业务出现异常,异常原因为:{}", LOGGER_MESSAGE_V6, e.getMessage()); + PoCommonResponseParam poCommonResponseParam = new PoCommonResponseParam(); + EsOutput esOutput = new EsOutput(); + esOutput.setBSKEY(""); + esOutput.setSAPKEY(""); + esOutput.setZTYPE(OrderInfoContentEnum.INVOICE_ERROR_CODE_OP_E.getKey()); + esOutput.setZMESSAGE(e.getMessage()); + poCommonResponseParam.setES_OUTPUT(esOutput); + return JsonUtils.getInstance().toJsonString(poCommonResponseParam); + } + return resultString; + } /** * 订单对内V6接口 diff --git a/order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/api/InvoiceRestApiV6.java b/order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/api/InvoiceRestApiV6.java index 84e7d387..47e0e743 100644 --- a/order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/api/InvoiceRestApiV6.java +++ b/order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/api/InvoiceRestApiV6.java @@ -10,6 +10,7 @@ import com.dxhy.order.baseservice.module.buyer.protocol.GmfxxtbRspBO; import com.dxhy.order.baseservice.module.thirdservice.user.model.DeptEntity; import com.dxhy.order.baseservice.module.thirdservice.user.service.UserInfoService; import com.dxhy.order.constant.OrderInfoContentEnum; +import com.dxhy.order.consumer.openapi.protocol.po.IsInput; import com.dxhy.order.consumer.openapi.protocol.v4.grouptax.GroupTaxReqBO; import com.dxhy.order.consumer.openapi.protocol.v4.grouptax.GroupTaxRespBO; import com.dxhy.order.consumer.openapi.protocol.v6.sdenergy.*; @@ -55,6 +56,7 @@ import javax.servlet.http.HttpServletResponse; import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.List; +import java.util.Map; import java.util.Optional; import java.util.stream.Collectors; @@ -208,9 +210,10 @@ public class InvoiceRestApiV6 { if (ConfigurerInfo.GENERATE_QD_INVOICE.equals(interfaceName)) { //全电开票接口 - PoCommonRequestParam requestParam = JsonUtils.getInstance().parseObject(reqStr, PoCommonRequestParam.class); - DeptEntity deptEntity = userInfoService.querySysDeptEntityByEnterpriseNumbers(requestParam.getISINPUT().getZDATA().get("BUKRS").toString()); - DdpcxxReqBO ddpcxxReq = BeanTransitionUtils.transitionPoKpReq(requestParam,deptEntity); + PoCommonRequestParam poCommonRequestParam = JsonUtils.getInstance().parseObject(reqStr, PoCommonRequestParam.class); + Map zData = JsonUtils.getInstance().parseObject(poCommonRequestParam.getISINPUT().getZDATA(), Map.class); + DeptEntity deptEntity = userInfoService.querySysDeptEntityByEnterpriseNumbers(zData.get("BUKRS").toString()); + DdpcxxReqBO ddpcxxReq = BeanTransitionUtils.transitionPoKpReq(poCommonRequestParam,deptEntity); DdpcxxRspV5 ddpcxxRspV5 = interfaceServiceV6.generateQdInvoiceV6(ddpcxxReq, secretId, null); PoCommonResponseParam poCommonResponseParam = BeanTransitionUtils.transitionPoKpResp(ddpcxxRspV5); returnJsonString = JsonUtils.getInstance().toJsonString(poCommonResponseParam); diff --git a/order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/protocol/po/IsInput.java b/order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/protocol/po/IsInput.java index e5608d81..b2453a25 100644 --- a/order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/protocol/po/IsInput.java +++ b/order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/protocol/po/IsInput.java @@ -54,6 +54,6 @@ public class IsInput { /** * 业务参数 */ - private Map ZDATA; + private String ZDATA; } diff --git a/order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/service/InterfaceServiceV6.java b/order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/service/InterfaceServiceV6.java index 6e290f82..988c00db 100644 --- a/order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/service/InterfaceServiceV6.java +++ b/order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/service/InterfaceServiceV6.java @@ -39,4 +39,13 @@ public interface InterfaceServiceV6 { * @Date: 2023-02-08 */ PoCommonResponseParam updateOrderStatus(PoCommonRequestParam requestParam, String secretId); + + /** + * @Description: 保存PO请求数据 + * @Param: [interfaceName, IS_INPUT] + * @Return: void + * @Author: liufeilong + * @Date: 2023-02-22 + */ + void saveRequestData(String interfaceName, String param); } diff --git a/order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/service/impl/InterfaceServiceImplV6.java b/order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/service/impl/InterfaceServiceImplV6.java index 85a013ea..a4f54a67 100644 --- a/order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/service/impl/InterfaceServiceImplV6.java +++ b/order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/service/impl/InterfaceServiceImplV6.java @@ -4,7 +4,9 @@ import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSON; import com.dxhy.order.constant.*; +import com.dxhy.order.consumer.dao.InterfaceRequestDataMapper; 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.v4.order.DdpcxxReqBO; @@ -18,14 +20,18 @@ import com.dxhy.order.consumer.openapi.service.AllocateInvoiceInterfaceServiceV3 import com.dxhy.order.consumer.openapi.service.InterfaceServiceV6; import com.dxhy.order.invoice.config.InvoiceConfig; import com.dxhy.order.invoice.utils.HttpInvoiceRequestUtilQd; +import com.dxhy.order.model.InterfaceRequestData; import com.dxhy.order.model.newsk.InvoiceRequestParam; import com.dxhy.order.utils.DecimalCalculateUtil; +import com.dxhy.order.utils.DistributedKeyMaker; +import com.dxhy.order.utils.JsonUtils; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.util.Date; import java.util.List; import java.util.Objects; @@ -42,6 +48,8 @@ public class InterfaceServiceImplV6 implements InterfaceServiceV6 { private AllocateInvoiceInterfaceServiceV3 allocateInvoiceInterfaceServiceV3; @Resource private InvoiceConfig invoiceConfig; + @Resource + private InterfaceRequestDataMapper interfaceRequestDataMapper; @Override public DdpcxxRspV5 generateQdInvoiceV6(DdpcxxReqBO ddpcxxReq, String secretId, String kpjh) { @@ -89,6 +97,18 @@ public class InterfaceServiceImplV6 implements InterfaceServiceV6 { return poCommonResponseParam; } + @Override + public void saveRequestData(String interfaceName, String param) { + PoCommonRequestParam poCommonRequestParam = JsonUtils.getInstance().parseObject(param, PoCommonRequestParam.class); + InterfaceRequestData data = new InterfaceRequestData(); + data.setId(DistributedKeyMaker.generateShotKey()); + data.setYwlx(interfaceName); + data.setBatchId(poCommonRequestParam.getISINPUT().getBSKEY()); + data.setRequestData(param); + data.setCreateTime(new Date()); + interfaceRequestDataMapper.insert(data); + } + private HzqrdRspV6 queryRedConfirmationList(String reqUrl, String reqParam, String logName){ HzqrdRspV6 hzqrdRspV6 = new HzqrdRspV6(); hzqrdRspV6.setZTDM(InterfaceEnum.INTERFACE_V5_STATUS_009999.getKey()); 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 8d51d37d..68183c2c 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 @@ -3215,7 +3215,8 @@ public class BeanTransitionUtils { * @Author: liufeilong * @Date: 2023-02-06 */ - public static DdpcxxReqBO transitionPoKpReq(PoCommonRequestParam requestParam,DeptEntity deptEntity){ + public static DdpcxxReqBO transitionPoKpReq(PoCommonRequestParam poCommonRequestParam,DeptEntity deptEntity){ + IsInput isinput = poCommonRequestParam.getISINPUT(); DdpcxxReqBO ddpcxxReqBO = new DdpcxxReqBO(); DdpcxxBO ddpcxxBO = new DdpcxxBO(); List ddzxxList = new ArrayList<>(); @@ -3223,10 +3224,8 @@ public class BeanTransitionUtils { DdtxxBO ddtxxBO = new DdtxxBO(); List ddmxList = new ArrayList<>(); - if(OrderInfoEnum.SYS_SOURCE_SAP.getKey().equals(requestParam.getISINPUT().getSYSID())){ - IsInput isinput = requestParam.getISINPUT(); - Map zdata = isinput.getZDATA(); - String zdataString = JsonUtils.getInstance().toJsonString(zdata); + if(OrderInfoEnum.SYS_SOURCE_SAP.getKey().equals(isinput.getSYSID())){ + String zdataString = isinput.getZDATA(); FpkjReqSap req = JsonUtils.getInstance().parseObject(zdataString, FpkjReqSap.class); //批次信息 ddpcxxBO.setDDQQPCH(isinput.getSAPKEY());