package com.casic.missiles.model.equipment;

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.TableId;
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;

import java.io.Serializable;
import java.util.List;

/**
 * 设备管理点检查列表实体
 *
 * @author xiezhuangz
 * @version 1.0
 * @date 2022/12/26
 */

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

    private static final long serialVersionUID = -2162976785241447101L;

    /**
     * 主键
     */
    @TableId("id")
    @ApiModelProperty(value = "主键", dataType = "Long")
    private Long id;

    /**
     * 检查编号
     */
    @TableField("check_no")
    @ExcelProperty(value = "检查编号",order = 0)
    @ApiModelProperty(value = "检查编号", dataType = "String")
    private String checkNo;

    /**
     * 检查表名称
     */
    @TableField("check_name")
    @ExcelProperty(value = "检查表名称",order = 1)
    @ApiModelProperty(value = "检查表名称", dataType = "String")
    private String checkName;

    /**
     * 检查人
     */
    @TableField("check_person")
    @ExcelProperty(value = "检查人",order = 4)
    @ApiModelProperty(value = "检查人", dataType = "String")
    private String checkPerson;

    /**
     * 管理点位置
     */
    @TableField("manager_point_location")
    @ExcelProperty(value = "管理点位置",order = 2)
    @ApiModelProperty(value = "管理点位置", dataType = "String")
    private String managerPoinLocation;

    /**
     * 检查结果-字典code
     */
    @TableField("check_result")
    @DictCodeField(message = "审批状态不合法", cacheName = MeterDictCode.CHECK_RESULT)
    @ApiModelProperty(value = "检查结果-字典code", dataType = "String")
    private String checkResult;

    /**
     * 检查结果名称
     */
    @TableField(exist = false)
    @ExcelProperty(value = "检查结果",order = 3)
    @ApiModelProperty(value = "检查结果名称", dataType = "String")
    private String checkResultName;

    /**
     * 检查日期
     */
    @TableField("check_date")
    @ExcelProperty(value = "检查日期",order = 5)
    @ApiModelProperty(value = "检查日期", dataType = "String")
    private String checkDate;

    /**
     * 备注
     */
    @TableField("remark")
    @ApiModelProperty(value = "备注", dataType = "String")
    private String remark;

    /**
     * 删除标记
     */
    @TableField("is_del")
    @ApiModelProperty(value = "删除标记", dataType = "Integer")
    private Integer isDel;


    /**
     * 创建人
     */
    @TableField("create_user")
    @ApiModelProperty(value = "创建人", dataType = "String")
    private String createUser;
    /**
     * 创建人
     */
    @TableField(exist = false)
    @ApiModelProperty(value = "创建人名称", dataType = "String")
    private String createUserName;

    /**
     * 创建时间
     */
    @TableField("create_time")
    @ApiModelProperty(value = "创建时间", dataType = "String")
    private String createTime;

    /**
     * 更新时间
     */
    @TableField("update_time")
    @ApiModelProperty(value = "更新时间", dataType = "String")
    private String updateTime;

    /**
     * 附件
     */
    @TableField(exist = false)
    @ApiModelProperty(value = "附件列表", dataType = "List")
    private List<EquipmentCheckInfoFile> fileList;
}
