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

    /** 方案id */
    private String technicalPlanId;

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

    /** 技术安排意见 */
    @Excel(name = "技术安排意见")
    private String planComment;

    /** 技术安排人 */
    @Excel(name = "技术安排人")
    private String planUserName;
    private Long technicalPlanner;

    /** 技术安排时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "技术安排时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date technicalTime;

    /** 技术负责人 */
    @Excel(name = "技术负责人")
    private String directUserName;
    private Long technicalDirector;

    /** 方案说明 */
    @Excel(name = "方案说明")
    private String designDescription;

    /** 技术设计人 */
    @Excel(name = "技术设计人")
    private String designUserName;
    private Long technicalDesigner;

    /** 方案上传时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "方案上传时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date technicalUploadTime;

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

    /** 技术审核意见 */
    @Excel(name = "技术审核意见")
    private String technicalComment;

    /** 技术审核人 */
    @Excel(name = "技术审核人")
    private String auditUserName;
    private Long technicalAuditor;

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

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

    /** 技术质量与安全部审核人 */
    @Excel(name = "技术质量与安全部审核人")
    private String techDeptUserName;
    private Long techDeptLeader;

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

    /** 总工审核意见 */
    @Excel(name = "总工审核意见")
    private String manageComment;

    /** 总工审批人 */
    @Excel(name = "总工程师")
    private String managerUserName;
    private Long managerUserId;
    
    /** 技术方案 */
//    @Excel(name = "技术方案")
    private String technicalDocument;

    /** 修改技术方案 */
//    @Excel(name = "修改技术方案")
    private String modifyDocument;

    /** 修改技术方案 */
//    @Excel(name = "修改技术方案")
    private String reviseDocument;

    /** 最终技术方案 */
