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_performance_staff
 * 
 * @author cmc
 * @date 2025-06-04
 */
public class CmcPerformanceStaff extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 员工绩效id */
    private Integer performanceStaffId;

    /** 绩效审批id */
    private String performanceId;

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

    /** 员工姓名 */
    @Excel(name = "姓名")
    private String nickName;
    private Long userId;
    private String deptName;

    /** 作业类别 */
    @Excel(name = "作业类别")
    private String workType;

    /** 工作内容 */
    @Excel(name = "工作内容")
    private String content;

    /** 比例尺 */
    @Excel(name = "比例尺")
    private String scaleGrade;

    /** 工作量 */
    @Excel(name = "工作量/工天")
    private Double workload;

    /** 单位 */
    @Excel(name = "单位")
    private String unit;

    /** 单价 */
    @Excel(name = "单价")
    private BigDecimal price;

    /** 系数 */
    @Excel(name = "系数")
    private Double coefficient;

    /** 生产绩效 */
    @Excel(name = "生产绩效")
    private BigDecimal producePerformance;

    /** 管理绩效 */
    @Excel(name = "管理绩效")
    private BigDecimal managePerformance;

    /** 月份 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "统计月份", width = 30, dateFormat = "yyyy-MM-dd")
    private Date performanceMonth;

    /** 备注 */
    @Excel(name = "备注")
    private String remark;

    private SysUser user;

    private SysDept dept;

    private CmcProject project;

    public void setPerformanceStaffId(Integer performanceStaffId)
    {
        this.performanceStaffId = performanceStaffId;
    }

    public Integer getPerformanceStaffId()
    {
        return performanceStaffId;
    }
    public void setPerformanceId(String performanceId)
    {
        this.performanceId = performanceId;
    }

    public String getPerformanceId()
    {
        return performanceId;
    }
    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 setUserId(Long userId) 
    {
        this.userId = userId;
    }

    public Long getUserId() 
    {
        return userId;
    }
    public void setNickName(String nickName)
    {
        this.nickName = nickName;
    }

    public String getNickName()
    {
        return nickName;
    }
    public void setUser(SysUser user)
    {
        this.user = user;
        this.nickName = user == null ? "" : user.getNickName();
    }

    public SysUser getUser()
    {
        return user;
    }
    public void setDept(SysDept dept)
    {
        this.dept = dept;
        this.deptName = dept == null ? "" : dept.getDeptName();
    }

    public SysDept getDept()
    {
        return dept;
    }
    public void setWorkType(String workType) 
    {
        this.workType = workType;
    }

    public String getWorkType() 
    {
        return workType;
    }
    public void setContent(String content) 
    {
        this.content = content;
    }

    public String getContent() 
    {
        return content;
    }
    public void setScaleGrade(String scaleGrade) 
    {
        this.scaleGrade = scaleGrade;
    }

    public String getScaleGrade() 
    {
        return scaleGrade;
    }
    public void setWorkload(Double workload) 
    {
        this.workload = workload;
    }

    public Double getWorkload() 
    {
        return workload;
    }
    public void setUnit(String unit) 
    {
        this.unit = unit;
    }

    public String getUnit() 
    {
        return unit;
    }
    public void setCoefficient(Double coefficient) 
    {
        this.coefficient = coefficient;
    }

    public Double getCoefficient() 
    {
        return coefficient;
    }
    public void setProducePerformance(BigDecimal producePerformance)
    {
        this.producePerformance = producePerformance;
    }

    public BigDecimal getProducePerformance()
    {
        return producePerformance;
    }
    public void setManagePerformance(BigDecimal managePerformance)
    {
        this.managePerformance = managePerformance;
    }

    public BigDecimal getManagePerformance()
    {
        return managePerformance;
    }
    public void setPrice(BigDecimal price)
    {
        this.price = price;
    }

    public BigDecimal getPrice()
    {
        return price;
    }
    public void setPerformanceMonth(Date performanceMonth) 
    {
        this.performanceMonth = performanceMonth;
    }

    public Date getPerformanceMonth() 
    {
        return performanceMonth;
    }
    public String getRemark()
    {
        return remark;
    }

    public void setRemark(String remark)
    {
        this.remark = remark;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("performanceStaffId", getPerformanceStaffId())
            .append("performanceId", getPerformanceId())
            .append("projectId", getProjectId())
            .append("userId", getUserId())
            .append("workType", getWorkType())
            .append("content", getContent())
            .append("scaleGrade", getScaleGrade())
            .append("workload", getWorkload())
            .append("unit", getUnit())
            .append("price", getPrice())
            .append("coefficient", getCoefficient())
            .append("producePerformance", getProducePerformance())
            .append("managePerformance", getManagePerformance())
            .append("performanceMonth", getPerformanceMonth())
            .append("remark", getRemark())
            .toString();
    }
}
