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_budget
 *
 * @author cmc
 * @date 2024-03-26
 */
public class CmcBudget extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 预算id */
    private String budgetId;

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

    /** 预算总额 */
    @Excel(name = "预算总额")
    private BigDecimal totalBudget;

    /** 间接成本 */
//    @Excel(name = "间接成本")
    private BigDecimal fixCost;

    /** 内业绩效额 */
//    @Excel(name = "内业绩效额")
    private BigDecimal settleExpense;

    /** 人员成本 */
    @Excel(name = "人员成本")
    private BigDecimal staffCost;

    /** 车辆成本 */
    @Excel(name = "车辆成本")
    private BigDecimal carCost;

    /** 设备成本 */
    @Excel(name = "设备成本")
    private BigDecimal deviceCost;

    /** 经营相关费用 */
    @Excel(name = "经营相关费用")
    private BigDecimal businessCost;

    /** 现场开支 */
    @Excel(name = "现场开支")
    private BigDecimal siteCost;

    /** 直接成本 */
//    @Excel(name = "直接成本")
    private BigDecimal directExpense;

    /** 外协费用 */
    @Excel(name = "外协费用")
    private BigDecimal outExpense;

    /** 外协费用备注 */
    @Excel(name = "外协费用备注")
    private String outRemark;

    /** 经营费用 */
//    @Excel(name = "经营费用")
    private BigDecimal businessExpense;

    /** 经营管理备注 */
//    @Excel(name = "经营管理备注")
    private String businessRemark;

    /** 税费成本 */
    @Excel(name = "税费")
    private BigDecimal taxExpense;

    /** 税费成本备注 */
    @Excel(name = "税费备注")
    private String taxRemark;

    /** 保函费用 */
    @Excel(name = "保函费用")
    private BigDecimal letterExpense;

    /** 保函费用备注 */
    @Excel(name = "保函费用备注")
    private String letterRemark;

    /** 中标服务费 */
    @Excel(name = "中标服务费")
    private BigDecimal winExpense;

    /** 中标服务费备注 */
    @Excel(name = "中标服务费备注")
    private String winRemark;

    /** 管理出差费用 */
    @Excel(name = "管理出差费用")
    private BigDecimal travelExpense;

    /** 管理出差费用备注 */
    @Excel(name = "管理出差费用备注")
    private String travelRemark;

    /** 车船租赁 */
//    @Excel(name = "车船租赁")
    private BigDecimal rentExpense;

    /** 车船租赁备注 */
//    @Excel(name = "车船租赁备注")
    private String rentRemark;

    /** 其他费用 */
//    @Excel(name = "其他费用")
    private BigDecimal otherExpense;

    /** 其他费用备注 */
//    @Excel(name = "其他费用备注")
    private String otherRemark;

    /** 编制人 */
    @Excel(name = "编制人")
    private String compilerUserName;
    private Long compiler;

    /** 预算编制时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "预算编制时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date createTime;

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

    /** 董事长 */
    @Excel(name = "分管审核人")
    private String managerUserName;
    private Long approver;

    /** 分管审核时间 */
    @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 auditor;

    /** 总经理审批时间 */
    @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;

    /** 董事长批准时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "董事长批准时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date dszTime;

    /** 预算附件 */
    @Excel(name = "预算附件")
    private String document;

    /** 人员核算成本 */
    @Excel(name = "人员核算成本")
    private BigDecimal staffAdjust;

    /** 车辆核算成本 */
    @Excel(name = "车辆核算成本")
    private BigDecimal carAdjust;

    /** 设备核算成本 */
    @Excel(name = "设备核算成本")
    private BigDecimal deviceAdjust;

    /** 经营相关核算费用 */
    @Excel(name = "经营相关核算费用")
    private BigDecimal businessAdjust;

    /** 现场开支核算 */
    @Excel(name = "现场开支核算 ")
    private BigDecimal siteAdjust;

    /** 现场外开支核算 */
    @Excel(name = "现场外开支核算 ")
    private BigDecimal otherCost;

    /** 内业核算绩效总额 */
