package com.bonus.material.part.domain;

import com.bonus.common.core.annotation.Excel;
import com.bonus.common.core.web.domain.BaseEntity;
import com.bonus.common.biz.domain.BmFileInfo;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import lombok.experimental.Accessors;

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

/**
 * 新购验收任务详细对象 purchase_check_details
 * @author xsheng
 */
@EqualsAndHashCode(callSuper = false)
@Data
@ToString
@Accessors(chain = true)
public class PartTypeCheckDetails extends BaseEntity {

    private static final long serialVersionUID = 1L;

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

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

    @ApiModelProperty(value = "验收人ID")
    private Long checkUser;

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

    @Excel(name = "规格名称", sort = 3)
    @ApiModelProperty(value = "规格名称")
    private String partName;

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

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

    @ApiModelProperty(value = "数值")
    private String unitValue;

    @Excel(name = "配件名称", sort = 2)
    @ApiModelProperty(value = "物资名称--规格parent类型")
    private String maTypeName;

    @Excel(name = "配件类型", sort = 1)
    @ApiModelProperty(value = "配件类型--规格parent类型")
    private String maName;

    /** 采购单价(不含税) */
    @Excel(name = "购置单价(不含税)", sort = 6)
    @ApiModelProperty(value = "采购单价(不含税)")
    private BigDecimal purchasePrice;

    /** 采购单价(含税) */
    @Excel(name = "购置单价(含税)", sort = 5)
    @ApiModelProperty(value = "采购单价(含税)")
    private BigDecimal purchaseTaxPrice;

    /** 采购数量 */
    @Excel(name = "采购数量", sort = 4)
    @ApiModelProperty(value = "采购数量")
    private BigDecimal purchaseNum;

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

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

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

    /** 质保材料 */
    @ApiModelProperty(value = "质保材料")
    private String warnDocuments;

    /** 原因 */
    @ApiModelProperty(value = "原因")
    private String reason;

    /** 物资厂家id */
    //@Excel(name = "物资厂家id")
    @ApiModelProperty(value = "物资厂家id")
    private Long supplierId;

    /** 物资厂家名称 */
    @ApiModelProperty(value = "物资厂家名称")
    //@Excel(name = "物资厂家名称")
    private String supplierName;

    /** 状态，参考数据字典purchase_task_status键值 */
    @Excel(name = "状态", readConverterExp = "0=待验收,1=已入库,2=已驳回", sort = 8)
    @ApiModelProperty(value = "状态，参考数据字典purchase_task_status键值")
    private Integer status;

    /** 出厂日期 */
    @ApiModelProperty(value = "出厂日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "出厂日期", width = 30, dateFormat = "yyyy-MM-dd", sort = 7)
    private Date productionTime;

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

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

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

    /** 是否入库 */
    @ApiModelProperty(value = "是否入库")
    private String inputStatus;

    /** 入库时间 */
    @ApiModelProperty(value = "入库时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date inputTime;

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

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

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

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

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

    /** 验收附件列表 */
    //@Excel(name = "验收附件列表")
    @ApiModelProperty(value = "验收附件列表")
    private List<BmFileInfo> bmFileInfos;

    /** 是否有附件 */
    @ApiModelProperty(value = "是否有附件 0 是， 1 否")
    private Integer isExitFile;

    /** 租赁价格 */
    @ApiModelProperty(value = "租赁价格")
    private BigDecimal rentPrice;
}
