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

    /** 结算审批id */
    private String settleId;

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

    /** 工作量上报说明 */
    @Excel(name = "工作量上报说明")
    private String workloadReport;

    /** 上报人 */
    private Long reporter;

    @Excel(name = "项目负责人")
    private String reporterUserName;
    private SysUser reporterUser;

    @Excel(name = "综合事务部审核人")
    private String zhUserName;
    private SysUser zhUser;

    @Excel(name = "技术质量部审核人")
    private String jsUserName;
    private SysUser jsUser;

    @Excel(name = "经营发展部审核人")
    private String jyUserName;
    private SysUser jyUser;

    @Excel(name = "分管审核人")
    private String managerUserName;
    private SysUser managerUser;

    @Excel(name = "总经理")
    private String gmUserName;
    private SysUser gmUser;

    @Excel(name = "董事长")
    private String dszUserName;
    private SysUser dszUser;

    /** 上报日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "上报日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date reportTime;

    /** 结算说明 */
    @Excel(name = "结算说明")
    private String settleComment;

    /** 综合事务部审核人 */
    private Long zhUserId;

    /** 综合事务部审核日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "综合事务部审核日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date zhTime;

    /** 综合事务部审核意见 */
    @Excel(name = "综合事务部审核意见")
    private String zhComment;

    /** 技术质量部审核人 */
    private Long jsUserId;

    /** 技术质量部审核日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "技术质量部审核日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date jsTime;

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

    /** 经营发展部审核人 */
    private Long jyUserId;

    /** 经营发展部审核日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "经营发展部审核日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date jyTime;

    /** 经营发展部审核意见 */
    @Excel(name = "经营发展部审核意见")
    private String jyComment;

    /** 分管审核人 */
    private Long managerUserId;

    /** 分管审核日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "分管审核日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date managerTime;

    /** 分管审核意见 */
    @Excel(name = "分管审核意见")
    private String managerComment;

    /** 总经理审核人 */
    private Long gmUserId;

    /** 总经理审核日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "总经理审核日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date gmTime;

    /** 总经理审核意见 */
    @Excel(name = "总经理审核意见")
    private String gmComment;

    /** 董事长审核人 */
    private Long dszUserId;

    /** 董事长审核日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "董事长审核日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date dszTime;

    /** 董事长审核意见 */
    @Excel(name = "董事长审核意见")
    private String dszComment;

    /** 原始结算表 */
    @Excel(name = "原始结算表")
    private String settleDocument;

    /** 修改结算表 */
    @Excel(name = "修改结算表")
    private String modifyDocument;

    /** 最终算表 */
    @Excel(name = "最终结算表")
    private String finalDocument;

    public void setSettleId(String settleId) 
    {
        this.settleId = settleId;
    }

    public String getSettleId() 
    {
        return settleId;
    }
    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 setWorkloadReport(String workloadReport) 
    {
        this.workloadReport = workloadReport;
    }

    public String getWorkloadReport() 
    {
        return workloadReport;
    }
    public void setReporter(Long reporter) 
    {
        this.reporter = reporter;
    }

    public Long getReporter() 
    {
        return reporter;
    }
    public void setReportTime(Date reportTime) 
    {
        this.reportTime = reportTime;
    }

    public Date getReportTime() 
    {
        return reportTime;
    }
    public void setSettleComment(String settleComment) 
    {
        this.settleComment = settleComment;
    }

    public String getSettleComment() 
    {
        return settleComment;
    }
    public void setZhUserId(Long zhUserId) 
    {
        this.zhUserId = zhUserId;
    }

    public Long getZhUserId() 
    {
        return zhUserId;
    }
    public void setZhTime(Date zhTime) 
    {
        this.zhTime = zhTime;
    }

    public Date getZhTime() 
    {
        return zhTime;
    }
    public void setZhComment(String zhComment) 
    {
        this.zhComment = zhComment;
    }

    public String getZhComment() 
    {
        return zhComment;
    }
    public void setJsUserId(Long jsUserId) 
    {
        this.jsUserId = jsUserId;
    }

    public Long getJsUserId() 
    {
        return jsUserId;
    }
    public void setJsTime(Date jsTime) 
    {
        this.jsTime = jsTime;
    }

    public Date getJsTime() 
    {
        return jsTime;
    }
    public void setJsComment(String jsComment) 
    {
        this.jsComment = jsComment;
    }

    public String getJsComment() 
    {
        return jsComment;
    }
    public void setJyUserId(Long jyUserId) 
    {
        this.jyUserId = jyUserId;
    }

    public Long getJyUserId() 
    {
        return jyUserId;
    }
    public void setJyTime(Date jyTime) 
    {
        this.jyTime = jyTime;
    }

    public Date getJyTime() 
    {
        return jyTime;
    }
    public void setJyComment(String jyComment) 
    {
        this.jyComment = jyComment;
    }

    public String getJyComment() 
    {
        return jyComment;
    }
    public void setManagerUserId(Long managerUserId) 
    {
        this.managerUserId = managerUserId;
    }

    public Long getManagerUserId() 
    {
        return managerUserId;
    }
    public void setManagerTime(Date managerTime) 
    {
        this.managerTime = managerTime;
    }

    public Date getManagerTime() 
    {
        return managerTime;
    }
    public void setManagerComment(String managerComment) 
    {
        this.managerComment = managerComment;
    }

    public String getManagerComment() 
    {
        return managerComment;
    }
    public void setGmUserId(Long gmUserId) 
    {
        this.gmUserId = gmUserId;
    }

    public Long getGmUserId() 
    {
        return gmUserId;
    }
    public void setGmTime(Date gmTime) 
    {
        this.gmTime = gmTime;
    }

    public Date getGmTime() 
    {
        return gmTime;
    }
    public void setGmComment(String gmComment) 
    {
        this.gmComment = gmComment;
    }

    public String getGmComment() 
    {
        return gmComment;
    }
    public void setDszUserId(Long dszUserId)
    {
        this.dszUserId = dszUserId;
    }

    public Long getDszUserId()
    {
        return dszUserId;
    }
    public void setDszTime(Date dszTime)
    {
        this.dszTime = dszTime;
    }

    public Date getDszTime()
    {
        return dszTime;
    }
    public void setDszComment(String dszComment) 
    {
        this.dszComment = dszComment;
    }

    public String getDszComment() 
    {
        return dszComment;
    }
    public void setSettleDocument(String settleDocument)
    {
        this.settleDocument = settleDocument;
    }

    public String getSettleDocument()
    {
        return settleDocument;
    }
    public void setModifyDocument(String modifyDocument)
    {
        this.modifyDocument = modifyDocument;
    }

    public String getModifyDocument()
    {
        return modifyDocument;
    }
    public void setFinalDocument(String finalDocument)
    {
        this.finalDocument = finalDocument;
    }

    public String getFinalDocument()
    {
        return finalDocument;
    }
    public void setReporterUser(SysUser reporterUser)
    {
        this.reporterUser = reporterUser;
        this.reporterUserName = reporterUser == null ? "" : reporterUser.getNickName();
    }

    public SysUser getReporterUser()
    {
        return reporterUser;
    }
    public void setZhUser(SysUser zhUser)
    {
        this.zhUser = zhUser;
        this.zhUserName = zhUser == null ? "" : zhUser.getNickName();
    }

    public SysUser getZhUser()
    {
        return zhUser;
    }
    public void setJyUser(SysUser jyUser)
    {
        this.jyUser = jyUser;
        this.jyUserName = jyUser == null ? "" : jyUser.getNickName();
    }

    public SysUser getJyUser()
    {
        return jyUser;
    }
    public void setJsUser(SysUser jsUser)
    {
        this.jsUser = jsUser;
        this.jsUserName = jsUser == null ? "" : jsUser.getNickName();
    }

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

    public SysUser getManagerUser()
    {
        return managerUser;
    }
    public void setGmUser(SysUser gmUser)
    {
        this.gmUser = gmUser;
        this.gmUserName = gmUser == null ? "" : gmUser.getNickName();
    }

    public SysUser getGmUser()
    {
        return gmUser;
    }
    public void setDszUser(SysUser dszUser)
    {
        this.dszUser = dszUser;
        this.dszUserName = dszUser == null ? "" : dszUser.getNickName();
    }

    public SysUser getDszUser()
    {
        return dszUser;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("settleId", getSettleId())
            .append("projectId", getProjectId())
            .append("workloadReport", getWorkloadReport())
            .append("reporter", getReporter())
            .append("reportTime", getReportTime())
            .append("settleComment", getSettleComment())
            .append("zhUserId", getZhUserId())
            .append("zhTime", getZhTime())
            .append("zhComment", getZhComment())
            .append("jsUserId", getJsUserId())
            .append("jsTime", getJsTime())
            .append("jsComment", getJsComment())
            .append("jyUserId", getJyUserId())
            .append("jyTime", getJyTime())
            .append("jyComment", getJyComment())
            .append("managerUserId", getManagerUserId())
            .append("managerTime", getManagerTime())
            .append("managerComment", getManagerComment())
            .append("gmUserId", getGmUserId())
            .append("gmTime", getGmTime())
            .append("gmComment", getGmComment())
            .toString();
    }
}
