package com.huatek.frame.base.vo;

import com.huatek.torch.sql.annotation.FieldName;
import com.huatek.torch.sql.beans.PageBean;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.time.LocalDate;
import java.util.Map;


@ApiModel(value = "BusiSensorVo", description = "传感器", parent = PageBean.class)
@Data
@EqualsAndHashCode(callSuper = false)
public class BusiSensorVo implements Serializable {
    private static final long serialVersionUID = 1L;

    /**
     * 主键ID
     */
    @ApiModelProperty(value = "主键ID", name = "id")
    private String id;

    /**
     * 站点ID
     */
    @ApiModelProperty(value = "站点ID", name = "siteId")
    private String siteId;

    @ApiModelProperty(value = "站点设备树ID", name = "mainTreeId")
    private String mainTreeId;
    private String mainTreeName;

    @ApiModelProperty(value = "外挂设备树ID", name = "subTreeId")
    private String subTreeId;
    private String subTreeName;

    /**
     * 设备树ID
     */
    @ApiModelProperty(value = "设备树ID", name = "equipmentId")
    private String equipmentId;

    @ApiModelProperty(value = "主设备名", name = "mainEquipmentName")
    private String mainEquipmentName;

    
    @ApiModelProperty(value = "外挂装置信息ID", name = "externalEquipment")
    private String externalEquipment;

    @ApiModelProperty(value = "外挂装置名", name = "subEquipmentName")
    private String subEquipmentName;

    /**
     * 传感器系统编码
     */
    @ApiModelProperty(value = "传感器系统编码d", name = "sensorCode")
    private String sensorCode;

    /**
     * 传感器名称
     */
    @ApiModelProperty(value = "传感器名称", name = "sensorName")
    private String sensorName;

    @ApiModelProperty(value = "传感器名称描述", name = "sensorNameDetail")
    private String sensorNameDetail;

    /**
     * 传感器标牌
     */
    @ApiModelProperty(value = "传感器标牌", name = "sensorBrand")
    private String sensorBrand;

    /**
     * 安装位置 O：全相 1:A相 2:B 相 3:C相
     */
    @ApiModelProperty(value = "安装位置 ", name = "position")
    private String position;

    /**
     * 安装位置描述
     */
    @ApiModelProperty(value = "安装位置描述", name = "positionDes")
    private String positionDes;

    /**
     * 生产厂家
     */
    @ApiModelProperty(value = "生产厂家", name = "manufactor")
    private String manufactor;

    /**
     * 设备生产时间
     */
    @ApiModelProperty(value = "设备生产时间", name = "productionDate")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private LocalDate productionDate;

    /**
     * 设备投运时间
     */
    @ApiModelProperty(value = " 设备投运时间", name = "useDate")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private LocalDate useDate;

    /**
     * 大类
     */
    @ApiModelProperty(value = "外挂装置类型", name = "equipmentType")
    private String equipmentType;

    @ApiModelProperty(value = "1：变压器 ; 2: GIS ; 3: 测温 ; 4：避雷器;  5：其他; 6: 发电机; 7: 电缆", name = "type")
    private String type;

    /** SF6监测部位 */
    @FieldName("monitor_site")
    private String monitorSite;

    /**
     * 预警值
     */
    @ApiModelProperty(value = "预警值", name = "warningValue")
    private String warningValue;

    /**
     * 外增长率
     */
    @ApiModelProperty(value = "增长率", name = "growRate")
    private String growRate;

    /**
     * SF6标准压力
     */
    @ApiModelProperty(value = "SF6标准压力", name = "standardPressure")
    private String standardPressure;

    @ApiModelProperty(name = "stabilityList", value = "稳定性指标")
    private Map<String, Object> stabilityMap;
    
    
    /**
     * SF6标准压力
     */
    @ApiModelProperty(value = "局放量告警值", name = "pdValue")
    private String pdValue;

    /**
     * 1: 多组分 2：单组分
     */
    @ApiModelProperty(value = "油色谱类型", name = "oilType")
    private String oilType;

    /**
     * 1：色谱柱 2：光声光谱
     */
    @ApiModelProperty(value = "油色谱类型", name = "oilDetailType")
    private String oilDetailType;

    /**
     * 发电机振动类型：
     * 1：上机架振动,2：下机架振动,3：顶盖振动,4：定子机架振动,5：上导摆动,6：下导摆动,7：定子铁芯振动,8：法兰轴摆动,9：水导摆动,10：集电环摆动,
     * 11：大轴窜动,12：空气间隙上,13：空气间隙下,14：顶盖压力脉动,15：温度装置,16：局放装置,17：键相,
     * 18：导叶后压力脉动,19：蜗壳进口压力脉动,20：尾水管压力脉动
     */
    @ApiModelProperty(value = "振动类型", name = "amplType")
    private String amplType;
}