//    @Excel(name = "内业核算绩效总额")
    private BigDecimal settleAdjust;

    /** 外协核算费用 */
    @Excel(name = "外协核算费用")
    private BigDecimal outAdjust;

    /** 税费核算 */
    @Excel(name = "税费核算")
    private BigDecimal taxAdjust;

    /** 保函核算费用 */
    @Excel(name = "保函核算费用")
    private BigDecimal letterAdjust;

    /** 中标服务核算费用 */
    @Excel(name = "中标服务核算费用")
    private BigDecimal winAdjust;

    /** 管理出差核算费用 */
    @Excel(name = "管理出差核算费用")
    private BigDecimal travelAdjust;

    private String procInstId;

    private SysUser compilerUser;

    private SysUser managerUser;

    private SysUser zjlUser;

    private SysUser dszUser;

    private CmcProject project;

    public void setBudgetId(String budgetId)
    {
        this.budgetId = budgetId;
    }

    public String getBudgetId()
    {
        return budgetId;
    }
    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 setStaffCost(BigDecimal staffCost)
    {
        this.staffCost = staffCost;
    }

    public BigDecimal getStaffCost()
    {
        return staffCost;
    }
    public void setCarCost(BigDecimal carCost)
    {
        this.carCost = carCost;
    }

    public BigDecimal getCarCost()
    {
        return carCost;
    }
    public void setDeviceCost(BigDecimal deviceCost)
    {
        this.deviceCost = deviceCost;
    }

    public BigDecimal getDeviceCost()
    {
        return deviceCost;
    }
    public void setSiteCost(BigDecimal siteCost)
    {
        this.siteCost = siteCost;
    }

    public BigDecimal getSiteCost()
    {
        return siteCost;
    }
    public void setSiteAdjust(BigDecimal siteAdjust)
    {
        this.siteAdjust = siteAdjust;
    }

    public BigDecimal getSiteAdjust()
    {
        return siteAdjust;
    }
    public void setFixCost(BigDecimal fixCost)
    {
        this.fixCost = fixCost;
    }

    public BigDecimal getFixCost()
    {
        return fixCost;
    }
    public void setSettleExpense(BigDecimal settleExpense)
    {
        this.settleExpense = settleExpense;
    }

    public BigDecimal getSettleExpense()
    {
        return settleExpense;
    }
    public void setOutExpense(BigDecimal outExpense)
    {
        this.outExpense = outExpense;
    }

    public BigDecimal getOutExpense()
    {
        return outExpense;
    }
    public void setBusinessExpense(BigDecimal businessExpense)
    {
        this.businessExpense = businessExpense;
    }

    public BigDecimal getBusinessExpense()
    {
        return businessExpense;
    }
    public void setBusinessCost(BigDecimal businessCost)
    {
        this.businessCost = businessCost;
    }

    public BigDecimal getBusinessCost()
    {
        return businessCost;
    }
    public void setTaxExpense(BigDecimal taxExpense)
    {
        this.taxExpense = taxExpense;
    }

    public BigDecimal getTaxExpense()
    {
        return taxExpense;
    }
    public void setRentExpense(BigDecimal rentExpense)
    {
        this.rentExpense = rentExpense;
    }

    public BigDecimal getRentExpense()
    {
        return rentExpense;
    }
    public void setOtherExpense(BigDecimal otherExpense)
    {
        this.otherExpense = otherExpense;
    }

    public BigDecimal getOtherExpense()
    {
        return otherExpense;
    }
    public void setOutRemark(String outRemark)
    {
        this.outRemark = outRemark;
    }

    public String getOutRemark()
    {
        return outRemark;
    }
    public void setBusinessRemark(String businessRemark)
    {
        this.businessRemark = businessRemark;
    }

    public String getBusinessRemark()
    {
        return businessRemark;
    }
    public void setTaxRemark(String taxRemark)
    {
        this.taxRemark = taxRemark;
    }

    public String getTaxRemark()
    {
        return taxRemark;
    }
    public void setRentRemark(String rentRemark)
    {
        this.rentRemark = rentRemark;
    }

    public String getRentRemark()
    {
        return rentRemark;
    }
    public void setOtherRemark(String otherRemark)
    {
        this.otherRemark = otherRemark;
    }

    public String getOtherRemark()
    {
        return otherRemark;
    }
    public void setDirectExpense(BigDecimal directExpense)
    {
        this.directExpense = directExpense;
    }

    public BigDecimal getDirectExpense()
    {
        return directExpense;
    }
    public void setTotalBudget(BigDecimal totalBudget)
    {
        this.totalBudget = totalBudget;
    }

    public BigDecimal getTotalBudget()
    {
        return totalBudget;
    }
    public void setCompiler(Long compiler)
    {
        this.compiler = compiler;
    }

    public Long getCompiler()
    {
        return compiler;
    }
    public void setManager(Long manager)
    {
        this.manager = manager;
    }

    public Long getManager()
    {
        return manager;
    }
    public void setCompilerUser(SysUser compilerUser)
    {
        this.compilerUser = compilerUser;
        this.compilerUserName = compilerUser == null ? "" : compilerUser.getNickName();
    }

    public SysUser getCompilerUser()
    {
        return compilerUser;
    }

    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 setAuditor(Long auditor)
    {
        this.auditor = auditor;
    }

    public Long getAuditor()
    {
        return auditor;
    }
    public void setApprover(Long approver)
    {
        this.approver = approver;
    }

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

    public SysUser getDszUser()
    {
        return dszUser;
    }
    public void setCreateTime(Date createTime)
    {
        this.createTime = createTime;
    }

    public Date getCreateTime()
    {
        return createTime;
    }

    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 setManagerComment(String managerComment)
    {
        this.managerComment = managerComment;
    }

    public String getManagerComment()
    {
        return managerComment;
    }
    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 setDocument(String document)
    {
        this.document = document;
    }

    public String getDocument()
    {
        return document;
    }
    public void setLetterExpense(BigDecimal letterExpense)
    {
        this.letterExpense = letterExpense;
    }

    public BigDecimal getLetterExpense()
    {
        return letterExpense;
    }
    public void setWinExpense(BigDecimal winExpense)
    {
        this.winExpense = winExpense;
    }

    public BigDecimal getWinExpense()
    {
        return winExpense;
    }
    public void setTravelExpense(BigDecimal travelExpense)
    {
        this.travelExpense = travelExpense;
    }

    public BigDecimal getTravelExpense()
    {
        return travelExpense;
    }
    public void setSettleAdjust(BigDecimal settleAdjust)
    {
        this.settleAdjust = settleAdjust;
    }

    public BigDecimal getSettleAdjust()
    {
        return settleAdjust;
    }
    public void setLetterRemark(String letterRemark)
    {
        this.letterRemark = letterRemark;
    }

    public String getLetterRemark()
    {
        return letterRemark;
    }
    public void setTravelRemark(String travelRemark)
    {
        this.travelRemark = travelRemark;
    }

    public String getTravelRemark()
    {
        return travelRemark;
    }
    public void setWinRemark(String winRemark)
    {
        this.winRemark = winRemark;
    }

    public String getWinRemark()
    {
        return winRemark;
    }
    public void setOutAdjust(BigDecimal outAdjust)
    {
        this.outAdjust = outAdjust;
    }

    public BigDecimal getOutAdjust()
    {
        return outAdjust;
    }
    public void setTaxAdjust(BigDecimal taxAdjust)
    {
        this.taxAdjust = taxAdjust;
    }

    public BigDecimal getTaxAdjust()
    {
        return taxAdjust;
    }
    public void setLetterAdjust(BigDecimal letterAdjust)
    {
        this.letterAdjust = letterAdjust;
    }

    public BigDecimal getLetterAdjust()
    {
        return letterAdjust;
    }
    public void setWinAdjust(BigDecimal winAdjust)
    {
        this.winAdjust = winAdjust;
    }

    public BigDecimal getWinAdjust()
    {
        return winAdjust;
    }
    public void setTravelAdjust(BigDecimal travelAdjust)
    {
        this.travelAdjust = travelAdjust;
    }

    public BigDecimal getTravelAdjust()
    {
        return travelAdjust;
    }
    public void setStaffAdjust(BigDecimal staffAdjust)
    {
        this.staffAdjust = staffAdjust;
    }

    public BigDecimal getStaffAdjust()
    {
        return staffAdjust;
    }
    public void setCarAdjust(BigDecimal carAdjust)
    {
        this.carAdjust = carAdjust;
    }

    public BigDecimal getCarAdjust()
    {
        return carAdjust;
    }
    public void setDeviceAdjust(BigDecimal deviceAdjust)
    {
        this.deviceAdjust = deviceAdjust;
    }

    public BigDecimal getDeviceAdjust()
    {
        return deviceAdjust;
    }
    public void setBusinessAdjust(BigDecimal businessAdjust)
    {
        this.businessAdjust = businessAdjust;
    }

    public BigDecimal getBusinessAdjust()
    {
        return businessAdjust;
    }
    public void setOtherCost(BigDecimal otherCost)
    {
        this.otherCost = otherCost;
    }

    public BigDecimal getOtherCost()
    {
        return otherCost;
    }
    public void setProcInstId(String procInstId)
    {
        this.procInstId = procInstId;
    }

    public String getProcInstId()
    {
        return procInstId;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
                .append("budgetId", getBudgetId())
                .append("projectId", getProjectId())
                .append("staffCost", getStaffCost())
                .append("carCost", getCarCost())
                .append("deviceCost", getDeviceCost())
                .append("fixCost", getFixCost())
                .append("settleExpense", getSettleExpense())
                .append("outExpense", getOutExpense())
                .append("businessExpense", getBusinessExpense())
                .append("businessCost", getBusinessCost())
                .append("rentExpense", getRentExpense())
                .append("otherExpense", getOtherExpense())
                .append("outRemark", getOutRemark())
                .append("businessRemark", getBusinessRemark())
                .append("taxRemark", getTaxRemark())
                .append("rentRemark", getRentRemark())
                .append("otherRemark", getOtherRemark())
                .append("directExpense", getDirectExpense())
                .append("totalBudget", getTotalBudget())
                .append("compiler", getCompiler())
                .append("auditor", getAuditor())
                .append("createTime", getCreateTime())
                .append("staffAdjust", getStaffAdjust())
                .append("carAdjust", getCarAdjust())
                .append("deviceAdjust", getDeviceAdjust())
                .append("businessAdjust", getBusinessAdjust())
                .toString();
    }
}
