package com.njcn.supervision.pojo.dto;

import cn.afterturn.easypoi.excel.annotation.Excel;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;

@Data
public class SensitiveReportExcel implements Serializable {


    /**
     * 对应用户名称
     */
    @Excel(name = "*项目名称", width = 30)
    @NotBlank(message = "项目名称不能为空")
    private String projectName;

    @Excel(name = "*用户性质", width = 30, replace = {"新建电网工程_0", "扩建电网工程_1", "新建非线性负荷用户_2", "扩建非线性负荷用户_3", "新建新能源发电站_4", "扩建新能源发电站_5", "_null"})
    @NotNull(message = "用户性质不能为空")
    private Integer userType;

    @Excel(name = "*所属地市", width = 30)
    @NotBlank(message = "所属地市不能为空")
    private String city;

    @Excel(name = "*归口管理部门", width = 30)
    @NotBlank(message = "归口管理部门不能为空")
    private String responsibleDepartment;
    
    @Excel(name = "*用户状态", width = 30, replace = {"可研_0", "建设_1", "运行_2", "退运_3", "_null"})
    @NotNull(message = "用户状态不能为空")
    private Integer userStatus;

    @Excel(name = "*厂站名称", width = 30)
    @NotBlank(message = "厂站名称不能为空")
    private String substation;


//    @Excel(name = "填报人", width = 30)
//    //@NotBlank(message = "填报人不能为空")
//    private String reporter;
//
//    @Excel(name = "填报日期(yyyy-MM-dd)", width = 30)
//    //@NotBlank(message = "填报日期不能为空")
//    private String reportDate;
//
//    @Excel(name = "填报部门", width = 30)
//    //@NotBlank(message = "填报部门不能为空")
//    private String orgId;


    @Excel(name = "*工程预期投产日期(yyyy-MM-dd)", width = 30)
    private String expectedProductionDate;

    @Excel(name = "电压等级", width = 30)
    //@NotBlank(message = "电压等级不能为空")
    private String voltageLevel;

    @Excel(name = "预测评估单位", width = 30)
    //@NotBlank(message = "预测评估单位不能为空")
    private String evaluationDept;

    @Excel(name = "预测评估结论", width = 30)
    //@NotBlank(message = "预测评估结论不能为空")
    private String evaluationConclusion;
    //----------------------------以上基础数据------------------------------------

    @Excel(name = "PCC点", width = 30)
    //@NotBlank(message = "PCC点不能为空")
    private String pccPoint;

    @Excel(name = "基准短路容量(MVA)", width = 30)
    //@NotBlank(message = "基准短路容量(MVA)不能为空")
    private BigDecimal baseShortCircuitCapacity;

    @Excel(name = "系统最小短路容量(MVA)", width = 30)
    //@NotBlank(message = "系统最小短路容量(MVA)不能为空")
    private BigDecimal minShortCircuitCapacity;

    @Excel(name = "PCC供电设备容量(MVA)", width = 30)
    //@NotBlank(message = "PCC供电设备容量(MVA)不能为空")
    private BigDecimal pccEquipmentCapacity;

    @Excel(name = "用户用电协议容量(MVA)", width = 30)
    //@NotBlank(message = "用户用电协议容量(MVA)不能为空")
    private BigDecimal userAgreementCapacity;

    @Excel(name = "评估类型", width = 30)
    //@NotBlank(message = "评估类型不能为空")
    private String evaluationType;

    @Excel(name = "非线性负荷类型", width = 30)
    //@NotBlank(message = "非线性负荷类型不能为空")
    private String nonlinearLoadType;

    @Excel(name = "预测评估审核单位", width = 30)
    //@NotBlank(message = "预测评估审核单位不能为空")
    private String evaluationChekDept;

    @Excel(name = "是否需要治理", width = 30, replace = {"否_0", "是_1", "_null"})
    //@NotBlank(message = "是否需要治理不能为空")
    private Integer needGovernance;

    @Excel(name = "是否开展背景测试", width = 30, replace = {"否_0", "是_1", "_null"})
    //@NotBlank(message = "是否开展背景测试不能为空")
    private Integer backgroundTestPerformed;

    @Data
    @EqualsAndHashCode(callSuper = true)
    public static class SensitiveReportExcelMsg extends SensitiveReportExcel implements Serializable {
        @Excel(name = "错误信息描述", width = 30)
        private String msg;

    }

}
