package com.sooka.sponest.monitor.camera.domain;

import com.fasterxml.jackson.annotation.JsonProperty;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.datascope.base.domain.BaseBusinessEntity;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

/**
 * 摄像头对象 centermonitor_t_camera
 *
 * @author ruoyi
 * @date 2022-06-08
 */
@Data
public class CentermonitorTCamera extends BaseBusinessEntity {
    private static final long serialVersionUID = 1L;

    public Integer pageNum;

    public Integer pageSize;

    private List<CentermonitorTCamera> list = new ArrayList<>();

    /**
     * 主键id
     */
    private String id;
    private String type;
    private String name;//通用名字
    private String total;//视频总数
    private String access;//接入总数
    private String typeName;
    /**
     * 数据状态(1-可用 2-不可用 )
     */
//    @Excel(name = "数据状态(1-可用 2-不可用 )")
    private String dataStatus;

    /**
     * 数据所属部门(政或党的id)
     */
//    @Excel(name = "数据所属部门(政或党的id)")

    private Long dataDeptId;

    /**
     * 摄像头id
     */
//    @Excel(name = "摄像头名称")
    private String cameraId;

    /**
     * 摄像头名称
     */
    @Excel(name = "摄像头名称")
    private String cameraName;

    /**
     * ip
     */
    @Excel(name = "ip")
    private String cameraIp;

    /**
     * 端口
     */
    @Excel(name = "端口")
    private String cameraPort;

    /**
     * 账号
     */
    @Excel(name = "账号")
    private String cameraAccount;

    /**
     * 密码
     */
    @Excel(name = "密码")
    private String cameraPasword;

    /**
     * 摄像头编码
     */
    @Excel(name = "摄像头编码")
    private String cameraCode;

    /**
     * 摄像头厂家(海康、大华)
     */
    @Excel(name = "摄像头厂家(海康、大华)", readConverterExp = "0=海康,1=大华")
    private String cameraFactory;

    /**
     * 融合平台(海康、大华)
     */
    @Excel(name = "融合平台(海康、大华)", readConverterExp = "0=海康平台,1=大华平台")
    private String convergencePlatform;

    /**
     * 所属区域
     */
    @Excel(name = "所属区域")
    private String cameraRegion;

    /**
     * 半径
     */
    @Excel(name = "半径")
    private String cameraRadius;

    /**
     * 高度
     */
    @Excel(name = "高度")
    private String height;

    /**
     * 经度
     */
    @Excel(name = "经度")
    private String longitude;

    /**
     * 维度
     */
    @Excel(name = "纬度")
    private String latitude;

    /**
     * 通道编号
     */
    private String channelNum;

    /**
     * 摄像头类型
     */
    @Excel(name = "摄像头类型", readConverterExp = "0=枪机,1=球机,2=半球")
    private String cameraType;

    /**
     * 运营商类型
     */
    @Excel(name = "运营商类型", readConverterExp = "1=联通,2=移动,3=电信")
    private String operatorType;

    /**
     * 摄像头用途
     */
    @Excel(name = "摄像头用途", readConverterExp = "1=河道,2=高空云台,3=交通,4=矿坑,5=水库")
    private String cameraUse;

    private String deptId;

    /**
     * 摄像头距离
     */
//    @Excel(name = "摄像头距离")
    private String distance;
    /**
     * 摄像头图片
     */
    private String cameraImg;

    @JsonProperty("cameraImages")
    private List<String> cameraImages;

    private List<String> cameraImagesList;

    private String channelCode;
    private String deptLongitude;
    private String deptLatitude;

    private String workingStatus;
    private String offlineReason;
    //在线设备
    private int online;
    //离线设备
    private int offline;
    //摄像头
    private String camera;
    //传感器
    private String device;
    //县区名称
    private String qx;
    //摄像头在线
    private int camera_online;
    //摄像头离线
    private int camera_offline;
    //传感器在线
    private int device_online;
    //传感器离线
    private int device_offline;
    //离线设备统计
    private int device_offline_count;
    //离线原因
    private String offline_reason;
    //离线设备统计
    private String count;
    //设备编码(暂用于执法仪)
    private String deviceCode;
    //唯一编码，默认为国标编码(暂用于执法仪)
    private String deviceSn;
    //接入协议(暂用于执法仪)
    private String deviceProtocolType;
    //设备登录类型(暂用于执法仪)
    private String deviceLoginType;

    @Override
    public String toString() {
        return "CentermonitorTCamera{" +
                "pageNum=" + pageNum +
                ", pageSize=" + pageSize +
                ", list=" + list +
                ", id='" + id + '\'' +
                ", type='" + type + '\'' +
                ", typeName='" + typeName + '\'' +
                ", dataStatus='" + dataStatus + '\'' +

                ", cameraId='" + cameraId + '\'' +
                ", cameraName='" + cameraName + '\'' +
                ", cameraIp='" + cameraIp + '\'' +
                ", cameraPort=" + cameraPort +
                ", cameraAccount='" + cameraAccount + '\'' +
                ", cameraPasword='" + cameraPasword + '\'' +
                ", cameraCode='" + cameraCode + '\'' +
                ", cameraFactory='" + cameraFactory + '\'' +
                ", cameraRegion='" + cameraRegion + '\'' +
                ", cameraRadius='" + cameraRadius + '\'' +
                ", height='" + height + '\'' +
                ", longitude='" + longitude + '\'' +
                ", latitude='" + latitude + '\'' +
                ", channelNum='" + channelNum + '\'' +
                ", cameraType='" + cameraType + '\'' +
                ", operatorType='" + operatorType + '\'' +
                ", cameraUse='" + cameraUse + '\'' +
                ", deptId='" + deptId + '\'' +
                ", distance='" + distance + '\'' +
                ", channelCode='" + channelCode + '\'' +
                ", deptLongitude='" + deptLongitude + '\'' +
                ", deptLatitude='" + deptLatitude + '\'' +
                ", workingStatus='" + workingStatus + '\'' +
                ", offlineReason='" + offlineReason + '\'' +
                ", online=" + online +
                ", offline=" + offline +
                ", camera='" + camera + '\'' +
                ", device='" + device + '\'' +
                ", qx='" + qx + '\'' +
                ", camera_online=" + camera_online +
                ", camera_offline=" + camera_offline +
                ", device_online=" + device_online +
                ", device_offline=" + device_offline +
                ", device_offline_count=" + device_offline_count +
                ", offline_reason='" + offline_reason + '\'' +
                ", count='" + count + '\'' +
                '}';
    }
}
