package cn.iocoder.yudao.module.inspection.entity;

import java.util.Date;
import java.util.List;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import cn.iocoder.yudao.annotation.Excel;
import cn.iocoder.yudao.framework.tenant.core.db.TenantBaseDO;

/**
 * 【请填写功能名称】对象 inspection_info
 *
 * @author ruoyi
 * @date 2023-08-13
 */
@Data
public class InspectionInfo extends TenantBaseDO
{
    private static final long serialVersionUID = 1L;

    /** 主键 */
    @TableId(type = IdType.AUTO)
    private Long id;

    /** 检测订单主键 */
    @Excel(name = "检测订单主键")
    private Long inspectionOrderId;
    private Long userId;
    private String buyName;
    private String buyPhone;
    private String userAddress;
    private String unitName;
    private Integer customerSourceId; //客户来源id
    private Integer businessChannelId; //业务渠道id

    private Long partnerId;
    /** 检测工主键 */
    @Excel(name = "检测工主键")
    private Long workId;

    /** 检查工名称 */
    @Excel(name = "检查工名称")
    private String workerName;

    /** 检查工手机号 */
    @Excel(name = "检查工手机号")
    private String workerPhone;
    private String workerAvatar;
    private Long categoryId;
    private String carNum;
    private String certificateNum; // 合格证后六位
    //车辆品牌型号
    private String carModel;
    //车辆性质 非营运  营运等
    private String carNature;
    //车子状态 新车 旧车等
    private String carStatus;
    private String carIdNo;
    // 车辆注册时间
    private Date carRegisterDate;
    /** 0不通过1通过 */
    @Excel(name = "0不通过1通过")
    private String isPass;
    //是否重审
    private String isRetrial;
    private String remark;
    /** 复检次数 */
    private Integer recheckCount;
    /** 重检次数 */
    private Integer reinspectCount;
    private String businessChannel; //业务渠道
    private String otherName;

    /** 0进行中1已结束 */
    @Excel(name = "0进行中1已结束")
    private String status;

    /** 开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm",timezone = "GMT+8")
    @Excel(name = "开始时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm")
    private Date startTime;

    /** 结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm",timezone = "GMT+8")
    @Excel(name = "结束时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm")
    private Date endTime;
    //是否制证并完成
    private String makeCert;
    /** 年 */
    @Excel(name = "年")
    private String year;

    /** 月 */
    @Excel(name = "月")
    private String month;

    /** 日 */
    @Excel(name = "日")
    private String day;
    //客户来源
    private String customerSource;
    /** 引车员id*/
    private Long leadManId;
    /** 接车员id*/
    private Long meetManId;
    /** 是否接车*/
    private String isMeetCar;
    @TableField(exist = false)
    private String lastTitle;

    /** 检查工手机号 */
    @TableField(exist = false)
    private String goodsName;

    /** 检查工手机号 */
    @TableField(exist = false)
    private Long realPayMoney;
    /** 检查工手机号 */
    @TableField(exist = false)
    private Long reduceMoney;
    /** 订单号 */
    @TableField(exist = false)
    private String orderNo;
    @TableField(exist = false)
    private Long goodsId;

    @TableField(exist = false)
    private Long goodsPrice;
    @TableField(exist = false)
    private String goodsTitle;
    @TableField(exist = false)
    private String partnerName;
    @TableField(exist = false)
    private String skuName;
    @TableField(exist = false)
    private String skuId;
    @TableField(exist = false)
    private String payType;
    @TableField(exist = false)
    private String orderStatus;
    /** 下次保养日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @TableField(exist = false)
    private Date nextMaintenanceDate;
    /** 下次年检日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @TableField(exist = false)
    private Date nextInspectionDate;
    @TableField(exist = false)
    private Long  roleId;

    @JsonFormat(pattern = "yyyy-MM-dd hh:mm")
    @TableField(exist = false)
    private Date payTime;
    //2024-03-27新增字段
    //其他联系人手机号
    private String otherPhone;
//    private String otherName;
    private String driverLicenesImg;
    //是否线上支付0否1是
    private String isPayOnline;
    //是否上门取车0否1是
    private String isPickCar;
    /** 当前流程节点 */
    private Integer nowOrderNum;
    /** 还车人id */
    private Long returnCarUserId;
    /** 是否还车 */
    private Integer isReturnCar;
    private Integer returnType;

    /** 开始检测时需要 传入 选择项目的id、角色id、排序 */
    @TableField(exist = false)
    private List<InspectionWorkNode> inspectionWorkNodes;
    /** 流程节点id*/
    @TableField(exist = false)
    private String workNodeId;
    @TableField(exist = false)
    private Long dealUserId;
    @TableField(exist = false)
    private String workNodeStatus;
    @TableField(exist = false)
    private String selectType;
    @TableField(exist = false)
    private String projectName;
    @TableField(exist = false)
    private String leadManName;
    @TableField(exist = false)
    private Integer additionalRecording;
    @TableField(exist = false)
    private String orderId;
    @TableField(exist = false)
    private Long appointmentId;
    /**
     * 类型 ：0- 工单表 1- 接车临时表 （只有查询待接车时会有）
     */
    @TableField(exist = false)
    private Integer sourceType;
    @TableField(exist = false)
    private String meetCarId;
    @TableField(exist = false)
    private String meetAddress;
    @TableField(exist = false)
    private String latitude; // 维度
    @TableField(exist = false)
    private String longitude; // 经度
    @TableField(exist = false)
    private String appointmentDay; // 经度
    @TableField(exist = false)
    private String appointmentTime; // 经度
    @TableField(exist = false)
    private Integer meetType;
    @TableField(exist = false)
    private String content;
    @TableField(exist = false)
    private Long inspectionInfoId;
    @TableField(exist = false)
    private Integer isMeetPickCar;
    @TableField(exist = false)
    private String pickCarAddress;
    /**
     * 出纳是否确认 0-未到账 1-已到账 null-待确认
     */
    @TableField(exist = false)
    private String cashierConfirm;
    /**
     * 出纳确认备注
     */
    @TableField(exist = false)
    private String cashierConfirmRemark;
    /**
     * 出纳确认备注
     */
    @TableField(exist = false)
    private String cashierConfirmTime;
    /**
     * 会计是否确认 0-未到账 1-已到账 null-待确认
     */
    @TableField(exist = false)
    private String accountingConfirm;
    /**
     * 会计确认备注
     */
    @TableField(exist = false)
    private String accountingConfirmRemark;

    /** 保险到期日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @TableField(exist = false)
    private Date insuranceExpiryDate;

    /** 保险到期日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @TableField(exist = false)
    private Date vehicleInsuranceExpiryDate;

    /** 保险公司名称 */
    @TableField(exist = false)
    private String insuranceCompanyName;
    @TableField(exist = false)
    private List<String> datetimeRange;
    /**
     * 结算金额
     */
    @TableField(exist = false)
    private Long settlementAmount;
    /**
     * 结算人
     */
    @TableField(exist = false)
    private Long settlementUser;
    /**
     * 结算优惠金额
     */
    @TableField(exist = false)
    private Long settlementDiscount;

    /**
     * 结算账户
     */
    @TableField(exist = false)
    private String receivablesAccount;
}
