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_declare
 * 
 * @author cmc
 * @date 2024-08-14
 */
public class CmcDeclare extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 填报id */
    private String formId;

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

    /** 用户id */
    @Excel(name = "填报人")
    private String userName;
    private Long userId;
    private Long deptId;

    /** 工作类别（内业、外业等） */
    @Excel(name = "工作类别")
    private String workType;

    /** 工作项目 */
    @Excel(name = "工作项目")
    private String workItem;

    /** 工作内容（每日工作日志） */
    @Excel(name = "工作内容")
    private String workContent;

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

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

    /** 工天 */
    @Excel(name = "工天")
    private String workLoad;

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

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

    /** 一审状态（0-未审核，1已审核） */
    @Excel(name = "一审状态", readConverterExp = "0=未审核,1=已审核")
    private String checkStatus;

    /** 二审状态（0-未审核，1已审核） */
    @Excel(name = "二审状态", readConverterExp = "0=未审核,1=已审核")
    private String auditStatus;

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

    /** 确认状态 */
    @Excel(name = "确认状态", readConverterExp = "0=未确认,1=已确认")
    private String confirmStatus;

    private SysUser user;

    private CmcProject project;

    public void setFormId(String formId) 
    {
        this.formId = formId;
    }

    public String getFormId() 
    {
        return formId;
    }
    public void setProjectId(String projectId) 
    {
        this.projectId = projectId;
    }

    public String getProjectId() 
    {
        return projectId;
    }
    public void setProjectLeader(Long projectLeader)
    {
        this.projectLeader = projectLeader;
    }

    public Long getProjectLeader()
    {
        return projectLeader;
    }
    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 setDeptId(Long deptId)
    {
        this.deptId = deptId;
    }

    public Long getDeptId()
    {
        return deptId;
    }
    public void setUser(SysUser user)
    {
        this.user = user;
        this.userName = user == null ? "" : user.getNickName();
    }

    public SysUser getUser()
    {
        return user;
    }
    public void setWorkType(String workType) 
    {
        this.workType = workType;
    }

    public String getWorkType() 
    {
        return workType;
    }
    public void setWorkItem(String workItem) 
    {
        this.workItem = workItem;
    }

    public String getWorkItem() 
    {
        return workItem;
    }
    public void setWorkContent(String workContent) 
    {
        this.workContent = workContent;
    }

    public String getWorkContent() 
    {
        return workContent;
    }
    public void setBeginDate(Date beginDate)
    {
        this.beginDate = beginDate;
    }

    public Date getBeginDate()
    {
        return beginDate;
    }
    public void setEndDate(Date endDate)
    {
        this.endDate = endDate;
    }

    public Date getEndDate()
    {
        return endDate;
    }
    public void setWorkLoad(String workLoad) 
    {
        this.workLoad = workLoad;
    }

    public String getWorkLoad() 
    {
        return workLoad;
    }
    public void setPrice(BigDecimal price) 
    {
        this.price = price;
    }

    public BigDecimal getPrice() 
    {
        return price;
    }
    public void setCoefficient(String coefficient) 
    {
        this.coefficient = coefficient;
    }

    public String getCoefficient() 
    {
        return coefficient;
    }
    public void setCheckStatus(String checkStatus) 
    {
        this.checkStatus = checkStatus;
    }

    public String getCheckStatus() 
    {
        return checkStatus;
    }
    public void setAuditStatus(String auditStatus) 
    {
        this.auditStatus = auditStatus;
    }

    public String getAuditStatus() 
    {
        return auditStatus;
    }
    public void setSubmitTime(Date submitTime) 
    {
        this.submitTime = submitTime;
    }

    public Date getSubmitTime() 
    {
        return submitTime;
    }
    public void setConfirmStatus(String confirmStatus) 
    {
        this.confirmStatus = confirmStatus;
    }

    public String getConfirmStatus() 
    {
        return confirmStatus;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("formId", getFormId())
            .append("projectId", getProjectId())
            .append("userId", getUserId())
            .append("workType", getWorkType())
            .append("workItem", getWorkItem())
            .append("workContent", getWorkContent())
            .append("workLoad", getWorkLoad())
            .append("price", getPrice())
            .append("coefficient", getCoefficient())
            .append("checkStatus", getCheckStatus())
            .append("auditStatus", getAuditStatus())
            .append("submitTime", getSubmitTime())
            .append("confirmStatus", getConfirmStatus())
            .toString();
    }
}
