package hw.tagApi.service.domain;

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

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.EqualsAndHashCode;
import hw.tagApi.common.annotation.Excel;
import hw.tagApi.common.core.domain.BaseEntity;
import hw.tagApi.common.annotation.Excel.Type;
import lombok.Data;
import org.apache.poi.ss.usermodel.HorizontalAlignment;

/**
 * 标签记录对象 hw_tag_record
 *
 * @author Yinq
 * @date 2025-04-15
 */
@EqualsAndHashCode(callSuper = true)
@Data
public class HwTagRecord extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 主键标识,RID
     */
    @Excel(name = "RID", type = Type.EXPORT)
    private Long rId;

    /**
     * TID
     */
    @Excel(name = "TID")
    private String tId;

    /**
     * EPC
     */
    @Excel(name = "EPC")
    private String epc;

    /**
     * 密码（预留字段）
     */
    @Excel(name = "密码")
    private String password;

    /**
     * 订单号，LOT
     */
    @Excel(name = "LOT")
    private String orderCode;

    /**
     * 批次编号,卷编号
     */
    @Excel(name = "卷编号")
    private String batchNumber;

    /**
     * 标签序号,序号
     */
    @Excel(name = "标签序号")
    private String tagSequence;

    /**
     * 总数量,本卷数量
     */
    @Excel(name = "本卷数量")
    private Long totalQuantity;

    /**
     * 标签批次号（预留字段）
     */
    @Excel(name = "标签批次号")
    private String tagBatch;

    /**
     * 型号,导入提供
     */
    @Excel(name = "型号")
    private String modelCode;

    /**
     * 加工时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "加工时间", dateFormat = "yyyy/MM/dd HH:mm:ss")
    private Date processingTime;

    /**
     * 操作人员编号,生产人员编号
     */
    @Excel(name = "生产人员编号")
    private String operatorId;

    /**
     * 测试结果
     */
//    @Excel(name = "测试结果")
    private String testResult;

    /**
     * 测试值
     */
//    @Excel(name = "测试值")
    private String testValue;

    /**
     * 参考值
     */
//    @Excel(name = "参考值")
    private String referenceValue;

    /**
     * 测试时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
//    @Excel(name = "测试时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date testingTime;

    /**
     * 导入文件名
     */
//    @Excel(name = "导入文件名")
    private String fileName;

    /**
     * 去向信息
     */
    @Excel(name = "去向信息")
    private String destinationInfo;

    /**
     * 是否在库
     */
    @Excel(name = "是否在库")
    private String libraryFlag;

    /**
     * 计划用途
     */
    @Excel(name = "计划用途")
    private String intendedUse;

    /**
     * 备注
     */
    @Excel(name = "备注")
    private String remark;

    @Excel(name = "", type = Type.EXPORT)
    private String placeholderOne;

    @Excel(name = "", type = Type.EXPORT)
    private String placeholderTwo;

    @Excel(name = "团队中心", type = Type.EXPORT, align = HorizontalAlignment.LEFT)
    private String teamCenter;

    @Excel(name = "标签数据总库导出", type = Type.EXPORT, align = HorizontalAlignment.LEFT)
    private String databaseExport;

    /**
     * 数据状态标记
     */
    private Integer delFlag;

    /**
     * 预留字段1
     */
//    @Excel(name = "测试结果", type = Type.EXPORT)
    private String fields1;

    /**
     * 预留字段2
     */
//    @Excel(name = "测试值", type = Type.EXPORT)
    private String fields2;

    /**
     * 预留字段3
     */
//    @Excel(name = "参考值", type = Type.EXPORT)
    private String fields3;

    /**
     * 查询开始日期
     */
    private String startDate;

    /**
     * 查询结束日期
     */
    private String endDate;

    /**
     * 模糊查询TID
     */
    private String selectTID;

    /**
     * 模糊查询EPC
     */
    private String selectEPC;

    /**
     * 查询接口、结果数量
     */
    private Integer queryResultsNumber;

    /**
     * 卷编号List
     */
    private List<String> batchNumberList;

    /**
     * 标签序号List
     */
    private List<String> tagSequenceList;

    @Override
    public String toString() {
        return "HwTagRecord{" +
                "rId=" + rId +
                ", tId='" + tId + '\'' +
                ", epc='" + epc + '\'' +
                ", password='" + password + '\'' +
                ", orderCode='" + orderCode + '\'' +
                ", batchNumber='" + batchNumber + '\'' +
                ", tagSequence='" + tagSequence + '\'' +
                ", totalQuantity=" + totalQuantity +
                ", tagBatch='" + tagBatch + '\'' +
                ", modelCode='" + modelCode + '\'' +
                ", processingTime=" + processingTime +
                ", operatorId='" + operatorId + '\'' +
                ", delFlag=" + delFlag +
                ", fields1='" + fields1 + '\'' +
                ", fields2='" + fields2 + '\'' +
                ", fields3='" + fields3 + '\'' +
                ", startDate='" + startDate + '\'' +
                ", endDate='" + endDate + '\'' +
                '}';
    }
}
