package com.ruoyi.oa.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.domain.entity.SysDept;
import com.ruoyi.common.core.domain.entity.SysUser;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * cmc用车审批对象 cmc_car_approval
 *
 * @author cmc
 * @date 2024-03-05
 */
public class CmcCarApproval extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 用车申请id */
    private String carApplyId;

    /** 申请人 */
    @Excel(name = "申请人")
    private String applierUserName;
    private Long applier;

    /** 使用部门 */
    @Excel(name = "使用部门")
    private String deptName;
    private Long useDept;

    /** 申请用途 */
    @Excel(name = "申请用途")
    private String carUsage;

    /** 项目编号 */
    private String projectId;
    @Excel(name = "项目编号")
    private String projectNumber;
    @Excel(name = "项目名称")
    private String projectName;
    @Excel(name = "承担部门")
    private String undertakingDept;
    private CmcProject project;

    /** 用车事由 */
    @Excel(name = "用车事由")
    private String applyReason;

    /** 人数 */
    @Excel(name = "人数")
    private Integer passengers;

    /** 开始日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "开始日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date beginDate;

    /** 结束日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "结束日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date endDate;

    /** 天数 */
    @Excel(name = "天数")
    private Long days;

    /** 申请日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "申请日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date applyDate;

    /** 部门审核意见 */
    @Excel(name = "部门审核意见")
    private String deptComment;

    /** 部门审核人 */
    @Excel(name = "部门审核人")
    private String deptUserName;
    private Long deptUserId;

    /** 部门审核时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "部门审核时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date deptTime;

    /** 分管审批意见 */
    @Excel(name = "分管审批意见")
    private String managerComment;

    /** 分管审批人 */
    @Excel(name = "分管审批人")
    private String managerUserName;
    private Long managerUserId;

    /** 分管审批时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "分管审批时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date managerTime;

    /** 党工团审批意见 */
    @Excel(name = "党工团审批意见")
    private String unionComment;

    /** 党工团审批人 */
    @Excel(name = "党工团审批人")
    private String unionUserName;
    private Long unionUserId;

    /** 党工团审批时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "党工团审批时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date unionTime;

    /** 总经理审批意见 */
    @Excel(name = "总经理审批意见")
    private String gmComment;

    /** 总经理审批人 */
    @Excel(name = "总经理")
    private String gmUserName;
    private Long gmUserId;

    /** 总经理审批时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "总经理审批时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date gmTime;

    /** 董事长审批意见 */
    @Excel(name = "董事长审批意见")
    private String dszComment;

    /** 董事长审批人 */
    @Excel(name = "董事长")
    private String dszUserName;
    private Long dszUserId;

    /** 董事长审批时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "董事长审批时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date dszTime;

    /** 安排用车意见 */
    @Excel(name = "安排用车意见")
    private String dispatchComment;

    /** 调度员 */
    @Excel(name = "车辆管理员")
    private String dispatchUserName;
    private Long dispatcher;

    /** 车辆id */
    @Excel(name = "车牌号")
    private String licensePlate;
    private String cars;

    /** 驾驶员id */
    @Excel(name = "驾驶员")
    private String driverName;
    private String drivers;

    /** 预计用车成本 */
