package cn.ezhizao.project.business.domain;

import java.util.Date;
import java.util.List;

import cn.ezhizao.framework.aspectj.lang.annotation.Excel;
import cn.ezhizao.framework.web.domain.BaseEntity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import io.swagger.annotations.ApiModelProperty;

/**
 * 合格证对象 biz_certificate
 *
 * @author ezhizao
 * @date 2024-09-02
 */
@Data
@TableName(value = "biz_certificate")
public class BizCertificate extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 产品名称 */
    @ApiModelProperty(value = "${comment}")
    private Long productId;

    /** 二维码信息 */
    @Excel(name = "二维码信息")
    @ApiModelProperty(value = "二维码信息")
    private String qrcode;

    /** 二维码地址 */
    @Excel(name = "二维码地址")
    @ApiModelProperty(value = "二维码地址")
    private String qrcodeUrl;

    @TableField(exist = false)
    private String qrcodeUrl2Src;

    /** 条形码地址 */
    @Excel(name = "条形码地址")
    @ApiModelProperty(value = "条形码地址")
    private String barcodeUrl;

    @TableField(exist = false)
    private String barcodeUrl2Src;

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

    /** 客户id */
    @ApiModelProperty(value = "客户id")
    private Long companyId;

    /** 客户名称 */
    @Excel(name = "客户名称")
    @ApiModelProperty(value = "客户名称")
    private String customerName;
    private String companyName;

    /** 批次id */
    @ApiModelProperty(value = "客户名称")
    private Long lotId;

    /** 料号 */
    @Excel(name = "料号")
    @ApiModelProperty(value = "料号")
    private String productCode;

    @Excel(name = "物料号")
    @ApiModelProperty(value = "物料号")
    private String materialNum;

    /** 规格,不允许出现下划线_ */
    @Excel(name = "规格,不允许出现下划线_")
    @ApiModelProperty(value = "规格,不允许出现下划线_")
    private String specification;

    /** 图号,不允许出现下划线_ */
    @Excel(name = "图号,不允许出现下划线_")
    @ApiModelProperty(value = "图号,不允许出现下划线_")
    private String drawingNumber;

    /** =客户简称_图号_规格 */
    @Excel(name = "=客户简称_图号_规格")
    @ApiModelProperty(value = "=客户简称_图号_规格")
    private String productDescription;

    /** 初次打印日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "初次打印日期", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "初次打印日期")
    private Date printDate;

    /** 批号 */
    @Excel(name = "批号")
    @ApiModelProperty(value = "批号")
    private String lotCode;

    /** 打印次数 */
    @Excel(name = "打印次数")
    @ApiModelProperty(value = "打印次数")
    private Long printNumber;

    /** 租户id */
    @ApiModelProperty(value = "打印次数")
    private Long tenantId;

    /** 停用(0:否；1是） */
    @Excel(name = "停用(0:否；1是）")
    @ApiModelProperty(value = "停用(0:否；1是）")
    private Integer isDeactivate;

    /** 合格证类型 表示合格证模板 */
    @Excel(name = "合格证类型 表示合格证模板")
    @ApiModelProperty(value = "合格证类型 表示合格证模板")
    private String type;

    /** 工段 */
    @ApiModelProperty(value = "合格证类型 表示合格证模板")
    private Long deptId;

    /** 包装线外键 */
    @ApiModelProperty(value = "合格证类型 表示合格证模板")
    private Long packageResourceGroupId;

    /** 年 */
    @Excel(name = "年")
    @ApiModelProperty(value = "年")
    private String year;

    /** 标签数量 */
    @Excel(name = "标签数量")
    @ApiModelProperty(value = "标签数量")
    private Integer labelNumber;

    /** 包装数量 */
    @Excel(name = "包装数量")
    @ApiModelProperty(value = "包装数量")
    private Integer packageNumber;

    /** 打印份数 */
    @Excel(name = "打印份数")
    @ApiModelProperty(value = "打印份数")
    private Integer printPages;

    /** 包装id */
    @ApiModelProperty(value = "打印份数")
    private Long packageId;

    /** 包装箱编码 */
    @Excel(name = "包装箱编码")
    @ApiModelProperty(value = "包装箱编码")
    private String packageCode;

    /** 包装箱号 */
    @Excel(name = "包装箱号")
    @ApiModelProperty(value = "包装箱号")
    private String packageNo;

    /** 包装箱尺寸 */
    @Excel(name = "包装箱尺寸")
    @ApiModelProperty(value = "包装箱尺寸")
    private String packageStandard;

    @ApiModelProperty("包装形式码")
    private String packageTypeCode;

    @TableField(exist = false)
    private String logoUrl;

    private Long dayworkId;
    private Long productionPlanDetailId;
    private String deptName;
    private String packageLineNo;
    private String packageResourceGroupName;
    private String deptNo;
    private String factoryName;
    private Date generateTime;
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date printTime;
    @TableField(exist = false)
    private List<BizCertificateLot> lots;
    /** 开始序号 */
    @Excel(name = "开始序号")
    @ApiModelProperty(value = "开始序号")
    private String startCode;

    /** 结束序号 */
    @Excel(name = "结束序号")
    @ApiModelProperty(value = "结束序号")
    private String endCode;

    public BizCertificate() {
    }

    public BizCertificate(BizCertificate copy) {
        this.productId = copy.getProductId();
        this.qrcode = copy.getQrcode();
        this.qrcodeUrl = copy.getQrcodeUrl();
        this.qrcodeUrl2Src = copy.getQrcodeUrl2Src();
        this.barcodeUrl = copy.getBarcodeUrl();
        this.barcodeUrl2Src = copy.getBarcodeUrl2Src();
        this.number = copy.getNumber();
        this.companyId = copy.getCompanyId();
        this.customerName = copy.getCustomerName();
        this.lotId = copy.getLotId();
        this.productCode = copy.getProductCode();
        this.specification = copy.getSpecification();
        this.drawingNumber = copy.getDrawingNumber();
        this.productDescription = copy.getProductDescription();
        this.printDate = copy.getPrintDate();
        this.lotCode = copy.getLotCode();
        this.printNumber = copy.getPrintNumber();
        this.tenantId = copy.getTenantId();
        this.type = copy.getType();
        this.deptId = copy.getDeptId();
        this.packageResourceGroupId = copy.getPackageResourceGroupId();
        this.year = copy.getYear();
        this.labelNumber = copy.getLabelNumber();
        this.packageNumber = copy.getPackageNumber();
        this.packageId = copy.getPackageId();
        this.packageCode = copy.getPackageCode();
        this.packageNo = copy.getPackageNo();
        this.packageStandard = copy.getPackageStandard();
        this.packageTypeCode = copy.getPackageTypeCode();
        this.logoUrl = copy.getLogoUrl();
        this.dayworkId = copy.getDayworkId();
        this.productionPlanDetailId = copy.getProductionPlanDetailId();
        this.deptName = copy.getDeptName();
        this.packageLineNo = copy.getPackageLineNo();
        this.packageResourceGroupName = copy.getPackageResourceGroupName();
        this.deptNo = copy.getDeptNo();
        this.factoryName = copy.getFactoryName();
    }
}
