package com.tuoheng.admin.vo.inspection;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.tuoheng.common.core.common.BaseEntity;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 巡检任务对象 th_inspection
 *
 * @team tuoheng
 * @author wanjing
 * @date 2022-11-16
 */
@Data
public class InspectionVo extends BaseEntity {

    private static final long serialVersionUID = 1L;

    /**
     * 租户ID
     */
    private String tenantId;

    /**
     * 部门ID
     */
     private String deptId;

    /**
     * 部门名称
     */
    private String deptName;

    /**
     * 巡检任务编号
     */
    private String code;

    /**
     * 巡检任务名称
     */
    private String name;

    /**
     * 巡检任务类型 1 临时巡检
     */
    private Integer type;

    /**
     * 航道ID
     */
    private String channelId;

    /**
     * 航道名称
     */
    private String channelName;

    /**
     * 航段ID
     */
    private String legId;

    /**
     * 航段名称
     */
    private String legName;

    /**
     * 巡检方式类型 1 无人机 2机场 3飞手值飞
     */
    private Integer inspectionType;

    /**
     * 巡检机场id
     */
    private Integer airportId;

    /**
     * 巡检机场名称
     */
    private String airportName;

    /**
     * 巡检无人机id
     */
    private Integer droneId;

    /**
     * 巡检线路id
     */
    private Integer inspectionLine;

    /**
     * 巡检线路名称
     */
    private String inspectionLineName;

    /**
     * 飞行设备
     */
    private String equipmentId;

    /**
     * 飞行设备名称
     */
    private String equipmentName;

    /**
     * 挂载设备(多选逗号","分隔)
     */
    private String equipmentMountId;

    /**
     * 挂载设备名称(多选逗号","分隔)
     */
    private String equipmentMountName;

    /**
     * 5G云盒ID
     */
    private String cloudBoxId;

    /**
     * 云盒名称
     */
    private String cloudBoxName;

    /**
     * 云盒SN号
     */
    private String boxSn;

    /**
     * 飞手(多选逗号","分隔)
     */
    private String flightHand;

    /**
     * 飞手姓名(多选逗号","分隔)
     */
    private String flightHandName;

    /**
     * 计划巡检日期
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date inspectionTime;

    /**
     * 执行开始时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date executionStartTime;

    /**
     * 执行结束时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date executionEndTime;

    /**
     * 是否实时，1：实时  2：离线  默认：null
     */
    private Integer isLive;

    /**
     * 是否正摄：1是 2否
     */
    private Integer isTaken;

    /**
     * 是否倾斜摄影：1是 2否
     */
    private Integer isTilt;

    /**
     * 原视频地址
     */
    private String videoUrl;

    /**
     * AI识别后视频地址
     */
    private String aiVideoUrl;

    /**
     * 报告地址
     */
    private String reportUrl;

    /**
     * SRT文件地址
     */
    private String srtUrl;

    /**
     * 任务状态 5任务待飞行 7飞行失败 10任务飞行中 15任务飞行完成
     */
    private Integer status;

    /**
     * 算法处理状态：0默认 1待上传 2待分析 3分析中 4成功 5超时 6失败
     */
    private Integer analyseStatus;

    /**
     *
     * ai任务分析进度
     */
    private BigDecimal progressbar;

    /**
     * 备注
     */
    private String note;

    /**
     * 巡检时天气情况
     */
    private String weather;

    /**
     * 飞行高度
     */
    private String flyHeight;

    /**
     * srt文件名称
     */
    private String srtName;

    /**
     * ai心跳更新时间
     */
    private Long heartbeatTime;

    /**
     * 定时任务的执行状态。1：未执行，2：已执行
     */
    private Integer executionStatus;

    /**
     * 起点经度
     */
    private String startLongitude;

    /**
     * 起点纬度
     */
    private String startLatitude;

    /**
     * 终点经度
     */
    private String endLongitude;

    /**
     * 终点纬度
     */
    private String endLatitude;

    /**
     * 联系方式
     */
    private String mobile;

    /**
     * 巡逻地点
     */
    private String patrolLocation;

    /**
     * 确认问题数
     */
    private Integer confirmedProblemCount;

    /**
     * 发现问题数
     */
    private Integer discoverProblemCount;

    /**
     * 立即执行
     */
    private boolean execute;

    /**
     * 直播
     */
    private boolean live;

    /**
     * 回放
     */
    private boolean playback;

    /**
     * 问题详情
     */
    private boolean problemDetails;

    /**
     * 问题核实
     */
    private boolean problemVerify;

    /**
     * 重新提交
     */
    private boolean resubmit;

    /**
     * 删除
     */
    private boolean delete;

    /**
     * 编辑
     */
    private boolean edit;

}
