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_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红票
*/

@ -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;
}
/**

@ -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);

@ -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<DdzxxBO> ddzxxList = new ArrayList<>();
@ -3225,14 +3228,52 @@ public class BeanTransitionUtils {
Map<String, Object> 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<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.setDDMXXX(ddmxList);
ddzxxList.add(ddzxxBO);
ddpcxxReqBO.setDDPCXX(ddpcxxBO);
ddpcxxReqBO.setDDZXX(ddzxxList);
return ddpcxxReqBO;
}

Loading…
Cancel
Save