package com.bonus.sgzb.material.domain;

import com.bonus.sgzb.common.core.annotation.Excel;
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 org.springframework.format.annotation.DateTimeFormat;

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

/**
* @description 新购配件任务详细  purchase_part_details对象
* @author hay
* @date   2024/1/16 13:54
*/
public class PurchasePartDetails extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键id */
    private Long id;

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

    /** 规格id */
    @ApiModelProperty(value = "规格id")
    private Long partId;

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

    /** 规格id */
    @ApiModelProperty(value = "类型id")
    private Long modelId;

    /** 规格id */
    @ApiModelProperty(value = "类型id")
    private Long deviceTypeId;

    @ApiModelProperty(value = "采购单号")
    @Excel(name = "采购单号")
    private String code;

    /** 采购日期 */
    @ApiModelProperty(value = "采购日期")
    @Excel(name = "采购日期")
    private String purchaseTime;

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

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

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

    /** 采购员 */
    @ApiModelProperty(value = "采购员")
    @Excel(name = "采购员")
    private String purchaserName;

    /** 创建者 */
    @Excel(name = "提交入库人员")
    private String createBy;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @Excel(name = "提交入库时间" , dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;


    /** 采购单价 */
    @ApiModelProperty(value = "采购单价")
    private BigDecimal purchasePrice;

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

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

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

    /** 验收结论 */
    @ApiModelProperty(value = "验收结论")
    private String checkResult;

    /** 供应商id */
    @ApiModelProperty(value = "供应商id")
    private Long supplierId;

    /** 供应商id */
    @ApiModelProperty(value = "供应商名称")
    private String supplier;

    /** 验收状态 0-待验收，1-已验收 , 2-验收不通过， 3-已入库 */
    @ApiModelProperty(value = "验收状态")
    private Integer status;

    /** 状态结果 */
    @ApiModelProperty(value = "状态结果")
    @Excel(name = "状态")
    private String statusResult;

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

    /** 入库数量 */
    @ApiModelProperty(value = "入库数量")
    private Integer inputNum;

    /** 入库时间 */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ApiModelProperty(value = "入库时间")
    private String inputTime;

    /** 入库人 */
    @ApiModelProperty(value = "入库人")
    private String inputBy;

    /** 验收图片 */
    @ApiModelProperty(value = "验收图片")
    private String checkUrlName;

    /** 验收图片名称 */
    @ApiModelProperty(value = "验收图片名称")
    private String checkUrl;

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

    /** 验收附件 */
    @ApiModelProperty(value = "验收附件")
    private String fileUrl;

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

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

    @ApiModelProperty(value = "单位")
    private String unitName;

    @ApiModelProperty(value = "管理方式(0编号 1计数)")
    private String manageType;

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

    /**
     * 提交入库时间
     */
    private String submitStorageTime;

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

    public Long getTaskId() 
    {
        return taskId;
    }

    public Long getPartId() {
        return partId;
    }

    public void setPartId(Long partId) {
        this.partId = partId;
    }

    public void setPurchasePrice(BigDecimal purchasePrice)
    {
        this.purchasePrice = purchasePrice;
    }

    public BigDecimal getPurchasePrice()
    {
        return purchasePrice;
    }
    public void setPurchaseNum(Integer purchaseNum)
    {
        this.purchaseNum = purchaseNum;
    }

    public Integer getPurchaseNum()
    {
        return purchaseNum;
    }
    public void setSupplierId(Long supplierId) 
    {
        this.supplierId = supplierId;
    }

    public Long getSupplierId() 
    {
        return supplierId;
    }
    public void setProductionTime(Date productionTime) 
    {
        this.productionTime = productionTime;
    }

    public Date getProductionTime() 
    {
        return productionTime;
    }
    public void setCompanyId(Long companyId) 
    {
        this.companyId = companyId;
    }

    public Long getCompanyId() 
    {
        return companyId;
    }

    public Long getId() {
        return id;
    }

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

    public String getSpecificationType() {
        return specificationType;
    }

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

    public String getSupplier() {
        return supplier;
    }

    public void setSupplier(String supplier) {
        this.supplier = supplier;
    }

    public Integer getCheckNum() {
        return checkNum;
    }

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

    public String getCheckResult() {
        return checkResult;
    }

    public void setCheckResult(String checkResult) {
        this.checkResult = checkResult;
    }

    public String getCheckUrlName() {
        return checkUrlName;
    }

    public void setCheckUrlName(String checkUrlName) {
        this.checkUrlName = checkUrlName;
    }

    public String getCheckUrl() {
        return checkUrl;
    }

    public void setCheckUrl(String checkUrl) {
        this.checkUrl = checkUrl;
    }

    public String getFileName() {
        return fileName;
    }

    public void setFileName(String fileName) {
        this.fileName = fileName;
    }

    public String getFileUrl() {
        return fileUrl;
    }

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

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public String getStatusResult() {
        return statusResult;
    }

    public void setStatusResult(String statusResult) {
        this.statusResult = statusResult;
    }

    public String getMachineTypeName() {
        return machineTypeName;
    }

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

    public Integer getInputNum() {
        return inputNum;
    }

    public void setInputNum(Integer inputNum) {
        this.inputNum = inputNum;
    }

    public String getManageType() {
        return manageType;
    }

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

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public String getKeyWord() {
        return keyWord;
    }

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

    public Integer getBindNum() {
        return bindNum;
    }

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

    public String getTypeName() {
        return typeName;
    }

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

    public String getUnitName() {
        return unitName;
    }

    public void setUnitName(String unitName) {
        this.unitName = unitName;
    }

    public Long getModelId() {
        return modelId;
    }

    public void setModelId(Long modelId) {
        this.modelId = modelId;
    }

    public String getInputTime() {
        return inputTime;
    }

    public void setInputTime(String inputTime) {
        this.inputTime = inputTime;
    }

    public String getInputBy() {
        return inputBy;
    }

    public void setInputBy(String inputBy) {
        this.inputBy = inputBy;
    }

    public String getPurchaseTime() {
        return purchaseTime;
    }

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

    public String getArrivalTime() {
        return arrivalTime;
    }

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

    public String getPurchaserName() {
        return purchaserName;
    }

    public void setPurchaserName(String purchaserName) {
        this.purchaserName = purchaserName;
    }

    public Long getTypeId() {
        return typeId;
    }

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

    public Long getDeviceTypeId() {
        return deviceTypeId;
    }

    public void setDeviceTypeId(Long deviceTypeId) {
        this.deviceTypeId = deviceTypeId;
    }

    @Override
    public String getCreateBy() {
        return createBy;
    }

    @Override
    public void setCreateBy(String createBy) {
        this.createBy = createBy;
    }

    @Override
    public Date getCreateTime() {
        return createTime;
    }

    @Override
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public String getSubmitStorageTime() {
        return submitStorageTime;
    }

    public void setSubmitStorageTime(String submitStorageTime) {
        this.submitStorageTime = submitStorageTime;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
            .append("taskId", getTaskId())
            .append("partId", getPartId())
            .append("purchasePrice", getPurchasePrice())
            .append("purchaseNum", getPurchaseNum())
            .append("supplierId", getSupplierId())
            .append("createBy", getCreateBy())
            .append("productionTime", getProductionTime())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("remark", getRemark())
            .append("companyId", getCompanyId())
            .toString();
    }
}
