From 0e5e3eea6163ad9ad5ec2b0a23db376b9c85a071 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=AB=98=E8=8D=A3=E7=90=B3?= Date: Sat, 11 Nov 2023 16:58:27 +0800 Subject: [PATCH 1/2] =?UTF-8?q?feature:=E6=9C=BA=E5=8A=A8=E8=BD=A6?= =?UTF-8?q?=E5=BC=80=E7=A5=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/VehiclesController.java | 5 +- .../vehicles/model/VehiclesCodeEntity.java | 9 +- .../order/constant/EnumNuoNuoInvoiceType.java | 113 ++++++++++++++ .../dxhy/order/constant/OrderInfoEnum.java | 2 + .../com/dxhy/order/model/sk/fg/SpFpzlDto.java | 6 + .../com/dxhy/order/utils/CommonUtils.java | 2 +- .../order/service/OrderInfoEscService.java | 3 + .../order/service/OrderInfoJdcService.java | 3 + .../impl/MakeOutAnInvoiceServiceImpl.java | 2 +- .../service/impl/OrderInfoEscServiceImpl.java | 6 + .../service/impl/OrderInfoJdcServiceImpl.java | 8 + .../impl/FangGeInterfaceServiceImpl.java | 91 +++++++++++- .../consumer/utils/BeanTransitionUtils.java | 79 ++++++++++ .../invalid/FgInvalidInvoiceInfosBO.java | 20 +++ .../protocol/invoice/FgCommonOrderBO.java | 14 +- .../fangge/protocol/invoice/FgEsctxxBO.java | 140 ++++++++++++++++++ .../fangge/protocol/invoice/FgJdctxxBO.java | 99 +++++++++++++ .../invoice/controller/InvoiceController.java | 10 ++ .../invoice/dao/OrderInfoEscMapper.java | 3 + .../invoice/dao/OrderInfoJdcMapper.java | 3 + .../invoice/dao/OrderInvoiceInfoMapper.java | 8 + .../invoice/model/vo/OrderInfoEscVO.java | 130 ++++++++++++++++ .../invoice/model/vo/OrderInfoJdcVO.java | 84 +++++++++++ .../service/OrderInvoiceInfoService.java | 13 +- .../service/impl/UnifyServiceImpl.java | 10 +- .../utils/HttpInvoiceRequestUtilFg.java | 2 +- .../mybatis/mapper/OrderInfoEscMapper.xml | 34 +++++ .../mybatis/mapper/OrderInfoJdcMapper.xml | 26 ++++ .../mybatis/mapper/OrderInvoiceInfoMapper.xml | 8 + 29 files changed, 912 insertions(+), 21 deletions(-) create mode 100644 order-management-common/src/main/java/com/dxhy/order/constant/EnumNuoNuoInvoiceType.java create mode 100644 order-management-invoice/src/main/java/com/dxhy/order/invoice/module/fangge/protocol/invoice/FgEsctxxBO.java create mode 100644 order-management-invoice/src/main/java/com/dxhy/order/invoice/module/fangge/protocol/invoice/FgJdctxxBO.java create mode 100644 order-management-invoice/src/main/java/com/dxhy/order/invoice/module/invoice/model/vo/OrderInfoEscVO.java create mode 100644 order-management-invoice/src/main/java/com/dxhy/order/invoice/module/invoice/model/vo/OrderInfoJdcVO.java diff --git a/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/vehicles/controller/VehiclesController.java b/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/vehicles/controller/VehiclesController.java index 5bfccf14..804c7f07 100644 --- a/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/vehicles/controller/VehiclesController.java +++ b/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/vehicles/controller/VehiclesController.java @@ -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("请求参数为空"); } diff --git a/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/vehicles/model/VehiclesCodeEntity.java b/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/vehicles/model/VehiclesCodeEntity.java index c1e2faf7..fda222cf 100644 --- a/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/vehicles/model/VehiclesCodeEntity.java +++ b/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/vehicles/model/VehiclesCodeEntity.java @@ -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; /** diff --git a/order-management-common/src/main/java/com/dxhy/order/constant/EnumNuoNuoInvoiceType.java b/order-management-common/src/main/java/com/dxhy/order/constant/EnumNuoNuoInvoiceType.java new file mode 100644 index 00000000..eb849a33 --- /dev/null +++ b/order-management-common/src/main/java/com/dxhy/order/constant/EnumNuoNuoInvoiceType.java @@ -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 getAllCode() { + return Arrays.asList(EnumNuoNuoInvoiceType.values()).stream().map(s -> s.getCode()).collect(Collectors.toList()); + + } + +} \ No newline at end of file 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 140f52ed..7bb1967b 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 @@ -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", "矿产品发票"), diff --git a/order-management-common/src/main/java/com/dxhy/order/model/sk/fg/SpFpzlDto.java b/order-management-common/src/main/java/com/dxhy/order/model/sk/fg/SpFpzlDto.java index 6b6660d3..24caed16 100644 --- a/order-management-common/src/main/java/com/dxhy/order/model/sk/fg/SpFpzlDto.java +++ b/order-management-common/src/main/java/com/dxhy/order/model/sk/fg/SpFpzlDto.java @@ -44,5 +44,11 @@ public class SpFpzlDto implements Serializable { */ private String fpzldm; + /** + * 机动车标识 + */ + private String jdcbs; + + } 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 31aa236e..78773925 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 @@ -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) { diff --git a/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/OrderInfoEscService.java b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/OrderInfoEscService.java index 343a0a01..6487ea4d 100644 --- a/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/OrderInfoEscService.java +++ b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/OrderInfoEscService.java @@ -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); } diff --git a/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/OrderInfoJdcService.java b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/OrderInfoJdcService.java index 1917ac11..b4181891 100644 --- a/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/OrderInfoJdcService.java +++ b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/OrderInfoJdcService.java @@ -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); } diff --git a/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/impl/MakeOutAnInvoiceServiceImpl.java b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/impl/MakeOutAnInvoiceServiceImpl.java index 4fa2ef72..e389c7e9 100644 --- a/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/impl/MakeOutAnInvoiceServiceImpl.java +++ b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/impl/MakeOutAnInvoiceServiceImpl.java @@ -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 invoiceBatchRequestItem1 : insertBatchItem) { for (InvoiceBatchRequestItem batchRequestItem : invoiceBatchRequestItem1) { /** diff --git a/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/impl/OrderInfoEscServiceImpl.java b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/impl/OrderInfoEscServiceImpl.java index 41c34a43..88ca9792 100644 --- a/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/impl/OrderInfoEscServiceImpl.java +++ b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/impl/OrderInfoEscServiceImpl.java @@ -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); + } + } diff --git a/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/impl/OrderInfoJdcServiceImpl.java b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/impl/OrderInfoJdcServiceImpl.java index eca06abe..f4180a15 100644 --- a/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/impl/OrderInfoJdcServiceImpl.java +++ b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/impl/OrderInfoJdcServiceImpl.java @@ -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); + } + + } diff --git a/order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/service/impl/FangGeInterfaceServiceImpl.java b/order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/service/impl/FangGeInterfaceServiceImpl.java index 46cfa18e..1cdc5372 100644 --- a/order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/service/impl/FangGeInterfaceServiceImpl.java +++ b/order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/service/impl/FangGeInterfaceServiceImpl.java @@ -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){ + //根据发票请求流水号和原代码号码取查询原发票的开票日期 + OrderInvoiceInfo orderInvoiceInfo1 = new OrderInvoiceInfo(); + orderInvoiceInfo1.setFpdm(orderInfo.getYfpDm()); + orderInvoiceInfo1.setFphm(orderInfo.getYfpHm()); + List 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已开 */ 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 2384fa01..e83711cb 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 @@ -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 diff --git a/order-management-invoice/src/main/java/com/dxhy/order/invoice/module/fangge/protocol/invalid/FgInvalidInvoiceInfosBO.java b/order-management-invoice/src/main/java/com/dxhy/order/invoice/module/fangge/protocol/invalid/FgInvalidInvoiceInfosBO.java index e359d9c1..823984ab 100644 --- a/order-management-invoice/src/main/java/com/dxhy/order/invoice/module/fangge/protocol/invalid/FgInvalidInvoiceInfosBO.java +++ b/order-management-invoice/src/main/java/com/dxhy/order/invoice/module/fangge/protocol/invalid/FgInvalidInvoiceInfosBO.java @@ -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; } diff --git a/order-management-invoice/src/main/java/com/dxhy/order/invoice/module/fangge/protocol/invoice/FgCommonOrderBO.java b/order-management-invoice/src/main/java/com/dxhy/order/invoice/module/fangge/protocol/invoice/FgCommonOrderBO.java index 41063651..ef01f944 100644 --- a/order-management-invoice/src/main/java/com/dxhy/order/invoice/module/fangge/protocol/invoice/FgCommonOrderBO.java +++ b/order-management-invoice/src/main/java/com/dxhy/order/invoice/module/fangge/protocol/invoice/FgCommonOrderBO.java @@ -28,5 +28,17 @@ public class FgCommonOrderBO implements Serializable { * 订单明细信息 */ private List ORDER_INVOICE_ITEMS; - + + /** + * 机动车信息 + */ + private FgJdctxxBO JDCTXX; + + + /** + * 二手车信息 + */ + private FgEsctxxBO ESCTXX; + + } diff --git a/order-management-invoice/src/main/java/com/dxhy/order/invoice/module/fangge/protocol/invoice/FgEsctxxBO.java b/order-management-invoice/src/main/java/com/dxhy/order/invoice/module/fangge/protocol/invoice/FgEsctxxBO.java new file mode 100644 index 00000000..d985fb60 --- /dev/null +++ b/order-management-invoice/src/main/java/com/dxhy/order/invoice/module/fangge/protocol/invoice/FgEsctxxBO.java @@ -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; + +} diff --git a/order-management-invoice/src/main/java/com/dxhy/order/invoice/module/fangge/protocol/invoice/FgJdctxxBO.java b/order-management-invoice/src/main/java/com/dxhy/order/invoice/module/fangge/protocol/invoice/FgJdctxxBO.java new file mode 100644 index 00000000..8e5fd4fa --- /dev/null +++ b/order-management-invoice/src/main/java/com/dxhy/order/invoice/module/fangge/protocol/invoice/FgJdctxxBO.java @@ -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; + +} diff --git a/order-management-invoice/src/main/java/com/dxhy/order/invoice/module/invoice/controller/InvoiceController.java b/order-management-invoice/src/main/java/com/dxhy/order/invoice/module/invoice/controller/InvoiceController.java index e4af224a..38548cec 100644 --- a/order-management-invoice/src/main/java/com/dxhy/order/invoice/module/invoice/controller/InvoiceController.java +++ b/order-management-invoice/src/main/java/com/dxhy/order/invoice/module/invoice/controller/InvoiceController.java @@ -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); +// } + } diff --git a/order-management-invoice/src/main/java/com/dxhy/order/invoice/module/invoice/dao/OrderInfoEscMapper.java b/order-management-invoice/src/main/java/com/dxhy/order/invoice/module/invoice/dao/OrderInfoEscMapper.java index b14b840e..5ed965ef 100644 --- a/order-management-invoice/src/main/java/com/dxhy/order/invoice/module/invoice/dao/OrderInfoEscMapper.java +++ b/order-management-invoice/src/main/java/com/dxhy/order/invoice/module/invoice/dao/OrderInfoEscMapper.java @@ -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); } diff --git a/order-management-invoice/src/main/java/com/dxhy/order/invoice/module/invoice/dao/OrderInfoJdcMapper.java b/order-management-invoice/src/main/java/com/dxhy/order/invoice/module/invoice/dao/OrderInfoJdcMapper.java index 1b7ffeb4..c83e2bf9 100644 --- a/order-management-invoice/src/main/java/com/dxhy/order/invoice/module/invoice/dao/OrderInfoJdcMapper.java +++ b/order-management-invoice/src/main/java/com/dxhy/order/invoice/module/invoice/dao/OrderInfoJdcMapper.java @@ -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); } diff --git a/order-management-invoice/src/main/java/com/dxhy/order/invoice/module/invoice/dao/OrderInvoiceInfoMapper.java b/order-management-invoice/src/main/java/com/dxhy/order/invoice/module/invoice/dao/OrderInvoiceInfoMapper.java index 907da478..790d70a9 100644 --- a/order-management-invoice/src/main/java/com/dxhy/order/invoice/module/invoice/dao/OrderInvoiceInfoMapper.java +++ b/order-management-invoice/src/main/java/com/dxhy/order/invoice/module/invoice/dao/OrderInvoiceInfoMapper.java @@ -248,4 +248,12 @@ public interface OrderInvoiceInfoMapper { List countInoviceInfo(@Param("orderInfoIds")List orderInfoIds); List selectInvoiceInfoByFpqqlshs(@Param("fpqqlshs") List fpqqlshs); + + /** + * 根据订单表主键id查询发票信息 + * @param orderInfoId 订单表主键id + * @return + */ + OrderInvoiceInfo selectByOrderInfoId(@Param("orderInfoId") String orderInfoId); + } diff --git a/order-management-invoice/src/main/java/com/dxhy/order/invoice/module/invoice/model/vo/OrderInfoEscVO.java b/order-management-invoice/src/main/java/com/dxhy/order/invoice/module/invoice/model/vo/OrderInfoEscVO.java new file mode 100644 index 00000000..2be52715 --- /dev/null +++ b/order-management-invoice/src/main/java/com/dxhy/order/invoice/module/invoice/model/vo/OrderInfoEscVO.java @@ -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; + +} diff --git a/order-management-invoice/src/main/java/com/dxhy/order/invoice/module/invoice/model/vo/OrderInfoJdcVO.java b/order-management-invoice/src/main/java/com/dxhy/order/invoice/module/invoice/model/vo/OrderInfoJdcVO.java new file mode 100644 index 00000000..6f70e63c --- /dev/null +++ b/order-management-invoice/src/main/java/com/dxhy/order/invoice/module/invoice/model/vo/OrderInfoJdcVO.java @@ -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; + +} diff --git a/order-management-invoice/src/main/java/com/dxhy/order/invoice/module/invoice/service/OrderInvoiceInfoService.java b/order-management-invoice/src/main/java/com/dxhy/order/invoice/module/invoice/service/OrderInvoiceInfoService.java index 68c1d53d..0c393bae 100644 --- a/order-management-invoice/src/main/java/com/dxhy/order/invoice/module/invoice/service/OrderInvoiceInfoService.java +++ b/order-management-invoice/src/main/java/com/dxhy/order/invoice/module/invoice/service/OrderInvoiceInfoService.java @@ -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 ids) throws Exception; List countInoviceInfo(@Param("orderInfoIds")List orderInfoIds); + + /** + * 自动重新开票 + * @param orderInfoId + * @return + */ + //R autoCopyInvoice(String orderInfoId); + } diff --git a/order-management-invoice/src/main/java/com/dxhy/order/invoice/module/invoice/service/impl/UnifyServiceImpl.java b/order-management-invoice/src/main/java/com/dxhy/order/invoice/module/invoice/service/impl/UnifyServiceImpl.java index e2567d58..c7bdd51b 100644 --- a/order-management-invoice/src/main/java/com/dxhy/order/invoice/module/invoice/service/impl/UnifyServiceImpl.java +++ b/order-management-invoice/src/main/java/com/dxhy/order/invoice/module/invoice/service/impl/UnifyServiceImpl.java @@ -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()); diff --git a/order-management-invoice/src/main/java/com/dxhy/order/invoice/utils/HttpInvoiceRequestUtilFg.java b/order-management-invoice/src/main/java/com/dxhy/order/invoice/utils/HttpInvoiceRequestUtilFg.java index bc56d9e8..47c526e8 100644 --- a/order-management-invoice/src/main/java/com/dxhy/order/invoice/utils/HttpInvoiceRequestUtilFg.java +++ b/order-management-invoice/src/main/java/com/dxhy/order/invoice/utils/HttpInvoiceRequestUtilFg.java @@ -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; diff --git a/order-management-invoice/src/main/resources/mybatis/mapper/OrderInfoEscMapper.xml b/order-management-invoice/src/main/resources/mybatis/mapper/OrderInfoEscMapper.xml index 71124e27..45eb3f9a 100644 --- a/order-management-invoice/src/main/resources/mybatis/mapper/OrderInfoEscMapper.xml +++ b/order-management-invoice/src/main/resources/mybatis/mapper/OrderInfoEscMapper.xml @@ -401,4 +401,38 @@ where id = #{id,jdbcType=VARCHAR} + + + diff --git a/order-management-invoice/src/main/resources/mybatis/mapper/OrderInfoJdcMapper.xml b/order-management-invoice/src/main/resources/mybatis/mapper/OrderInfoJdcMapper.xml index 97b00eb0..c9dcb28a 100644 --- a/order-management-invoice/src/main/resources/mybatis/mapper/OrderInfoJdcMapper.xml +++ b/order-management-invoice/src/main/resources/mybatis/mapper/OrderInfoJdcMapper.xml @@ -314,4 +314,30 @@ where id = #{id,jdbcType=VARCHAR} + + + diff --git a/order-management-invoice/src/main/resources/mybatis/mapper/OrderInvoiceInfoMapper.xml b/order-management-invoice/src/main/resources/mybatis/mapper/OrderInvoiceInfoMapper.xml index 1809d6d8..dc560fa3 100644 --- a/order-management-invoice/src/main/resources/mybatis/mapper/OrderInvoiceInfoMapper.xml +++ b/order-management-invoice/src/main/resources/mybatis/mapper/OrderInvoiceInfoMapper.xml @@ -2261,4 +2261,12 @@ AND ( oii.zf_bz = '0' OR oii.ch_bz = '0' ) + + + From e81efc7f93f85a757080124e9559e4d9acb22dcf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=AB=98=E8=8D=A3=E7=90=B3?= Date: Sat, 11 Nov 2023 17:01:06 +0800 Subject: [PATCH 2/2] =?UTF-8?q?feature:=E6=9C=BA=E5=8A=A8=E8=BD=A6?= =?UTF-8?q?=E5=BC=80=E7=A5=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../openapi/service/impl/FangGeInterfaceServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/service/impl/FangGeInterfaceServiceImpl.java b/order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/service/impl/FangGeInterfaceServiceImpl.java index 1cdc5372..ca39e845 100644 --- a/order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/service/impl/FangGeInterfaceServiceImpl.java +++ b/order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/service/impl/FangGeInterfaceServiceImpl.java @@ -284,7 +284,7 @@ public class FangGeInterfaceServiceImpl implements FangGeInterfaceService { * 数据组装 * 订单状态 0 未开具 1 开具成功 2 开具失败 */ - if (orderInfo.getYfpKprq()==null){ + if (orderInfo.getYfpKprq()==null&&ConfigureConstant.STRING_1.equals(orderInfo.getKplx())){ //根据发票请求流水号和原代码号码取查询原发票的开票日期 OrderInvoiceInfo orderInvoiceInfo1 = new OrderInvoiceInfo(); orderInvoiceInfo1.setFpdm(orderInfo.getYfpDm());