package com.hw.ems.api.domain;

import com.hw.common.core.annotation.Excel;
import com.hw.common.core.web.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;

/**
 * 计量设备信息对象 base_monitor_info
 *
 * @author sf
 * @date 2023-04-23
 */
public class BaseMonitorInfo extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键标识 */
    @Excel(name = "主键标识")
    private Long objid;

    /** 父级编号 */
    @Excel(name = "父级编号")
    private Long parentId;

    /** 计量设备编号 */
    @Excel(name = "计量设备编号")
    private String monitorId;

    /** 计量设备名称 */
    @Excel(name = "计量设备名称")
    private String monitorName;

    /** 计量设备位置 */
    @Excel(name = "计量设备位置")
    private String monitorAddr;

    /** 计量设备类型 */
    @Excel(name = "计量设备类型（2-电；3水）")
    private Long monitorType;

    /** CBS房间编号 */
    @Excel(name = "CBS房间编号")
    private String roomCode;

    /** CBS房间名称 */
    @Excel(name = "CBS房间名称")
    private String roomName;

    /** CBS物理编号 */
    @Excel(name = "CBS物理编号")
    private String physicalCode;

    /** 采集设备编号 */
    @Excel(name = "采集设备编号")
    private String collectDeviceId;

    /** 公摊表类型 */
    @Excel(name = "公摊表类型（0-公共表；1-单元表；2-无）")
    private Integer publicShareType;

    /** 表具层级 */
    @Excel(name = "表具层级")
    private Long monitorHierarchy;

    /** 祖级列表 */
    @Excel(name = "祖级列表")
    private String ancestors;

    /** 等级 */
    @Excel(name = "等级")
    private Integer grade;

    /** 建筑类型 */
    @Excel(name = "建筑类型")
    private String buildObjid;

    /** 分项类型 */
    @Excel(name = "分项类型")
    private String subentryId;

    /** 业态类型 */
    @Excel(name = "业态类型")
    private String businessId;

    /** 传感器仪表 */
    @Excel(name = "传感器仪表")
    private String meterTypeId;

    /** 测量器具 */
    @Excel(name = "测量器具")
    private String meterId;

    /** 修正值 */
    @Excel(name = "修正值")
    private BigDecimal correctValue;

    /** PT值 */
    @Excel(name = "PT值")
    private Long pt;

    /** CT值 */
    @Excel(name = "CT值")
    private Long ct;

    /** 是否虚拟表 */
    @Excel(name = "是否虚拟表")
    private String isAmmeter;

    /** 通断复位 */
    private Long isKeyMonitor;

    /** 是否断路 */
    @Excel(name = "是否断路")
    private Long isCircuit;

    /** 权限标识（部门） */
    private Long deptId;

    /** 权限标识（用户） */
    private Long userId;

    private String buildName;

    private String subentryName;

    private String businessName;

    /** 计量设备状态 */
    @Excel(name = "计量设备状态")
    private Long monitorStatus;

    /** 子部门 */
    private List<BaseMonitorInfo> children = new ArrayList<BaseMonitorInfo>();

    private Boolean flag;

    public String getPhysicalCode() {
        return physicalCode;
    }

    public void setPhysicalCode(String physicalCode) {
        this.physicalCode = physicalCode;
    }

    public String getRoomCode() {
        return roomCode;
    }

    public void setRoomCode(String roomCode) {
        this.roomCode = roomCode;
    }

    public String getRoomName() {
        return roomName;
    }

    public void setRoomName(String roomName) {
        this.roomName = roomName;
    }

    public Long getMonitorHierarchy() {
        return monitorHierarchy;
    }

    public void setMonitorHierarchy(Long monitorHierarchy) {
        this.monitorHierarchy = monitorHierarchy;
    }

    public Boolean getFlag() {
        return flag;
    }

    public void setFlag(Boolean flag) {
        this.flag = flag;
    }


    public String getAncestors() {
        return ancestors;
    }

    public void setAncestors(String ancestors) {
        this.ancestors = ancestors;
    }

    public String getBuildName() {
        return buildName;
    }

    public void setBuildName(String buildName) {
        this.buildName = buildName;
    }

    public String getSubentryName() {
        return subentryName;
    }

    public void setSubentryName(String subentryName) {
        this.subentryName = subentryName;
    }

    public void setObjid(Long objid)
    {
        this.objid = objid;
    }

    public Long getObjid()
    {
        return objid;
    }
    public void setMonitorId(String monitorId)
    {
        this.monitorId = monitorId;
    }

    public String getMonitorId()
    {
        return monitorId;
    }
    public void setMonitorName(String monitorName)
    {
        this.monitorName = monitorName;
    }

    public String getMonitorName()
    {
        return monitorName;
    }
    public void setMonitorAddr(String monitorAddr)
    {
        this.monitorAddr = monitorAddr;
    }

    public String getMonitorAddr()
    {
        return monitorAddr;
    }
    public void setMonitorType(Long monitorType)
    {
        this.monitorType = monitorType;
    }

    public Long getMonitorType()
    {
        return monitorType;
    }
    public void setMonitorStatus(Long monitorStatus)
    {
        this.monitorStatus = monitorStatus;
    }

    public Long getMonitorStatus()
    {
        return monitorStatus;
    }
    public void setCollectDeviceId(String collectDeviceId)
    {
        this.collectDeviceId = collectDeviceId;
    }

    public String getCollectDeviceId()
    {
        return collectDeviceId;
    }
    public void setGrade(Integer grade)
    {
        this.grade = grade;
    }

    public Integer getGrade()
    {
        return grade;
    }
    public void setBuildId(String buildObjid)
    {
        this.buildObjid = buildObjid;
    }

    public String getBuildId()
    {
        return buildObjid;
    }
    public void setSubentryId(String subentryId)
    {
        this.subentryId = subentryId;
    }

    public String getSubentryId()
    {
        return subentryId;
    }
    public void setBusinessId(String businessId)
    {
        this.businessId = businessId;
    }

    public String getBusinessId()
    {
        return businessId;
    }
    public void setMeterTypeId(String meterTypeId)
    {
        this.meterTypeId = meterTypeId;
    }

    public String getMeterTypeId()
    {
        return meterTypeId;
    }
    public void setMeterId(String meterId)
    {
        this.meterId = meterId;
    }

    public String getMeterId()
    {
        return meterId;
    }
    public void setCorrectValue(BigDecimal correctValue)
    {
        this.correctValue = correctValue;
    }

    public BigDecimal getCorrectValue()
    {
        return correctValue;
    }
    public void setPt(Long pt)
    {
        this.pt = pt;
    }

    public Long getPt()
    {
        return pt;
    }
    public void setCt(Long ct)
    {
        this.ct = ct;
    }

    public Long getCt()
    {
        return ct;
    }
    public void setIsAmmeter(String isAmmeter)
    {
        this.isAmmeter = isAmmeter;
    }

    public String getIsAmmeter()
    {
        return isAmmeter;
    }
    public void setIsKeyMonitor(Long isKeyMonitor)
    {
        this.isKeyMonitor = isKeyMonitor;
    }

    public Long getIsKeyMonitor()
    {
        return isKeyMonitor;
    }
    public void setIsCircuit(Long isCircuit)
    {
        this.isCircuit = isCircuit;
    }

    public Long getIsCircuit()
    {
        return isCircuit;
    }
    public void setDeptId(Long deptId)
    {
        this.deptId = deptId;
    }

    public Long getDeptId()
    {
        return deptId;
    }
    public void setUserId(Long userId)
    {
        this.userId = userId;
    }

    public Long getUserId()
    {
        return userId;
    }

    public Long getParentId() {
        return parentId;
    }

    public void setParentId(Long parentId) {
        this.parentId = parentId;
    }

    public String getBusinessName() {
        return businessName;
    }

    public void setBusinessName(String businessName) {
        this.businessName = businessName;
    }

    public List<BaseMonitorInfo> getChildren() {
        return children;
    }

    public void setChildren(List<BaseMonitorInfo> children) {
        this.children = children;
    }

    public Integer getPublicShareType() {
        return publicShareType;
    }

    public void setPublicShareType(Integer publicShareType) {
        this.publicShareType = publicShareType;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
                .append("objid", getObjid())
                .append("parentId", getParentId())
                .append("monitorId", getMonitorId())
                .append("monitorName", getMonitorName())
                .append("monitorAddr", getMonitorAddr())
                .append("monitorType", getMonitorType())
                .append("monitorStatus", getMonitorStatus())
                .append("collectDeviceId", getCollectDeviceId())
                .append("ancestors", getAncestors())
                .append("grade", getGrade())
                .append("buildId", getBuildId())
                .append("subentryId", getSubentryId())
                .append("businessId", getBusinessId())
                .append("meterTypeId", getMeterTypeId())
                .append("meterId", getMeterId())
                .append("correctValue", getCorrectValue())
                .append("pt", getPt())
                .append("ct", getCt())
                .append("isAmmeter", getIsAmmeter())
                .append("isKeyMonitor", getIsKeyMonitor())
                .append("isCircuit", getIsCircuit())
                .append("deptId", getDeptId())
                .append("userId", getUserId())
                .append("createBy", getCreateBy())
                .append("createTime", getCreateTime())
                .append("updateBy", getUpdateBy())
                .append("updateTime", getUpdateTime())
                .toString();
    }
}
