package com.yanzhu.project.domain;

import java.util.List;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.yanzhu.common.annotation.Excel;
import com.yanzhu.common.core.domain.BaseEntity;

/**
 * 项目申请对象 pro_project_apply
 * 
 * @author yanZhu
 * @date 2024-02-23
 */
public class ProProjectApply extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键 */
    private Long id;

    /** 部门主键 */
    @Excel(name = "部门主键")
    private Long deptId;

    /** 项目主键 */
    @Excel(name = "项目主键")
    private Long projId;

    /** 项目名称 */
    @Excel(name = "项目名称")
    private String projName;

    /** 父级项目名称 */
    @Excel(name = "父级项目名称")
    private String parProjName;

    /** 申请类型 */
    @Excel(name = "申请类型")
    private String applyType;

    /** 申请状态 */
    @Excel(name = "申请状态")
    private String applyStatus;

    /** 申请原因 */
    @Excel(name = "申请原因")
    private String applyReason;

    /** 申请附件 */
    @Excel(name = "申请附件")
    private String applyFiles;

    /** 申请用户主键 */
    @Excel(name = "申请用户主键")
    private Long applyUser;

    /** 使用时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "使用时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date useTime;

    /** 是否删除 */
    @Excel(name = "是否删除")
    private String isDel;

    /** 申请人单位名称 */
    private String createByDeptName;

    /** 项目申请明细信息 */
    private List<ProProjectApplyDetail> proProjectApplyDetailList;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setDeptId(Long deptId) 
    {
        this.deptId = deptId;
    }

    public Long getDeptId() 
    {
        return deptId;
    }
    public void setProjId(Long projId) 
    {
        this.projId = projId;
    }

    public Long getProjId() 
    {
        return projId;
    }
    public void setApplyType(String applyType) 
    {
        this.applyType = applyType;
    }

    public String getApplyType() 
    {
        return applyType;
    }
    public void setApplyStatus(String applyStatus) 
    {
        this.applyStatus = applyStatus;
    }

    public String getApplyStatus() 
    {
        return applyStatus;
    }
    public void setApplyReason(String applyReason) 
    {
        this.applyReason = applyReason;
    }

    public String getApplyReason() 
    {
        return applyReason;
    }
    public void setApplyFiles(String applyFiles) 
    {
        this.applyFiles = applyFiles;
    }

    public String getApplyFiles() 
    {
        return applyFiles;
    }
    public void setApplyUser(Long applyUser) 
    {
        this.applyUser = applyUser;
    }

    public Long getApplyUser() 
    {
        return applyUser;
    }
    public void setUseTime(Date useTime) 
    {
        this.useTime = useTime;
    }

    public Date getUseTime() 
    {
        return useTime;
    }
    public void setIsDel(String isDel) 
    {
        this.isDel = isDel;
    }

    public String getIsDel() 
    {
        return isDel;
    }

    public String getProjName() {
        return projName;
    }

    public void setProjName(String projName) {
        this.projName = projName;
    }

    public String getParProjName() {
        return parProjName;
    }

    public void setParProjName(String parProjName) {
        this.parProjName = parProjName;
    }

    public String getCreateByDeptName() {
        return createByDeptName;
    }

    public void setCreateByDeptName(String createByDeptName) {
        this.createByDeptName = createByDeptName;
    }

    public List<ProProjectApplyDetail> getProProjectApplyDetailList()
    {
        return proProjectApplyDetailList;
    }

    public void setProProjectApplyDetailList(List<ProProjectApplyDetail> proProjectApplyDetailList)
    {
        this.proProjectApplyDetailList = proProjectApplyDetailList;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("deptId", getDeptId())
            .append("projId", getProjId())
            .append("projName", getProjName())
            .append("projId", getParProjName())
            .append("applyType", getApplyType())
            .append("applyStatus", getApplyStatus())
            .append("applyReason", getApplyReason())
            .append("applyFiles", getApplyFiles())
            .append("applyUser", getApplyUser())
            .append("useTime", getUseTime())
            .append("isDel", getIsDel())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("remark", getRemark())
            .append("proProjectApplyDetailList", getProProjectApplyDetailList())
            .toString();
    }
}
