package com.zksy.base.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;

/**
 * 运维任务主表
 * @TableName maintenance_task
 */
@TableName(value = "maintenance_task", schema = "app_user")
@Data
@ApiModel(value = "运维任务入参", description = "运维任务入参")
public class MaintenanceTask implements Serializable {

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;

    /**
     * 运维任务ID
     */
    @ApiModelProperty(value = "运维任务ID")
    @TableId(type = IdType.AUTO)
    private Long taskId;

    /**
     * 任务编号（唯一索引，格式：TS+年月日+流水号）
     */
    @ApiModelProperty(value = "任务编号")
    private String taskNo;

    /**
     * 所属施工单位/运维部门ID
     */
    @ApiModelProperty(value = "运维部门ID")
    private Long deptId;

    /**
     * 派单人ID
     */
    @ApiModelProperty(value = "派单人ID")
    private Long dispatchUserId;

    /**
     * 接收维护人员ID
     */
    @ApiModelProperty(value = "接收维护人员ID")
    private Long receiveUserId;

    /**
     * 任务详细描述
     */
    @ApiModelProperty(value = "任务详细描述")
    private String taskDesc;

    /**
     * 任务优先级：1-严重 2-一般
     */
    @ApiModelProperty(value = "任务优先级：1-严重 2-一般")
    private Integer taskLevel;

    /**
     * 任务状态：1-待下发 2-待接收 3-处理中 4-待验收 5-已完成 6-已驳回 7-已延期
     */
    @ApiModelProperty(value = "任务状态：1-待下发 2-待接收 3-处理中 4-待验收 5-已完成 6-已驳回 7-已延期")
    private Integer taskStatus;

    /**
     * 计划开始时间
     */
    @ApiModelProperty(value = "计划开始时间")
    @JsonFormat(locale = "zh",pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    private Date planStartTime;

    /**
     * 计划结束时间
     */
    @ApiModelProperty(value = "计划结束时间")
    @JsonFormat(locale = "zh",pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    private Date planEndTime;

    /**
     * 实际开始时间
     */
    @ApiModelProperty(value = "实际开始时间")
    @JsonFormat(locale = "zh",pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    private Date realStartTime;

    /**
     * 实际结束时间
     */
    @ApiModelProperty(value = "实际结束时间")
    @JsonFormat(locale = "zh",pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    private Date realEndTime;

    /**
     * 创建时间
     */
    @ApiModelProperty(value = "创建时间")
    @JsonFormat(locale = "zh",pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    private Date createTime;

    /**
     * 更新时间
     */
    @ApiModelProperty(value = "更新时间")
    @JsonFormat(locale = "zh",pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    private Date updateTime;
}