package com.tuoheng.admin.vo.inspection;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

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

/**
 * 返回巡检报告视图Vo
 *
 * @author wanjing
 * @team tuoheng
 * @date 2022-12-12
 */
@Data
public class InspectionReportVo {

    /**
     * 报告ID
     */
    private String id;

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

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

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

    /**
     * 报告编号
     */
    private String reportCode;

    /**
     * 巡检任务ID
     */
    private String inspectionId;

    /**
     * 巡检任务编码
     */
    private String inspectionCode;

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

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

    /**
     * 公路ID
     */
    private String roadId;

    /**
     * 公路名称
     */
    private String roadName;

    /**
     * 路段ID
     */
    private String sectionId;

    /**
     * 路段名称
     */
    private String sectionName;

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

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

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

    /**
     * 巡检线路id
     */
    private Long 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;

    /**
     * 计划巡检日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    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 Long isLive;

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

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

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

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

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

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

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

    /**
     * 算法处理状态：0默认 1待上传 2待分析 3分析中 4成功 5超时 6失败
     */
    private Long 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 Long executionStatus;

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

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

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

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

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

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

    /**
     * 巡检结果列表
     */
    private List<InspectionResultVo> inspectionResultVoList;

    /**
     * 问题列表
     */
    private List<InspectionFileReportVo> inspectionFileReportVoList;
}
