package com.ruoyi.oa.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
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_archive
 * 
 * @author cmc
 * @date 2024-04-29
 */
public class CmcArchive extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 成果归档id */
    private String archiveId;

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

    /** 备注说明 */
    @Excel(name = "备注说明")
    private String submitSituation;

    /** 项目负责人 */
    @Excel(name = "项目负责人")
    private String leaderUserName;
    private Long projectLeader;

    /** 成果提交日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "成果提交日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date submitTime;

    /** 生产部门意见 */
    @Excel(name = "生产部门意见")
    private String produceComment;

    /** 生产部门检查员 */
    @Excel(name = "生产部门检查员")
    private String produceUserName;
    private Long produceInspector;

    /** 资料接收时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "资料接收时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date receiveTime;

    /** 生产部门检查时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "生产部门检查时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date produceTime;

    /** 质量检查意见 */
    @Excel(name = "质量检查意见")
    private String qualityComment;

    /** 质量检查员 */
    @Excel(name = "质量检查员")
    private String qualityUserName;
    private Long qualityInspector;

    /** 质量检查时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "质量检查时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date qualityTime;

    /** 技术质量与安全部审核意见 */
    @Excel(name = "技术质量与安全部审核意见")
    private String deptComment;

    /** 技术质量与安全部负责人 */
    @Excel(name = "技术质量与安全部负责人")
    private String deptUserName;
    private Long deptLeader;

    /** 技术质量与安全部审核时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "技术质量与安全部审核时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date deptTime;

    /** 归档审核意见 */
    @Excel(name = "归档审核意见")
    private String archiveComment;

    /** 资料归档员 */
    @Excel(name = "资料归档员")
    private String archiveUserName;
    private Long archiver;

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

    private SysUser leaderUser;

    private SysUser produceUser;

    private SysUser qualityUser;

    private SysUser deptUser;

    private SysUser archiveUser;

    private CmcProject project;

    public void setArchiveId(String archiveId) 
    {
        this.archiveId = archiveId;
    }

    public String getArchiveId() 
    {
        return archiveId;
    }
    public void setProjectId(String projectId) 
    {
        this.projectId = projectId;
    }

    public String getProjectId() 
    {
        return projectId;
    }
    public void setProjectNumber(String projectNumber)
    {
        this.projectNumber = projectNumber;
    }

    public String getProjectNumber()
    {
        return projectNumber;
    }
    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 setSubmitTime(Date submitTime) 
    {
        this.submitTime = submitTime;
    }

    public Date getSubmitTime() 
    {
        return submitTime;
    }
    public void setSubmitSituation(String submitSituation) 
    {
        this.submitSituation = submitSituation;
    }

    public String getSubmitSituation() 
    {
        return submitSituation;
    }
    public void setProjectLeader(Long projectLeader)
    {
        this.projectLeader = projectLeader;
    }

    public Long getProjectLeader()
    {
        return projectLeader;
    }
    public void setProduceInspector(Long produceInspector) 
    {
        this.produceInspector = produceInspector;
    }

    public Long getProduceInspector() 
    {
        return produceInspector;
    }
    public void setQualityInspector(Long qualityInspector) 
    {
        this.qualityInspector = qualityInspector;
    }

    public Long getQualityInspector() 
    {
        return qualityInspector;
    }
    public void setDeptLeader(Long deptLeader) 
    {
        this.deptLeader = deptLeader;
    }

    public Long getDeptLeader() 
    {
        return deptLeader;
    }
    public void setArchiver(Long archiver) 
    {
        this.archiver = archiver;
    }

    public Long getArchiver() 
    {
        return archiver;
    }
    public void setReceiveTime(Date receiveTime) 
    {
        this.receiveTime = receiveTime;
    }

    public Date getReceiveTime() 
    {
        return receiveTime;
    }
    public void setQualityTime(Date qualityTime) 
    {
        this.qualityTime = qualityTime;
    }

    public Date getQualityTime() 
    {
        return qualityTime;
    }
    public void setProduceTime(Date produceTime) 
    {
        this.produceTime = produceTime;
    }

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

    public Date getDeptTime() 
    {
        return deptTime;
    }
    public void setArchiveTime(Date archiveTime) 
    {
        this.archiveTime = archiveTime;
    }

    public Date getArchiveTime() 
    {
        return archiveTime;
    }
    public void setProduceComment(String produceComment) 
    {
        this.produceComment = produceComment;
    }

    public String getProduceComment() 
    {
        return produceComment;
    }
    public void setQualityComment(String qualityComment) 
    {
        this.qualityComment = qualityComment;
    }

    public String getQualityComment() 
    {
        return qualityComment;
    }
    public void setDeptComment(String deptComment) 
    {
        this.deptComment = deptComment;
    }

    public String getDeptComment() 
    {
        return deptComment;
    }
    public void setArchiveComment(String archiveComment) 
    {
        this.archiveComment = archiveComment;
    }

    public String getArchiveComment() 
    {
        return archiveComment;
    }
    public void setLeaderUser(SysUser leaderUser)
    {
        this.leaderUser = leaderUser;
        this.leaderUserName = leaderUser == null ? "" : leaderUser.getNickName();
    }

    public SysUser getLeaderUser()
    {
        return leaderUser;
    }
    public void setProduceUser(SysUser produceUser)
    {
        this.produceUser = produceUser;
        this.produceUserName = produceUser == null ? "" : produceUser.getNickName();
    }

    public SysUser getProduceUser()
    {
        return produceUser;
    }
    public void setQualityUser(SysUser qualityUser)
    {
        this.qualityUser = qualityUser;
        this.qualityUserName = qualityUser == null ? "" : qualityUser.getNickName();
    }

    public SysUser getQualityUser()
    {
        return qualityUser;
    }
    public void setDeptUser(SysUser deptUser)
    {
        this.deptUser = deptUser;
        this.deptUserName = deptUser == null ? "" : deptUser.getNickName();
    }

    public SysUser getDeptUser()
    {
        return deptUser;
    }
    public void setArchiveUser(SysUser archiveUser)
    {
        this.archiveUser = archiveUser;
        this.archiveUserName = archiveUser == null ? "" : archiveUser.getNickName();
    }

    public SysUser getArchiveUser()
    {
        return archiveUser;
    }


    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("archiveId", getArchiveId())
            .append("projectId", getProjectId())
            .append("submitTime", getSubmitTime())
            .append("submitSituation", getSubmitSituation())
            .append("produceInspector", getProduceInspector())
            .append("qualityInspector", getQualityInspector())
            .append("deptLeader", getDeptLeader())
            .append("archiver", getArchiver())
            .append("receiveTime", getReceiveTime())
            .append("qualityTime", getQualityTime())
            .append("produceTime", getProduceTime())
            .append("deptTime", getDeptTime())
            .append("archiveTime", getArchiveTime())
            .append("produceComment", getProduceComment())
            .append("qualityComment", getQualityComment())
            .append("deptComment", getDeptComment())
            .append("archiveComment", getArchiveComment())
            .toString();
    }
}
