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

    /** 借款申请id */
    private String borrowId;

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

    /** 借款事由 */
    @Excel(name = "借款事由")
    private String applyReason;

    /** 借款用途 */
    @Excel(name = "借款用途")
    private String borrowUsage;

    /** 借款附件 */
    private String borrowDocument;

    /** 申请金额 */
    @Excel(name = "申请金额")
    private BigDecimal applyAmount;

    /** 核准金额 */
    @Excel(name = "核准金额")
    private BigDecimal managerAmount;

    /** 借款部门 */
    @Excel(name = "借款部门")
    private Long applyDept;

    /** 借款人 */
    @Excel(name = "借款人")
    private String applierUserName;
    private Long applier;

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

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

    /** 部门审核人 */
    @Excel(name = "部门审核人")
    private String deptUserName;
    private Long deptUserId;

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

    /** 分管审批意见 */
    @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 zjlComment;

    /** 总经理审 */
    @Excel(name = "总经理")
    private String zjlUserName;
    private Long zjlUserId;

    /** 总经理审批时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "总经理审批时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date zjlTime;

    /** 董事长审批意见 */
    @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 unionComment;

    /** 党工团审批人 */
    @Excel(name = "党工团审批人")
    private String unionUserName;
    private Long unionUserId;

    /** 党工团审批时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "党工团审批时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date unionTime;

    /** 财务部支付备注 */
    @Excel(name = "财务部支付备注")
    private String cwComment;

    /** 支付凭证 */
    private String lendDocument;

    /** 财务部经办人 */
    @Excel(name = "财务部经办人")
    private String cwUserName;
    private Long cwUserId;

    /** 借款支付时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "借款支付时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date lendTime;

    private SysDept dept;

    private SysUser applierUser;

    private SysUser deptUser;

    private SysUser managerUser;

    private SysUser zjlUser;

    private SysUser dszUser;

    private SysUser unionUser;

    private SysUser cwUser;

    private CmcProject project;

    public void setBorrowId(String borrowId) 
    {
        this.borrowId = borrowId;
    }

    public String getBorrowId() 
    {
        return borrowId;
    }
    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 setApplyReason(String applyReason) 
    {
        this.applyReason = applyReason;
    }

    public String getApplyReason() 
    {
        return applyReason;
    }
    public void setBorrowUsage(String borrowUsage)
    {
        this.borrowUsage = borrowUsage;
    }

    public String getBorrowUsage()
    {
        return borrowUsage;
    }
    public void setApplyDept(Long applyDept)
    {
        this.applyDept = applyDept;
    }

    public Long getApplyDept()
    {
        return applyDept;
    }
    public void setDept(SysDept dept)
    {
        this.dept = dept;
    }

    public SysDept getDept()
    {
        return dept;
    }
    public void setApplier(Long applier) 
    {
        this.applier = applier;
    }

    public Long getApplier() 
    {
        return applier;
    }
    public void setApplierUser(SysUser applierUser)
    {
        this.applierUser = applierUser;
        this.applierUserName = applierUser == null ? "" : applierUser.getNickName();
    }

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

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

    public SysUser getManagerUser()
    {
        return managerUser;
    }
    public void setZjlUser(SysUser zjlUser)
    {
        this.zjlUser = zjlUser;
        this.zjlUserName = zjlUser == null ? "" : zjlUser.getNickName();
    }

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

    public SysUser getDszUser()
    {
        return dszUser;
    }
    public void setUnionUser(SysUser unionUser)
    {
        this.unionUser = unionUser;
        this.unionUserName = unionUser == null ? "" : unionUser.getNickName();
    }

    public SysUser getUnionUser()
    {
        return unionUser;
    }
    public void setCwUser(SysUser cwUser)
    {
        this.cwUser = cwUser;
        this.cwUserName = cwUser == null ? "" : cwUser.getNickName();
    }

    public SysUser getCwUser()
    {
        return cwUser;
    }
    public void setApplyDate(Date applyDate) 
    {
        this.applyDate = applyDate;
    }

    public Date getApplyDate() 
    {
        return applyDate;
    }
    public void setApplyAmount(BigDecimal applyAmount) 
    {
        this.applyAmount = applyAmount;
    }

    public BigDecimal getApplyAmount() 
    {
        return applyAmount;
    }
    public void setManagerAmount(BigDecimal managerAmount) 
    {
        this.managerAmount = managerAmount;
    }

    public BigDecimal getManagerAmount() 
    {
        return managerAmount;
    }
    public void setDeptComment(String deptComment) 
    {
        this.deptComment = deptComment;
    }

    public String getDeptComment() 
    {
        return deptComment;
    }
    public void setDeptUserId(Long deptUserId) 
    {
        this.deptUserId = deptUserId;
    }

    public Long getDeptUserId() 
    {
        return deptUserId;
    }
    public void setManagerComment(String managerComment) 
    {
        this.managerComment = managerComment;
    }

    public String getManagerComment() 
    {
        return managerComment;
    }
    public void setManagerUserId(Long managerUserId) 
    {
        this.managerUserId = managerUserId;
    }

    public Long getManagerUserId() 
    {
        return managerUserId;
    }
    public void setZjlUserId(Long zjlUserId) 
    {
        this.zjlUserId = zjlUserId;
    }

    public Long getZjlUserId() 
    {
        return zjlUserId;
    }
    public void setDszUserId(Long dszUserId)
    {
        this.dszUserId = dszUserId;
    }

    public Long getDszUserId()
    {
        return dszUserId;
    }
    public void setZjlComment(String zjlComment) 
    {
        this.zjlComment = zjlComment;
    }

    public String getZjlComment() 
    {
        return zjlComment;
    }
    public void setDszComment(String dszComment)
    {
        this.dszComment = dszComment;
    }

    public String getDszComment()
    {
        return dszComment;
    }
    public void setUnionUserId(Long unionUserId)
    {
        this.unionUserId = unionUserId;
    }

    public Long getUnionUserId()
    {
        return unionUserId;
    }
    public void setUnionComment(String unionComment)
    {
        this.unionComment = unionComment;
    }

    public String getUnionComment()
    {
        return unionComment;
    }
    public void setCwUserId(Long cwUserId) 
    {
        this.cwUserId = cwUserId;
    }

    public Long getCwUserId() 
    {
        return cwUserId;
    }
    public void setCwComment(String cwComment) 
    {
        this.cwComment = cwComment;
    }

    public String getCwComment() 
    {
        return cwComment;
    }
    public void setDeptTime(Date deptTime) 
    {
        this.deptTime = deptTime;
    }

    public Date getDeptTime() 
    {
        return deptTime;
    }
    public void setManagerTime(Date managerTime) 
    {
        this.managerTime = managerTime;
    }

    public Date getManagerTime() 
    {
        return managerTime;
    }
    public void setZjlTime(Date zjlTime) 
    {
        this.zjlTime = zjlTime;
    }

    public Date getZjlTime() 
    {
        return zjlTime;
    }
    public void setDszTime(Date dszTime)
    {
        this.dszTime = dszTime;
    }

    public Date getDszTime()
    {
        return dszTime;
    }
    public void setUnionTime(Date unionTime)
    {
        this.unionTime = unionTime;
    }

    public Date getUnionTime()
    {
        return unionTime;
    }
    public void setLendTime(Date lendTime)
    {
        this.lendTime = lendTime;
    }

    public Date getLendTime()
    {
        return lendTime;
    }
    public void setLendDocument(String lendDocument)
    {
        this.lendDocument = lendDocument;
    }

    public String getLendDocument()
    {
        return lendDocument;
    }
    public void setBorrowDocument(String borrowDocument)
    {
        this.borrowDocument = borrowDocument;
    }

    public String getBorrowDocument()
    {
        return borrowDocument;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("borrowId", getBorrowId())
            .append("projectId", getProjectId())
            .append("applyReason", getApplyReason())
            .append("applier", getApplier())
            .append("applyDept", getApplyDept())
            .append("applyDate", getApplyDate())
            .append("applyAmount", getApplyAmount())
            .append("managerAmount", getManagerAmount())
            .append("deptComment", getDeptComment())
            .append("deptUserId", getDeptUserId())
            .append("managerComment", getManagerComment())
            .append("managerUserId", getManagerUserId())
            .append("zjlUserId", getZjlUserId())
            .append("zjlComment", getZjlComment())
            .append("unionUserId", getUnionUserId())
            .append("unionComment", getUnionComment())
            .append("cwUserId", getCwUserId())
            .append("cwComment", getCwComment())
            .append("deptTime", getDeptTime())
            .append("managerTime", getManagerTime())
            .append("zjlTime", getZjlTime())
            .append("unionTime", getUnionTime())
            .append("lendTime", getLendTime())
            .toString();
    }
}
