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

    /** 项目id */
    private String projectId;

    /** 项目编号 */
    @Excel(name = "项目编号")
    private String projectNumber;

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

    /** 合同编码 */
    @Excel(name = "合同编码")
    private String contractCode;

    /** 合同编号 */
    @Excel(name = "合同编号")
    private String contractNumber;

    /** 合同名称 */
    @Excel(name = "合同名称")
    private String contractName;

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

    /** 项目状态（0进行中、1已结束） */
    @Excel(name = "项目状态", readConverterExp = "0=进行中,1=已结束")
    private String isFinished;

    /** 完成情况（0进行中、1已完成） */
    @Excel(name = "完成情况", readConverterExp = "0=进行中,1=已完成")
    private String isComplete;

    /** 项目来源（0院内、1院外） */
    @Excel(name = "项目来源", readConverterExp = "0=院内,1=院外")
    private String projectSource;

    /** 甲方单位 */
    private String partyAId;
    @Excel(name = "甲方单位")
    private String partyAName;
    private CmcPartyA partyA;

    /** 联系人 */
    @Excel(name = "联系人")
    private String contactPerson;

    /** 联系电话 */
    @Excel(name = "联系电话")
    private String telephone;

    /** 项目类型 */
    @Excel(name = "项目类型")
    private String projectType;

    /** 项目级别（0一般项目、1重大项目） */
    @Excel(name = "项目级别", readConverterExp = "0=一般项目,1=重大项目")
    private String projectLevel;

    /** 项目登记人 */
    @Excel(name = "项目登记人")
    private String projectRegistrantName;
    private Long projectRegistrant;

    /** 承担部门 */
    @Excel(name = "承担部门")
    private String undertakingDeptName;
    private String undertakingDept;

    /** 项目安排人 */
    @Excel(name = "项目安排人")
    private String projectPlannerName;
    private Long projectPlanner;

    /** 现场负责人 */
    @Excel(name = "现场负责人")
    private String siteLeaderName;
    private Long siteLeader;

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

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

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

    /** 组织交底文档 */
//    @Excel(name = "组织交底文档")
    private String organizeDocument;

    /** 项目登记日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "项目登记日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date registerTime;

    /** 项目安排日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "项目安排日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date planTime;

    /** 组织交底日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
//    @Excel(name = "组织交底日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date organizeTime;

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

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

    /** 范围kml地址 */
//    @Excel(name = "范围kml地址")
    private String projectKml;

    /** 控制点kml地址 */
//    @Excel(name = "控制点kml地址")
    private String projectCp;

    /** kml文件的中心位置经度 */
//    @Excel(name = "kml文件的中心位置经度")
    private String kmlLng;

    /** kml文件的中心位置纬度 */
//    @Excel(name = "kml文件的中心位置纬度")
    private String kmlLat;

    /** 项目用车 */
//    @Excel(name = "项目用车")
    private String cars;

    /** 项目驾驶员 */
//    @Excel(name = "项目驾驶员")
    private String drivers;

    /** 项目设备 */
//    @Excel(name = "项目设备")
    private String devices;

    /** 项目参与人员 */
//    @Excel(name = "项目参与人员")
    private String participates;

    /** 项目任务书 */
//    @Excel(name = "项目任务书")
    private String taskDocument;

    /** 项目提交要求 */
