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_device_approval
 * 
 * @author cmc
 * @date 2024-03-05
 */
public class CmcDeviceApproval extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 设备申请id */
    private String deviceApplyId;

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

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

    /** 项目id */
    private String projectId;
    @Excel(name = "项目编号")
    private String projectNumber;
    @Excel(name = "项目名称")
    private String projectName;

    /** 申领事由 */
    @Excel(name = "申领事由")
    private String applyReason;

    /** 开始日期 */
    @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;

    /** 设备id */
    @Excel(name = "申领设备")
    private String deviceNames;
    @Excel(name = "申领设备序号")
    private String deviceNumbers;
    private String devices;

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

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

    /** 修改后设备id */
    private String modifyDeviceNames;
    @Excel(name = "发放设备序号")
    private String modifyDeviceNumbers;
    private String modifyDevices;

    /** 设备管理员 */
    @Excel(name = "设备管理员")
    private String dispatchUserName;
    private Long dispatcher;

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

    /** 设备发放时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "设备发放时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date dispatchTime;

    /** 分管审批意见 */
    @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;

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

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

    /** 需维修设备id */
    @Excel(name = "需维修设备")
    private String repairDeviceNames;
    @Excel(name = "需维修设备序号")
    private String repairDeviceNumbers;
    private String repairDevices;

    /** 已归还设备id */
    private String returnDeviceNames;
    @Excel(name = "已归还设备序号")
    private String returnDeviceNumbers;
    private String returnDevices;

    private SysUser applierUser;

    private SysUser managerUser;

    private SysUser dispatchUser;

    private SysDept dept;

    private CmcProject project;

    public void setDeviceApplyId(String deviceApplyId)
    {
        this.deviceApplyId = deviceApplyId;
    }

    public String getDeviceApplyId()
    {
        return deviceApplyId;
    }
    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 setManagerUser(SysUser managerUser)
    {
        this.managerUser = managerUser;
        this.managerUserName = managerUser == null ? "" : managerUser.getNickName();
    }

    public SysUser getManagerUser()
    {
        return managerUser;
    }
    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 setDevices(String devices)
    {
        this.devices = devices;
    }

    public String getDevices()
    {
        return devices;
    }
    public void setDeviceNumbers(String deviceNumbers)
    {
        this.deviceNumbers = deviceNumbers;
    }

    public String getDeviceNumbers()
    {
        return deviceNumbers;
    }
    public void setDeviceNames(String deviceNames)
    {
        this.deviceNames = deviceNames;
    }

    public String getDeviceNames()
    {
        return deviceNames;
    }
    public void setModifyDeviceNumbers(String modifyDeviceNumbers)
    {
        this.modifyDeviceNumbers = modifyDeviceNumbers;
    }

    public String getModifyDeviceNumbers()
    {
        return modifyDeviceNumbers;
    }
    public void setModifyDevices(String modifyDevices)
    {
        this.modifyDevices = modifyDevices;
    }

    public String getModifyDevices()
    {
        return modifyDevices;
    }
    public void setModifyDeviceNames(String modifyDeviceNames)
    {
        this.modifyDeviceNames = modifyDeviceNames;
    }

    public String getModifyDeviceNames()
    {
        return modifyDeviceNames;
    }
    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 setApplyReason(String applyReason) 
    {
        this.applyReason = applyReason;
    }

    public String getApplyReason() 
    {
        return applyReason;
    }
    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 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 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 setConfirmDate(Date confirmDate)
    {
        this.confirmDate = confirmDate;
    }

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

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

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

    public Date getDispatchTime()
    {
        return dispatchTime;
    }
    public void setRepairDevices(String repairDevices)
    {
        this.repairDevices = repairDevices;
    }

    public String getRepairDevices()
    {
        return repairDevices;
    }
    public void setRepairDeviceNames(String repairDeviceNames)
    {
        this.repairDeviceNames = repairDeviceNames;
    }

    public String getRepairDeviceNames()
    {
        return repairDeviceNames;
    }
    public void setRepairDeviceNumbers(String repairDeviceNumbers)
    {
        this.repairDeviceNumbers = repairDeviceNumbers;
    }

    public String getRepairDeviceNumbers()
    {
        return repairDeviceNumbers;
    }
    public void setReturnDevices(String returnDevices)
    {
        this.returnDevices = returnDevices;
    }

    public String getReturnDevices()
    {
        return returnDevices;
    }
    public void setReturnDeviceNames(String returnDeviceNames)
    {
        this.returnDeviceNames = returnDeviceNames;
    }

    public String getReturnDeviceNames()
    {
        return returnDeviceNames;
    }
    public void setReturnDeviceNumbers(String returnDeviceNumbers)
    {
        this.returnDeviceNumbers = returnDeviceNumbers;
    }

    public String getReturnDeviceNumbers()
    {
        return returnDeviceNumbers;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("deviceApplyId", getDeviceApplyId())
            .append("applier", getApplier())
            .append("devices", getDevices())
            .append("modifyDevices", getModifyDevices())
            .append("repairDevices", getRepairDevices())
            .append("projectId", getProjectId())
            .append("applyReason", getApplyReason())
            .append("beginDate", getBeginDate())
            .append("endDate", getEndDate())
            .append("days", getDays())
            .append("managerUserId", getManagerUserId())
            .append("managerComment", getManagerComment())
            .append("dispatcher", getDispatcher())
            .append("dispatchComment", getDispatchComment())
            .append("estimateCost", getEstimateCost())
            .append("applyDate", getApplyDate())
            .append("confirmDate", getConfirmDate())
            .append("returnDate", getReturnDate())
            .toString();
    }
}
