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

import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.tofly.pojo.plan.PlanFactory;
import com.tofly.pojo.plan.Plantype;
import com.tofly.pojo.plan.Pointtemp;
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;
import java.util.Set;


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

    /**
     * 巡检计划ID
     */
    @ApiModelProperty(value = "巡检计划ID")
    private Long id;
    /**
     * 计划类型；1：计划性；2：日常性临时计划
     */
    @ApiModelProperty(value = "计划类型；0：计划巡检；1：维护")
    private Long planType;
    /**
     * 是否是隐患 1是0否
     */
    @ApiModelProperty(value = "是否是隐患 1是0否")
    private String isTrouble;
    /**
     * 计划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;
    /**
     * 巡检计划开始时间
     */
    @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;

    /**
     * 巡查类型，关联表TF_YWPN_INSPECTTYPE_W主键
     */
    @ApiModelProperty(value = "巡查类型，多个以,分隔")
    private String inspectType;
    /**
     * 巡查内容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;
    @ApiModelProperty(hidden = true)
    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 = "巡检组id")
    private Long inspectGroupId;

    @ApiModelProperty(value = "若多个巡检人,请用,隔开")
    private String inspectUsers;

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

    @ApiModelProperty(value = "传1获取所有计划")
    private String flag;

    @ApiModelProperty(value = "是否获取今日执行列表")
    private String isGet;

    @ApiModelProperty(value = "部门id")
    private Long deptId;

    @ApiModelProperty(value = "(暂停/作废查询)查询类型 0暂停,1作废")
    private String selType;
    @ApiModelProperty(value = "(暂停/作废查询)审核状态：0未审核、1同意、2不同意、3不可审批 多个以,分隔")
    private String selTypeAuditResult;
    @ApiModelProperty(value = "(暂停/作废查询)审核人ID")
    private String selTypeAuditUserId;

    @ApiModelProperty(value = "权限列表用户")
    private Set<Long> userIdList;
    @ApiModelProperty(value = "计划对应类型完成信息")
    private List<Plantype> planTypeOverList;

    @ApiModelProperty(value = "点信息列表集合")
    private List<Pointtemp> pointTempList;

    @ApiModelProperty(value = "计划下发厂站设备列表")
    private List<PlanFactory> factoryList;
}
