package com.njcn.device.pms.pojo.po;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.njcn.db.bo.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.time.LocalDate;

/**
 * <p>
 *
 * </p>
 *
 * @author hongawen
 * @since 2022-10-14
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("pms_monitor")
public class Monitor extends BaseEntity {

    private static final long serialVersionUID = 1L;

    /**
     * 监测点ID
     */
    @TableId
    private String id;

    private String monitorId;

    /**
     * 监测点名称
     */
    private String name;

    /**
     * 组织机构名称
     */
    private String orgName;

    /**
     * 组织机构ID(外键)
     */
    private String orgId;

    /**
     * 运维单位名称
     */
    private String operationName;

    /**
     * 运维单位ID(外键)
     */
    private String operationId;

    /**
     * 变电站名称
     */
    private String powerrName;

    /**
     * 电站ID(外键)
     */
    private String powerrId;


    /**
     * 监测母线名称
     */
    private String lineName;

    /**
     * 监测母线
     */
    private String lineId;

    /**
     * 监测线路号
     */
    private Integer lineNum;

    /**
     * 投运日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDate putDate;

    /**
     * 中台母线ID
     */
    @TableField(exist = false)
    private String busId;


    /**
     * 中台母线ID
     */
    @TableField(exist = false)
    private String midStation;

    /**
     * 电压等级(字典)
     */
    private String voltageLevel;

    /**
     * 监测点状态(字典)
     */
    private String monitorState;

    /**
     * 监测点类型(字典)
     */
    private String monitorType;

    /**
     * 最小短路容量
     */
    private Float minShortCircuitCapacity;

    /**
     * 供电设备容量
     */
    private Float powerSupplyEqCapacity;

    /**
     * 用户协议容量
     */
    private Float userAgreementCapacity;

    /**
     * 基准短路容量
     */
    @TableField(exist = false)
    private Float standShortCapacity;

    /**
     * 电压偏差限值（上）
     */
    private Float voltageDeviationUpperLimit;

    /**
     * 电压偏差限值（下）
     */
    private Float voltageDeviationLowerLimit;

    /**
     * 电压互感器类型(字典)
     */
    private String potentialTransFormerType;

    /**
     * 中性点接地方式(字典)
     */
    private String neutralGroundingMode;

    /**
     * 是否用户专线(字典)
     */
    private Integer isSpecialSupplyElectricity;

    /**
     * 监测点标签
     */
    private String monitorTag;


    /**
     * 三级级监测对象类型
     */
    private String objType;

    /**
     * 101 电网侧，102 用户侧
     */
    private String powerFlag;

    /**
     * 监测对象编号
     */
    private String monitorObjectId;

    /**
     * 监测对象名称
     */
    private String monitorObjectName;

    /**
     * 统计间隔
     */
    private Integer statisticalInterval;

    /**
     * 关联的监测终端编号(外键)
     */
    private String terminalId;


    /**
     * 关联的监测终端同源编号(外键)
     */
    @TableField(exist = false)
    private String terminalCode;

    /**
     * 监测终端接线方式(字典)
     */
    private String terminalWiringMethod;
    /**
     * 是否是上送国网监测点,0-否 1-是
     */
    private Integer isUpToGrid;

    /**
     * 数据状态：0-删除；1-正常；
     */
    private Integer status;

    /**
     * 是否专项分析监测点 0-否 1-是
     */
    private Integer isSpecialMonitor;

    /**
     * pt变比
     */
    private Float pt1;

    /**
     * pt变比
     */
    private Float pt2;

    /**
     * ct变比
     */
    private Float ct1;

    /**
     * ct变比
     */
    private Float ct2;

    /**
     * 监测点接线相别（0，单相,1，三相，默认三相）
     */
    private String ptPhaseType;

    /**
     * 是否发电用户：0-否；1-是；
     */
    private Integer ifPowerUser;

    /**
     * 场站属性
     */
    private String fieldStation;

    /**
     * 行业类型
     */
    private String tradeCode;
    /**
     * 0.未上送 1.已上送 2.取消上送 3.待重新上送(用于典型负荷)
     */
    private Integer isUploadHead;

    /**
     * 0.未上送 1.已上送 2.取消上送 3.待重新上送(用于主网监测点)
     */
    private Integer monitorUploadStatus;

    /**
     * 0.未上送 1.已上送 2.取消上送 3.待重新上送(限值)
     */
    private Integer monitorOverlimitStatus;


    /**
     * 牵引站id
     */
    private String tractionId;

    /**
     * 装置的ip
     */
    @TableField(exist = false)
    private String devIp;
}
