package com.ruoyi.oa.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.domain.entity.SysDept;
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;
//    @Excel(name = "承担部门")
    private String undertakingDept;

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

    /** 实际结算总金额 */
    @Excel(name = "实际结算总金额")
    private BigDecimal amount;

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

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

    /** 上报人 */
    @Excel(name = "项目负责人")
    private String reportUserName;
    private Long reporter;

    /** 上报部门 */
    @Excel(name = "上报部门")
    private String deptName;
    private Long reportDept;

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

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

    /** 综合事务部审核人 */
    @Excel(name = "综合事务部审核人")
    private String zhUserName;
    private Long zhUserId;

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

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

    /** 综合事务部驾驶班审核人 */
    @Excel(name = "综合事务部驾驶班审核人")
    private String jsbUserName;
    private Long jsbUserId;

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

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

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

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

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

    /** 经营发展部审核人 */
    @Excel(name = "经营发展部审核人")
    private String jyUserName;
    private Long jyUserId;

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

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

    /** 分管审核人 */
    @Excel(name = "分管审核人")
    private String managerUserName;
    private Long managerUserId;

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

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

    /** 总经理审核人 */
    @Excel(name = "总经理")
    private String gmUserName;
    private Long gmUserId;

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

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

    /** 董事长审核人 */
    @Excel(name = "董事长")
    private String dszUserName;
    private Long dszUserId;

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

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

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

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

    private SysUser reportUser;

    private SysUser zhUser;

    private SysUser jsbUser;

    private SysUser jsUser;

    private SysUser jyUser;

    private SysUser managerUser;

    private SysUser gmUser;

    private SysUser dszUser;

    private CmcProject project;

    private SysDept dept;

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

    public String getSettleId() 
    {
        return settleId;
    }
    public void setXmName(String xmName)
    {
        this.xmName = xmName;
    }

    public String getXmName()
    {
        return xmName;
    }
    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 setUndertakingDept(String undertakingDept)
    {
        this.undertakingDept = undertakingDept;
    }

    public String getUndertakingDept()
    {
        return undertakingDept;
    }
    public void setReportDept(Long reportDept)
    {
        this.reportDept = reportDept;
    }

    public Long getReportDept()
    {
        return reportDept;
    }
    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 setDept(SysDept dept)
    {
        this.dept = dept;
        this.deptName = dept == null ? "" : dept.getDeptName();
    }

    public SysDept getDept()
    {
        return dept;
    }
    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 setJsbUserId(Long jsbUserId)
    {
        this.jsbUserId = jsbUserId;
    }

    public Long getJsbUserId()
    {
        return jsbUserId;
    }
    public void setJsbTime(Date jsbTime)
    {
        this.jsbTime = jsbTime;
    }

    public Date getJsbTime()
    {
        return jsbTime;
    }
    public void setJsbComment(String jsbComment)
    {
        this.jsbComment = jsbComment;
    }

    public String getJsbComment()
    {
        return jsbComment;
    }
    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 setReportUser(SysUser reportUser)
    {
        this.reportUser = reportUser;
        this.reportUserName = reportUser == null ? "" : reportUser.getNickName();
    }

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

    public SysUser getZhUser()
    {
        return zhUser;
    }

    public void setJsbUser(SysUser jsbUser)
    {
        this.jsbUser = jsbUser;
        this.jsbUserName = jsbUser == null ? "" : jsbUser.getNickName();
    }

    public SysUser getJsbUser()
    {
        return jsbUser;
    }
    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;
    }
    public void setAmount(BigDecimal amount)
    {
        this.amount = amount;
    }

    public BigDecimal getAmount()
    {
        return amount;
    }


    @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("jsbUserId", getJsbUserId())
            .append("jsbTime", getJsbTime())
            .append("jsbComment", getJsbComment())
            .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();
    }
}
