package com.ktg.iscs.domain.vo.ticketPoints;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ktg.common.annotation.Excel;
import com.ktg.common.core.domain.model.BaseBean;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.util.Date;

/**
 * 作业票隔离点对象 is_job_ticket_points
 *
 * @author cgj
 * @date 2024-10-18
 */
@EqualsAndHashCode(callSuper = true)
@Data
public class IsJobTicketPointsVO extends BaseBean {
    private static final long serialVersionUID = 1L;

    /**
     * 记录ID
     */
    @TableId(type = IdType.AUTO)
    @ApiModelProperty(value = "记录ID")
    private Long recordId;

    /**
     * 作业票ID
     */
    @ApiModelProperty(value = "作业票ID")
    @Excel(name = "作业票ID")
    private Long ticketId;

    /**
     * 所属车间ID
     */
    @ApiModelProperty(value = "所属车间ID")
    @Excel(name = "所属车间ID")
    private Long workshopId;

    /**
     * 所属区域ID
     */
    @ApiModelProperty(value = "所属区域ID")
    @Excel(name = "所属区域ID")
    private Long workareaId;

    /**
     * 隔离点ID
     */
    @ApiModelProperty(value = "隔离点ID")
    @Excel(name = "隔离点ID")
    private Long pointId;

    @ApiModelProperty(value = "隔离点nfc")
    @Excel(name = "隔离点nfc")
    private String pointNfc;

    @ApiModelProperty(value = "隔离点序列号")
    @Excel(name = "隔离点序列号")
    private String pointSerialNumber;

    @ApiModelProperty(value = "隔离点Name")
    private String pointName;

    /**
     * 隔离点状态
     */
    @ApiModelProperty(value = "隔离点状态(0-未上锁 1-已上锁 2-已解锁)")
    @Excel(name = "隔离点状态")
    private String pointStatus;

    /**
     * 删除标志（0代表存在 2代表删除）
     */
    @ApiModelProperty(value = "删除标志（0代表存在 2代表删除）")
    private String delFlag;

    @ApiModelProperty(value = "挂锁ID")
    private Long lockId;

    @ApiModelProperty(value = "挂锁Name")
    private String lockName;

    @ApiModelProperty(value = "挂锁NFC")
    private String lockNfc;

    @ApiModelProperty(value = "上锁钥匙ID")
    private Long lockedByKeyId;

    @ApiModelProperty(value = "解锁钥匙ID")
    private Long unlockedByKeyId;

    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @Schema(description = "上锁时间")
    private Date lockTime;

    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @Schema(description = "解锁时间")
    private Date unlockTime;

    @ApiModelProperty(value = "前置隔离点ID")
    private Long prePointId;

    @ApiModelProperty(value = "锁具Name")
    private String locksetName;

    // @ApiModelProperty(value = "作用")
    // private String remark;

    @ApiModelProperty(value = "作用")
    private String effect;

    @ApiModelProperty(value = "开关状态")
    private String switchStatus;

    @ApiModelProperty(value = "开关状态最近更新时间")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private Date switchLastUpdateTime;

}