//    @Excel(name = "预计用车成本")
    private BigDecimal estimateCost;

    /** 派车审批时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "派车审批时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date dispatchTime;

    /** 返回时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
    @Excel(name = "返回时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date returnDate;

    /** 行驶公里数 */
    @Excel(name = "行驶公里数")
    private String kilometers;

    private SysUser applierUser;

    private SysUser deptUser;

    private SysUser managerUser;

    private SysUser unionUser;

    private SysUser gmUser;

    private SysUser dszUser;

    private SysUser driverUser;

    private SysUser dispatchUser;

    private SysDept dept;

    public void setCarApplyId(String carApplyId)
    {
        this.carApplyId = carApplyId;
    }

    public String getCarApplyId()
    {
        return carApplyId;
    }
    public void setApplier(Long applier)
    {
        this.applier = applier;
    }

    public Long getApplier()
    {
        return applier;
    }
    public void setApplierUser(SysUser applierUser)
    {
        this.applierUser = applierUser;
        this.applierUserName = applierUser == null ? "" : applierUser.getNickName();
    }

    public SysUser getApplierUser()
    {
        return applierUser;
    }
    public void setDeptUser(SysUser deptUser)
    {
        this.deptUser = deptUser;
    }

    public SysUser getDeptUser()
    {
        return deptUser;
    }
    public void setManagerUser(SysUser managerUser)
    {
        this.managerUser = managerUser;
        this.managerUserName = managerUser == null ? "" : managerUser.getNickName();
    }

    public SysUser getManagerUser()
    {
        return managerUser;
    }
    public void setUnionUser(SysUser unionUser)
    {
        this.unionUser = unionUser;
        this.unionUserName = unionUser == null ? "" : unionUser.getNickName();
    }

    public SysUser getUnionUser()
    {
        return unionUser;
    }
    public void setGmUser(SysUser gmUser)
    {
        this.gmUser = gmUser;
        this.gmUserName = gmUser == null ? "" : gmUser.getNickName();
    }

    public SysUser getGmUser()
    {
        return gmUser;
    }
    public void setDszUser(SysUser dszUser)
    {
        this.dszUser = dszUser;
        this.dszUserName = dszUser == null ? "" : dszUser.getNickName();
    }

    public SysUser getDszUser()
    {
        return dszUser;
    }
    public void setDriverUser(SysUser driverUser)
    {
        this.driverUser = driverUser;
        this.driverName = driverUser == null ? "" : driverUser.getNickName();
    }

    public SysUser getDriverUser()
    {
        return dszUser;
    }
    public void setDispatchUser(SysUser dispatchUser)
    {
        this.dispatchUser = dispatchUser;
        this.dispatchUserName = dispatchUser == null ? "" : dispatchUser.getNickName();
    }

    public SysUser getDispatchUser()
    {
        return dispatchUser;
    }

    public void setUseDept(Long useDept)
    {
        this.useDept = useDept;
    }

    public Long getUseDept()
    {
        return useDept;
    }
    public void setDept(SysDept dept)
    {
        this.dept = dept;
        this.deptName = dept == null ? "" : dept.getDeptName();
    }

    public SysDept getDept()
    {
        return dept;
    }
    public void setCars(String cars)
    {
        this.cars = cars;
    }

    public String getCars()
    {
        return cars;
    }
    public void setLicensePlate(String licensePlate)
    {
        this.licensePlate = licensePlate;
    }

    public String getLicensePlate()
    {
        return licensePlate;
    }
    public void setDrivers(String drivers)
    {
        this.drivers = drivers;
    }

    public String getDrivers()
    {
        return drivers;
    }
    public void setDriverName(String driverName)
    {
        this.driverName = driverName;
    }

    public String getDriverName()
    {
        return driverName;
    }
    public void setProjectId(String projectId)
    {
        this.projectId = projectId;
    }

    public String getProjectId()
    {
        return projectId;
    }
    public void setProject(CmcProject project)
    {
        this.project = project;
        this.projectNumber = project == null ? "" : project.getProjectNumber();
        this.projectName = project == null ? "" : project.getProjectName();
    }

    public CmcProject getProject()
    {
        return project;
    }
    public void setUndertakingDept(String undertakingDept)
    {
        this.undertakingDept = undertakingDept;
    }

    public String getUndertakingDept()
    {
        return undertakingDept;
    }
    public void setApplyReason(String applyReason)
    {
        this.applyReason = applyReason;
    }

    public String getApplyReason()
    {
        return applyReason;
    }
    public void setPassengers(Integer passengers)
    {
        this.passengers = passengers;
    }

    public Integer getPassengers()
    {
        return passengers;
    }
    public void setBeginDate(Date beginDate)
    {
        this.beginDate = beginDate;
    }

    public Date getBeginDate()
    {
        return beginDate;
    }
    public void setEndDate(Date endDate)
    {
        this.endDate = endDate;
    }

    public Date getEndDate()
    {
        return endDate;
    }
    public void setDays(Long days)
    {
        this.days = days;
    }

    public Long getDays()
    {
        return days;
    }
    public void setDeptUserId(Long deptUserId)
    {
        this.deptUserId = deptUserId;
    }

    public Long getDeptUserId()
    {
        return deptUserId;
    }
    public void setDeptComment(String deptComment)
    {
        this.deptComment = deptComment;
    }

    public String getDeptComment()
    {
        return deptComment;
    }
    public void setManagerUserId(Long managerUserId)
    {
        this.managerUserId = managerUserId;
    }

    public Long getManagerUserId()
    {
        return managerUserId;
    }
    public void setManagerComment(String managerComment)
    {
        this.managerComment = managerComment;
    }

    public String getManagerComment()
    {
        return managerComment;
    }
    public void setCarUsage(String carUsage)
    {
        this.carUsage = carUsage;
    }

    public String getCarUsage()
    {
        return carUsage;
    }
    public void setUnionUserId(Long unionUserId)
    {
        this.unionUserId = unionUserId;
    }

    public Long getUnionUserId()
    {
        return unionUserId;
    }
    public void setUnionComment(String unionComment)
    {
        this.unionComment = unionComment;
    }

    public String getUnionComment()
    {
        return unionComment;
    }
    public void setGmUserId(Long gmUserId)
    {
        this.gmUserId = gmUserId;
    }

    public Long getGmUserId()
    {
        return gmUserId;
    }
    public void setDszUserId(Long dszUserId)
    {
        this.dszUserId = dszUserId;
    }

    public Long getDszUserId()
    {
        return dszUserId;
    }
    public void setGmComment(String gmComment)
    {
        this.gmComment = gmComment;
    }

    public String getGmComment()
    {
        return gmComment;
    }
    public void setDszComment(String dszComment)
    {
        this.dszComment = dszComment;
    }

    public String getDszComment()
    {
        return dszComment;
    }
    public void setDispatcher(Long dispatcher)
    {
        this.dispatcher = dispatcher;
    }

    public Long getDispatcher()
    {
        return dispatcher;
    }
    public void setDispatchComment(String dispatchComment)
    {
        this.dispatchComment = dispatchComment;
    }

    public String getDispatchComment()
    {
        return dispatchComment;
    }
    public void setEstimateCost(BigDecimal estimateCost)
    {
        this.estimateCost = estimateCost;
    }

    public BigDecimal getEstimateCost()
    {
        return estimateCost;
    }
    public void setApplyDate(Date applyDate)
    {
        this.applyDate = applyDate;
    }

    public Date getApplyDate()
    {
        return applyDate;
    }

    public void setDeptTime(Date deptTime)
    {
        this.deptTime = deptTime;
    }

    public Date getDeptTime()
    {
        return deptTime;
    }

    public void setManagerTime(Date managerTime)
    {
        this.managerTime = managerTime;
    }

    public Date getManagerTime()
    {
        return managerTime;
    }

    public void setUnionTime(Date unionTime)
    {
        this.unionTime = unionTime;
    }

    public Date getUnionTime()
    {
        return unionTime;
    }

    public void setGmTime(Date gmTime)
    {
        this.gmTime = gmTime;
    }

    public Date getGmTime()
    {
        return gmTime;
    }

    public void setDszTime(Date dszTime)
    {
        this.dszTime = dszTime;
    }

    public Date getDszTime()
    {
        return dszTime;
    }

    public void setDispatchTime(Date dispatchTime)
    {
        this.dispatchTime = dispatchTime;
    }

    public Date getDispatchTime()
    {
        return dispatchTime;
    }

    public void setReturnDate(Date returnDate)
    {
        this.returnDate = returnDate;
    }

    public Date getReturnDate()
    {
        return returnDate;
    }
    public void setKilometers(String kilometers)
    {
        this.kilometers = kilometers;
    }

    public String getKilometers()
    {
        return kilometers;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
                .append("carApplyId", getCarApplyId())
                .append("applier", getApplier())
                .append("cars", getCars())
                .append("drivers", getDrivers())
                .append("projectId", getProjectId())
                .append("applyReason", getApplyReason())
                .append("passengers", getPassengers())
                .append("beginDate", getBeginDate())
                .append("endDate", getEndDate())
                .append("days", getDays())
                .append("deptUserId", getDeptUserId())
                .append("deptComment", getDeptComment())
                .append("managerUserId", getManagerUserId())
                .append("managerComment", getManagerComment())
                .append("unionUserId", getUnionUserId())
                .append("unionComment", getUnionComment())
                .append("dispatcher", getDispatcher())
                .append("dispatchComment", getDispatchComment())
                .append("estimateCost", getEstimateCost())
                .append("applyDate", getApplyDate())
                .toString();
    }
}
