package com.yfd.platform.modules.patroltask.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serializable;
import java.sql.Timestamp;

/**
 * <p>
 * 巡视任务执行表
 * </p>
 *
 *
 * @since 2023-04-08
 */
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("iis_task_todo")
public class TaskTodo implements Serializable {

    public static final String JOB_KEY = "JOB_KEY";
    private static final long serialVersionUID = 1L;

    /**
     * 巡视任务执行ID
     */
    @TableId(value = "task_todo_id", type = IdType.ASSIGN_UUID)
    private String taskTodoId;

    /**
     * 变电站代码
     */
    //private String id;
    private String stationCode;

    /**
     * 巡视类型
     */
    private String type;

    /**
     * 任务id
     */
    private String taskId;

    /**
     * 任务名称
     */
    private String taskName;

    /**
     * 任务编码
     */
    private String taskCode;

    /**
     * 1:站端日常巡视任务；2：上级系统控制；3区域巡视系统控制，4主辅设备联动
     */
    private String taskType;

    /**
     * 1：优先级1，优先级最低；2：优先级2；3：优先级3；4：优先级4，优先级最高
     */
    private String priority;

    /**
     * 1:已执行；2:正在执行；3:暂停；4:终止；5:未执行；6:超期；
     */
    private String taskState;

    /**
     * 计划开始时间
     */
    private String planStartTime;

    /**
     * 开始时间
     */
    private String startTime;

    /**
     * 任务进度
     */
    private String taskProgress;

    /**
     * 任务预计剩余时间
     */
    private String taskEstimatedTime;

    /**
     * 结束时间
     */
    private String endTime;

    /**
     * 巡视结果描述
     */
    private String description;

    /**
     * 当前巡检点位id
     */
    private String deviceNow;

    /**
     * 巡检点位总数
     */
    private Integer deviceSumnum;

     /**
     * 已识别点数（包括识别失败 识别正常）
     */
    private Integer deviceDeforeNum;

    /**
     * 异常巡检点位总数
     */
    private Integer deviceUnusualnum;

    /**
     * 巡视失败点位数
     */
    private Integer deviceFailureNum;

    /**
     * 0:未审核；1:已审核
     */
    private String examineFlag;

    /**
     * 审核人编号
     */
    private String cexamineUserCode;

    /**
     * 审核人名称
     */
    private String cexamineUserName;

    /**
     * 审核时间
     */
    private String examineDate;

    /**
     * 审核描述
     */
    private String examineComment;

    /**
     * 数据状态
     */
    private String datastatus;

    /**
     * 修改人
     */
    private String lastmodifier;

    /**
     * 最近修改时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Timestamp lastmodifydate;

    /**
     * 备用1
     */
    private String custom1;

    /**
     * 备用2
     */
    private String custom2;

    /**
     * 备用3
     */
    private String custom3;

    /**
     * 巡视路线，当机器人或无人机生成巡视路线时，该字段进行回写，json格式包含多个坐标和经纬度
     */
    private String taskTodoWay;

    /**
     * 监控索引号为监控系统测点 ID，可用于数据的唯一标识
     */
    private String controlNum;

    /**
     * 机器人/无人机编码
     */
    private String robotCode;

    /**
     * 任务类别 1-摄像机任务 2-机器人任务 3-无人机
     */
    private String taskClass;

    /**
     * 机器人或者无人绑定的线路ID
     */
    private String taskLineid;

    /**
     * 无人机机巢信息
     */
    private String dockInfo;

}
