Merge remote-tracking branch 'origin/dev-jdc' into test

release
王琦 2 years ago
commit 0cbdf23b91
  1. 5
      order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/vehicles/controller/VehiclesController.java
  2. 9
      order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/vehicles/model/VehiclesCodeEntity.java
  3. 113
      order-management-common/src/main/java/com/dxhy/order/constant/EnumNuoNuoInvoiceType.java
  4. 2
      order-management-common/src/main/java/com/dxhy/order/constant/OrderInfoEnum.java
  5. 6
      order-management-common/src/main/java/com/dxhy/order/model/sk/fg/SpFpzlDto.java
  6. 2
      order-management-common/src/main/java/com/dxhy/order/utils/CommonUtils.java
  7. 3
      order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/OrderInfoEscService.java
  8. 3
      order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/OrderInfoJdcService.java
  9. 2
      order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/impl/MakeOutAnInvoiceServiceImpl.java
  10. 6
      order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/impl/OrderInfoEscServiceImpl.java
  11. 8
      order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/impl/OrderInfoJdcServiceImpl.java
  12. 91
      order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/service/impl/FangGeInterfaceServiceImpl.java
  13. 79
      order-management-consumer/src/main/java/com/dxhy/order/consumer/utils/BeanTransitionUtils.java
  14. 20
      order-management-invoice/src/main/java/com/dxhy/order/invoice/module/fangge/protocol/invalid/FgInvalidInvoiceInfosBO.java
  15. 14
      order-management-invoice/src/main/java/com/dxhy/order/invoice/module/fangge/protocol/invoice/FgCommonOrderBO.java
  16. 140
      order-management-invoice/src/main/java/com/dxhy/order/invoice/module/fangge/protocol/invoice/FgEsctxxBO.java
  17. 99
      order-management-invoice/src/main/java/com/dxhy/order/invoice/module/fangge/protocol/invoice/FgJdctxxBO.java
  18. 10
      order-management-invoice/src/main/java/com/dxhy/order/invoice/module/invoice/controller/InvoiceController.java
  19. 3
      order-management-invoice/src/main/java/com/dxhy/order/invoice/module/invoice/dao/OrderInfoEscMapper.java
  20. 3
      order-management-invoice/src/main/java/com/dxhy/order/invoice/module/invoice/dao/OrderInfoJdcMapper.java
  21. 8
      order-management-invoice/src/main/java/com/dxhy/order/invoice/module/invoice/dao/OrderInvoiceInfoMapper.java
  22. 130
      order-management-invoice/src/main/java/com/dxhy/order/invoice/module/invoice/model/vo/OrderInfoEscVO.java
  23. 84
      order-management-invoice/src/main/java/com/dxhy/order/invoice/module/invoice/model/vo/OrderInfoJdcVO.java
  24. 13
      order-management-invoice/src/main/java/com/dxhy/order/invoice/module/invoice/service/OrderInvoiceInfoService.java
  25. 10
      order-management-invoice/src/main/java/com/dxhy/order/invoice/module/invoice/service/impl/UnifyServiceImpl.java
  26. 2
      order-management-invoice/src/main/java/com/dxhy/order/invoice/utils/HttpInvoiceRequestUtilFg.java
  27. 34
      order-management-invoice/src/main/resources/mybatis/mapper/OrderInfoEscMapper.xml
  28. 26
      order-management-invoice/src/main/resources/mybatis/mapper/OrderInfoJdcMapper.xml
  29. 8
      order-management-invoice/src/main/resources/mybatis/mapper/OrderInvoiceInfoMapper.xml

