feat: 开票接口完善

release
liufeilong 2 years ago
parent b9c967314f
commit 5558492e9a
  1. 19
      order-management-common/src/main/java/com/dxhy/order/constant/OrderInfoEnum.java
  2. 23
      order-management-common/src/main/java/com/dxhy/order/utils/CommonUtils.java
  3. 8
      order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/api/InvoiceRestApiV6.java
  4. 47
      order-management-consumer/src/main/java/com/dxhy/order/consumer/utils/BeanTransitionUtils.java

@ -32,6 +32,12 @@ public enum OrderInfoEnum {
FPHXZ_CODE_2("2", "被折扣行"), FPHXZ_CODE_2("2", "被折扣行"),
FPHXZ_CODE_6("6", "清单红字发票"), FPHXZ_CODE_6("6", "清单红字发票"),
/**
* 山能发票行性质 1正常行2折扣行
*/
SN_FPHXZ_CODE_1("1", "正常行"),
SN_FPHXZ_CODE_2("2", "折扣行"),
/** /**
* 全电发票行性质 00正常行01折扣行02被折扣行 * 全电发票行性质 00正常行01折扣行02被折扣行
*/ */
@ -338,7 +344,18 @@ public enum OrderInfoEnum {
TICKET_POOL_INVOICE_TYPE_04("04", "增值税普通发票"), TICKET_POOL_INVOICE_TYPE_04("04", "增值税普通发票"),
TICKET_POOL_INVOICE_TYPE_10("10", "增值税电子普通发票"), TICKET_POOL_INVOICE_TYPE_10("10", "增值税电子普通发票"),
TICKET_POOL_INVOICE_TYPE_08("08", "增值税电子专用发票"), 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红票 * 开票类型0蓝票1红票
*/ */

@ -355,6 +355,29 @@ public class CommonUtils {
log.debug("{}旧版本发票种类转换为新税控发票种类,请求参数为:{},输出参数为:{}", LOGGER_MSG, fpzldm, fplxdm); log.debug("{}旧版本发票种类转换为新税控发票种类,请求参数为:{},输出参数为:{}", LOGGER_MSG, fpzldm, fplxdm);
return 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;
}
/** /**

@ -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.GmfxxcxRspBO;
import com.dxhy.order.baseservice.module.buyer.protocol.GmfxxtbReqBO; import com.dxhy.order.baseservice.module.buyer.protocol.GmfxxtbReqBO;
import com.dxhy.order.baseservice.module.buyer.protocol.GmfxxtbRspBO; 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.constant.OrderInfoContentEnum;
import com.dxhy.order.consumer.openapi.protocol.v4.grouptax.GroupTaxReqBO; 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.v4.grouptax.GroupTaxRespBO;
@ -86,6 +88,9 @@ public class InvoiceRestApiV6 {
@Resource @Resource
private InterfaceServiceV6 interfaceServiceV6; private InterfaceServiceV6 interfaceServiceV6;
@Resource
private UserInfoService userInfoService;
/** /**
* 统一SDK对外接口方法 * 统一SDK对外接口方法
@ -204,7 +209,8 @@ public class InvoiceRestApiV6 {
if (ConfigurerInfo.GENERATE_QD_INVOICE.equals(interfaceName)) { if (ConfigurerInfo.GENERATE_QD_INVOICE.equals(interfaceName)) {
//全电开票接口 //全电开票接口
PoCommonRequestParam requestParam = JsonUtils.getInstance().parseObject(reqStr, PoCommonRequestParam.class); 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); DdpcxxRspV5 ddpcxxRspV5 = interfaceServiceV6.generateQdInvoiceV6(ddpcxxReq, secretId, null);
PoCommonResponseParam poCommonResponseParam = BeanTransitionUtils.transitionPoKpResp(ddpcxxRspV5); PoCommonResponseParam poCommonResponseParam = BeanTransitionUtils.transitionPoKpResp(ddpcxxRspV5);
returnJsonString = JsonUtils.getInstance().toJsonString(poCommonResponseParam); returnJsonString = JsonUtils.getInstance().toJsonString(poCommonResponseParam);

@ -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.buyer.protocol.GmfxxtbReqBO;
import com.dxhy.order.baseservice.module.commodity.model.CommodityCodeEntity; 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.model.DeptEntity;
import com.dxhy.order.baseservice.module.thirdservice.user.service.UserInfoService;
import com.dxhy.order.constant.*; import com.dxhy.order.constant.*;
import com.dxhy.order.consumer.openapi.protocol.Response; import com.dxhy.order.consumer.openapi.protocol.Response;
import com.dxhy.order.consumer.openapi.protocol.cpy.*; 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.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.generateinvoice.sap.FpkjMxSap;
import com.dxhy.order.consumer.openapi.protocol.po.generateinvoice.sap.FpkjReqSap; 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.sld.*;
import com.dxhy.order.consumer.openapi.protocol.v4.commodity.SpxxBO; 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.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import javax.annotation.Resource;
import java.text.DecimalFormat; import java.text.DecimalFormat;
import java.util.*; import java.util.*;
@ -3212,7 +3215,7 @@ public class BeanTransitionUtils {
* @Author: liufeilong * @Author: liufeilong
* @Date: 2023-02-06 * @Date: 2023-02-06
*/ */
public static DdpcxxReqBO transitionPoKpReq(PoCommonRequestParam requestParam){ public static DdpcxxReqBO transitionPoKpReq(PoCommonRequestParam requestParam,DeptEntity deptEntity){
DdpcxxReqBO ddpcxxReqBO = new DdpcxxReqBO(); DdpcxxReqBO ddpcxxReqBO = new DdpcxxReqBO();
DdpcxxBO ddpcxxBO = new DdpcxxBO(); DdpcxxBO ddpcxxBO = new DdpcxxBO();
List<DdzxxBO> ddzxxList = new ArrayList<>(); List<DdzxxBO> ddzxxList = new ArrayList<>();
@ -3225,14 +3228,52 @@ public class BeanTransitionUtils {
Map<String, Object> zdata = isinput.getZDATA(); Map<String, Object> zdata = isinput.getZDATA();
String zdataString = JsonUtils.getInstance().toJsonString(zdata); String zdataString = JsonUtils.getInstance().toJsonString(zdata);
FpkjReqSap req = JsonUtils.getInstance().parseObject(zdataString, FpkjReqSap.class); FpkjReqSap req = JsonUtils.getInstance().parseObject(zdataString, FpkjReqSap.class);
//批次信息
ddpcxxBO.setDDQQPCH(isinput.getSAPKEY()); 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<FpkjMxSap> 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.setDDTXX(ddtxxBO);
ddzxxBO.setDDMXXX(ddmxList); ddzxxBO.setDDMXXX(ddmxList);
ddzxxList.add(ddzxxBO); ddzxxList.add(ddzxxBO);
ddpcxxReqBO.setDDPCXX(ddpcxxBO); ddpcxxReqBO.setDDPCXX(ddpcxxBO);
ddpcxxReqBO.setDDZXX(ddzxxList);
return ddpcxxReqBO; return ddpcxxReqBO;
} }

Loading…
Cancel
Save