package com.njcn.process.pojo.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.njcn.web.pojo.annotation.DateTimeStrValid;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.time.LocalDateTime;

/**
 * pqs
 *
 * @author cdf
 * @date 2023/6/25
 */
@Data
public class SupvPlanVO {

    @ApiModelProperty(value = "索引",required = true)
    private String planId;

    /**
     * 计划名称
     */
    @ApiModelProperty(value = "计划名称",required = true)
    private String workPlanName;

    /**
     * 监督单位
     */
    @ApiModelProperty(value = "监督单位",required = true)
    private String supvOrgId;

    @ApiModelProperty(value = "监督单位名称",required = true)
    private String supvOrgName;

    /**
     * 计划编制单位id
     */
    @ApiModelProperty(value = "计划编制单位id")
    private String planOrgId;

    /**
     * 计划编制单位名字
     */
    @ApiModelProperty(value = "计划编制单位名字")
    private String planOrgName;


    private String planUserId;

    private String planUserName;

    /**
     * 监督类型
     */
    @ApiModelProperty(value = "监督类型",required = true)
    private String supvType;

    /**
     * 监督阶段
     */
    @ApiModelProperty(value = "监督阶段",required = true)
    private String supvStage;

    /**
     * 计划监督时间
     */
    @ApiModelProperty(value = "计划监督时间",required = true)
    @JsonFormat(pattern = "yyyy-MM")
    private String planSupvDate;

    /**
     * 监督对象Id
     */
    @ApiModelProperty(value = "监督对象Id")
    private String supvObjId;

    /**
     * 监督对象名称
     */
    @ApiModelProperty(value = "监督对象名称")
    private String supvObjName;

    /**
     * 对象类型
     */
    @ApiModelProperty(value = "对象类型")
    private String supvObjType;

    /**
     * 对象电压等级
     */
    @ApiModelProperty(value = "对象电压等级")
    private String objVoltageLevel;

    /**
     * 关联电站
     */
    @ApiModelProperty(value = "关联电站")
    private String substationName;

    @ApiModelProperty(value = "关联电站电压等级")
    private String substationVoltageLevel;

    @ApiModelProperty(value = "监督对象属性")
    private String objType;

    @ApiModelProperty(value = "监督对象属性名称")
    private String objTypeName;

    @ApiModelProperty(value = "监督对象协议容量(MVA)")
    private Double objCapacity;

    /**
     * 计划执行开始时间
     */
    @ApiModelProperty(value = "计划执行开始时间",required = true)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime effectStartTime;

    /**
     * 计划执行结束时间
     */
    @ApiModelProperty(value = "计划执行结束时间",required = true)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime effectEndTime;

    /**
     * 报告出具时间
     */
    @ApiModelProperty(value = "报告出具时间",required = true)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime reportIssueTime;

    /**
     * 电能质量问题发生时间
     */
    @ApiModelProperty(value = "电能质量问题发生时间",required = true)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime problemOcTime;


    /**
     * 备注
     */
    @ApiModelProperty(value = "备注")
    private String otherRemark;

    @ApiModelProperty(value = "省部门")
    private String province;

    @ApiModelProperty(value = "市部门")
    private String city;

    @ApiModelProperty(value = "县部门")
    private String county;


    @ApiModelProperty(value = "附件名称")
    private String attachmentName;

    /**
     * 0.未上送 1.上送 2.取消上送
     */
    @ApiModelProperty(value = "0.未上送 1.上送 2.取消上送")
    private Integer isUploadHead;

    private String createBy;

    private String updateBy;

    /**
     * 实施状态
     */
    private String  effectStatus;
    /**
     * 实施人id
     */
    private String effectUserId;
    /**
     * 实施人姓名
     */
    private String effectUserName;
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createTime;

    @ApiModelProperty(value = "计划状态")
    private String planStatus;
}
