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

    /** 保证金审批id */
    private String depositId;

    /** 保证金类型 */
    @Excel(name = "保证金类型")
    private String depositType;

    /** 投标项目id */
    private Integer tenderId;
    @Excel(name = "投标项目名称")
    private String projectName;

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

    /** 预计退还日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "预计退还日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date returnTime;

    /** 开户名称 */
    @Excel(name = "开户名称")
    private String accountName;

    /** 开户银行 */
    @Excel(name = "开户银行")
    private String accountBank;

    /** 银行卡号 */
    @Excel(name = "银行卡号")
    private String cardNumber;

    /** 保证金形式 */
    @Excel(name = "保证金形式")
    private String depositWay;

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

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

    /** 申请说明 */
    @Excel(name = "申请说明")
    private String applyReason;

    /** 相关附件 */
//    @Excel(name = "相关附件")
    private String applyDocument;

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

    /** 汇款凭证 */
//    @Excel(name = "汇款凭证")
    private String remitDocument;

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

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

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

    /** 财务处理时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "财务处理时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date cwTime;

    private SysUser applierUser;

    private SysUser managerUser;

    private SysUser cwUser;

    private CmcTender tender;

    private CmcContract contract;

    public void setDepositId(String depositId) 
    {
        this.depositId = depositId;
    }

    public String getDepositId() 
    {
        return depositId;
    }
    public void setDepositType(String depositType) 
    {
        this.depositType = depositType;
    }

    public String getDepositType() 
    {
        return depositType;
    }
    public void setTenderId(Integer tenderId)
    {
        this.tenderId = tenderId;
    }

    public Integer getTenderId()
    {
        return tenderId;
    }
    public void setTender(CmcTender tender)
    {
        this.tender = tender;
        this.projectName = tender == null ? "" : tender.getProjectName();
    }

    public CmcTender getTender()
    {
        return tender;
    }
    public void setContractId(String contractId) 
    {
        this.contractId = contractId;
    }

    public String getContractId() 
    {
        return contractId;
    }
    public void setContract(CmcContract contract)
    {
        this.contract = contract;
        this.contractName = contract == null ? "" : contract.getContractName();
    }

    public CmcContract getContract()
    {
        return contract;
    }
    public void setReturnTime(Date returnTime) 
    {
        this.returnTime = returnTime;
    }

    public Date getReturnTime() 
    {
        return returnTime;
    }
    public void setAccountName(String accountName) 
    {
        this.accountName = accountName;
    }

    public String getAccountName() 
    {
        return accountName;
    }
    public void setAccountBank(String accountBank) 
    {
        this.accountBank = accountBank;
    }

    public String getAccountBank() 
    {
        return accountBank;
    }
    public void setCardNumber(String cardNumber) 
    {
        this.cardNumber = cardNumber;
    }

    public String getCardNumber() 
    {
        return cardNumber;
    }
    public void setDepositWay(String depositWay) 
    {
        this.depositWay = depositWay;
    }

    public String getDepositWay() 
    {
        return depositWay;
    }
    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 setApplyTime(Date applyTime) 
    {
        this.applyTime = applyTime;
    }

    public Date getApplyTime() 
    {
        return applyTime;
    }
    public void setApplyReason(String applyReason) 
    {
        this.applyReason = applyReason;
    }

    public String getApplyReason() 
    {
        return applyReason;
    }
    public void setApplyDocument(String applyDocument) 
    {
        this.applyDocument = applyDocument;
    }

    public String getApplyDocument() 
    {
        return applyDocument;
    }
    public void setManagerComment(String managerComment)
    {
        this.managerComment = managerComment;
    }

    public String getManagerComment()
    {
        return managerComment;
    }
    public void setManagerTime(Date managerTime) 
    {
        this.managerTime = managerTime;
    }

    public Date getManagerTime() 
    {
        return managerTime;
    }
    public void setManagerUserId(Long managerUserId) 
    {
        this.managerUserId = managerUserId;
    }

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

    public SysUser getManagerUser()
    {
        return managerUser;
    }
    public void setRemitTime(Date remitTime) 
    {
        this.remitTime = remitTime;
    }

    public Date getRemitTime() 
    {
        return remitTime;
    }
    public void setCwTime(Date cwTime) 
    {
        this.cwTime = cwTime;
    }

    public Date getCwTime() 
    {
        return cwTime;
    }
    public void setBackTime(Date backTime) 
    {
        this.backTime = backTime;
    }

    public Date getBackTime() 
    {
        return backTime;
    }
    public void setCwComment(String cwComment) 
    {
        this.cwComment = cwComment;
    }

    public String getCwComment() 
    {
        return cwComment;
    }
    public void setCwUserId(Long cwUserId) 
    {
        this.cwUserId = cwUserId;
    }

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

    public SysUser getCwUser()
    {
        return cwUser;
    }
    public void setRemitDocument(String remitDocument)
    {
        this.remitDocument = remitDocument;
    }

    public String getRemitDocument()
    {
        return remitDocument;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("depositId", getDepositId())
            .append("depositType", getDepositType())
            .append("tenderId", getTenderId())
            .append("contractId", getContractId())
            .append("returnTime", getReturnTime())
            .append("accountName", getAccountName())
            .append("accountBank", getAccountBank())
            .append("cardNumber", getCardNumber())
            .append("depositWay", getDepositWay())
            .append("applier", getApplier())
            .append("applyTime", getApplyTime())
            .append("applyReason", getApplyReason())
            .append("applyDocument", getApplyDocument())
            .append("managerTime", getManagerTime())
            .append("managerUserId", getManagerUserId())
            .append("remitTime", getRemitTime())
            .append("cwTime", getCwTime())
            .append("backTime", getBackTime())
            .append("cwComment", getCwComment())
            .append("cwUserId", getCwUserId())
            .toString();
    }
}
