package com.bonus.sgzb.app.domain;

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

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

/**
 * 新购验收编号管理对象 
 * 
 * @author bonus
 * @date 2023-12-10
 */
public class PurchaseMacodeInfo 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 typeId;

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

    /** 物资编号 */
    @ApiModelProperty(value = "二维码")
    private String qrCode;

    /** 是否是固定资产编号 */
    @ApiModelProperty(value = "是否是固定资产编号 0,是 1,否")
    private String fixCode;

    /** 编号类型 */
    @ApiModelProperty(value = "编号类型")
    private String codeType;

    /** 状态（0,待入库 1,已入库） */
    @ApiModelProperty(value = "状态（0,待入库 1,已入库）")
    private String status;

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

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

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

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

    /** 采购数量 */
    @ApiModelProperty(value = "采购数量")
    private Long purchaseNum;

    /** 验收数量 */
    @ApiModelProperty(value = "验收数量")
    private BigDecimal checkNum;

    /** 验收数量 */
    @ApiModelProperty(value = "绑定数量")
    private Integer bindNum;

    @ApiModelProperty(value = "关键字筛选")
    private String keyWord;

    @ApiModelProperty(value = "规格编码")
    private String specsCode;

    @ApiModelProperty(value = "类型编码")
    private String typeCode;

    @ApiModelProperty(value = "固定资产编码")
    private String assetsCode;

    /** 管理方式 */
    @ApiModelProperty(value = "管理方式")
    private String manageType;

    @ApiModelProperty(value = "采购时间")
    private String purchaseTime;

    /** 出厂日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(value = "出厂日期")
    private Date productionTime;

    /** 到货日期 */
    @ApiModelProperty(value = "到货日期")
    private String arrivalTime;

    @ApiModelProperty(value = "0,正常 1, 重复数据")
    private int statusFlag;

    public Long getId() {
        return id;
    }

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

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

    public Long getTaskId() 
    {
        return taskId;
    }
    public void setTypeId(Long typeId) 
    {
        this.typeId = typeId;
    }

    public Long getTypeId() 
    {
        return typeId;
    }
    public void setMaCode(String maCode) 
    {
        this.maCode = maCode;
    }

    public String getMaCode() 
    {
        return maCode;
    }
    public void setFixCode(String fixCode) 
    {
        this.fixCode = fixCode;
    }

    public String getFixCode() 
    {
        return fixCode;
    }
    public void setCodeType(String codeType) 
    {
        this.codeType = codeType;
    }

    public String getCodeType() 
    {
        return codeType;
    }
    public void setStatus(String status) 
    {
        this.status = status;
    }

    public String getStatus() 
    {
        return status;
    }
    public void setCompanyId(Long companyId) 
    {
        this.companyId = companyId;
    }

    public Long getCompanyId() 
    {
        return companyId;
    }

    public String getQrCode() {
        return qrCode;
    }

    public void setQrCode(String qrCode) {
        this.qrCode = qrCode;
    }

    public String getSpecificationType() {
        return specificationType;
    }

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

    public String getTypeName() {
        return typeName;
    }

    public void setTypeName(String typeName) {
        this.typeName = typeName;
    }

    public long getMaId() {
        return maId;
    }

    public void setMaId(long maId) {
        this.maId = maId;
    }

    public Long getPurchaseNum() {
        return purchaseNum;
    }

    public void setPurchaseNum(Long purchaseNum) {
        this.purchaseNum = purchaseNum;
    }

    public BigDecimal getCheckNum() {
        return checkNum;
    }

    public void setCheckNum(BigDecimal checkNum) {
        this.checkNum = checkNum;
    }

    public Integer getBindNum() {
        return bindNum;
    }

    public void setBindNum(Integer bindNum) {
        this.bindNum = bindNum;
    }

    public String getKeyWord() {
        return keyWord;
    }

    public void setKeyWord(String keyWord) {
        this.keyWord = keyWord;
    }

    public String getSpecsCode() {
        return specsCode;
    }

    public void setSpecsCode(String specsCode) {
        this.specsCode = specsCode;
    }

    public String getTypeCode() {
        return typeCode;
    }

    public void setTypeCode(String typeCode) {
        this.typeCode = typeCode;
    }

    public String getPurchaseTime() {
        return purchaseTime;
    }

    public void setPurchaseTime(String purchaseTime) {
        this.purchaseTime = purchaseTime;
    }

    public Date getProductionTime() {
        return productionTime;
    }

    public void setProductionTime(Date productionTime) {
        this.productionTime = productionTime;
    }

    public String getAssetsCode() {
        return assetsCode;
    }

    public void setAssetsCode(String assetsCode) {
        this.assetsCode = assetsCode;
    }

    public String getArrivalTime() {
        return arrivalTime;
    }

    public void setArrivalTime(String arrivalTime) {
        this.arrivalTime = arrivalTime;
    }

    public int getStatusFlag() {
        return statusFlag;
    }

    public void setStatusFlag(int statusFlag) {
        this.statusFlag = statusFlag;
    }

    public String getManageType() {
        return manageType;
    }

    public void setManageType(String manageType) {
        this.manageType = manageType;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
            .append("taskId", getTaskId())
            .append("typeId", getTypeId())
            .append("maCode", getMaCode())
            .append("fixCode", getFixCode())
            .append("codeType", getCodeType())
            .append("status", getStatus())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("remark", getRemark())
            .append("companyId", getCompanyId())
            .toString();
    }
}
