package com.infynova.udi.vo;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;

import com.infynova.udi.common.api.BaseVo;
import com.infynova.udi.enums.match.MatchStatusEnum;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.time.LocalDateTime;

/**
 * @author liudong
 * 2024/2/22 19:11
 * @version 1.0
 */
@Data
public class UdiMatchDataExportVo extends BaseVo {

    @ExcelProperty(value = "任务编码",order = 0)
    @ColumnWidth(20)
    @ApiModelProperty(value = "任务编码")
    private String taskNo;

    /**
     * 对码状态:0-未开始、10-部分对码、20-100%对码、99-完全未对码
     * @see MatchStatusEnum
     */
    @ExcelIgnore
    @ApiModelProperty(value = "对码状态:0-未开始 10-部分对码、20-100%对码、99-完全未对码")
    private Integer matchStatus;

    @ExcelProperty(value = "对码状态",order = 2)
    @ColumnWidth(20)
    @ApiModelProperty(value = "对码状态名称")
    private String matchStatusDesc;

    /** udi码 */
    @ExcelProperty(value = "DI码",order = 1)
    @ColumnWidth(20)
    @ApiModelProperty(value = "udi码")
    private String udiCode;

    /** 医保一级编码 */
    @ExcelProperty(value = "医保一级编码",order = 3)
    @ColumnWidth(20)
    @ApiModelProperty(value = "医保一级编码")
    private String yiBaoOneCode;

    /** 医保二级编码 */
    @ExcelProperty(value = "医保二级编码",order = 4)
    @ColumnWidth(20)
    @ApiModelProperty(value = "医保二级编码")
    private String yiBaoTwoCode;

    /** 医保编码 */
    @ExcelProperty(value = "医保编码",order = 5)
    @ColumnWidth(20)
    @ApiModelProperty(value = "医保编码")
    private String yiBaoCode;

    /** 医保编码前缀 */
    @ExcelProperty(value = "医保编码前缀",order = 6)
    @ColumnWidth(20)
    @ApiModelProperty(value = "医保编码前缀")
    private String yiBaoCodePrefix;

    /** 企业名称 */
    @ExcelProperty(value = "企业名称",order = 7)
    @ColumnWidth(20)
    @ApiModelProperty(value = "企业名称")
    private String companyName;

    /** 品牌 */
    @ExcelProperty(value = "品牌",order = 8)
    @ColumnWidth(20)
    @ApiModelProperty(value = "品牌")
    private String brandName;

    /** 注册备案号(注册证) */
    @ExcelProperty(value = "注册备案号",order = 9)
    @ColumnWidth(20)
    @ApiModelProperty(value = "注册备案号(注册证)")
    private String registryNo;

    /** 注册备案产品名称 */
    @ExcelProperty(value = "注册备案产品名称",order = 10)
    @ColumnWidth(20)
    @ApiModelProperty(value = "注册备案产品名称")
    private String registryName;

    /** 注册备案批准日期 */
    @ExcelProperty(value = "注册备案批准日期",order = 11)
    @ColumnWidth(20)
    @ApiModelProperty(value = "注册备案批准日期")
    private LocalDateTime registryStartTime;

    /** 注册备案有效期 */
    @ExcelProperty(value = "注册备案有效期",order = 12)
    @ColumnWidth(20)
    @ApiModelProperty(value = "注册备案有效期")
    private LocalDateTime registryEndTime;

    /** 注册备案人 */
    @ExcelProperty(value = "注册备案人",order = 13)
    @ColumnWidth(20)
    @ApiModelProperty(value = "注册备案人")
    private String registry;

    /** 产品编码 */
    @ExcelProperty(value = "产品编码",order = 14)
    @ColumnWidth(20)
    @ApiModelProperty(value = "产品编码")
    private String productCode;

    /** 厂家产品货号或编号 */
    @ExcelProperty(value = "厂家产品货号/编号",order = 15)
    @ColumnWidth(20)
    @ApiModelProperty(value = "厂家产品货号或编号")
    private String productFactoryCode;

    /** 无境UDI库分配编码 */
    @ExcelIgnore
    @ApiModelProperty(value = "无境UDI库分配编码")
    private String infynovaCode;

    /** 单件产品名称 */
    @ExcelProperty(value = "单件产品名称",order = 16)
    @ColumnWidth(20)
    @ApiModelProperty(value = "单件产品名称")
    private String productName;

    /** 产品类型 */
    @ExcelProperty(value = "产品类型",order = 17)
    @ColumnWidth(20)
    @ApiModelProperty(value = "产品类型")
    private String productType;

    /** 规格 */
    @ExcelProperty(value = "规格",order = 18)
    @ColumnWidth(20)
    @ApiModelProperty(value = "规格")
    private String specification;

    /** 型号 */
    @ExcelProperty(value = "型号",order = 19)
    @ColumnWidth(20)
    @ApiModelProperty(value = "型号")
    private String model;

    /** 材质 */
    @ExcelProperty(value = "材质",order = 20)
    @ColumnWidth(20)
    @ApiModelProperty(value = "材质")
    private String material;

    /** 是否为无菌包装 0:否 1:是 */
    @ExcelIgnore
    @ApiModelProperty(value = "是否为无菌包装 0:否 1:是")
    private Boolean asepticPackaging;

    @ExcelProperty(value = "是否为无菌包装",order = 21)
    @ColumnWidth(20)
    @ApiModelProperty(value = "是否为无菌包装")
    private String asepticPackagingDesc;

    /** 使用前是否需要进行灭菌 0:否 1:是 */
    @ExcelIgnore
    @ApiModelProperty(value = "使用前是否需要进行灭菌 0:否 1:是")
    private Boolean beforeSterilize;

    @ExcelProperty(value = "使用前是否需要进行灭菌",order = 22)
    @ColumnWidth(20)
    @ApiModelProperty(value = "使用前是否需要进行灭菌")
    private String beforeSterilizeDesc;

    /** 灭菌方式 */
    @ExcelProperty(value = "灭菌方式",order = 23)
    @ColumnWidth(20)
    @ApiModelProperty(value = "灭菌方式")
    private String sterilizationMethod;




}