+
是否打包
@@ -390,7 +390,6 @@ export default {
formobj: {
saleOrderSid: '',
type: '',
- typeKey: '',
isPack: '',
policyName: '',
mainVehicleAmount: '',
diff --git a/anrui-buscenter/anrui-buscenter-ui/src/views/xiaoshouguanli/xiaoshoudingdan/relation/financialscheme.vue b/anrui-buscenter/anrui-buscenter-ui/src/views/xiaoshouguanli/xiaoshoudingdan/relation/financialscheme.vue
index a84f33854e..6bac952b36 100644
--- a/anrui-buscenter/anrui-buscenter-ui/src/views/xiaoshouguanli/xiaoshoudingdan/relation/financialscheme.vue
+++ b/anrui-buscenter/anrui-buscenter-ui/src/views/xiaoshouguanli/xiaoshoudingdan/relation/financialscheme.vue
@@ -8,250 +8,274 @@
-
-
- 是否打包
- {{ formobj.isPack == '1' ? '是' : formobj.isPack == '0' ? '否' : '' }}
-
-
- 资方及产品政策
- {{ formobj.policyName }}
-
-
-
-
- 融资项目
-
-
- 主车发票价{{ formobj.mainVehicleAmount }}元
- 融资票据{{ formobj.accessoriesAmount }}元
- 挂车{{ formobj.trailerAmount }} 元
- 购置税{{ formobj.purchaseTax }} 元
- 车损上浮{{ formobj.vehDamageFloat }} 元
-
-
-
-
- 融资项目总额
- {{ formobj.loanTotal }}
-
-
-
-
- 首付比例
- {{ formobj.downPayRatio }}
-
-
- 首付金额
- {{ formobj.downPayAmount }}
-
-
- 产品贷款金额
- {{ formobj.loanAmount }}
-
-
- 产品期数
- {{ formobj.loanPeriod }}
-
-
-
-
- 贷款保证金比例
- {{ formobj.bondRatio }}
-
-
- 贷款保证金
- {{ formobj.bondAmount }}
-
-
- 厂家贴息
- {{ formobj.factoryDiscount }}
-
-
- 年利率
- {{ formobj.policyYearRatio }}
-
-
-
-
- 月还金额
- {{ formobj.loanPayMoney }}
-
-
- 利息总额
- {{ formobj.loanInterest }}
-
-
- 厂家贴息用途
- {{ formobj.factoryDiscountUse }}
-
-
-
-
其它融
+
+
+
+ 是否打包
+ {{ formobj.isPack == '1' ? '是' : formobj.isPack == '0' ? '否' : '' }}
+
+
+ 资方及产品政策
+ {{ formobj.policyName }}
+
+
+
+
+ 融资项目
+
+
+ 主车发票价{{ formobj.mainVehicleAmount }}元
+ 融资票据{{ formobj.accessoriesAmount }}元
+ 挂车{{ formobj.trailerAmount }} 元
+ 购置税{{ formobj.purchaseTax }} 元
+ 车损上浮{{ formobj.vehDamageFloat }} 元
+
+
+
+
+ 融资项目总额
+ {{ formobj.loanTotal }}
+
+
+
+
+ 首付比例
+ {{ formobj.downPayRatio }}
+
+
+ 首付金额
+ {{ formobj.downPayAmount }}
+
+
+ 产品贷款金额
+ {{ formobj.loanAmount }}
+
+
+ 产品期数
+ {{ formobj.loanPeriod }}
+
+
+
+
+ 贷款保证金比例
+ {{ formobj.bondRatio }}
+
+
+ 贷款保证金
+ {{ formobj.bondAmount }}
+
+
+ 厂家贴息
+ {{ formobj.factoryDiscount }}
+
+
+ 年利率
+ {{ formobj.policyYearRatio }}
+
+
+
+ 月还金额
+ {{ formobj.loanPayMoney }}
+
+
+ 利息总额
+ {{ formobj.loanInterest }}
+
- 其它融名称
- {{ formobj.otherPolicyName }}
+ 厂家贴息用途
+ {{ formobj.factoryDiscountUse }}
+
+
+
+
其它融
+
+
+ 其它融名称
+ {{ formobj.otherPolicyName }}
+
+
+ 贷款金额
+ {{ formobj.otherPolicyAmount }}
+
+
+ 期数
+ {{ formobj.otherPolicyPeriod }}
+
+
+
+
+ 月还金额
+ {{ formobj.otherPolicyMonthlyRepay }}
+
+
+ 利息总额
+ {{ formobj.otherPolicyInterest }}
+
+
+ 年利率
+ {{ formobj.otherPolicyYearRatio }}
+
+
+
+
方案汇总
+
+
+ 融资首付
+ {{ formobj.loanDownPay }}
- 贷款金额
- {{ formobj.otherPolicyAmount }}
+ 总贷款金额
+ {{ formobj.loanAmountTotal }}
期数
- {{ formobj.otherPolicyPeriod }}
+ {{ formobj.period }}
月还金额
- {{ formobj.otherPolicyMonthlyRepay }}
+ {{ formobj.monthlyRepay }}
利息总额
- {{ formobj.otherPolicyInterest }}
+ {{ formobj.interest }}
- 年利率
- {{ formobj.otherPolicyYearRatio }}
+ 预计首款还款日
+ {{ formobj.returnTime }}
+
+
+
应收明细
+
+
+ 融资首付
+ {{ formobj.downPayAmounts }}
+
+
+ 贷款保证金
+ {{ formobj.bondAmounts }}
+
+
+ 保险保证金
+ {{ formobj.depositPremium }}
+
+
+ 落户保证金
+ {{ formobj.depositSettle }}
+
+
+
+
+ 服务费
+ {{ formobj.serviceAmount }}
+
+
+ 代收意外险
+ {{ formobj.proxyAccidentPremium }}
+
+
+ 上牌费
+ {{ formobj.registerAmount }}
+
+
+ 运管费
+ {{ formobj.operationAmount }}
+
+
+
+
+ 补车价
+ {{ formobj.vehOtherPrice }}
+
+
+ 其它费用
+ {{ formobj.otherAmount }}
+
+
+ 其它费用说明
+ {{ formobj.otherAmountRemark }}
+
+
+
+
+ 办理方式选择
+ {{ formobj.dealWay }}
+
+
+ 代收首年保险费
+ {{ formobj.proxyPremium }}
+
+
+ 代收购置税
+ {{ formobj.proxyPurchasetax }}
+
+
+
+
+ 应收合计
+ {{ formobj.receivableTotal }}
+
+
+
+
+ 抵顶费用合计
+ {{ formobj.offsetTotal }}
+
+
+ 抵顶首年保险费
+ {{ formobj.offsetPremium }}
+
+
+ 抵顶购置税
+ {{ formobj.offsetPurchasetax }}
+
+
+
+
+ 实收合计
+ {{ formobj.realTotal }}
+
+
+
+
+ 车辆总价
+ {{ formobj.vehTotalPrice }}
+
+
+
+
+ 名义(留购)价
+ {{ formobj.nominalPrice }}
+
+
+ 注:结清时需缴纳此费用
+
+
+
+
+
+
+ 厂家贴息
+
+ {{ formobj.factoryDiscount }}
+
+
+
+ 厂家贴息用途
+
+ >{{ formobj.factoryDiscountUse }}
+
+
+
+ *服务费
+
+ >{{ formobj.serviceAmount }}
+
-
方案汇总
-
-
- 融资首付
- {{ formobj.loanDownPay }}
-
-
- 总贷款金额
- {{ formobj.loanAmountTotal }}
-
-
- 期数
- {{ formobj.period }}
-
-
-
-
- 月还金额
- {{ formobj.monthlyRepay }}
-
-
- 利息总额
- {{ formobj.interest }}
-
-
- 预计首款还款日
- {{ formobj.returnTime }}
-
-
-
应收明细
-
-
- 融资首付
- {{ formobj.downPayAmounts }}
-
-
- 贷款保证金
- {{ formobj.bondAmounts }}
-
-
- 保险保证金
- {{ formobj.depositPremium }}
-
-
- 落户保证金
- {{ formobj.depositSettle }}
-
-
-
-
- 服务费
- {{ formobj.serviceAmount }}
-
-
- 代收意外险
- {{ formobj.proxyAccidentPremium }}
-
-
- 上牌费
- {{ formobj.registerAmount }}
-
-
- 运管费
- {{ formobj.operationAmount }}
-
-
-
-
- 补车价
- {{ formobj.vehOtherPrice }}
-
-
- 其它费用
- {{ formobj.otherAmount }}
-
-
- 其它费用说明
- {{ formobj.otherAmountRemark }}
-
-
-
-
- 办理方式选择
- {{ formobj.dealWay }}
-
-
- 代收首年保险费
- {{ formobj.proxyPremium }}
-
-
- 代收购置税
- {{ formobj.proxyPurchasetax }}
-
-
-
-
- 应收合计
- {{ formobj.receivableTotal }}
-
-
-
-
- 抵顶费用合计
- {{ formobj.offsetTotal }}
-
-
- 抵顶首年保险费
- {{ formobj.offsetPremium }}
-
-
- 抵顶购置税
- {{ formobj.offsetPurchasetax }}
-
-
-
-
- 实收合计
- {{ formobj.realTotal }}
-
-
-
-
- 车辆总价
- {{ formobj.vehTotalPrice }}
-
-
-
-
- 名义(留购)价
- {{ formobj.nominalPrice }}
-
-
- 注:结清时需缴纳此费用
-
-
diff --git a/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finvehicleinvoice/FinVehicleInvoice.java b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finvehicleinvoice/FinVehicleInvoice.java
new file mode 100644
index 0000000000..54cafdfda6
--- /dev/null
+++ b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finvehicleinvoice/FinVehicleInvoice.java
@@ -0,0 +1,129 @@
+package com.yxt.anrui.fin.api.finvehicleinvoice;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.yxt.common.core.domain.BaseEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * Project: anrui-fin(财务管理)
+ * File: FinVehicleInvoice.java
+ * Class: com.yxt.anrui.fin.api.finvehicleinvoice.FinVehicleInvoice
+ * Description: 车辆发票信息.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2021-10-27 09:36:11
+ *
+ * @author liupopo
+ * @version 1.0
+ * @since 1.0
+ */
+@ApiModel(value = "车辆发票信息", description = "车辆发票信息")
+@TableName("fin_vehicle_invoice")
+@Data
+public class FinVehicleInvoice extends BaseEntity {
+ private static final long serialVersionUID = 1L;
+
+ @ApiModelProperty("版本锁")
+ private Integer lockVersion;
+
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ @ApiModelProperty("创建时间")
+ private Date createTime;
+
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ @ApiModelProperty("修改时间")
+ private Date modifyTime;
+
+ @ApiModelProperty("是否可用:1可用,0不可用")
+ private Integer isEnable;
+
+ private Integer state;
+
+ @ApiModelProperty("开票状态")
+ private String billingState;
+
+ @ApiModelProperty("开票状态Key")
+ private String billingStateKey;
+
+ @ApiModelProperty("是否删除:0未删除,1已删除")
+ private Integer isDelete;
+
+ @ApiModelProperty("备注")
+ private String remarks;
+
+ @ApiModelProperty("创建人sid")
+ private String createBySid;
+
+ private String useOrgSid;
+
+ @ApiModelProperty("修改人sid")
+ private String updateBySid;
+
+ @ApiModelProperty("车辆sid")
+ private String vehicleSid;
+
+ @ApiModelProperty("车架号")
+ private String VIN;
+
+ @ApiModelProperty("车辆类型Key")
+ private String vehicleTypeKey;
+
+ @ApiModelProperty("车辆类型")
+ private String vehicleType;
+
+ @ApiModelProperty("车辆金额")
+ private BigDecimal vehiclAmount;
+
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ @ApiModelProperty("最大发票开票日期")
+ private Date invoiceDate;
+
+ @ApiModelProperty("发票号")
+ private String invoiceNo;
+
+ @ApiModelProperty("发票代码")
+ private String invoiceCode;
+
+ @ApiModelProperty("车辆发票金额")
+ private BigDecimal invoiceAmount;
+
+ @ApiModelProperty("发票类别Key(增值税专用发票/机动车销售统一发票/增值税普通发票)")
+ private String invoiceTypeKey;
+
+ @ApiModelProperty("发票类别")
+ private String invoiceType;
+
+ @ApiModelProperty("开票单位")
+ private String invoiceTitle;
+
+ @ApiModelProperty("移交状态:0未交接,1已交接")
+ private String transferState;
+
+ @ApiModelProperty("移交状态:0未交接,1已交接")
+ private String transferStateKey;
+
+ @ApiModelProperty("客户名称")
+ private String customerName;
+
+ @ApiModelProperty("开票名称")
+ private String invoicingName;
+
+ @ApiModelProperty("合同编号")
+ private String contractNo;
+
+ @ApiModelProperty("图片地址")
+ private String filePath;
+
+ @ApiModelProperty("业务状态Key 001正常开票 002包牌开票 003欠款开票")
+ private String businessStateKey;
+
+ @ApiModelProperty("业务状态")
+ private String businessState;
+
+}
diff --git a/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finvehicleinvoice/FinVehicleInvoiceDetailsVo.java b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finvehicleinvoice/FinVehicleInvoiceDetailsVo.java
new file mode 100644
index 0000000000..6eca2094bf
--- /dev/null
+++ b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finvehicleinvoice/FinVehicleInvoiceDetailsVo.java
@@ -0,0 +1,54 @@
+package com.yxt.anrui.fin.api.finvehicleinvoice;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.yxt.common.core.vo.Vo;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @author Administrator
+ * @description
+ * @date 2023/4/5 20:30
+ */
+@Data
+public class FinVehicleInvoiceDetailsVo implements Vo {
+
+ @ApiModelProperty("sid")
+ private String sid;
+ @ApiModelProperty("开票单位")
+ private String invoiceTitle;
+ @ApiModelProperty("合同编号")
+ private String contractNo;
+ @ApiModelProperty("客户名称")
+ private String customerName;
+ @ApiModelProperty("车架号")
+ private String vinNo;
+ @ApiModelProperty("发票类别")
+ private String invoiceType;
+ @ApiModelProperty("开票类型Key")
+ private String invoiceTypeKey;
+ @ApiModelProperty("车辆发票金额")
+ private BigDecimal invoiceAmount;
+ @ApiModelProperty("发票状态")
+ private String billingState;
+ @ApiModelProperty("发票状态Key")
+ private String billingStateKey;
+ @ApiModelProperty("开票名称")
+ private String invoicingName;
+ @ApiModelProperty("开票人")
+ private String name;
+ @ApiModelProperty("开票时间")
+ private String createTime;
+ @ApiModelProperty("发票号")
+ private String invoiceNo;
+ @ApiModelProperty("发票代码")
+ private String invoiceCode;
+ @ApiModelProperty("图片地址")
+ private String filePath;
+ @ApiModelProperty("图片地址集合")
+ private List
filePaths;
+}
diff --git a/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finvehicleinvoice/FinVehicleInvoiceDto.java b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finvehicleinvoice/FinVehicleInvoiceDto.java
new file mode 100644
index 0000000000..57154f6471
--- /dev/null
+++ b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finvehicleinvoice/FinVehicleInvoiceDto.java
@@ -0,0 +1,99 @@
+package com.yxt.anrui.fin.api.finvehicleinvoice;
+
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.yxt.common.core.dto.Dto;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * Project: anrui-fin(财务管理)
+ * File: LoanVehicleInvoiceDto.java
+ * Class: com.yxt.anrui.fin.api.finvehicleinvoice.FinVehicleInvoiceDto
+ * Description: 车辆发票信息 数据传输对象.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2021-10-27 09:36:11
+ *
+ * @author liupopo
+ * @version 1.0
+ * @since 1.0
+ */
+@ApiModel(value = "车辆发票信息 数据传输对象", description = "车辆发票信息 数据传输对象")
+@Data
+public class FinVehicleInvoiceDto implements Dto {
+
+
+ private String sid; // sid
+ @ApiModelProperty("版本锁")
+ private Integer lockVersion;
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+ @ApiModelProperty("创建时间")
+ private String createTime;
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+ @ApiModelProperty("修改时间")
+ private String modifyTime;
+ @ApiModelProperty("是否可用:1可用,0不可用")
+ private Integer isEnable;
+ private Integer state;
+ @ApiModelProperty("是否删除:0未删除,1已删除")
+ private Integer isDelete;
+ @ApiModelProperty("备注")
+ private String remarks;
+ @ApiModelProperty("创建人sid")
+ private String createBySid;
+ private String useOrgSid;
+ @ApiModelProperty("修改人sid")
+ private String updateBySid;
+ @ApiModelProperty("车辆sid")
+ private String vehicleSid;
+ @ApiModelProperty("车架号")
+ private String VIN;
+ @ApiModelProperty("车辆类型Key")
+ private String vehicleTypeKey;
+ @ApiModelProperty("车辆类型")
+ private String vehicleType;
+ @ApiModelProperty("车辆金额")
+ private BigDecimal vehiclAmount;
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+ @ApiModelProperty("最大发票开票日期")
+ private String invoiceDate;
+ @ApiModelProperty("发票号")
+ private String invoiceNo;
+ @ApiModelProperty("发票代码")
+ private String invoiceCode;
+ @ApiModelProperty("车辆发票金额")
+ private BigDecimal invoiceAmount;
+ @ApiModelProperty("发票类别Key(增值税专用发票/机动车销售统一发票/增值税普通发票)")
+ private String invoiceTypeKey;
+ @ApiModelProperty("发票类别")
+ private String invoiceType;
+ @ApiModelProperty("开票单位")
+ private String invoiceTitle;
+ @ApiModelProperty("移交状态:0未交接,1已交接")
+ private String transferState;
+ @ApiModelProperty("客户名称")
+ private String customerName;
+ @ApiModelProperty("合同编号")
+ private String contractNo;
+ @ApiModelProperty("图片地址")
+ private String filePath;
+ @ApiModelProperty("开票状态")
+ private String billingState;
+ @ApiModelProperty("开票状态Key")
+ private String billingStateKey;
+ @ApiModelProperty("图片地址集合")
+ private List filePaths;
+ private String vinNo;
+ @ApiModelProperty("开票名称")
+ private String invoicingName;
+ @ApiModelProperty("业务状态Key 001正常开票 002包牌开票 003欠款开票")
+ private String businessStateKey;
+ @ApiModelProperty("业务状态")
+ private String businessState;
+}
\ No newline at end of file
diff --git a/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finvehicleinvoice/FinVehicleInvoiceExportVo.java b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finvehicleinvoice/FinVehicleInvoiceExportVo.java
new file mode 100644
index 0000000000..747a7c526b
--- /dev/null
+++ b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finvehicleinvoice/FinVehicleInvoiceExportVo.java
@@ -0,0 +1,42 @@
+package com.yxt.anrui.fin.api.finvehicleinvoice;
+import com.yxt.common.core.utils.ExportEntityMap;
+import com.yxt.common.core.vo.Vo;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author Administrator
+ * @description
+ * @date 2023/4/4 17:40
+ */
+@Data
+public class FinVehicleInvoiceExportVo implements Vo {
+
+ @ExportEntityMap(CnName = "序号", EnName = "rankNo")
+ private Integer rankNo;
+ @ExportEntityMap(CnName = "发票状态", EnName = "billingState")
+ private String billingState;
+ @ExportEntityMap(CnName = "交接状态", EnName = "transferState")
+ private String transferState;
+ @ExportEntityMap(CnName = "业务状态", EnName = "businessState")
+ private String businessState;
+ @ExportEntityMap(CnName = "开票单位", EnName = "invoiceTitle")
+ private String invoiceTitle;
+ @ExportEntityMap(CnName = "开票类型", EnName = "invoiceType")
+ private String invoiceType;
+ @ExportEntityMap(CnName = "合同编号", EnName = "contractNo")
+ private String contractNo;
+ @ExportEntityMap(CnName = "客户名称", EnName = "customerName")
+ private String customerName;
+ @ExportEntityMap(CnName = "车架号", EnName = "vinNo")
+ private String vinNo;
+ @ExportEntityMap(CnName = "开票名称", EnName = "invoicingName")
+ private String invoicingName;
+ @ExportEntityMap(CnName = "开票金额", EnName = "invoiceAmount")
+ private String invoiceAmount;
+ @ExportEntityMap(CnName = "开票日期", EnName = "createTime")
+ private String createTime;
+ @ExportEntityMap(CnName = "发票代码", EnName = "invoiceCode")
+ private String invoiceCode;
+
+}
diff --git a/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finvehicleinvoice/FinVehicleInvoiceFeign.java b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finvehicleinvoice/FinVehicleInvoiceFeign.java
new file mode 100644
index 0000000000..c3e4a927a3
--- /dev/null
+++ b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finvehicleinvoice/FinVehicleInvoiceFeign.java
@@ -0,0 +1,72 @@
+package com.yxt.anrui.fin.api.finvehicleinvoice;
+
+import com.yxt.common.core.query.PagerQuery;
+import com.yxt.common.core.result.ResultBean;
+import com.yxt.common.core.vo.PagerVo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+import java.util.List;
+
+/**
+ * Project: anrui-fin(财务管理)
+ * File: FinVehicleInvoiceFeign.java
+ * Class: com.yxt.anrui.fin.api.finvehicleinvoice.FinVehicleInvoiceFeign
+ * Description: 车辆发票信息.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2021-10-27 09:36:11
+ *
+ * @author liupopo
+ * @version 1.0
+ * @since 1.0
+ */
+@Api(tags = "车辆发票信息")
+@FeignClient(
+ contextId = "anrui-fin-FinVehicleInvoice",
+ name = "anrui-fin",
+ path = "v1/finvehicleinvoice",
+ fallback = FinVehicleInvoiceFeignFallback.class)
+public interface FinVehicleInvoiceFeign {
+
+ @ApiOperation("根据条件分页查询数据的列表")
+ @PostMapping("/listPage")
+ public ResultBean> listPage(@RequestBody PagerQuery pq);
+
+ @ApiOperation("根据条件查询所有数据列表")
+ @PostMapping("/listAll")
+ public ResultBean> listAll(@RequestBody FinVehicleInvoiceQuery query);
+
+ @ApiOperation("所有数据列表")
+ @GetMapping("/list")
+ public ResultBean> list();
+
+ @ApiOperation("新增保存")
+ @PostMapping("/save")
+ public ResultBean save(@RequestBody FinVehicleInvoiceDto dto);
+
+ @ApiOperation("修改保存")
+ @PostMapping("/saveOrUpdate")
+ public ResultBean saveOrUpdate(@RequestBody FinVehicleInvoiceDto dto);
+
+ @ApiOperation("删除记录")
+ @GetMapping("/del/{ids}")
+ public ResultBean del(@PathVariable("ids") String ids);
+
+ @ApiOperation("获取一条记录")
+ @GetMapping("/fetch/{id}")
+ public ResultBean fetch(@PathVariable("id") String id);
+
+ @ApiOperation("获取详情记录")
+ @GetMapping("/fetchSid/{sid}")
+ public ResultBean fetchBySid(@PathVariable("sid") String sid);
+
+ @PostMapping("/exportExcel")
+ @ApiOperation(value = "车辆发票信息列表导出")
+ @ResponseBody
+ public void exportExcel(@RequestBody FinVehicleInvoiceQuery query);
+
+}
\ No newline at end of file
diff --git a/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finvehicleinvoice/FinVehicleInvoiceFeignFallback.java b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finvehicleinvoice/FinVehicleInvoiceFeignFallback.java
new file mode 100644
index 0000000000..2da912e83e
--- /dev/null
+++ b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finvehicleinvoice/FinVehicleInvoiceFeignFallback.java
@@ -0,0 +1,78 @@
+package com.yxt.anrui.fin.api.finvehicleinvoice;
+
+import com.yxt.common.core.query.PagerQuery;
+import com.yxt.common.core.result.ResultBean;
+import com.yxt.common.core.vo.PagerVo;
+import org.springframework.stereotype.Component;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.util.List;
+
+/**
+ * Project: anrui-fin(财务管理)
+ * File: FinVehicleInvoiceFeignFallback.java
+ * Class: com.yxt.anrui.fin.api.finvehicleinvoice.FinVehicleInvoiceFeignFallback
+ * Description: 车辆发票信息.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2021-10-27 09:36:11
+ *
+ * @author liupopo
+ * @version 1.0
+ * @since 1.0
+ */
+@Component
+public class FinVehicleInvoiceFeignFallback implements FinVehicleInvoiceFeign {
+
+ @Override
+ public ResultBean> listPage(PagerQuery pq){
+ ResultBean rb = ResultBean.fireFail();
+ return rb.setMsg("接口anrui-fin/finvehicleinvoice/listPage无法访问");
+ }
+
+ @Override
+ public ResultBean> listAll(FinVehicleInvoiceQuery query){
+ ResultBean rb = ResultBean.fireFail();
+ return rb.setMsg("接口anrui-fin/finvehicleinvoice/listAll无法访问");
+ }
+
+ @Override
+ public ResultBean> list(){
+ ResultBean rb = ResultBean.fireFail();
+ return rb.setMsg("接口anrui-fin/finvehicleinvoice/list无法访问");
+ }
+
+ @Override
+ public ResultBean save(FinVehicleInvoiceDto dto){
+ return ResultBean.fireFail().setMsg("接口anrui-fin/finvehicleinvoice/save无法访问");
+ }
+
+ @Override
+ public ResultBean saveOrUpdate(FinVehicleInvoiceDto dto) {
+ return ResultBean.fireFail().setMsg("接口anrui-fin/finvehicleinvoice/saveOrUpdate无法访问");
+ }
+
+ @Override
+ public ResultBean del(String ids){
+ return ResultBean.fireFail().setMsg("接口anrui-fin/finvehicleinvoice/del无法访问");
+ }
+
+ @Override
+ public ResultBean fetch(String id){
+ ResultBean rb = ResultBean.fireFail();
+ return rb.setMsg("接口anrui-fin/finvehicleinvoice/fetch无法访问");
+ }
+
+ @Override
+ public ResultBean fetchBySid(String sid){
+ ResultBean rb = ResultBean.fireFail();
+ return rb.setMsg("接口anrui-fin/finvehicleinvoice/fetch无法访问");
+ }
+
+ @Override
+ public void exportExcel(FinVehicleInvoiceQuery query) {
+
+ }
+
+
+}
\ No newline at end of file
diff --git a/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finvehicleinvoice/FinVehicleInvoiceQuery.java b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finvehicleinvoice/FinVehicleInvoiceQuery.java
new file mode 100644
index 0000000000..d762ebd298
--- /dev/null
+++ b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finvehicleinvoice/FinVehicleInvoiceQuery.java
@@ -0,0 +1,67 @@
+package com.yxt.anrui.fin.api.finvehicleinvoice;
+
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.yxt.common.core.query.Query;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * Project: anrui-fin(财务管理)
+ * File: FinVehicleInvoiceQuery.java
+ * Class: com.yxt.anrui.fin.api.finvehicleinvoice.FinVehicleInvoiceQuery
+ * Description: 车辆发票信息 查询条件.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2021-10-27 09:36:11
+ *
+ * @author liupopo
+ * @version 1.0
+ * @since 1.0
+ */
+@ApiModel(value = "车辆发票信息 查询条件", description = "车辆发票信息 查询条件")
+@Data
+public class FinVehicleInvoiceQuery implements Query {
+
+
+ @ApiModelProperty(value = "sids", required = false)
+ private List sids;
+ @ApiModelProperty("开票单位")
+ private String invoiceTitle;
+ @ApiModelProperty("开票状态")
+ private String billingState;
+ @ApiModelProperty("开票状态Key")
+ private String billingStateKey;
+ @ApiModelProperty("开票类型Key")
+ private String invoiceTypeKey;
+ @ApiModelProperty("发票类别")
+ private String invoiceType;
+ @ApiModelProperty("合同编号")
+ private String contractNo;
+ @ApiModelProperty("客户名称")
+ private String customerName;
+ @ApiModelProperty("车架号")
+ private String vinNo;
+ private String state;
+ @ApiModelProperty("移交状态")
+ private String transferState;
+ @ApiModelProperty("移交状态key")
+ private String transferStateKey;
+ @ApiModelProperty("开票名称")
+ private String invoicingName;
+ @ApiModelProperty("开票开始日期")
+ private String createStartTime ;
+ @ApiModelProperty("开票结束日期")
+ private String createEndTime ;
+ @ApiModelProperty("发票代码")
+ private String invoiceCode;
+ @ApiModelProperty("业务状态Key 001正常开票 002包牌开票 003欠款开票")
+ private String businessStateKey;
+ @ApiModelProperty("业务状态")
+ private String businessState;
+}
diff --git a/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finvehicleinvoice/FinVehicleInvoiceVo.java b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finvehicleinvoice/FinVehicleInvoiceVo.java
new file mode 100644
index 0000000000..289611bbc3
--- /dev/null
+++ b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finvehicleinvoice/FinVehicleInvoiceVo.java
@@ -0,0 +1,74 @@
+package com.yxt.anrui.fin.api.finvehicleinvoice;
+
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.yxt.common.core.vo.Vo;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * Project: anrui-fin(财务管理)
+ * File: FinVehicleInvoiceVo.java
+ * Class: com.yxt.anrui.fin.api.finvehicleinvoice.FinVehicleInvoiceVo
+ * Description: 车辆发票信息 视图数据对象.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2021-10-27 09:36:11
+ *
+ * @author liupopo
+ * @version 1.0
+ * @since 1.0
+ */
+@ApiModel(value = "车辆发票信息 视图数据对象", description = "车辆发票信息 视图数据对象")
+@Data
+public class FinVehicleInvoiceVo implements Vo {
+
+
+ @ApiModelProperty("车辆发票信息Sid")
+ private String sid;
+ private String state;
+ @ApiModelProperty("发票状态")
+ private String billingState;
+ @ApiModelProperty("发票状态Key")
+ private String billingStateKey;
+ @ApiModelProperty("交接状态")
+ private String transferState;
+ @ApiModelProperty("交接状态Key")
+ private String transferStateKey;
+ @ApiModelProperty("开票单位")
+ private String invoiceTitle;
+ @ApiModelProperty("开票类型")
+ private String invoiceType;
+ @ApiModelProperty("开票类型Key")
+ private String invoiceTypeKey;
+ @ApiModelProperty("合同编号")
+ private String contractNo;
+ @ApiModelProperty("客户名称")
+ private String customerName;
+ @ApiModelProperty("车架号")
+ private String vinNo;
+ @ApiModelProperty("开票名称")
+ private String invoicingName;
+ @ApiModelProperty("开票金额")
+ private String invoiceAmount;
+ @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
+ @ApiModelProperty("开票日期")
+ private Date createTime;
+ @ApiModelProperty("发票代码")
+ private String invoiceCode;
+ @ApiModelProperty("发票号")
+ private String invoiceNo;
+ @ApiModelProperty("发票图片")
+ private String filePath;
+ @ApiModelProperty("发票图片集合")
+ private List filePaths;
+ @ApiModelProperty("业务状态Key 001正常开票 002包牌开票 003欠款开票")
+ private String businessStateKey;
+ @ApiModelProperty("业务状态")
+ private String businessState;
+}
diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finvehicleinvoice/FinVehicleInvoiceMapper.java b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finvehicleinvoice/FinVehicleInvoiceMapper.java
new file mode 100644
index 0000000000..0a8d784ab3
--- /dev/null
+++ b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finvehicleinvoice/FinVehicleInvoiceMapper.java
@@ -0,0 +1,47 @@
+package com.yxt.anrui.fin.biz.finvehicleinvoice;
+
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Constants;
+import com.yxt.anrui.fin.api.finvehicleinvoice.FinVehicleInvoice;
+import com.yxt.anrui.fin.api.finvehicleinvoice.FinVehicleInvoiceDetailsVo;
+import com.yxt.anrui.fin.api.finvehicleinvoice.FinVehicleInvoiceExportVo;
+import com.yxt.anrui.fin.api.finvehicleinvoice.FinVehicleInvoiceVo;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
+
+import java.util.List;
+
+/**
+ * Project: anrui-fin(财务管理)
+ * File: FinVehicleInvoiceMapper.java
+ * Class: com.yxt.anrui.fin.biz.finvehicleinvoice.FinVehicleInvoiceMapper
+ * Description: 车辆发票信息.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2021-10-27 09:36:11
+ *
+ * @author liupopo
+ * @version 1.0
+ * @since 1.0
+ */
+@Mapper
+public interface FinVehicleInvoiceMapper extends BaseMapper {
+
+ //@Update("update fin_vehicle_invoice set name=#{msg} where id=#{id}")
+ //IPage voPage(IPage page, @Param(Constants.WRAPPER) QueryWrapper qw);
+
+ IPage selectPageVo(IPage page, @Param(Constants.WRAPPER) Wrapper qw);
+
+ List selectListAllVo(@Param(Constants.WRAPPER) Wrapper qw);
+
+ List selectListVo();
+
+ List selByExcel(@Param(Constants.WRAPPER)QueryWrapper qw);
+
+ FinVehicleInvoiceDetailsVo getInvoiceDetailsBySid(String sid);
+
+}
\ No newline at end of file
diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finvehicleinvoice/FinVehicleInvoiceMapper.xml b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finvehicleinvoice/FinVehicleInvoiceMapper.xml
new file mode 100644
index 0000000000..7d224ecb79
--- /dev/null
+++ b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finvehicleinvoice/FinVehicleInvoiceMapper.xml
@@ -0,0 +1,147 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finvehicleinvoice/FinVehicleInvoiceRest.java b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finvehicleinvoice/FinVehicleInvoiceRest.java
new file mode 100644
index 0000000000..a0f9043ce5
--- /dev/null
+++ b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finvehicleinvoice/FinVehicleInvoiceRest.java
@@ -0,0 +1,228 @@
+package com.yxt.anrui.fin.biz.finvehicleinvoice;
+
+import cn.hutool.core.bean.BeanUtil;
+import com.yxt.anrui.fin.api.finvehicleinvoice.*;
+import com.yxt.common.base.config.component.FileUploadComponent;
+import com.yxt.common.base.utils.ExportExcelUtils;
+import com.yxt.common.base.utils.StringUtils;
+import com.yxt.common.core.query.PagerQuery;
+import com.yxt.common.core.result.ResultBean;
+import com.yxt.common.core.vo.PagerVo;
+import io.swagger.annotations.Api;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletResponse;
+import java.io.UnsupportedEncodingException;
+import java.net.URLEncoder;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * Project: anrui-fin(财务管理)
+ * File: FinVehicleInvoiceFeignFallback.java
+ * Class: com.yxt.anrui.fin.biz.finvehicleinvoice.FinVehicleInvoiceRest
+ * Description: 车辆发票信息.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2021-10-27 09:36:11
+ *
+ * @author liupopo
+ * @version 1.0
+ * @since 1.0
+ */
+@Api(tags = "车辆发票信息")
+@RestController
+@RequestMapping("v1/finvehicleinvoice")
+public class FinVehicleInvoiceRest implements FinVehicleInvoiceFeign {
+
+ @Autowired
+ private FinVehicleInvoiceService finVehicleInvoiceService;
+
+ @Resource
+ private FileUploadComponent fileUploadComponent;
+
+ @Autowired
+ private HttpServletResponse response;
+
+ private List setVo(List list) {
+ for (FinVehicleInvoiceVo finVehicleInvoiceVo : list) {
+ if (StringUtils.isNotBlank(finVehicleInvoiceVo.getFilePath())) {
+ String filePath = finVehicleInvoiceVo.getFilePath();
+ List filePaths = new ArrayList<>();
+ String array[] = filePath.split(",");
+ for (int i = 0; i < array.length; i++) {
+ String urlPrefix = fileUploadComponent.getUrlPrefix();
+ filePath = urlPrefix + array[i];
+ filePaths.add(filePath);
+ finVehicleInvoiceVo.setFilePaths(filePaths);
+ }
+ }
+ }
+ return list;
+ }
+
+ @Override
+ public ResultBean> listPage(@RequestBody PagerQuery pq) {
+ ResultBean rb = ResultBean.fireFail();
+ PagerVo pv = finVehicleInvoiceService.listPageVo(pq);
+ List records = pv.getRecords();
+ List finVehicleInvoiceVos = setVo(records);
+ pv.setRecords(finVehicleInvoiceVos);
+ return rb.success().setData(pv);
+ }
+
+ @Override
+ public ResultBean> listAll(@RequestBody FinVehicleInvoiceQuery query) {
+ ResultBean rb = ResultBean.fireFail();
+ List list = finVehicleInvoiceService.listAllVo(query);
+ List finVehicleInvoiceVos = setVo(list);
+ return rb.success().setData(finVehicleInvoiceVos);
+ }
+
+ @Override
+ public ResultBean> list() {
+ ResultBean rb = ResultBean.fireFail();
+ List list = finVehicleInvoiceService.listVo();
+ List finVehicleInvoiceVos = setVo(list);
+ return rb.success().setData(finVehicleInvoiceVos);
+ }
+
+ @Override
+ public ResultBean save(FinVehicleInvoiceDto dto) {
+ ResultBean rb = ResultBean.fireFail();
+ finVehicleInvoiceService.saveOrUpdateDto(dto);
+ return rb.success();
+ }
+
+ @Override
+ public ResultBean saveOrUpdate(FinVehicleInvoiceDto dto) {
+ ResultBean rb = ResultBean.fireFail();
+ String sid = dto.getSid();
+ if (StringUtils.isNotEmpty(sid)) {
+ StringBuilder sb = new StringBuilder();
+ String urlPrefix = fileUploadComponent.getUrlPrefix();
+ if (null != dto.getFilePaths()) {
+ for (String filePath : dto.getFilePaths()) {
+ String[] split = filePath.split(urlPrefix);
+ String s = split[1];
+ sb.append(s).append(",");
+ }
+ sb.delete(sb.length() - 1, sb.length());
+ dto.setFilePath(sb.toString());
+ }
+ if (StringUtils.isNotBlank(dto.getFilePath())) {
+ dto.setBillingStateKey("002");
+ dto.setBillingState("已开票");
+ }
+ if (StringUtils.isNotEmpty(dto.getVinNo())) {
+ String VIN = dto.getVinNo();
+ dto.setVIN(VIN);
+ }
+ finVehicleInvoiceService.updateBySid(dto, sid);
+ } else {
+ FinVehicleInvoice finVehicleInvoice = new FinVehicleInvoice();
+ String sidAdd = finVehicleInvoice.getSid();
+ BeanUtil.copyProperties(dto, finVehicleInvoice);
+ finVehicleInvoice.setSid(sidAdd);
+ StringBuilder sb = new StringBuilder();
+ String urlPrefix = fileUploadComponent.getUrlPrefix();
+ if (null != dto.getFilePaths()) {
+ for (String filePath : dto.getFilePaths()) {
+ String[] split = filePath.split(urlPrefix);
+ String s = split[1];
+ sb.append(s).append(",");
+ }
+ sb.delete(sb.length() - 1, sb.length());
+ finVehicleInvoice.setFilePath(sb.toString());
+ finVehicleInvoice.setBillingStateKey("002");
+ finVehicleInvoice.setBillingState("已开票");
+ }
+ if (StringUtils.isNotEmpty(dto.getVinNo())) {
+ String VIN = dto.getVinNo();
+ finVehicleInvoice.setVIN(VIN);
+ }
+ finVehicleInvoiceService.save(finVehicleInvoice);
+ }
+ return rb.success();
+ }
+
+ @Override
+ public ResultBean del(String ids) {
+ ResultBean rb = ResultBean.fireFail();
+ finVehicleInvoiceService.delByIds(ids);
+ return rb.success();
+ }
+
+ @Override
+ public ResultBean fetch(String id) {
+ ResultBean rb = ResultBean.fireFail();
+ FinVehicleInvoiceVo vo = finVehicleInvoiceService.fetchByIdVo(id);
+ return rb.success().setData(vo);
+ }
+
+ @Override
+ public ResultBean fetchBySid(String sid) {
+ ResultBean rb = ResultBean.fireFail();
+ FinVehicleInvoiceDetailsVo vo = finVehicleInvoiceService.getInvoiceDetailsBySid(sid);
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+ if (StringUtils.isNotBlank(vo.getCreateTime())) {
+ String createTime = vo.getCreateTime();
+ try {
+ Date date = sdf.parse(createTime);
+ String createTimeBySdf = sdf.format(date);
+ vo.setCreateTime(createTimeBySdf);
+ } catch (ParseException e) {
+ e.printStackTrace();
+ }
+ }
+ if (StringUtils.isNotBlank(vo.getFilePath())) {
+ String filePath = vo.getFilePath();
+ List filePaths = new ArrayList<>();
+ String array[] = filePath.split(",");
+ for (int i = 0; i < array.length; i++) {
+ String urlPrefix = fileUploadComponent.getUrlPrefix();
+ filePath = urlPrefix + array[i];
+ filePaths.add(filePath);
+ vo.setFilePaths(filePaths);
+ }
+ }
+ return rb.success().setData(vo);
+ }
+
+ @Override
+ public void exportExcel(FinVehicleInvoiceQuery query) {
+ //得到所有要导出的数据
+ List invoiceExportVoList = finVehicleInvoiceService.listExcel(query);
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+ for (FinVehicleInvoiceExportVo invoiceExportVo : invoiceExportVoList) {
+ if (StringUtils.isNotBlank(invoiceExportVo.getCreateTime())) {
+ String createTime = invoiceExportVo.getCreateTime();
+ try {
+ Date date = sdf.parse(createTime);
+ String createTimeBySdf = sdf.format(date);
+ invoiceExportVo.setCreateTime(createTimeBySdf);
+ } catch (ParseException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+ //定义导出的excel名字
+ String excelName = "车辆发票信息列表";
+ String fileNameURL = "";
+ try {
+ fileNameURL = URLEncoder.encode(excelName, "UTF-8");
+ } catch (UnsupportedEncodingException e) {
+ e.printStackTrace();
+ }
+ //导出车辆管理列表
+ ExportExcelUtils.export(fileNameURL, invoiceExportVoList, FinVehicleInvoiceExportVo.class, response);
+ }
+
+}
diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finvehicleinvoice/FinVehicleInvoiceService.java b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finvehicleinvoice/FinVehicleInvoiceService.java
new file mode 100644
index 0000000000..7196cf9984
--- /dev/null
+++ b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finvehicleinvoice/FinVehicleInvoiceService.java
@@ -0,0 +1,186 @@
+package com.yxt.anrui.fin.biz.finvehicleinvoice;
+
+import cn.hutool.core.bean.BeanUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.yxt.anrui.fin.api.finvehicleinvoice.*;
+import com.yxt.common.base.service.MybatisBaseService;
+import com.yxt.common.base.utils.PagerUtil;
+import com.yxt.common.core.query.PagerQuery;
+import com.yxt.common.core.vo.PagerVo;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * Project: anrui-fin(财务管理)
+ * File: FinVehicleInvoiceService.java
+ * Class: com.yxt.anrui.fin.biz.finvehicleinvoice.FinVehicleInvoiceService
+ * Description: 车辆发票信息 业务逻辑.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2021-10-27 09:36:11
+ *
+ * @author liupopo
+ * @version 1.0
+ * @since 1.0
+ */
+@Service
+public class FinVehicleInvoiceService extends MybatisBaseService {
+ public PagerVo listPage(PagerQuery pq) {
+ FinVehicleInvoiceQuery query = pq.getParams();
+ QueryWrapper qw = createQueryWrapper(query);
+ IPage page = PagerUtil.queryToPage(pq);
+ IPage pagging = baseMapper.selectPage(page, qw);
+ PagerVo p = PagerUtil.pageToVo(pagging, null);
+ return p;
+ }
+
+ public List listAll(FinVehicleInvoiceQuery query) {
+ QueryWrapper qw = createQueryWrapper(query);
+ return baseMapper.selectList(qw);
+ }
+
+ private QueryWrapper createQueryWrapper(FinVehicleInvoiceQuery query) {
+ // todo: 这里根据具体业务调整查询条件
+ // 多字段Like示例:qw.and(wrapper -> wrapper.like("name", query.getName()).or().like("remark", query.getName()));
+ QueryWrapper qw = new QueryWrapper<>();
+
+ qw.eq("isDelete", "0");
+ if (StringUtils.isNotBlank(query.getInvoiceTitle())) {
+ qw.like("invoiceTitle", query.getInvoiceTitle());
+ }
+ if (StringUtils.isNotBlank(query.getInvoiceTypeKey())) {
+ qw.like("invoiceTypeKey", query.getInvoiceTypeKey());
+ }
+ if (StringUtils.isNotBlank(query.getInvoiceType())) {
+ qw.like("invoiceType", query.getInvoiceType());
+ }
+ if (StringUtils.isNotBlank(query.getContractNo())) {
+ qw.like("contractNo", query.getContractNo());
+ }
+ if (StringUtils.isNotBlank(query.getCustomerName())) {
+ qw.like("customerName", query.getCustomerName());
+ }
+ if (StringUtils.isNotBlank(query.getVinNo())) {
+ qw.like("VIN", query.getVinNo());
+ }
+ if (StringUtils.isNotBlank(query.getTransferState())) {
+ qw.eq("transferState", query.getTransferState());
+ }
+ if (StringUtils.isNotBlank(query.getBillingState())) {
+ qw.eq("billingState", query.getBillingState());
+ }
+ if (StringUtils.isNotBlank(query.getTransferStateKey())) {
+ qw.eq("transferStateKey", query.getTransferStateKey());
+ }
+ if (StringUtils.isNotBlank(query.getBillingStateKey())) {
+ qw.eq("billingStateKey", query.getBillingStateKey());
+ }
+ if (StringUtils.isNotBlank(query.getInvoicingName())) {
+ qw.like("invoicingName", query.getInvoicingName());
+ }
+ if (StringUtils.isNotBlank(query.getInvoiceCode())) {
+ qw.like("invoiceCode", query.getInvoiceCode());
+ }
+ String createStartTime = query.getCreateStartTime();
+ String createEndTime = query.getCreateEndTime();
+ qw.apply(org.apache.commons.lang3.StringUtils.isNotEmpty(createStartTime), "date_format (createTime,'%Y-%m-%d') >= date_format('" + createStartTime + "','%Y-%m-%d')").
+ apply(org.apache.commons.lang3.StringUtils.isNotEmpty(createEndTime), "date_format (createTime,'%Y-%m-%d') <= date_format('" + createEndTime + "','%Y-%m-%d')"
+ );
+ qw.orderByDesc("createTime");
+ return qw;
+ }
+
+ public PagerVo listPageVo(PagerQuery pq) {
+ FinVehicleInvoiceQuery query = pq.getParams();
+ QueryWrapper qw = createQueryWrapper(query);
+ IPage page = PagerUtil.queryToPage(pq);
+ IPage pagging = baseMapper.selectPageVo(page, qw);
+ PagerVo p = PagerUtil.pageToVo(pagging, null);
+ return p;
+ }
+
+ public List listAllVo(FinVehicleInvoiceQuery query) {
+ QueryWrapper qw = createQueryWrapper(query);
+ return baseMapper.selectListAllVo(qw);
+ }
+
+ public List listVo() {
+ return baseMapper.selectListVo();
+ }
+
+ public void saveOrUpdateDto(FinVehicleInvoiceDto dto) {
+ FinVehicleInvoice entity = new FinVehicleInvoice();
+ dto.fillEntity(entity);
+ this.saveOrUpdate(entity);
+ }
+
+ public FinVehicleInvoiceVo fetchByIdVo(String id) {
+ FinVehicleInvoice entity = this.fetchById(id);
+ FinVehicleInvoiceVo vo = new FinVehicleInvoiceVo();
+ BeanUtil.copyProperties(entity, vo);
+ return vo;
+ }
+
+ public List listExcel(FinVehicleInvoiceQuery query) {
+ QueryWrapper qw = new QueryWrapper<>();
+ qw.eq("isDelete", "0");
+ if (StringUtils.isNotBlank(query.getInvoiceTitle())) {
+ qw.like("invoiceTitle", query.getInvoiceTitle());
+ }
+ if (StringUtils.isNotBlank(query.getInvoiceType())) {
+ qw.like("invoiceType", query.getInvoiceType());
+ }
+ if (StringUtils.isNotBlank(query.getInvoiceTypeKey())) {
+ qw.like("invoiceTypeKey", query.getInvoiceTypeKey());
+ }
+ if (StringUtils.isNotBlank(query.getContractNo())) {
+ qw.like("contractNo", query.getContractNo());
+ }
+ if (StringUtils.isNotBlank(query.getCustomerName())) {
+ qw.like("customerName", query.getCustomerName());
+ }
+ if (StringUtils.isNotBlank(query.getVinNo())) {
+ qw.like("VIN", query.getVinNo());
+ }
+ if (StringUtils.isNotBlank(query.getTransferState())) {
+ qw.eq("transferState", query.getTransferState());
+ }
+ if (StringUtils.isNotBlank(query.getBillingState())) {
+ qw.eq("billingState", query.getBillingState());
+ }
+ if (StringUtils.isNotBlank(query.getTransferStateKey())) {
+ qw.eq("transferStateKey", query.getTransferStateKey());
+ }
+ if (StringUtils.isNotBlank(query.getBillingStateKey())) {
+ qw.eq("billingStateKey", query.getBillingStateKey());
+ }
+ if (StringUtils.isNotBlank(query.getInvoicingName())) {
+ qw.like("invoicingName", query.getInvoicingName());
+ }
+ if (StringUtils.isNotBlank(query.getInvoiceCode())) {
+ qw.like("invoiceCode", query.getInvoiceCode());
+ }
+ String createStartTime = query.getCreateStartTime();
+ String createEndTime = query.getCreateEndTime();
+ qw.apply(org.apache.commons.lang3.StringUtils.isNotEmpty(createStartTime), "date_format (createTime,'%Y-%m-%d') >= date_format('" + createStartTime + "','%Y-%m-%d')").
+ apply(org.apache.commons.lang3.StringUtils.isNotEmpty(createEndTime), "date_format (createTime,'%Y-%m-%d') <= date_format('" + createEndTime + "','%Y-%m-%d')"
+ );
+ qw.orderByDesc("createTime");
+ List invoiceExportVoList = baseMapper.selByExcel(qw);
+ int id = 1;
+ for (FinVehicleInvoiceExportVo invoiceExportVo : invoiceExportVoList) {
+ invoiceExportVo.setRankNo(id);
+ id = id + 1;
+ }
+ return invoiceExportVoList;
+ }
+
+ public FinVehicleInvoiceDetailsVo getInvoiceDetailsBySid(String sid) {
+ FinVehicleInvoiceDetailsVo vo = baseMapper.getInvoiceDetailsBySid(sid);
+ return vo;
+ }
+
+}
\ No newline at end of file
diff --git a/doc/databases/fin_tables.sql b/doc/databases/fin_tables.sql
index c9d7fb54d0..dd5b67a30e 100644
--- a/doc/databases/fin_tables.sql
+++ b/doc/databases/fin_tables.sql
@@ -1088,5 +1088,41 @@ CREATE TABLE `fin_paymentapply_vehicle`
) ENGINE = INNODB
DEFAULT CHARSET = utf8 COMMENT ='付款申请车辆';
-
+-- 车辆发票信息
+CREATE TABLE `fin_vehicle_invoice` (
+ `id` int(32) NOT NULL AUTO_INCREMENT COMMENT 'id',
+ `sid` varchar(64) NOT NULL COMMENT 'sid',
+ `lockVersion` int(32) DEFAULT '0' COMMENT '版本锁',
+ `createTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+ `modifyTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
+ `isEnable` int(32) DEFAULT '1' COMMENT '是否可用:1可用,0不可用',
+ `state` int(32) DEFAULT '1',
+ `isDelete` int(32) DEFAULT '0' COMMENT '是否删除:0未删除,1已删除',
+ `remarks` varchar(255) DEFAULT NULL COMMENT '备注',
+ `createBySid` varchar(64) DEFAULT NULL COMMENT '创建人sid',
+ `updateBySid` varchar(64) DEFAULT NULL COMMENT '修改人sid',
+ `vehicleSid` varchar(64) DEFAULT NULL COMMENT '车辆sid',
+ `VIN` varchar(20) DEFAULT NULL COMMENT '车架号',
+ `vehicleTypeKey` varchar(64) DEFAULT NULL COMMENT '车辆类型Key',
+ `vehicleType` varchar(64) DEFAULT NULL COMMENT '车辆类型',
+ `vehiclAmount` decimal(10,2) DEFAULT NULL COMMENT '车辆金额',
+ `invoiceDate` timestamp NULL DEFAULT NULL COMMENT '最大发票开票日期',
+ `invoiceNo` varchar(64) DEFAULT NULL COMMENT '发票号',
+ `invoiceCode` varchar(64) DEFAULT NULL COMMENT '发票代码',
+ `invoiceAmount` decimal(10,2) DEFAULT NULL COMMENT '车辆发票金额',
+ `invoiceTypeKey` varchar(32) DEFAULT NULL COMMENT '发票类别Key(01机动车销售统一发票/02增值税专用发票)',
+ `invoiceType` varchar(64) DEFAULT NULL COMMENT '发票类别',
+ `invoiceTitle` varchar(64) DEFAULT NULL COMMENT '开票单位',
+ `transferState` varchar(32) DEFAULT NULL COMMENT '移交状态:001未接收,002已接收,003待移交,004已移交',
+ `customerName` varchar(64) DEFAULT NULL COMMENT '客户名称',
+ `invoicingName` varchar(64) DEFAULT NULL COMMENT '开票名称',
+ `contractNo` varchar(64) DEFAULT NULL COMMENT '合同编号',
+ `filePath` varchar(255) DEFAULT NULL COMMENT '图片路径',
+ `billingState` varchar(32) DEFAULT '1' COMMENT '开票状态 001 未开票 002已开票 003作废',
+ `useOrgSid` varchar(64) DEFAULT NULL,
+ `billingStateKey` varchar(64) DEFAULT NULL COMMENT '开票状态key',
+ `transferStateKey` varchar(64) DEFAULT NULL COMMENT '移交状态key',
+ PRIMARY KEY (`id`) USING BTREE,
+ KEY `id` (`id`) USING BTREE
+) ENGINE=InnoDB AUTO_INCREMENT=32 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='车辆发票信息'