package com.scm.contract.model.print;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.set.direwolf.core.mybatis.BaseEntity;
import lombok.Data;

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

/**
 * @author zuo
 * @date 2024/7/31 12:14
 */

@Data
public class PrintManagement extends BaseEntity<PrintManagement, String> {
    /**
     * id
     */
    @TableId
    private String id;

    /**
     * labelApplicationId
     */
    @TableField(value = "`labelApplicationId`")
    private String labelApplicationId;

    /**
     * 标签类型id（对应字典表）
     */
    @TableField(value = "`tagTypeId`")
    private String tagTypeId;

    /**
     * 标签类型名称
     */
    @TableField(exist = false)
    private String tagTypeName;

    /**
     * 物料id
     */
    @TableField(value = "`materielId`")
    private String materielId;

    /**
     * 需求数量
     */
    @TableField(value = "`number`")
    private Long number;

    /**
     * 物料编码
     */
    @TableField(value = "`materielCode`")
    private String materielCode;

    /**
     * 物料描述
     */
    @TableField(value = "`materielDescribe`")
    private String materielDescribe;

    /**
     * 商品编码
     */
    @TableField(value = "`goodsCode`")
    private String goodsCode;


    /**
     * 商品名称
     */
    @TableField(value = "`goodsName`")
    private String goodsName;

    /**
     * 最小包装单元數量
     */
    @TableField(value = "`minimumPackingNumber`")
    private Integer minimumPackingNumber;

    /**
     * 最小包装单元单位
     */
    @TableField(value = "`minimumPackingUnit`")
    private String minimumPackingUnit;


    /**
     * 是否打印0未打印 1打印中 2打印完成
     */
    @TableField(value = "`isPrint`")
    private Integer isPrint;

    /**
     * 打印狀態，答应机返回的状态id
     */
    @TableField(value = "`printStatus`")
    private Integer printStatus;

    /**
     * 是否是重打印（false为detail 数据 true为reprint_code数据)
     */
    @TableField(exist = false)
    private Boolean isReprint;

    /**
     * 打印狀態，答应机返回的状态名称
     */
    @TableField(exist = false)
    private String printStatusName;

    /**
     * 供应商名称
     */
    @TableField(exist = false)
    private String providerName;

    /**
     * 流水范围
     */
    @TableField(exist = false)
    private List<String> serialNumberRange;

    /**
     * 打印时间
     */
    @TableField(exist = false)
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy/MM/dd HH:mm:ss")
    private Date printTime;

    public PrintManagement() {
    }
}
