package com.inspect.taskstatus.domain;

import com.inspect.base.core.annotation.Excel;
import com.inspect.base.core.web.domain.BaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;

import java.util.Date;
import java.util.List;

import lombok.*;

@Setter
@Getter
@Builder
@AllArgsConstructor
@ToString
public class PatrolTaskStatus extends BaseEntity {
    private static final long serialVersionUID = 1L;
    private Long lineId;
    @Excel(
            name = "巡视任务执行ID"
    )
    private String taskPatrolledId;
    @Excel(
            name = "任务名称"
    )
    private String taskName;

    private String areaTaskName;
    @Excel(
            name = "任务编码"
    )
    private String taskCode;
    @Excel(
            name = "任务状态 "
    )
    private String taskState;
    @JsonFormat(
            pattern = "yyyy-MM- HH:mm:ss"
    )
    @Excel(
            name = "计划开始时间",
            width = 30.0D,
            dateFormat = "yyyy-MM-dd"
    )
    private Date planStartTime;
    @JsonFormat(
            pattern = "yyyy-MM-dd HH:mm:ss"
    )
    @Excel(
            name = "开始时间",
            width = 30.0D,
            dateFormat = "yyyy-MM-dd"
    )
    private Date startTime;
    @Excel(
            name = "任务进度"
    )
    private String taskProgress;
    @Excel(
            name = "任务预计剩余时间"
    )
    private String taskEstimatedTime;
    @Excel(
            name = "描述"
    )
    private String description;
    @Excel(
            name = "预置位类型 0-视频 1-机器人 2-无人机"
    )
    private String posType;
    @Excel(
            name = "机器编码"
    )
    private String code;
    @Excel(
            name = "机器预置位号"
    )
    private String pos;
    @Excel(
            name = "巡检类型"
    )
    private String patrolType;
    // 主任务id
    private String mainId;
    private String taskType;
    private String filterTaskType;
    // 汇总信息
    private String summary;
    private List<PatrolTaskStatus> children;
    private String timeType;
    private String timeConditions;
    private String beginTime;
    private String endTime;
    private Date createTime;
    private String patrolStatus;
    private int year;
    private String devNo;
    private String command;
    private String pointCount;
    private String execType;

    private String fileStatus;
    private String filter;
    private String pointName;
    private String deviceName;
    private String abnormal;
    private String channelName;
    private String deviceSource;
    private String filterDesc;
    private String desc;
    private int csQxNum;
    private int csYcNum;
    private int aiQxNum;
    private int aiYcNum;
    private int qxNum;
    private String resultType;
    private String pointStatus;
    private String algName;
    private String specifiedAlg;

    public PatrolTaskStatus(String taskPatrolledId) {
        this.taskPatrolledId = taskPatrolledId;
    }

    public PatrolTaskStatus() {
    }
}