@ -24,6 +24,7 @@ import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
@ -80,7 +81,7 @@ public class VehiclesController {
@PostMapping("/insertVehicles")
@ApiOperation(value = "新增车辆税编", notes = "车辆税编管理-新增车辆税编", httpMethod = "POST")
@SysLog(operation = "新增车辆税编", operationDesc = "新增车辆税编", key = "车辆税编管理")
public R insertVehicles(@RequestBody VehiclesCodeEntity vehiclesCodeEntity) {
public R insertVehicles(@RequestBody @Validated VehiclesCodeEntity vehiclesCodeEntity) {
log.info("{},新增请求参数:{}", LOGGER_MSG, JSONUtil.toJsonStr(vehiclesCodeEntity));
if (Objects.isNull(vehiclesCodeEntity)) {
return R.error("请求参数为空");
@ -105,7 +106,7 @@ public class VehiclesController {
@PostMapping("/updateVehicles")
@ApiOperation(value = "更新车辆税编", notes = "车辆税编管理-更新车辆税编", httpMethod = "POST")
@SysLog(operation = "更新车辆税编", operationDesc = "更新车辆税编", key = "车辆税编管理")
public R updateVehicles(@RequestBody VehiclesCodeEntity vehiclesCodeEntity) {
public R updateVehicles(@RequestBody @Validated VehiclesCodeEntity vehiclesCodeEntity) {
if (Objects.isNull(vehiclesCodeEntity)) {
return R.error("请求参数为空");
}

@ -2,7 +2,9 @@ package com.dxhy.order.baseservice.module.vehicles.model;
import lombok.Getter;
import lombok.Setter;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.util.Date;
@ -22,14 +24,18 @@ public class VehiclesCodeEntity implements Serializable {
/**
* 纳税人识别号
*/
@Length(max = 30,message = "当前操作不支持多税号进行操作")
@NotBlank(message = "纳税人识别号 不允许为空")
private String xhfNsrsbh;
/**
* 销方名称
*/
@NotBlank(message = "销方名称 不允许为空")
private String xhfMc;
/**
* 车辆类型
*/
@NotBlank(message = "车辆类型 不允许为空")
private String cllx;
/**
* 车辆编码
@ -42,6 +48,7 @@ public class VehiclesCodeEntity implements Serializable {
/**
* 税收编码
*/
@NotBlank(message = "税收编码 不允许为空")
private String taxClassCode;
/**
* 税收简称
@ -68,7 +75,7 @@ public class VehiclesCodeEntity implements Serializable {
*/
private String enjoyPreferentialPolicies;
/**
* 优惠政策类型jh非零税率0:出口零税,1免税2不征税 3:普通零税率
* 优惠政策类型jh非零税率0:出口零税,1免税2不征税 3:普通零税率 4简易征收(如果是按3%简易征收需要保证税率为0.03)
*/
private String preferentialPoliciesType;
/**

@ -0,0 +1,113 @@
package com.dxhy.order.constant;
import lombok.AllArgsConstructor;
import lombok.Getter;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
/**
* @author DuGuangLei
* @date 2022-07-10
* 发票类型枚举
* 销项发票类型映射
* 最终枚举
* * 增值税专用发票 004
* * 机动车销售统一发票005
* * 二手车销售统一发票006
* * 增值税普通发票 007
* * 增值税电子普通发票 026
* * 增值税电子专用发票028
*/
@Getter
@AllArgsConstructor
public enum EnumNuoNuoInvoiceType {
INVOICE_TYPE_S("0", "004","s","增值税专用发票","增值税专用发票"),
INVOICE_TYPE_P("51", "026","p","增值税电子普通发票","增值税电子普通发票"),
INVOICE_TYPE_C("2", "007","c","增值税普通发票","增值税普通发票"),
INVOICE_TYPE_R("41", "","r","卷票","增值税普通发票(卷式)"),
INVOICE_TYPE_B("52", "028","b","增值税电子专用发票","专用发票(电子)"),
INVOICE_TYPE_J("12", "005","j","机动车销售统一发票","机动车销售统一发票"),
INVOICE_TYPE_U("42", "006","u","二手车销售统一发票","二手车销售统一发票"),
;
/**
* 销项内部发票code
*/
private String code;
/**
* 销项对外接口发票code
*/
private String outerCode;
/**
* 诺诺发票code
*/
private String nuoNuoCode;
/**
* 销项发票名称
*/
private String name;
/**
* 销诺诺发票名称
*/
private String nuoNuoName;
/**
* 根据销项发票类型获取销项发票类型名称
* @param code
* @return
*/
public static String getByCode(String code) {
EnumNuoNuoInvoiceType enumNuoNuoMethod = Arrays.asList(EnumNuoNuoInvoiceType.values()).
stream().filter(s -> s.getCode() .equals(code)).
findFirst().
orElse(null);
return enumNuoNuoMethod.getName();
}
/**
* 根据销项发票类型获取销项发票类型名称
* @param code
* @return
*/
public static String getByOuterCodeByCode(String code) {
EnumNuoNuoInvoiceType enumNuoNuoMethod = Arrays.asList(EnumNuoNuoInvoiceType.values()).
stream().filter(s -> s.getCode() .equals(code)).
findFirst().
orElse(null);
return enumNuoNuoMethod.getOuterCode();
}
/**
* 根据销项发票类型获取销项发票类型名称
* @param name 中文发票类型
* @return
*/
public static String getByName(String name) {
EnumNuoNuoInvoiceType enumNuoNuoMethod = Arrays.asList(EnumNuoNuoInvoiceType.values()).
stream().filter(s -> s.getName() .equals(name)).
findFirst().
orElse(null);
return enumNuoNuoMethod==null?"":enumNuoNuoMethod.getName();
}
/**
* 获取所有票种
* @return
*/
public static List<String> getAllCode() {
return Arrays.asList(EnumNuoNuoInvoiceType.values()).stream().map(s -> s.getCode()).collect(Collectors.toList());
}
}

@ -839,6 +839,7 @@ public enum OrderInfoEnum {
* 07其它通行费
* 08成品油销售
* 09机动车专票
* 12(方格)机动车专票
*/
TSPZ_00("00", "不是特殊票种"),
TSPZ_01("01", "农产品销售"),
@ -847,6 +848,7 @@ public enum OrderInfoEnum {
TSPZ_07("07", "其它通行费"),
TSPZ_08("08", "成品油销售"),
TSPZ_09("09", "机动车专票"),
TSPZ_12("12", "机动车专票"),
TSPZ_16("16", "矿产品发票"),

@ -44,5 +44,11 @@ public class SpFpzlDto implements Serializable {
*/
private String fpzldm;
/**
* 机动车标识
*/
private String jdcbs;
}

@ -1158,7 +1158,7 @@ public class CommonUtils {
* @date 2021-09-07
*/
public static boolean judgeIsFgTerminalOld(String terminalCode, String fgSkKpShList, String sh) {
boolean isSkQd = true;
boolean isSkQd = false;
// if (StringUtils.isNotBlank(fgSkKpShList) && StringUtils.isNotBlank(sh)) {
// String[] fgSkKpList = fgSkKpShList.split(ConfigureConstant.STRING_POINT2);
// for (String fgSkKp : fgSkKpList) {

@ -1,5 +1,6 @@
package com.dxhy.order.consumer.modules.order.service;
import com.dxhy.order.invoice.module.invoice.model.vo.OrderInfoEscVO;
import com.dxhy.order.model.OrderInfoEsc;
import java.util.List;
@ -30,4 +31,6 @@ public interface OrderInfoEscService {
* @date 2021-07-30
*/
int updateOrderInfoEscById(OrderInfoEsc orderInfoEsc);
OrderInfoEscVO queryOrderInfoEscByOrderId(String orderInfoId);
}

@ -1,5 +1,6 @@
package com.dxhy.order.consumer.modules.order.service;
import com.dxhy.order.invoice.module.invoice.model.vo.OrderInfoJdcVO;
import com.dxhy.order.model.OrderInfoJdc;
import java.util.List;
@ -30,4 +31,6 @@ public interface OrderInfoJdcService {
* @date 2021-07-30
*/
int updateOrderInfoJdcById(OrderInfoJdc orderInfoJdc);
OrderInfoJdcVO queryOrderInfoJdcByOrderId(String orderInfoId);
}

@ -616,7 +616,7 @@ public class MakeOutAnInvoiceServiceImpl implements MakeOutAnInvoiceService {
//方格开票特殊处理
if (CommonUtils.judgeIsFgTerminalOld(terminalCode,fgSkKpShList,sh)) {
if (CommonUtils.judgeIsFgTerminalOld(terminalCode,fgSkKpShList,sh) && (OrderInfoEnum.ORDER_INVOICE_TYPE_12.getKey().equals(orderInfo.getFpzlDm())||OrderInfoEnum.ORDER_INVOICE_TYPE_42.getKey().equals(orderInfo.getFpzlDm()))) {
for (List<InvoiceBatchRequestItem> invoiceBatchRequestItem1 : insertBatchItem) {
for (InvoiceBatchRequestItem batchRequestItem : invoiceBatchRequestItem1) {
/**

@ -1,5 +1,6 @@
package com.dxhy.order.consumer.modules.order.service.impl;
import com.dxhy.order.invoice.module.invoice.model.vo.OrderInfoEscVO;
import com.dxhy.order.model.OrderInfoEsc;
import com.dxhy.order.consumer.modules.order.service.OrderInfoEscService;
import com.dxhy.order.invoice.module.invoice.dao.OrderInfoEscMapper;
@ -37,4 +38,9 @@ public class OrderInfoEscServiceImpl implements OrderInfoEscService {
return orderInfoEscMapper.updateByPrimaryKeySelective(orderInfoEsc);
}
@Override
public OrderInfoEscVO queryOrderInfoEscByOrderId(String orderId) {
return orderInfoEscMapper.queryOrderInfoEscByOrderId(orderId);
}
}

@ -1,5 +1,6 @@
package com.dxhy.order.consumer.modules.order.service.impl;
import com.dxhy.order.invoice.module.invoice.model.vo.OrderInfoJdcVO;
import com.dxhy.order.model.OrderInfoJdc;
import com.dxhy.order.consumer.modules.order.service.OrderInfoJdcService;
import com.dxhy.order.invoice.module.invoice.dao.OrderInfoJdcMapper;
@ -37,5 +38,12 @@ public class OrderInfoJdcServiceImpl implements OrderInfoJdcService {
return orderInfoJdcMapper.updateByPrimaryKeySelective(orderInfoJdc);
}
@Override
public OrderInfoJdcVO queryOrderInfoJdcByOrderId(String orderInfoId) {
return orderInfoJdcMapper.queryOrderInfoJdcByOrderId(orderInfoId);
}
}

@ -20,10 +20,7 @@ import com.dxhy.order.consumer.modules.manager.service.InvoiceDataService;
import com.dxhy.order.consumer.modules.manager.service.InvoiceService;
import com.dxhy.order.consumer.modules.oil.model.OilLog;
import com.dxhy.order.consumer.modules.oil.service.OilService;
import com.dxhy.order.consumer.modules.order.service.OrderCommonService;
import com.dxhy.order.consumer.modules.order.service.OrderInfoService;
import com.dxhy.order.consumer.modules.order.service.OrderItemInfoService;
import com.dxhy.order.consumer.modules.order.service.OrderProcessService;
import com.dxhy.order.consumer.modules.order.service.*;
import com.dxhy.order.consumer.openapi.protocol.specialinvoice.RedInvoiceFormRspBO;
import com.dxhy.order.consumer.openapi.protocol.specialinvoice.RedInvoiceFormUploadResponseBO;
import com.dxhy.order.consumer.openapi.service.FangGeInterfaceService;
@ -45,6 +42,8 @@ import com.dxhy.order.invoice.module.fangge.protocol.taxdisk.FgRegistTaxdiskReqB
import com.dxhy.order.invoice.module.fangge.service.FangGeService;
import com.dxhy.order.invoice.module.fangge.service.RegistrationCodeService;
import com.dxhy.order.invoice.module.invoice.dao.InvoicePrintInfoMapper;
import com.dxhy.order.invoice.module.invoice.model.vo.OrderInfoEscVO;
import com.dxhy.order.invoice.module.invoice.model.vo.OrderInfoJdcVO;
import com.dxhy.order.invoice.module.invoice.service.HistoryDataPdfService;
import com.dxhy.order.invoice.module.invoice.service.InvalidInvoiceService;
import com.dxhy.order.invoice.module.invoice.service.OrderInvoiceInfoService;
@ -155,6 +154,13 @@ public class FangGeInterfaceServiceImpl implements FangGeInterfaceService {
@Resource
private BaseServiceConfig baseServiceConfig;
@Resource
private OrderInfoJdcService orderInfoJdcService;
@Resource
private OrderInfoEscService orderInfoEscService;
/**
* 待开发票数据接口
*/
@ -205,6 +211,19 @@ public class FangGeInterfaceServiceImpl implements FangGeInterfaceService {
FgCommonOrderBO fgCommonOrder = new FgCommonOrderBO();
//查询订单数据
//查询对应的机动车订单数据
OrderInfoJdcVO orderInfoJdc = orderInfoJdcService.queryOrderInfoJdcByOrderId(info.getOrderInfoId());
if (null != orderInfoJdc) {
FgJdctxxBO fgJdctxxBO = BeanTransitionUtils.transitionJdcfgOrderInvoiceHead(orderInfoJdc);
fgCommonOrder.setJDCTXX(fgJdctxxBO);
}
//查询二手车订单数据
OrderInfoEscVO orderInfoEsc = orderInfoEscService.queryOrderInfoEscByOrderId(info.getOrderInfoId());
if (null != orderInfoEsc) {
FgEsctxxBO fgEsctxxBO = BeanTransitionUtils.transitionEscfgOrderInvoiceHead(orderInfoEsc);
fgCommonOrder.setESCTXX(fgEsctxxBO);
}
OrderInfo orderInfo = orderInfoService.selectOrderInfoByOrderId(info.getOrderInfoId(), shList);
if (orderInfo == null) {
if (StringUtils.isNotBlank(nsrsbh) && StringUtils.isNotBlank(jqbh)) {
@ -265,6 +284,20 @@ public class FangGeInterfaceServiceImpl implements FangGeInterfaceService {
* 数据组装
* 订单状态 0 未开具 1 开具成功 2 开具失败
*/
if (orderInfo.getYfpKprq()==null&&ConfigureConstant.STRING_1.equals(orderInfo.getKplx())){
//根据发票请求流水号和原代码号码取查询原发票的开票日期
OrderInvoiceInfo orderInvoiceInfo1 = new OrderInvoiceInfo();
orderInvoiceInfo1.setFpdm(orderInfo.getYfpDm());
orderInvoiceInfo1.setFphm(orderInfo.getYfpHm());
List<String> taxNos = new ArrayList<>();
taxNos.add(orderInfo.getXhfNsrsbh());
OrderInvoiceInfo invoiceInfo = orderInvoiceInfoService.selectOrderInvoiceInfo(orderInvoiceInfo1, taxNos);
if (invoiceInfo!=null){
log.info("\n************************\n原蓝票代码: {},\n原蓝票号码: {},\n原开票日期: {}\n************************",orderInfo.getYfpDm(),orderInfo.getYfpHm(),invoiceInfo.getKprq());
orderInfo.setYfpKprq(invoiceInfo.getKprq());
}
}
FgCommonOrderHeadBO fgCommonOrderHead = BeanTransitionUtils.transitionfgOrderInvoiceHead(orderInfo, orderInvoiceInfo, orderItemInfos);
String terminalCode = orderInfo.getSksbCode();
if (StringUtils.isBlank(terminalCode)) {
@ -365,9 +398,16 @@ public class FangGeInterfaceServiceImpl implements FangGeInterfaceService {
} else if (OrderInfoEnum.QDBZ_CODE_4.getKey().equals(orderInfo.getQdBz())) {
fgCommonOrderHead.setTSPZ(OrderInfoEnum.TSPZ_08.getKey());
} else if (OrderInfoEnum.QDBZ_CODE_5.getKey().equals(orderInfo.getQdBz()) || OrderInfoEnum.QDBZ_CODE_6.getKey().equals(orderInfo.getQdBz())) {
fgCommonOrderHead.setTSPZ(OrderInfoEnum.TSPZ_09.getKey());
//fgCommonOrderHead.setTSPZ(OrderInfoEnum.TSPZ_09.getKey());
//机动车专票--方格设置成12 其余设置为09
if(OrderInfoEnum.TAX_EQUIPMENT_FGUKEY.getKey().equals(terminalCode)){
fgCommonOrderHead.setTSPZ(OrderInfoEnum.TSPZ_12.getKey());
}else{
fgCommonOrderHead.setTSPZ(OrderInfoEnum.TSPZ_09.getKey());
}
}
/**
* 含税税率标识
* 0是普通征收1是减按计增2是差额征收
@ -1072,7 +1112,19 @@ public class FangGeInterfaceServiceImpl implements FangGeInterfaceService {
fgRedInvoiceFormHead.setHJSE(specialInvoiceReversal.getHjse());
fgRedInvoiceFormHead.setSQSM(specialInvoiceReversal.getSqsm());
fgRedInvoiceFormHead.setBMB_BBH("1.0");
fgRedInvoiceFormHead.setXXBLX("0");
//方格的xxblx要专门专门 存3转2 存4转3
if (StringUtils.isNotBlank(specialInvoiceReversal.getType())){
if ("3".equals(specialInvoiceReversal.getType())){
//机动车红字信息表(涉及退货和开具错误等)
fgRedInvoiceFormHead.setXXBLX("2");
}else if("4".equals(specialInvoiceReversal.getType())){
fgRedInvoiceFormHead.setXXBLX("3");
}else{
fgRedInvoiceFormHead.setXXBLX("0");
}
}else{
fgRedInvoiceFormHead.setXXBLX("0");
}
//填开时间为 yyyy-MM-dd HH:mm:ss ,返回方格转换为yyyyMMdd
fgRedInvoiceFormHead.setTKSJ(DateUtil.format(specialInvoiceReversal.getTksj(), ConfigureConstant.DATE_FORMAT_DATE_YMD));
fgRedInvoiceFormHead.setYYSBZ(OrderInfoEnum.SPECIAL_YYSBZ_0000000000.getKey());
@ -1654,6 +1706,28 @@ public class FangGeInterfaceServiceImpl implements FangGeInterfaceService {
log.error("{}没有作废发票", LOGGER_MSG);
return fgInvalidInvoiceRspfgOrderResponse;
}
//获取方格UKey税局地址
FgUkeySf fgukeysf = new FgUkeySf();
try {
fgukeysf = getFgukeysf(paramContent.getNSRSBH(),invalidInvoiceInfo.get(0).getEntId(), ConfigureConstant.STRING_DICTIONARY_FGOFDDOWNLOAD_URL);
} catch (OrderReceiveException e) {
fgInvalidInvoiceRspfgOrderResponse.setSTATUS_CODE(e.getCode());
fgInvalidInvoiceRspfgOrderResponse.setSTATUS_MESSAGE(e.getMessage());
log.error("{},开票接口读取数据异常,异常信息为:{}", LOGGER_MSG, e);
return fgInvalidInvoiceRspfgOrderResponse;
}
/**
* 上传地址补全
*/
FgUkeySf fgukeysf1 = new FgUkeySf();
try {
fgukeysf1 = getFgukeysf(paramContent.getNSRSBH(),invalidInvoiceInfo.get(0).getEntId(), ConfigureConstant.STRING_DICTIONARY_FGUPLOAD_URL);
} catch (OrderReceiveException e) {
fgInvalidInvoiceRspfgOrderResponse.setSTATUS_CODE(e.getCode());
fgInvalidInvoiceRspfgOrderResponse.setSTATUS_MESSAGE(e.getMessage());
log.error("{},开票接口读取数据异常,异常信息为:{}", LOGGER_MSG, e);
return fgInvalidInvoiceRspfgOrderResponse;
}
String jqbh = null;
for (InvalidInvoiceInfo invalidInvoiceInfo1 : invalidInvoiceInfo) {
FgInvalidInvoiceInfosBO infos = new FgInvalidInvoiceInfosBO();
@ -1661,6 +1735,11 @@ public class FangGeInterfaceServiceImpl implements FangGeInterfaceService {
infos.setFP_HM(invalidInvoiceInfo1.getFphm());
infos.setQMCS("");
infos.setZFR(invalidInvoiceInfo1.getZfr());
//设置局端IP
infos.setJDIP(fgukeysf.getSjdz());
infos.setJDDK(fgukeysf.getSjdk());
infos.setJDIPSC(fgukeysf1.getSjdz());
infos.setJDDKSC(fgukeysf1.getSjdk());
/**
* 方格底层支持持作废类型,0空白,1已开
*/

@ -38,7 +38,11 @@ import com.dxhy.order.consumer.openapi.protocol.v6.order.QdFjysBO;
import com.dxhy.order.consumer.openapi.protocol.v6.order.QdTxxBO;
import com.dxhy.order.exception.OrderReceiveException;
import com.dxhy.order.invoice.module.fangge.protocol.invoice.FgCommonOrderHeadBO;
import com.dxhy.order.invoice.module.fangge.protocol.invoice.FgEsctxxBO;
import com.dxhy.order.invoice.module.fangge.protocol.invoice.FgJdctxxBO;
import com.dxhy.order.invoice.module.fangge.protocol.invoice.FgOrderInvoiceItemBO;
import com.dxhy.order.invoice.module.invoice.model.vo.OrderInfoEscVO;
import com.dxhy.order.invoice.module.invoice.model.vo.OrderInfoJdcVO;
import com.dxhy.order.invoice.module.invoicespecial.model.SpecialInvoiceReversalEntity;
import com.dxhy.order.model.*;
import com.dxhy.order.model.c48.cpy.*;
@ -3852,6 +3856,81 @@ public class BeanTransitionUtils {
return orderInfo;
}
/**
* 机动车发票对外协议bean转换
*
* @param orderInfoJdc
* @return
*/
public static FgJdctxxBO transitionJdcfgOrderInvoiceHead(OrderInfoJdcVO orderInfoJdc) {
FgJdctxxBO fgJdctxxBO = new FgJdctxxBO();
fgJdctxxBO.setCLLX(orderInfoJdc.getCllx());
fgJdctxxBO.setCPXH(orderInfoJdc.getCpxh());
fgJdctxxBO.setCLCD(orderInfoJdc.getClcd());
fgJdctxxBO.setHGZH(orderInfoJdc.getHgzh());
fgJdctxxBO.setJKZMSH(orderInfoJdc.getJkzmsh());
fgJdctxxBO.setSJDH(orderInfoJdc.getSjdh());
fgJdctxxBO.setFDJHM(orderInfoJdc.getFdjhm());
fgJdctxxBO.setCLSBDH(orderInfoJdc.getClsbdh());
fgJdctxxBO.setWSPZHM(orderInfoJdc.getWspzhm());
fgJdctxxBO.setDW(orderInfoJdc.getDw());
fgJdctxxBO.setXCRS(orderInfoJdc.getXcrs());
fgJdctxxBO.setCJXX(orderInfoJdc.getCjxx());
fgJdctxxBO.setZZJGDM(orderInfoJdc.getZzjgdm());
fgJdctxxBO.setQYZXBM(orderInfoJdc.getZxbm());
fgJdctxxBO.setBYZD1(orderInfoJdc.getByzd1());
fgJdctxxBO.setBYZD2(orderInfoJdc.getByzd2());
fgJdctxxBO.setBYZD3(orderInfoJdc.getByzd3());
fgJdctxxBO.setBYZD3(orderInfoJdc.getByzd3());
fgJdctxxBO.setJDCFPBZ(orderInfoJdc.getJdcfpbz());
return fgJdctxxBO;
}
/**
* 二手车发票对外协议bean转换
*
* @param orderInfoEsc
* @return
*/
public static FgEsctxxBO transitionEscfgOrderInvoiceHead(OrderInfoEscVO orderInfoEsc) {
FgEsctxxBO fgEsctxxBO = new FgEsctxxBO();
if(orderInfoEsc.getKpflx().equals("1")){
fgEsctxxBO.setKPFLX("01");
}else if(orderInfoEsc.getKpflx().equals("2")){
fgEsctxxBO.setKPFLX("02");
}else if(orderInfoEsc.getKpflx().equals("3")){
fgEsctxxBO.setKPFLX("03");
}else{
fgEsctxxBO.setKPFLX(orderInfoEsc.getKpflx());
}
fgEsctxxBO.setCPZH(orderInfoEsc.getCpzh());
fgEsctxxBO.setDJZH(orderInfoEsc.getDjzh());
fgEsctxxBO.setCLLX(orderInfoEsc.getCllx());
fgEsctxxBO.setCLSBDM(orderInfoEsc.getClsbdm());
fgEsctxxBO.setCPXH(orderInfoEsc.getCpxh());
fgEsctxxBO.setZRDCLGLSMC(orderInfoEsc.getZrdclglsmc());
fgEsctxxBO.setJYPMDW_MC(orderInfoEsc.getJypmdwMc());
fgEsctxxBO.setJYPMDW_DZ(orderInfoEsc.getJypmdwDz());
fgEsctxxBO.setJYPMDW_SH(orderInfoEsc.getJypmdwSh());
fgEsctxxBO.setJYPMDW_YHZH(orderInfoEsc.getJypmdwYhzh());
fgEsctxxBO.setJYPMDW_DH(orderInfoEsc.getJypmdwDh());
fgEsctxxBO.setSC_MC(orderInfoEsc.getScMc());
fgEsctxxBO.setSC_SH(orderInfoEsc.getScSh());
fgEsctxxBO.setSC_DZ(orderInfoEsc.getScDz());
fgEsctxxBO.setSC_YHZH(orderInfoEsc.getScYhzh());
fgEsctxxBO.setSC_DH(orderInfoEsc.getScDh());
fgEsctxxBO.setESC_XHFDM(orderInfoEsc.getEscXhfdm());
fgEsctxxBO.setESC_XHFMC(orderInfoEsc.getEscXhfmc());
fgEsctxxBO.setESC_XHFDZ(orderInfoEsc.getEscXhfdz());
fgEsctxxBO.setESC_XHFDH(orderInfoEsc.getEscXhfdh());
fgEsctxxBO.setSC_CGSWSPZHM(orderInfoEsc.getScCgswspzhm());
fgEsctxxBO.setQYZXBM(orderInfoEsc.getZxbm());
fgEsctxxBO.setBYZD1(orderInfoEsc.getByzd1());
fgEsctxxBO.setBYZD2(orderInfoEsc.getByzd2());
fgEsctxxBO.setBYZD3(orderInfoEsc.getByzd3());
return fgEsctxxBO;
}
/**
* 红字信息表明细转OrderItemInfo
* @param specialInvoiceReversalItemList , xhfNsrsbh

@ -48,4 +48,24 @@ public class FgInvalidInvoiceInfosBO implements Serializable {
* 合计金额
*/
private String HJJE;
/**
* 税局IP,只有方格UKey需要
*/
private String JDIP;
/**
* 税局端口,只有方格UKey需要
*/
private String JDDK;
/**
* 税局上传IP,只有方格UKey需要
*/
private String JDIPSC;
/**
* 税局上传端口,只有方格UKey需要
*/
private String JDDKSC;
}

@ -28,5 +28,17 @@ public class FgCommonOrderBO implements Serializable {
* 订单明细信息
*/
private List<FgOrderInvoiceItemBO> ORDER_INVOICE_ITEMS;
/**
* 机动车信息
*/
private FgJdctxxBO JDCTXX;
/**
* 二手车信息
*/
private FgEsctxxBO ESCTXX;
}

@ -0,0 +1,140 @@
package com.dxhy.order.invoice.module.fangge.protocol.invoice;
import lombok.Data;
import java.io.Serializable;
@Data
public class FgEsctxxBO implements Serializable {
/**
* 开票方类型
*/
private String KPFLX;
/**
* 车牌照号
*/
private String CPZH;
/**
* 登记证号
*/
private String DJZH;
/**
* 车辆类型
*/
private String CLLX;
/**
* 车架号/车辆识别代码
*/
private String CLSBDM;
/**
* 厂牌型号
*/
private String CPXH;
/**
* 转入地车辆管理所名称
*/
private String ZRDCLGLSMC;
/**
* 经营拍卖单位名称
*/
private String JYPMDW_MC;
/**
* 经营拍卖单位地址
*/
private String JYPMDW_DZ;
/**
* 经营拍卖单位税号
*/
private String JYPMDW_SH;
/**
* 经营拍卖单位银行账号
*/
private String JYPMDW_YHZH;
/**
* 经营拍卖单位电话
*/
private String JYPMDW_DH;
/**
* 二手车市场名称
*/
private String SC_MC;
/**
* 二手车市场税号
*/
private String SC_SH;
/**
* 二手车市场地址
*/
private String SC_DZ;
/**
* 二手车市场银行账号
*/
private String SC_YHZH;
/**
* 二手车市场电话
*/
private String SC_DH;
/**
* 二手车销方代码
*/
private String ESC_XHFDM;
/**
* 二手车销方名称
*/
private String ESC_XHFMC;
/**
* 二手车销方地址
*/
private String ESC_XHFDZ;
/**
* 二手车销方电话
*/
private String ESC_XHFDH;
/**
* 车购税完税凭证号码
*/
private String SC_CGSWSPZHM;
/**
* 企业自行编码
*/
private String QYZXBM;
/**
* 备用字段1
*/
private String BYZD1;
/**
* 备用字段2
*/
private String BYZD2;
/**
* 备用字段3
*/
private String BYZD3;
}

@ -0,0 +1,99 @@
package com.dxhy.order.invoice.module.fangge.protocol.invoice;
import lombok.Data;
import java.io.Serializable;
@Data
public class FgJdctxxBO implements Serializable {
/**
* 车辆类型
*/
private String CLLX;
/**
* 厂牌型号
*/
private String CPXH;
/**
* 产地
*/
private String CLCD;
/**
* 合格证号
*/
private String HGZH;
/**
* 进口证明书号
*/
private String JKZMSH;
/**
* 商检单号
*/
private String SJDH;
/**
* 发动机号码
*/
private String FDJHM;
/**
* 车辆识别单号
*/
private String CLSBDH;
/**
* 完税凭证号码
*/
private String WSPZHM;
/**
* 吨位
*/
private String DW;
/**
* 限乘人数
*/
private String XCRS;
/**
* 厂家信息
*/
private String CJXX;
/**
* 身份证号码/组织机构代码
*/
private String ZZJGDM;
/**
* 企业自行编码
*/
private String QYZXBM;
/**
* 备用字段1
*/
private String BYZD1;
/**
* 备用字段2
*/
private String BYZD2;
/**
* 备用字段3
*/
private String BYZD3;
/**
* 机动车发票标志2:2014版本3:2021版
*/
private String JDCFPBZ;
}

@ -25,6 +25,7 @@ import com.dxhy.order.invoice.module.invoice.model.bo.QueryCountInvoiceBO;
import com.dxhy.order.invoice.module.invoice.service.InvoiceKpdInfoService;
import com.dxhy.order.invoice.module.invoice.service.OrderInvoiceInfoService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.extern.slf4j.Slf4j;
@ -197,4 +198,13 @@ public class InvoiceController {
}
}
// @ApiOperation(value = "(自动)复制开票")
// @PostMapping(path = "/autoCopyInvoice")
// @SysLog(operation = "自动复制开票", operationDesc = "发票列表- 自动复制开票", key = "发票列表")
// @ApiImplicitParam(name = "orderInfoId",value = "订单信息主表id")
// public R autoCopyInvoice(@RequestParam(value = "orderInfoId") String orderInfoId) {
// return orderInvoiceInfoService.autoCopyInvoice(orderInfoId);
// }
}

@ -1,5 +1,6 @@
package com.dxhy.order.invoice.module.invoice.dao;
import com.dxhy.order.invoice.module.invoice.model.vo.OrderInfoEscVO;
import com.dxhy.order.model.OrderInfoEsc;
import org.apache.ibatis.annotations.Param;
@ -61,4 +62,6 @@ public interface OrderInfoEscMapper {
* @return
*/
int updateByPrimaryKeySelective(OrderInfoEsc record);
OrderInfoEscVO queryOrderInfoEscByOrderId(String orderId);
}

@ -1,5 +1,6 @@
package com.dxhy.order.invoice.module.invoice.dao;
import com.dxhy.order.invoice.module.invoice.model.vo.OrderInfoJdcVO;
import com.dxhy.order.model.OrderInfoJdc;
import org.apache.ibatis.annotations.Param;
@ -61,5 +62,7 @@ public interface OrderInfoJdcMapper {
* @return
*/
int updateByPrimaryKeySelective(OrderInfoJdc record);
OrderInfoJdcVO queryOrderInfoJdcByOrderId(String orderInfoId);
}

@ -248,4 +248,12 @@ public interface OrderInvoiceInfoMapper {
List<String> countInoviceInfo(@Param("orderInfoIds")List<String> orderInfoIds);
List<OrderInvoiceInfo> selectInvoiceInfoByFpqqlshs(@Param("fpqqlshs") List<String> fpqqlshs);
/**
* 根据订单表主键id查询发票信息
* @param orderInfoId 订单表主键id
* @return
*/
OrderInvoiceInfo selectByOrderInfoId(@Param("orderInfoId") String orderInfoId);
}

@ -0,0 +1,130 @@
package com.dxhy.order.invoice.module.invoice.model.vo;
import lombok.Data;
@Data
public class OrderInfoEscVO {
/**
* 开票方类型(1经营 2拍卖 3市场)
*/
private String kpflx;
/**
* 车牌照号
*/
private String cpzh;
/**
* 登记证号
*/
private String djzh;
/**
* 车辆类型
*/
private String cllx;
/**
* 车架号/车辆识别代码
*/
private String clsbdm;
/**
* 厂牌型号
*/
private String cpxh;
/**
* 转入地车辆管理所名称
*/
private String zrdclglsmc;
/**
* 经营拍卖单位名称
*/
private String jypmdwMc;
/**
* 经营拍卖单位地址
*/
private String jypmdwDz;
/**
* 经营拍卖单位税号
*/
private String jypmdwSh;
/**
* 经营拍卖单位银行账号
*/
private String jypmdwYhzh;
/**
* 经营拍卖单位电话
*/
private String jypmdwDh;
/**
* 二手车市场名称
*/
private String scMc;
/**
* 二手车市场税号
*/
private String scSh;
/**
* 二手车市场地址
*/
private String scDz;
/**
* 二手车市场银行账号
*/
private String scYhzh;
/**
* 二手车市场电话
*/
private String scDh;
/**
* 二手车销方代码
*/
private String escXhfdm;
/**
* 二手车二手车销方名称
*/
private String escXhfmc;
/**
* 二手车二手车销方地址
*/
private String escXhfdz;
/**
* 二手车二手车销方电话
*/
private String escXhfdh;
/**
* 车购税完税凭证号码
*/
private String scCgswspzhm;
/**
* 备用字段1
*/
private String byzd1;
/**
* 备用字段2
*/
private String byzd2;
/**
* 备用字段3
*/
private String byzd3;
/**
* 企业自行编码
*/
private String zxbm;
}

@ -0,0 +1,84 @@
package com.dxhy.order.invoice.module.invoice.model.vo;
import lombok.Data;
@Data
public class OrderInfoJdcVO {
/**
* 车辆类型
*/
private String cllx;
/**
* 厂牌型号
*/
private String cpxh;
/**
* 产地
*/
private String clcd;
/**
* 合格证号
*/
private String hgzh;
/**
* 进口证明书号
*/
private String jkzmsh;
/**
* 商检单号
*/
private String sjdh;
/**
* 发动机号码
*/
private String fdjhm;
/**
* 车辆识别单号
*/
private String clsbdh;
/**
* 完税凭证号码
*/
private String wspzhm;
/**
* 吨位
*/
private String dw;
/**
* 限乘人数
*/
private String xcrs;
/**
* 厂家信息
*/
private String cjxx;
/**
* 身份证号码/组织机构代码
*/
private String zzjgdm;
/**
* 企业自行编码
*/
private String zxbm;
/**
* 备用字段1
*/
private String byzd1;
/**
* 备用字段2
*/
private String byzd2;
/**
* 备用字段3
*/
private String byzd3;
/**
* 机动车发票标志2:2014版本3:2021版
*/
private String jdcfpbz;
}

@ -1,10 +1,7 @@
package com.dxhy.order.invoice.module.invoice.service;
import com.dxhy.order.model.CommonOrderInvoiceAndOrderMxInfo;
import com.dxhy.order.model.InvoiceCount;
import com.dxhy.order.model.OrderInvoiceInfo;
import com.dxhy.order.model.PageUtils;
import com.dxhy.order.model.*;
import com.dxhy.order.baseservice.module.thirdservice.rabbitmq.model.RabbitMqCommonInvoice;
import com.dxhy.order.invoice.module.invoice.model.FileDownLoad;
import com.dxhy.order.invoice.module.invoice.model.bo.QueryCountInvoiceBO;
@ -284,5 +281,13 @@ public interface OrderInvoiceInfoService {
String signInvoicePrint(String excelFile, List<String> ids) throws Exception;
List<String> countInoviceInfo(@Param("orderInfoIds")List<String> orderInfoIds);
/**
* 自动重新开票
* @param orderInfoId
* @return
*/
//R autoCopyInvoice(String orderInfoId);
}

@ -2,10 +2,7 @@ package com.dxhy.order.invoice.module.invoice.service.impl;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.ObjectUtil;
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.constant.*;
import com.dxhy.order.exception.OrderReceiveException;
import com.dxhy.order.model.Nsrsbh;
import com.dxhy.order.model.R;
@ -773,6 +770,11 @@ public class UnifyServiceImpl implements UnifyService {
!StringUtils.containsAny(zxbssj, "-", ":")){
zxbssj = zxbssj.substring(0,8);
}
//机动车标识
if (EnumNuoNuoInvoiceType.INVOICE_TYPE_J.getCode().equals(invoicetypedetail.getFpzldm())){
taxpayerMachineInfo.setJDCBS(invoicetypedetail.getJdcbs());
}
InvoiceType invoiceType = new InvoiceType();
invoiceType.setDZKPXE(invoicetypedetail.getDzkpxe());
invoiceType.setFPZLDM(invoicetypedetail.getFpzldm());

@ -157,7 +157,7 @@ public class HttpInvoiceRequestUtilFg {
String requestParam = JsonUtils.getInstance().toJsonStringNullToEmpty(fgJspxxReqEntity);
log.info("{}调用税盘限额信息的接口,请求头信息:{},url:{},入参:{}", LOGGER_MSG, JsonUtils.getInstance().toJsonString(header), url, requestParam);
String result = HttpUtils.doPostWithHeader(url, requestParam, header);
log.info("{}调用税盘限额信息的接口,出参:{}", LOGGER_MSG, StringUtils.isNotBlank(result) && result.length() > 500 ? result.substring(0, 500) : result);
log.info("{}调用税盘限额信息的接口,出参:{}", LOGGER_MSG, StringUtils.isNotBlank(result) && result.length() > 5000 ? result.substring(0, 5000) : result);
responseBaseBean = JsonUtils.getInstance().parseObject(result, SpFpXeDto.class);
if (ObjectUtil.isNotNull(responseBaseBean) && ConfigureConstant.STRING_0000.equals(responseBaseBean.getCode())) {
return responseBaseBean;

@ -401,4 +401,38 @@
</set>
where id = #{id,jdbcType=VARCHAR}
</update>
<select id="queryOrderInfoEscByOrderId" parameterType="java.lang.String" resultType="com.dxhy.order.invoice.module.invoice.model.vo.OrderInfoEscVO">
SELECT
esc.kpflx,
esc.cpzh,
esc.djzh,
esc.cllx,
esc.clsbdm,
esc.cpxh,
esc.zrdclglsmc,
esc.jypmdw_mc jypmdwMc,
esc.jypmdw_dz jypmdwDz,
esc.jypmdw_sh jypmdwSh,
esc.jypmdw_yhzh jypmdwYhzh,
esc.jypmdw_dh jypmdwDh,
esc.sc_mc scMc,
esc.sc_sh scSh,
esc.sc_dz scDz,
esc.sc_yhzh scYhzh,
esc.sc_dh scDh,
esc.esc_xhfdm escXhfdm,
esc.esc_xhfmc escXhfmc,
esc.esc_xhfdz escXhfdz,
esc.esc_xhfdh escXhfdh,
esc.sc_cgswspzhm scCgswspzhm,
byzd1,
byzd2,
byzd3
FROM
order_info_esc esc
WHERE
esc.order_id = #{orderId,jdbcType=VARCHAR}
</select>
</mapper>

@ -314,4 +314,30 @@
where id = #{id,jdbcType=VARCHAR}
</update>
<select id = "queryOrderInfoJdcByOrderId" parameterType="java.lang.String" resultType="com.dxhy.order.invoice.module.invoice.model.vo.OrderInfoJdcVO">
SELECT
jdc.cllx,
jdc.cpxh,
jdc.clcd,
jdc.hgzh,
jdc.jkzmsh,
jdc.sjdh,
jdc.fdjhm,
jdc.clsbdh,
jdc.wspzhm,
jdc.dw,
jdc.xcrs,
jdc.cjxx,
jdc.zzjgdm,
jdc.byzd1,
jdc.byzd2,
jdc.byzd3,
jdc.jdcfpbz
FROM
order_info_jdc jdc
WHERE
jdc.order_id = #{orderId,jdbcType=VARCHAR}
</select>
</mapper>

@ -2261,4 +2261,12 @@
</foreach>
AND ( oii.zf_bz = '0' OR oii.ch_bz = '0' )
</select>
<select id="selectByOrderInfoId" resultMap="BaseResultMap" parameterType="java.lang.String">
select
<include refid="Base_Column_List"/>
from
order_invoice_info where order_info_id=#{orderInfoId}
</select>
</mapper>

Loading…
Cancel
Save