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

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.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
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;

@ApiModel
@Data
@TableName("business_order")
@ColumnWidth(30)
@HeadRowHeight(15)
@ContentRowHeight(20)
@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN)
@ExcelIgnoreUnannotated
public class OrderListResponse {

    private final  Long  id;
    @ApiModelProperty(value = "委托书编号", dataType = "String")
    @ExcelProperty(value = "委托书编号",order = 0)
    private String orderCode;

    @ApiModelProperty(value = "委托方id", dataType = "String")
//    @ExcelProperty(value = "委托方id",order = 1)
    private String customerId;

    @ApiModelProperty(value = "委托方编号", dataType = "String")
    @ExcelProperty(value = "委托方编号",order = 1)
    private String customerNo;

    @ApiModelProperty(value = "委托方名称", dataType = "String")
    @ExcelProperty(value = "委托方名称",order = 2)
    private String customerName;


    @ApiModelProperty(value = "委托方地址", dataType = "String")
    private String customerAddress;

    @ApiModelProperty(value = "委托日期", dataType = "String")
    private String orderTime;

    @ApiModelProperty(value = "要求检完时间", dataType = "String")
    private String requireOverTime;

    @ApiModelProperty(value = "送样人", dataType = "String")
    @ExcelProperty(value = "送样人",order = 3)
    private String deliverer;

    @ApiModelProperty(value = "送样人联系方式", dataType = "String")
    @ExcelProperty(value = "送样人联系方式",order = 4)
    private String delivererTel;

    @ApiModelProperty(value = "联系方式-客户的固定电话", dataType = "String")
    @ExcelProperty(value = "联系方式",order = 5)
    private String customerPhone;

    @ApiModelProperty(value = "预计送达时间", dataType = "String")
    private String planDeliverTime;

    @TableField(exist = false)
    @ApiModelProperty(value = "样品数量", dataType = "String")
    @ExcelProperty(value = "样品数量",order = 6)
    private Integer sampleCount;

    @ApiModelProperty(value = "是否加急", dataType = "String")
    @ExcelProperty(value = "是否加急",order = 7)
    private String isUrgent;

    @ApiModelProperty(value = "接收状态（包括接收相关状态和检测完成状态）", dataType = "String")
    @DictCodeField(message = "接收状态不合法", cacheName = MeterDictCode.ORDER_STATUS)
    private Integer status;

    @TableField(exist = false)
    @ApiModelProperty(value = "接收状态名称", dataType = "String")
    @ExcelProperty(value = "接收状态名称",order = 8)
    private String statusName;

    @ApiModelProperty(value = "创建时间", dataType = "String")
    @ExcelProperty(value = "创建时间",order = 9)
    private String createTime;

    @ApiModelProperty(value = "备注", dataType = "String")
    @ExcelProperty(value = "备注",order = 10)
    private String remark;

    @ApiModelProperty(value = "证书单位名称", dataType = "String")
    private String certificationCompany;

    @ApiModelProperty(value = "证书单位地址", dataType = "String")
    private String certificationCompanyAddress;

    //山海鲸使用参数
    @TableField(exist = false)
    @ApiModelProperty(value = "下单时间", dataType = "String")
    private String 下单时间;

    @TableField(exist = false)
    @ApiModelProperty(value = "公司名称", dataType = "String")
    private String 公司名称;

    @TableField(exist = false)
    @ApiModelProperty(value = "样品数量", dataType = "String")
    private Integer 样品数量;

    public String get下单时间() {
        return this.orderTime;
    }

    public String get公司名称() {
        return this.customerName;
    }

    public Integer get样品数量() {
        return this.sampleCount;
    }

}
