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

    /** 分包合同id */
    private String subContractId;

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

    /** 分包合同金额 */
    @Excel(name = "分包合同金额")
    private BigDecimal subAmount;

    /** 收票金额 */
    @Excel(name = "收票金额")
    private BigDecimal invoiceAmount;

    /** 收票比例 */
    @Excel(name = "收票比例")
    private String invoicePercentage;

    /** 付款金额 */
    @Excel(name = "付款金额")
    private BigDecimal paidAmount;

    /** 付款比例 */
    @Excel(name = "付款比例")
    private String paidPercentage;

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

    /** 承接单位id */
    @Excel(name = "承接单位")
    private String partnerName;
    private String partnerId;

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

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

    /** 评审方式 */
    @Excel(name = "评审方式")
    private String commentType;

    /** 合同文件 */
//    @Excel(name = "合同文件")
    private String contractDocument;

    /** 拟稿人 */
    @Excel(name = "拟稿人")
    private String draftUserName;
    private Long drafter;

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

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

    /** 签订扫描件 */
//    @Excel(name = "签订扫描件")
    private String signScan;

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

    private SysUser draftUser;

    private SysUser managerUser;

    private SysUser gmUser;

    private CmcPartner partner;

    private CmcProject project;

    public void setSubContractId(String subContractId)
    {
        this.subContractId = subContractId;
    }

    public String getSubContractId()
    {
        return subContractId;
    }
    public void setSubContractName(String subContractName)
    {
        this.subContractName = subContractName;
    }

    public String getSubContractName()
    {
        return subContractName;
    }
    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 setProjectSource(String projectSource)
    {
        this.projectSource = projectSource;
    }

    public String getProjectSource()
    {
        return projectSource;
    }
    public void setSubAmount(BigDecimal subAmount)
    {
        this.subAmount = subAmount;
    }

    public BigDecimal getSubAmount()
    {
        return subAmount;
    }
    public void setPaidAmount(BigDecimal paidAmount)
    {
        this.paidAmount = paidAmount;
    }

    public BigDecimal getPaidAmount()
    {
        return paidAmount;
    }
    public void setPaidPercentage(String paidPercentage)
    {
        this.paidPercentage = paidPercentage;
    }

    public String getPaidPercentage()
    {
        return paidPercentage;
    }
    public void setInvoiceAmount(BigDecimal invoiceAmount)
    {
        this.invoiceAmount = invoiceAmount;
    }

    public BigDecimal getInvoiceAmount()
    {
        return invoiceAmount;
    }
    public void setInvoicePercentage(String invoicePercentage)
    {
        this.invoicePercentage = invoicePercentage;
    }

    public String getInvoicePercentage()
    {
        return invoicePercentage;
    }
    public void setPartnerId(String partnerId)
    {
        this.partnerId = partnerId;
    }

    public String getPartnerId()
    {
        return partnerId;
    }
    public void setPartner(CmcPartner partner)
    {
        this.partner = partner;
        this.partnerName = partner == null ? "" : partner.getPartnerName();
    }

    public CmcPartner getPartner()
    {
        return partner;
    }
    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 setContractDocument(String contractDocument)
    {
        this.contractDocument = contractDocument;
    }

    public String getContractDocument()
    {
        return contractDocument;
    }
    public void setDrafter(Long drafter)
    {
        this.drafter = drafter;
    }

    public Long getDrafter()
    {
        return drafter;
    }
    public void setDraftUser(SysUser draftUser)
    {
        this.draftUser = draftUser;
        this.draftUserName = draftUser == null ? "" : draftUser.getNickName();
    }

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

    public SysUser getManagerUser()
    {
        return managerUser;
    }
    public void setDraftTime(Date draftTime)
    {
        this.draftTime = draftTime;
    }

    public Date getDraftTime()
    {
        return draftTime;
    }
    public void setSignDate(Date signDate)
    {
        this.signDate = signDate;
    }

    public Date getSignDate()
    {
        return signDate;
    }
    public void setSignRemark(String signRemark)
    {
        this.signRemark = signRemark;
    }

    public String getSignRemark()
    {
        return signRemark;
    }
    public void setSignScan(String signScan)
    {
        this.signScan = signScan;
    }

    public String getSignScan()
    {
        return signScan;
    }
    public void setCommentType(String commentType)
    {
        this.commentType = commentType;
    }

    public String getCommentType()
    {
        return commentType;
    }

    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 setManagerTime(Date managerTime)
    {
        this.managerTime = managerTime;
    }

    public Date getManagerTime()
    {
        return managerTime;
    }
    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 setGmUser(SysUser gmUser)
    {
        this.gmUser = gmUser;
        this.gmUserName = gmUser == null ? "" : gmUser.getNickName();
    }

    public SysUser getGmUser()
    {
        return gmUser;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("subContractId", getSubContractId())
            .append("subContractName", getSubContractName())
            .append("subAmount", getSubAmount())
            .append("partnerId", getPartnerId())
            .append("contactPerson", getContactPerson())
            .append("telephone", getTelephone())
            .append("drafter", getDrafter())
            .append("draftTime", getDraftTime())
            .append("remark", getRemark())
            .append("signDate", getSignDate())
            .append("signRemark", getSignRemark())
            .append("signScan", getSignScan())
            .append("commentType", getCommentType())
                .append("managerComment", getManagerComment())
                .append("managerUserId", getManagerUserId())
                .append("managerTime", getManagerTime())
            .toString();
    }
}