//    @Excel(name = "项目提交要求")
    private String projectRequest;

    /** 内业负责人 */
    private String inLeader;

    /** 外业负责人 */
    private String outLeader;

    /** 牵头部门 */
    private String leadDept;

    /** 参与部门 */
    private String joinDept;

    /** 查询字符 */
    private String queryString;

    private SysUser projectLeaderUser;

    private SysUser technicalDirectorUser;

    private SysUser technicalDesignerUser;

    private SysUser projectRegistrantUser;

    private SysUser projectPlannerUser;

    private SysUser siteLeaderUser;

    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 setProjectName(String projectName)
    {
        this.projectName = projectName;
    }

    public String getProjectName()
    {
        return projectName;
    }
    public void setProjectLeader(Long projectLeader)
    {
        this.projectLeader = projectLeader;
    }

    public Long getProjectLeader()
    {
        return projectLeader;
    }
    public void setIsFinished(String isFinished)
    {
        this.isFinished = isFinished;
    }

    public String getIsFinished()
    {
        return isFinished;
    }
    public void setIsComplete(String isComplete)
    {
        this.isComplete = isComplete;
    }

    public String getIsComplete()
    {
        return isComplete;
    }
    public void setProjectSource(String projectSource)
    {
        this.projectSource = projectSource;
    }

    public String getProjectSource()
    {
        return projectSource;
    }
    public void setPartyAId(String partyAId)
    {
        this.partyAId = partyAId;
    }

    public String getPartyAId()
    {
        return partyAId;
    }
    public void setPartyA(CmcPartyA partyA)
    {
        this.partyA = partyA;
        this.partyAName = partyA == null ? "" : partyA.getPartyAName();
    }

    public CmcPartyA getPartyA()
    {
        return partyA;
    }
    public void setContactPerson(String contactPerson)
    {
        this.contactPerson = contactPerson;
    }

    public String getContactPerson()
    {
        return contactPerson;
    }
    public void setTelephone(String telephone)
    {
        this.telephone = telephone;
    }

    public String getTelephone()
    {
        return telephone;
    }
    public void setProjectType(String projectType)
    {
        this.projectType = projectType;
    }

    public String getProjectType()
    {
        return projectType;
    }
    public void setProjectLevel(String projectLevel)
    {
        this.projectLevel = projectLevel;
    }

    public String getProjectLevel()
    {
        return projectLevel;
    }
    public void setProjectRegistrant(Long projectRegistrant)
    {
        this.projectRegistrant = projectRegistrant;
    }

    public Long getProjectRegistrant()
    {
        return projectRegistrant;
    }
    public void setUndertakingDept(String undertakingDept)
    {
        this.undertakingDept = undertakingDept;
    }

    public String getUndertakingDept()
    {
        return undertakingDept;
    }
    public void setOrganizeDocument(String organizeDocument)
    {
        this.organizeDocument = organizeDocument;
    }

    public String getOrganizeDocument()
    {
        return organizeDocument;
    }
    public void setTaskDocument(String taskDocument)
    {
        this.taskDocument = taskDocument;
    }

    public String getTaskDocument()
    {
        return taskDocument;
    }
    public void setUndertakingDeptName(String undertakingDeptName)
    {
        this.undertakingDeptName = undertakingDeptName;
    }

    public String getUndertakingDeptName()
    {
        return undertakingDeptName;
    }
    public void setProjectPlanner(Long projectPlanner)
    {
        this.projectPlanner = projectPlanner;
    }

    public Long getProjectPlanner()
    {
        return projectPlanner;
    }
    public void setSiteLeader(Long siteLeader)
    {
        this.siteLeader = siteLeader;
    }

    public Long getSiteLeader()
    {
        return siteLeader;
    }
    public void setRegisterTime(Date registerTime)
    {
        this.registerTime = registerTime;
    }

    public Date getRegisterTime()
    {
        return registerTime;
    }
    public void setPlanTime(Date planTime)
    {
        this.planTime = planTime;
    }

    public Date getPlanTime()
    {
        return planTime;
    }
    public void setOrganizeTime(Date organizeTime)
    {
        this.organizeTime = organizeTime;
    }

    public Date getOrganizeTime()
    {
        return organizeTime;
    }
    public void setEntryTime(Date entryTime)
    {
        this.entryTime = entryTime;
    }

    public Date getEntryTime()
    {
        return entryTime;
    }
    public void setExitTime(Date exitTime)
    {
        this.exitTime = exitTime;
    }

    public Date getExitTime()
    {
        return exitTime;
    }
    public void setProjectLeaderUser(SysUser projectLeaderUser)
    {
        this.projectLeaderUser = projectLeaderUser;
        this.projectLeaderName = projectLeaderUser == null ? "" : projectLeaderUser.getNickName();
    }

    public SysUser getProjectLeaderUser()
    {
        return projectLeaderUser;
    }
    public void setProjectRegistrantUser(SysUser projectRegistrantUser)
    {
        this.projectRegistrantUser = projectRegistrantUser;
        this.projectRegistrantName = projectRegistrantUser == null ? "" : projectRegistrantUser.getNickName();
    }

    public SysUser getProjectRegistrantUser()
    {
        return projectRegistrantUser;
    }
    public void setTechnicalDirectorUser(SysUser technicalDirectorUser)
    {
        this.technicalDirectorUser = technicalDirectorUser;
        this.technicalDirectorName = technicalDirectorUser == null ? "" : technicalDirectorUser.getNickName();
    }

    public SysUser getTechnicalDirectorUser()
    {
        return technicalDirectorUser;
    }
    public void setQualityInspector(String qualityInspector)
    {
        this.qualityInspector = qualityInspector;
    }

    public String getQualityInspector()
    {
        return qualityInspector;
    }
    public void setTechnicalDesignerUser(SysUser technicalDesignerUser)
    {
        this.technicalDesignerUser = technicalDesignerUser;
        this.technicalDesignerName = technicalDesignerUser == null ? "" : technicalDesignerUser.getNickName();
    }

    public SysUser getTechnicalDesignerUser()
    {
        return technicalDesignerUser;
    }
    public void setProjectPlannerUser(SysUser projectPlannerUser)
    {
        this.projectPlannerUser = projectPlannerUser;
        this.projectPlannerName = projectPlannerUser == null ? "" : projectPlannerUser.getNickName();
    }

    public SysUser getProjectPlannerUser()
    {
        return projectPlannerUser;
    }
    public void setSiteLeaderUser(SysUser siteLeaderUser)
    {
        this.siteLeaderUser = siteLeaderUser;
        this.siteLeaderName = siteLeaderUser == null ? "" : siteLeaderUser.getNickName();
    }

    public SysUser getSiteLeaderUser()
    {
        return siteLeaderUser;
    }
    public void setQualityInspectorName(String qualityInspectorName)
    {
        this.qualityInspectorName = qualityInspectorName;
    }

    public String getQualityInspectorName()
    {
        return qualityInspectorName;
    }
    public void setProjectKml(String projectKml)
    {
        this.projectKml = projectKml;
    }

    public String getProjectKml()
    {
        return projectKml;
    }
    public void setProjectCp(String projectCp)
    {
        this.projectCp = projectCp;
    }

    public String getProjectCp()
    {
        return projectCp;
    }
    public void setKmlLng(String kmlLng)
    {
        this.kmlLng = kmlLng;
    }

    public String getKmlLng()
    {
        return kmlLng;
    }
    public void setKmlLat(String kmlLat)
    {
        this.kmlLat = kmlLat;
    }

    public String getKmlLat()
    {
        return kmlLat;
    }
    public void setCars(String cars)
    {
        this.cars = cars;
    }

    public String getCars()
    {
        return cars;
    }
    public void setDrivers(String drivers)
    {
        this.drivers = drivers;
    }

    public String getDrivers()
    {
        return drivers;
    }
    public void setDevices(String devices)
    {
        this.devices = devices;
    }

    public String getDevices()
    {
        return devices;
    }
    public void setParticipates(String participates)
    {
        this.participates = participates;
    }

    public String getParticipates()
    {
        return participates;
    }
    public void setProjectRequest(String projectRequest)
    {
        this.projectRequest = projectRequest;
    }

    public String getProjectRequest()
    {
        return projectRequest;
    }
    public void setInLeader(String inLeader)
    {
        this.inLeader = inLeader;
    }

    public String getInLeader()
    {
        return inLeader;
    }
    public void setOutLeader(String outLeader)
    {
        this.outLeader = outLeader;
    }

    public String getOutLeader()
    {
        return outLeader;
    }
    public void setLeadDept(String leadDept)
    {
        this.leadDept = leadDept;
    }

    public String getLeadDept()
    {
        return leadDept;
    }
    public void setJoinDept(String joinDept)
    {
        this.joinDept = joinDept;
    }

    public String getJoinDept()
    {
        return joinDept;
    }
    public void setContractCode(String contractCode)
    {
        this.contractCode = contractCode;
    }

    public String getContractCode()
    {
        return contractCode;
    }
    public void setContractNumber(String contractNumber)
    {
        this.contractNumber = contractNumber;
    }

    public String getContractNumber()
    {
        return contractNumber;
    }
    public void setContractName(String contractName)
    {
        this.contractName = contractName;
    }

    public String getContractName()
    {
        return contractName;
    }
    public void setQueryString(String queryString)
    {
        this.queryString = queryString;
    }
    public String getQueryString()
    {
        return queryString;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
                .append("projectId", getProjectId())
                .append("projectNumber", getProjectNumber())
                .append("projectName", getProjectName())
                .append("projectLeader", getProjectLeader())
                .append("isFinished", getIsFinished())
                .append("projectSource", getProjectSource())
                .append("partyAId", getPartyAId())
                .append("contactPerson", getContactPerson())
                .append("telephone", getTelephone())
                .append("projectType", getProjectType())
                .append("projectLevel", getProjectLevel())
                .append("projectRegistrant", getProjectRegistrant())
                .append("undertakingDept", getUndertakingDept())
                .append("projectPlanner", getProjectPlanner())
                .append("siteLeader", getSiteLeader())
                .append("createTime", getCreateTime())
                .append("planTime", getPlanTime())
                .append("entryTime", getEntryTime())
                .append("exitTime", getExitTime())
                .append("remark", getRemark())
                .append("projectKml", getProjectKml())
                .append("projectCp", getProjectCp())
                .append("kmlLng", getKmlLng())
                .append("kmlLat", getKmlLat())
                .toString();
    }
}
