package com.inspect.system.base.openDomain;

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.Getter;
import lombok.Setter;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

@Setter
@Getter
public class PatrolTaskDomain extends BaseEntity {
    private static final long serialVersionUID = 1L;
    private Long taskId;
    @Excel(
            name = "变电站名称"
    )
    private String stationName;
    @Excel(
            name = "变电站编码"
    )
    private String stationCode;
    @Excel(
            name = "巡视类型"
    )
    private String type;
    @Excel(
            name = "任务编码"
    )
    private String taskCode;
    @Excel(
            name = "任务名称"
    )
    private String taskName;
    @Excel(
            name = "优先级"
    )
    private String priority;
    @Excel(
            name = "设备层级"
    )
    private String deviceLevel;
    @Excel(
            name = "设备列表"
    )
    private String deviceList;
    @JsonFormat(
            pattern = "yyyy-MM-dd"
    )
    @Excel(
            name = "定期开始时间",
            width = 30.0D,
            dateFormat = "yyyy-MM-dd"
    )
    private Date fixedStartTime;
    @Excel(
            name = "周期",
            readConverterExp = "月"
    )
    private String cycleMonth;
    @Excel(
            name = "周期",
            readConverterExp = "周"
    )
    private String cycleWeek;
    @Excel(
            name = "周期",
            readConverterExp = "执行时间"
    )
    private String cycleExecuteTime;
    @JsonFormat(
            pattern = "yyyy-MM-dd"
    )
    @Excel(
            name = "周期开始时间",
            width = 30.0D,
            dateFormat = "yyyy-MM-dd"
    )
    private Date cycleStartTime;
    @JsonFormat(
            pattern = "yyyy-MM-dd"
    )
    @Excel(
            name = "周期结束时间",
            width = 30.0D,
            dateFormat = "yyyy-MM-dd"
    )
    private Date cycleEndTime;
    @Excel(
            name = "间隔",
            readConverterExp = "数量"
    )
    private String intervalNumber;
    @Excel(
            name = "间隔",
            readConverterExp = "类型"
    )
    private String intervalType;
    @Excel(
            name = "间隔",
            readConverterExp = "执行时间"
    )
    private Date intervalExecuteTime;
    @JsonFormat(
            pattern = "yyyy-MM-dd"
    )
    @Excel(
            name = "间隔开始时间",
            width = 30.0D,
            dateFormat = "yyyy-MM-dd"
    )
    private Date intervalStartTime;
    @JsonFormat(
            pattern = "yyyy-MM-dd"
    )
    @Excel(
            name = "间隔结束时间",
            width = 30.0D,
            dateFormat = "yyyy-MM-dd"
    )
    private Date intervalEndTime;
    @JsonFormat(
            pattern = "yyyy-MM-dd"
    )
    @Excel(
            name = "不可用开始时间",
            width = 30.0D,
            dateFormat = "yyyy-MM-dd"
    )
    private Date invalidStartTime;
    @JsonFormat(
            pattern = "yyyy-MM-dd"
    )
    @Excel(
            name = "不可用结束时间",
            width = 30.0D,
            dateFormat = "yyyy-MM-dd"
    )
    private Date invalidEndTime;
    @Excel(
            name = "是否可用"
    )
    private String isEnable;
    @Excel(
            name = "编制人"
    )
    private String creator;
    @Excel(
            name = "执行状态"
    )
    private String executionStatus;
    @Excel(
            name = "归档状态"
    )
    private String fileStatus;
    private String taskCycle;
    private String prevPoints;
    private String devNo;
    private List<PatrolTaskStatusDomain> patrolTaskStatusList;
    private List<BasedataEqpBookMoMain> basedataEqpbookList;

    @Override
    public String toString() {
        return "PatrolTaskDomain{" +
                "taskId=" + taskId +
                ", stationName='" + stationName + '\'' +
                ", stationCode='" + stationCode + '\'' +
                ", type='" + type + '\'' +
                ", taskCode='" + taskCode + '\'' +
                ", taskName='" + taskName + '\'' +
                ", priority='" + priority + '\'' +
                ", deviceLevel='" + deviceLevel + '\'' +
                ", deviceList='" + deviceList + '\'' +
                ", fixedStartTime=" + fixedStartTime +
                ", cycleMonth='" + cycleMonth + '\'' +
                ", cycleWeek='" + cycleWeek + '\'' +
                ", cycleExecuteTime='" + cycleExecuteTime + '\'' +
                ", cycleStartTime=" + cycleStartTime +
                ", cycleEndTime=" + cycleEndTime +
                ", intervalNumber='" + intervalNumber + '\'' +
                ", intervalType='" + intervalType + '\'' +
                ", intervalExecuteTime=" + intervalExecuteTime +
                ", intervalStartTime=" + intervalStartTime +
                ", intervalEndTime=" + intervalEndTime +
                ", invalidStartTime=" + invalidStartTime +
                ", invalidEndTime=" + invalidEndTime +
                ", isEnable='" + isEnable + '\'' +
                ", creator='" + creator + '\'' +
                ", executionStatus='" + executionStatus + '\'' +
                ", fileStatus='" + fileStatus + '\'' +
                ", taskCycle='" + taskCycle + '\'' +
                ", prevPoints='" + prevPoints + '\'' +
                ", devNo='" + devNo + '\'' +
                ", patrolTaskStatusList=" + patrolTaskStatusList +
                ", basedataEqpbookList=" + basedataEqpbookList +
                '}';
    }
}
