package com.bonus.material.purchase.domain;

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

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

/**
 * 新购验收任务详细对象 purchase_check_details
 * @author xsheng
 */
@EqualsAndHashCode(callSuper = false)
@Data
@ToString
@Accessors(chain = true)
public class PurchaseCheckDetails 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;

    /** 验收人信息 */
    @ApiModelProperty(value = "验收人信息")
    private List<ElcSignatureInfo> infoList;

    private String signUrl;

    private String signType;

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

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

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

    @ApiModelProperty(value = "物资单位名称")
    @Excel(name = "单位", sort = 3)
    private String unitName;

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

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

    /** 采购单价(不含税) */
    @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 = "1=待通知,2=待验收,3=待绑定,4=待入库,12=验收被驳回,13=绑定被驳回,14=入库被驳回,19=已入库,21=入库进行中,22=入库已完成", sort = 11)
    @ApiModelProperty(value = "状态，参考数据字典purchase_task_status键值")
    private Integer status;

    /** 出厂日期 */
    @ApiModelProperty(value = "出厂日期")
    @Excel(name = "出厂日期", width = 30, sort = 9)
    private String productionTime;

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

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

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

    /** 是否入库 */
//    @Excel(name = "是否入库", readConverterExp = "0=否,1=是")
    @ApiModelProperty(value = "是否入库")
    private String inputStatus;

    /** 入库时间 */
    @ApiModelProperty(value = "入库时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
//    @Excel(name = "入库时间", width = 30, dateFormat = "yyyy-MM-dd", sort = 9)
    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 是) */
    @Excel(name = "是否固定资产", readConverterExp = "0=否,1=是",sort = 8)
    @ApiModelProperty(value = "是否是固定资产编号(0 否，1 是)")
    private String fixCode;

    /** 管理方式(0编号 1计数) */
//    @Excel(name = "管理方式", readConverterExp = "0=编号,1=计数", sort = 12)
    @ApiModelProperty(value = "管理方式(0编号 1计数)")
    private Integer manageType;

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

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

    /** 租赁价格 */
    @Excel(name = "租赁价(元/天)",sort = 7)
    @ApiModelProperty(value = "租赁价(元/天)")
    private BigDecimal rentPrice;

    @ApiModelProperty(value = "文件实收份数")
    private Integer fileReceiveNum;
}
