/*
 * Author: Zev
 * 生成entity
 */
package com.tofly.pojo.plan.vo;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.tofly.pojo.plan.Plantype;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

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


/**
 * 巡检计划详细信息表：TF_YWPN__PLAN_W
 *
 * @author admin
 * @date Thu Mar 18 00:00:00 CST 2021
 */
@Data
@ApiModel
public class PlanVo extends Model<PlanVo> {
    private static final long serialVersionUID = 1L;

    /**
     * 巡检计划ID
     */
    @ApiModelProperty(value = "巡检计划ID")
    private Long id;
    /**
     * 计划类型；1：计划性；2：日常性临时计划
     */
    @ApiModelProperty(value = "计划类型；0：计划性；1：隐患 2:工地 3:临时性任务")
    private String planType;
    @TableField(exist = false)
    private String planTypeName;
    /**
     * 计划ID，当计划类型为计划性时，关联TF_YWPN_PLANMOUTH_W
     */
    @ApiModelProperty(value = "计划ID，当计划类型为计划性时，关联TF_YWPN_PLANMOUTH_W")
    private Long mouthId;
    /**
     * 巡检周期；关联周期表：TF_YWPN_PERIOD_D
     */
    @ApiModelProperty(value = "巡检周期；关联周期表：TF_YWPN_PERIOD_D")
    private Long periodId;
    @TableField(exist = false)
    private String periodIdName;
    /**
     * 巡检计划开始时间
     */
    @ApiModelProperty(value = "巡检计划开始时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date planBegindate;
    /**
     * 巡检计划结束时间
     */
    @ApiModelProperty(value = "巡检计划结束时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date planEnddate;
    /**
     * 所属片区
     */
    @ApiModelProperty(value = "所属片区编码")
    private String regionId;

    /**
     * 片区名称
     */
    @ApiModelProperty(value = "片区名称")
    private String regionName;

    /**
     * 巡查类型
     */
    @ApiModelProperty(value = "巡查类型，多个以,分隔")
    private String inspectType;

    @TableField(exist = false)
    private String inspectTypeName;
    /**
     * 巡查内容JSON字符串
     */
    @ApiModelProperty(value = "巡查内容JSON字符串")
    private String inspectContents;
    /**
     * 用户是否阅读；：0：纬未读；1：已读
     */
    @ApiModelProperty(value = "用户是否阅读；：0：纬未读；1：已读")
    private String isread;

    /**
     * 是否超时；0：未超时；1：已超时
     */
    @ApiModelProperty(value = "是否超时；0：未超时；1：已超时")
    private String isover;

    /**
     * 巡检计划状态；巡检计划状态；0：未提交；1：未审核，2：未开始，3：正在执行 4：计划完成 5: 已开始未执行 7：申请暂停 8：计划已暂停 9：申请作废 10：计划已作废 11 计划未完成,已超时 12 未到开始时间,不可执行
     */
    @ApiModelProperty(value = "巡检计划状态；巡检计划状态；0：未提交；1：未审核，2：未开始，3：正在执行 4：计划完成 5: 已开始未执行 7：申请暂停 8：计划已暂停 9：申请作废 10：计划已作废 11 计划未完成,已超时 12 未到开始时间,不可执行")
    private String planState;

    /**
     * 间隔天数
     */
    @ApiModelProperty(value = "间隔天数")
    private Integer intervalDay;
    /**
     * 计划完成率
     */
    @ApiModelProperty(value = "计划完成率")
    private Float planPercent;
    /**
     * 实际完成率
     */
    @ApiModelProperty(value = "实际完成率")
    private Float percent;
    /**
     * 记录计划任务情况（点是个数，线是长度）
     */
    @ApiModelProperty(value = "记录计划任务情况（点是个数，线是长度）")
    private BigDecimal totalLength;
    /**
     * 总点数，用于计算完成率
     */
    @ApiModelProperty(value = "总点数，用于计算完成率")
    private BigDecimal totalCount;
    /**
     * 计划备注描述
     */
    @ApiModelProperty(value = "计划备注描述")
    private String description;
    /**
     * 最后一次修改时间
     */
    @ApiModelProperty(value = "最后一次修改时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date lastTime;
    /**
     * 最后一次修改人
     */
    @ApiModelProperty(value = "最后一次修改人")
    private Long lastUser;
    /**
     * 创建人
     */
    @ApiModelProperty(value = "创建人")
    private Long createUser;
    @TableField(exist = false)
    @ApiModelProperty(value = "创建人名称")
    private String createUserName;
    /**
     * 创建时间
     */
    @ApiModelProperty(value = "创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    @ApiModelProperty(value = "巡检组")
    @TableField(exist = false)
    private String inspectGroup;

    @ApiModelProperty(value = "巡检人列表,多个人以,分割")
    @TableField(exist = false)
    private String inspectUserList;

    @ApiModelProperty(value = "是否自动派工 0未派工 1已派工")
    private String isDispatching;

    @ApiModelProperty(value = "计划是否已暂停 0否 1是")
    private String isPlanStop;

        @ApiModelProperty(value = "计划是否已作废 0否 1是")
    private String isPlanInvalid;

    @ApiModelProperty(value = "计划对应类型完成信息")
    private List<Plantype> planTypeOverList;

}
