package com.bonus.sgzb.material.domain;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import com.bonus.sgzb.common.core.web.domain.BaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.bonus.sgzb.common.core.annotation.Excel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

/**
 * 报废任务详细scrap_apply_details对象 scrap_apply_details
 * 
 * @author bonus
 * @date 2023-12-15
 */
@Data
public class ScrapApplyDetails extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键id */
    @ApiModelProperty(value = "主键id")
    private Long id;

    /** 任务ID */
    @ApiModelProperty(value = "任务ID")
    private Long taskId;

    /** 上级ID */
    @ApiModelProperty(value = "上级ID")
    private Long parentId;

    /** 机具ID */
    @ApiModelProperty(value = "机具ID")
    private Long maId;

    /** 规格ID */
    @ApiModelProperty(value = "规格ID")
    private Long typeId;

    /** 报废数量 */
    @ApiModelProperty(value = "报废数量")
    private BigDecimal scrapNum;

    /** (1退料2,维修审核，3盘点) */
    @ApiModelProperty(value = "(1退料2,维修审核，3盘点)")
    private String scrapSource;

    /** （0自然，1人为） */
    @ApiModelProperty(value = "0=自然，1人为")
    private String scrapType;

    /** 状态（0进行中，1已审核，2驳回） */
    @ApiModelProperty(value = "状态0=进行中，1已审核，2驳回")
    private String status;

    /** 审核人 */
    @ApiModelProperty(value = "审核人")
    private Long auditBy;

    /** 审核时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(value = "审核时间")
    private Date auditTime;

    /** 审核备注 */
    @ApiModelProperty(value = "审核备注")
    private String auditRemark;

    /** 文件路径 */
    @ApiModelProperty(value = "文件路径")
    private String fileUrl;

    /** 数据所属组织 */
    @ApiModelProperty(value = "数据所属组织")
    private Long companyId;

    /** 文件名称 */
    @ApiModelProperty(value = "文件名称")
    private String fileName;

    @ApiModelProperty(value = "规格型号")
    private String specificationType;

    @ApiModelProperty(value = "机具类型名称")
    private String machineTypeName;

    @ApiModelProperty(value = "机具编号")
    private String maCode;
    private String buyPrice;

    /**
     * 传入参数
     */
    @ApiModelProperty(value = "单位id")
    private Integer backUnit;
    @ApiModelProperty(value = "工程id")
    private Integer backPro;
    @ApiModelProperty(value = "工机具类型id")
    private Integer type;
    @ApiModelProperty(value = "维修单号")
    private String backCode;

    @ApiModelProperty(value = "数据状态")
    private Integer repairStatus;

    private String keyword;
    private String typeName;

    /** 任务ID集合 --导出时可以选择导出*/
    @ApiModelProperty(value = "任务ID集合")
    private String taskIdList;


    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setTaskId(Long taskId) 
    {
        this.taskId = taskId;
    }

    public Long getTaskId() 
    {
        return taskId;
    }
    public void setParentId(Long parentId) 
    {
        this.parentId = parentId;
    }

    public Long getParentId() 
    {
        return parentId;
    }
    public void setMaId(Long maId) 
    {
        this.maId = maId;
    }

    public Long getMaId() 
    {
        return maId;
    }
    public void setTypeId(Long typeId) 
    {
        this.typeId = typeId;
    }

    public Long getTypeId() 
    {
        return typeId;
    }
    public void setScrapNum(BigDecimal scrapNum) 
    {
        this.scrapNum = scrapNum;
    }

    public BigDecimal getScrapNum() 
    {
        return scrapNum;
    }
    public void setScrapSource(String scrapSource) 
    {
        this.scrapSource = scrapSource;
    }

    public String getScrapSource() 
    {
        return scrapSource;
    }
    public void setScrapType(String scrapType) 
    {
        this.scrapType = scrapType;
    }

    public String getScrapType() 
    {
        return scrapType;
    }
    public void setStatus(String status) 
    {
        this.status = status;
    }

    public String getStatus() 
    {
        return status;
    }
    public void setAuditBy(Long auditBy) 
    {
        this.auditBy = auditBy;
    }

    public Long getAuditBy() 
    {
        return auditBy;
    }
    public void setAuditTime(Date auditTime) 
    {
        this.auditTime = auditTime;
    }

    public Date getAuditTime() 
    {
        return auditTime;
    }
    public void setAuditRemark(String auditRemark) 
    {
        this.auditRemark = auditRemark;
    }

    public String getAuditRemark() 
    {
        return auditRemark;
    }
    public void setFileUrl(String fileUrl) 
    {
        this.fileUrl = fileUrl;
    }

    public String getFileUrl() 
    {
        return fileUrl;
    }
    public void setCompanyId(Long companyId) 
    {
        this.companyId = companyId;
    }

    public Long getCompanyId() 
    {
        return companyId;
    }
    public void setFileName(String fileName) 
    {
        this.fileName = fileName;
    }

    public String getFileName() 
    {
        return fileName;
    }

    public String getSpecificationType() {
        return specificationType;
    }

    public void setSpecificationType(String specificationType) {
        this.specificationType = specificationType;
    }

    public String getMachineTypeName() {
        return machineTypeName;
    }

    public void setMachineTypeName(String machineTypeName) {
        this.machineTypeName = machineTypeName;
    }

    public String getMaCode() {
        return maCode;
    }

    public void setMaCode(String maCode) {
        this.maCode = maCode;
    }

    public Integer getBackUnit() {
        return backUnit;
    }

    public void setBackUnit(Integer backUnit) {
        this.backUnit = backUnit;
    }

    public Integer getBackPro() {
        return backPro;
    }

    public void setBackPro(Integer backPro) {
        this.backPro = backPro;
    }

    public Integer getType() {
        return type;
    }

    public void setType(Integer type) {
        this.type = type;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("taskId", getTaskId())
            .append("parentId", getParentId())
            .append("maId", getMaId())
            .append("typeId", getTypeId())
            .append("scrapNum", getScrapNum())
            .append("scrapSource", getScrapSource())
            .append("scrapType", getScrapType())
            .append("status", getStatus())
            .append("auditBy", getAuditBy())
            .append("auditTime", getAuditTime())
            .append("auditRemark", getAuditRemark())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("remark", getRemark())
            .append("fileUrl", getFileUrl())
            .append("companyId", getCompanyId())
            .append("fileName", getFileName())
            .toString();
    }
}