//    @Excel(name = "最终技术方案")
    private String finalDocument;

    private SysUser directUser;

    private SysUser planUser;

    private SysUser auditUser;

    private SysUser designUser;

    private SysUser techDeptUser;

    private SysUser managerUser;

    private CmcProject project;

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

    public void setTechnicalPlanId(String technicalPlanId)
    {
        this.technicalPlanId = technicalPlanId;
    }

    public String getTechnicalPlanId()
    {
        return technicalPlanId;
    }
    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 setTechnicalDirector(Long technicalDirector)
    {
        this.technicalDirector = technicalDirector;
    }

    public Long getTechnicalDirector()
    {
        return technicalDirector;
    }
    public void setTechnicalDesigner(Long technicalDesigner)
    {
        this.technicalDesigner = technicalDesigner;
    }

    public Long getTechnicalDesigner()
    {
        return technicalDesigner;
    }
    public void setTechnicalPlanner(Long technicalPlanner)
    {
        this.technicalPlanner = technicalPlanner;
    }

    public Long getTechnicalPlanner()
    {
        return technicalPlanner;
    }
    public void setTechnicalAuditor(Long technicalAuditor)
    {
        this.technicalAuditor = technicalAuditor;
    }

    public Long getTechnicalAuditor()
    {
        return technicalAuditor;
    }
    public void setTechDeptLeader(Long techDeptLeader)
    {
        this.techDeptLeader = techDeptLeader;
    }

    public Long getTechDeptLeader()
    {
        return techDeptLeader;
    }
    public void setDirectUser(SysUser directUser)
    {
        this.directUser = directUser;
        this.directUserName = directUser == null ? "" : directUser.getNickName();
    }

    public SysUser getDirectUser()
    {
        return directUser;
    }
    public void setPlanUser(SysUser planUser)
    {
        this.planUser = planUser;
        this.planUserName = planUser == null ? "" : planUser.getNickName();
    }

    public SysUser getPlanUser()
    {
        return planUser;
    }
    public void setDesignUser(SysUser designUser)
    {
        this.designUser = designUser;
        this.designUserName = designUser == null ? "" : designUser.getNickName();
    }

    public SysUser getDesignUser()
    {
        return designUser;
    }
    public void setAuditUser(SysUser auditUser)
    {
        this.auditUser = auditUser;
        this.auditUserName = auditUser == null ? "" : auditUser.getNickName();
    }

    public SysUser getAuditUser()
    {
        return auditUser;
    }
    public void setTechDeptUser(SysUser techDeptUser)
    {
        this.techDeptUser = techDeptUser;
        this.techDeptUserName = techDeptUser == null ? "" : techDeptUser.getNickName();
    }

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

    public SysUser getManagerUser()
    {
        return managerUser;
    }
    public void setPlanComment(String planComment)
    {
        this.planComment = planComment;
    }

    public String getPlanComment()
    {
        return planComment;
    }
    public void setQualityInspector(String qualityInspector)
    {
        this.qualityInspector = qualityInspector;
    }

    public String getQualityInspector()
    {
        return qualityInspector;
    }
    public void setQualityInspectorName(String qualityInspectorName)
    {
        this.qualityInspectorName = qualityInspectorName;
    }

    public String getQualityInspectorName()
    {
        return qualityInspectorName;
    }
    public void setTechnicalTime(Date technicalTime)
    {
        this.technicalTime = technicalTime;
    }

    public Date getTechnicalTime()
    {
        return technicalTime;
    }
    public void setTechnicalDocument(String technicalDocument)
    {
        this.technicalDocument = technicalDocument;
    }

    public String getTechnicalDocument()
    {
        return technicalDocument;
    }
    public void setModifyDocument(String modifyDocument)
    {
        this.modifyDocument = modifyDocument;
    }

    public String getModifyDocument()
    {
        return modifyDocument;
    }
    public void setReviseDocument(String reviseDocument)
    {
        this.reviseDocument = reviseDocument;
    }

    public String getReviseDocument()
    {
        return reviseDocument;
    }
    public void setFinalDocument(String finalDocument)
    {
        this.finalDocument = finalDocument;
    }

    public String getFinalDocument()
    {
        return finalDocument;
    }
    public void setDesignDescription(String designDescription)
    {
        this.designDescription = designDescription;
    }

    public String getDesignDescription()
    {
        return designDescription;
    }
    public void setTechnicalComment(String technicalComment)
    {
        this.technicalComment = technicalComment;
    }

    public String getTechnicalComment()
    {
        return technicalComment;
    }
    public void setTechDeptComment(String techDeptComment)
    {
        this.techDeptComment = techDeptComment;
    }

    public String getTechDeptComment()
    {
        return techDeptComment;
    }
    public void setManagerUserId(Long managerUserId)
    {
        this.managerUserId = managerUserId;
    }

    public Long getManagerUserId()
    {
        return managerUserId;
    }
    public void setManageComment(String manageComment)
    {
        this.manageComment = manageComment;
    }

    public String getManageComment()
    {
        return manageComment;
    }
    public void setTechnicalUploadTime(Date technicalUploadTime)
    {
        this.technicalUploadTime = technicalUploadTime;
    }

    public Date getTechnicalUploadTime()
    {
        return technicalUploadTime;
    }
    public void setTechApprovalTime(Date techApprovalTime)
    {
        this.techApprovalTime = techApprovalTime;
    }

    public Date getTechApprovalTime()
    {
        return techApprovalTime;
    }
    public void setManageApprovalTime(Date manageApprovalTime)
    {
        this.manageApprovalTime = manageApprovalTime;
    }

    public Date getManageApprovalTime()
    {
        return manageApprovalTime;
    }
    public void setTechDeptTime(Date techDeptTime)
    {
        this.techDeptTime = techDeptTime;
    }

    public Date getTechDeptTime()
    {
        return techDeptTime;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
                .append("technicalPlanId", getTechnicalPlanId())
                .append("projectId", getProjectId())
                .append("technicalDirector", getTechnicalDirector())
                .append("technicalDesigner", getTechnicalDesigner())
                .append("technicalPlanner", getTechnicalPlanner())
                .append("planComment", getPlanComment())
                .append("qualityInspector", getQualityInspector())
                .append("technicalTime", getTechnicalTime())
                .append("technicalDocument", getTechnicalDocument())
                .append("designDescription", getDesignDescription())
                .append("technicalComment", getTechnicalComment())
                .append("managerUserId", getManagerUserId())
                .append("manageComment", getManageComment())
                .append("technicalUploadTime", getTechnicalUploadTime())
                .append("techApprovalTime", getTechApprovalTime())
                .append("manageApprovalTime", getManageApprovalTime())
                .toString();
    }
}
