From a5857343ffb095b3bf0f5e9b1c312185d6e0df4f Mon Sep 17 00:00:00 2001 From: liufeilong Date: Wed, 22 Feb 2023 10:47:27 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=BC=80=E7=A5=A8=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=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; }