package com.casic.missiles.dto.business.print;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.alibaba.excel.annotation.write.style.ContentRowHeight;
import com.alibaba.excel.annotation.write.style.ContentStyle;
import com.alibaba.excel.annotation.write.style.HeadRowHeight;
import com.alibaba.excel.enums.poi.BorderStyleEnum;
import com.casic.missiles.annotation.DictCodeField;
import com.casic.missiles.constants.MeterDictCode;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

@Data
@ApiModel("证书打印返回列表")
@ColumnWidth(30)
@HeadRowHeight(15)
@ContentRowHeight(20)
@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN)
@ExcelIgnoreUnannotated
public class CertificateListResponse {

    private Long id;

    @ApiModelProperty(value = "证书编号", dataType = "String")
    @ExcelProperty(value = "证书编号",order = 0)
    private String certificateNo;

    @ApiModelProperty(value = "证书名称", dataType = "String")
    @ExcelProperty(value = "证书名称",order = 1)
    private String certificateName;

    @ApiModelProperty(value = "样品编号", dataType = "String")
    @ExcelProperty(value = "样品编号",order = 2)
    private String sampleNo;

    @ApiModelProperty(value = "样品名称", dataType = "String")
    @ExcelProperty(value = "样品名称",order = 3)
    private String sampleName;

    @ApiModelProperty(value = "样品型号", dataType = "String")
    @ExcelProperty(value = "样品型号",order = 4)
    private String sampleModel;

    @ApiModelProperty(value = "出厂编号", dataType = "String")
    @ExcelProperty(value = "出厂编号",order = 5)
    private String manufacturingNo;

    @ApiModelProperty(value = "委托书编号", dataType = "String")
    @ExcelProperty(value = "委托书编号",order = 6)
    private String orderNo;

    @ApiModelProperty(value = "校验类别", dataType = "String")
    @DictCodeField(message = "校验类别不合法", cacheName = MeterDictCode.MEASURE_TYPE)
    private String measureType;

    @ApiModelProperty(value = "校验类别名称", dataType = "String")
    @ExcelProperty(value = "校验类别名称",order = 7)
    private String measureTypeName;

    @ApiModelProperty(value = "检定人员id", dataType = "String")
    private String measurePersonId;

    @ApiModelProperty(value = "检定人员", dataType = "String")
    @ExcelProperty(value = "检定人员",order = 8)
    private String measurePersonName;

    @ApiModelProperty(value = "证书类型", dataType = "String")
    @DictCodeField(message = "证书类型不合法", cacheName = MeterDictCode.CERTIFICATE_CLASS)
    private String certificateType;

    @ApiModelProperty(value = "证书类型名称", dataType = "String")
    @ExcelProperty(value = "证书类型",order = 9)
    private String certificateTypeName;

    @ApiModelProperty(value = "打印状况", dataType = "String")
    @DictCodeField(message = "打印状况不合法", cacheName = MeterDictCode.PRINT_STATUS)
    private String printStatus;

    @ApiModelProperty(value = "打印状态", dataType = "String")
    @ExcelProperty(value = "打印状况",order = 10)
    private String printStatusName;

    @ApiModelProperty(value = "打印次数", dataType = "String")
    @ExcelProperty(value = "打印次数",order = 11)
    private String printNum;

    @ApiModelProperty(value = "生成时间", dataType = "String")
    @ExcelProperty(value = "生成时间",order = 12)
    private String createTime;

    @ApiModelProperty(value = "审批状态", dataType = "String")
    @DictCodeField(message = "审批状态不合法", cacheName = MeterDictCode.APPROVAL_STATUS)
    private String approvalStatus;

    @ApiModelProperty(value = "任务id", dataType = "String")
    private String taskId;

    @ApiModelProperty(value = "流程实例id", dataType = "String")
    private String processId;

    @ApiModelProperty(value = "审批状态", dataType = "Integer")
    private Integer decisionItem;

    @ApiModelProperty(value = "审批状态名称", dataType = "String")
    @ExcelProperty(value = "审批状态",order = 13)
    private String approvalStatusName;

    @ApiModelProperty(value = "证书打印名称", dataType = "String")
    private String printFileName;


}
