package com.ruoyi.system.domain;

import java.util.Date;
import javax.validation.constraints.NotBlank;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.annotation.Excel.ColumnType;
import com.ruoyi.common.core.domain.BaseEntity;

public class SysProject extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    @Excel(name = "ID", cellType = ColumnType.NUMERIC)
    private Long id;

    @Excel(name = "项目名称")
    @NotBlank(message = "项目名称不能为空")
    private String projectName;

    @Excel(name = "项目状态", readConverterExp = "0=筹备中,1=进行中,2=已完成,3=暂停")
    private String projectStatus;

    @Excel(name = "牵头单位")
    private String leadUnit;

    @Excel(name = "核心参与单位")
    private String coreUnits;

    @Excel(name = "负责人")
    private String projectLeader;

    @Excel(name = "联系电话")
    private String contactPhone;

    @Excel(name = "项目背景")
    private String projectBackground;

    @Excel(name = "总体目标")
    private String overallGoal;

    @Excel(name = "实施周期")
    private String implementationPeriod;

    @Excel(name = "项目详情")
    private String projectDetail;

    @Excel(name = "创建时间")
    private Date createTime;

    public Long getId()
    {
        return id;
    }

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

    public String getProjectName()
    {
        return projectName;
    }

    public void setProjectName(String projectName)
    {
        this.projectName = projectName;
    }

    public String getProjectStatus()
    {
        return projectStatus;
    }

    public void setProjectStatus(String projectStatus)
    {
        this.projectStatus = projectStatus;
    }

    public String getLeadUnit()
    {
        return leadUnit;
    }

    public void setLeadUnit(String leadUnit)
    {
        this.leadUnit = leadUnit;
    }

    public String getCoreUnits()
    {
        return coreUnits;
    }

    public void setCoreUnits(String coreUnits)
    {
        this.coreUnits = coreUnits;
    }

    public String getProjectLeader()
    {
        return projectLeader;
    }

    public void setProjectLeader(String projectLeader)
    {
        this.projectLeader = projectLeader;
    }

    public String getContactPhone()
    {
        return contactPhone;
    }

    public void setContactPhone(String contactPhone)
    {
        this.contactPhone = contactPhone;
    }

    public String getProjectBackground()
    {
        return projectBackground;
    }

    public void setProjectBackground(String projectBackground)
    {
        this.projectBackground = projectBackground;
    }

    public String getOverallGoal()
    {
        return overallGoal;
    }

    public void setOverallGoal(String overallGoal)
    {
        this.overallGoal = overallGoal;
    }

    public String getImplementationPeriod()
    {
        return implementationPeriod;
    }

    public void setImplementationPeriod(String implementationPeriod)
    {
        this.implementationPeriod = implementationPeriod;
    }

    public String getProjectDetail()
    {
        return projectDetail;
    }

    public void setProjectDetail(String projectDetail)
    {
        this.projectDetail = projectDetail;
    }

    public Date getCreateTime()
    {
        return createTime;
    }

    public void setCreateTime(Date createTime)
    {
        this.createTime = createTime;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("projectName", getProjectName())
            .append("projectStatus", getProjectStatus())
            .append("leadUnit", getLeadUnit())
            .append("coreUnits", getCoreUnits())
            .append("projectLeader", getProjectLeader())
            .append("contactPhone", getContactPhone())
            .append("projectBackground", getProjectBackground())
            .append("overallGoal", getOverallGoal())
            .append("implementationPeriod", getImplementationPeriod())
            .append("projectDetail", getProjectDetail())
            .append("createTime", getCreateTime())
            .append("createBy", getCreateBy())
            .append("updateTime", getUpdateTime())
            .append("updateBy", getUpdateBy())
            .append("remark", getRemark())
            .toString();
    }
}
