package com.jwipc.order.dto;

import com.jwipc.aggregation.annotation.RelationAggregationField;
import com.jwipc.order.logic.LabelPrintSettingLogic;
import lombok.Data;

import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * <p>
 * 标签内容
 * </p>
 *
 * @author zhangjie
 * @since 2024-03-07
 */
@Data
public class LabelBarBaseDTO implements Serializable {


    @Serial
    private static final long serialVersionUID = -2188012097200210198L;
    /**
     * 主键
     */
    private Long id;

    /**
     * 配置主键
     */
    private Long settingId;
    @RelationAggregationField(
            masterIdField = "settingId",
            relationIdField = "id",
            relationNameField = "printerType",
            relationClientClass = LabelPrintSettingLogic.class,
            relationMethod = "getLabelPrintSettingByIds"
    )
    private Integer printerType;
    /**
     * 导入的批次号
     */
    private String importCode;
    /**
     * 内外层级关系
     */
    private Long parentId;

    /**
     * 外-B、中-M、内-P
     */
    private String boxType;

    /**
     * 物料代码
     */
    private String materialCode;

    /**
     * 数量
     */
    private BigDecimal quantity;

    /**
     * 单位
     */
    private String unit;

    /**
     * 供应商代码
     */
    private String supplierCode;

    /**
     * 生产日期
     */
    private String dc;

    /**
     * 交易代码
     */
    private String tradingCode;

    /**
     * 订单号
     */
    private String orderNumber;

    /**
     * 发票号
     */
    private String invoiceNumber;

    /**
     * 条码流水号
     */
    private String barcodeSerialNumber;

    /**
     * 外箱条码流水号
     */
    private String outsideBarcodeSerialNumber;

    /**
     * 批次
     */
    private String lot;

    /**
     * 制造商
     */
    private String manufacturer;

    /**
     * MPN
     */
    private String mpn;

    /**
     * 版本
     */
    private String version;

    /**
     * MSL（湿敏等级）
     */
    private String msl;

    /**
     * 物料类型
     */
    private String materialType;

    /**
     * 条码层级
     */
    private String barcodeLevel;

    /**
     * 条码内容
     */
    private String barcodeContent;

    /**
     * 状态
     */
    private Integer status;

    /**
     * 外箱条码内容
     */
    private String outerBoxBarcodeContent;

    /**
     * 内箱张数
     */
    private Integer innerBoxQuantity;

    /**
     * 供应商名称
     */
    private String supplierName;

    /**
     * 打印人员
     */
    private String printer;

    /**
     * 打印时间
     */
    private LocalDateTime printTime;

    /**
     * 打印次数
     */
    private Integer printSize;
    /**
     * 储位
     */
    private String defaultStock;
    private String factoryCode;
    private String roHS = "RoHS";

    /**
     * 物料产地
     */
    private String origin;
}
