package com.aidex.common.plush.domain;

import lombok.Data;
import com.aidex.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.aidex.common.utils.log.annotation.FieldRemark;
import com.aidex.common.utils.log.annotation.LogField;
import com.aidex.common.annotation.Excel;

/**
 * GPS位置信息推送数据对象 gps_location_plush
 * @author gshk
 * @email shs@woshs.com
 * @date 2024-03-27
 */
@Data
public class GpsLocationPlush
{
    private static final long serialVersionUID = 1L;

    private String id;

    /** 设备编号[在GPS系统的唯一ID，即设备IMEI号] */
    @Excel(name = "设备编号[在GPS系统的唯一ID，即设备IMEI号]")
    @LogField
    @FieldRemark(name = "设备编号[在GPS系统的唯一ID，即设备IMEI号]",field = "macid")
    private String macid;

    /** Gps时间 utc 毫秒时间戳; wifi、Lbs定位或状态、心跳则最后一次Gps时间;未上传过为0; */
    @Excel(name = "Gps时间 utc 毫秒时间戳")
    @LogField
    @FieldRemark(name = "Gps时间 utc 毫秒时间戳",field = "gpsTime")
    private Long gpsTime;

    /** 信号时间 utc 毫秒时间戳 */
    @Excel(name = "信号时间 utc 毫秒时间戳")
    @LogField
    @FieldRemark(name = "信号时间 utc 毫秒时间戳",field = "heartTime")
    private Long heartTime;

    /** 最后一次更新位置[gps\wifi\LBS都会更新]时间 utc 毫秒时间戳; 只有位置有改变才更新时间,静止状态时间不变; */
    @Excel(name = "最后一次更新位置")
    @LogField
    @FieldRemark(name = "最后一次更新位置",field = "updTime")
    private Long updTime;

    /** 速度 */
    @Excel(name = "速度")
    @LogField
    @FieldRemark(name = "速度",field = "speed")
    private String speed;

    /** 方向 */
    @Excel(name = "方向")
    @LogField
    @FieldRemark(name = "方向",field = "dir")
    private String dir;

    /** 纬度 */
    @Excel(name = "纬度")
    @LogField
    @FieldRemark(name = "纬度",field = "lat")
    private String lat;

    /** 经度 */
    @LogField
    @FieldRemark(name = "经度",field = "lon")
    private String lon;

    /** 地图纬度，默认百度纬度 */
    @LogField
    @FieldRemark(name = "地图纬度，默认百度纬度",field = "mapLat")
    private String mapLat;

    /** 地图经度，默认百度经度 */
    @LogField
    @FieldRemark(name = "地图经度，默认百度经度",field = "mapLon")
    private String mapLon;

    /** 状态逗号分割(不支持为空):
---第一位:acc状 1 开，0关 ---第二位:设防状态，1设防，0撤防
---第三位:油路，1 接通，0是断开
---第四位:已删除，
---第五位:门状态, 1 开，0关 ---第六位:定位状态，1为GPS定位，0为LBS\WIFI等其它定位 ---第七位:主电状态 */
    @LogField
    @FieldRemark(name = "状态逗号分割(不支持为空)",field = "stats")
    private String stats;

    /** 数值状态逗号分割(不支持为空): --第一位: 里程【米】 --第二位: 油量， 主油箱油量【L】 --第三位:重量， --第四位:温度1， 多路用 ‘|’ 分隔开( ̊C) --第五位:备用电池电量，(大于100需要-100为V，其它为百分比) --第六位:主电源电压
--第七位:GPS颗数(gpscount)， --第八位: gsm信号强度(gsmlevel), --第九位: 正反转(ClockwiseState), --第十位: 车载状态(VehicleState), --第十一位:龙锁数(lockcnt) , --第十二位:副油箱油量(ViceOil) --第十三位:已删除 --第十四位:已删除 --第十五位:高度 (height)
--第十六位:定位信号类型(SignalType) // 0:GPS,16:LBS(基站) --第十七位:步数(StepNumber)
 */
    @LogField
    @FieldRemark(name = "数值状态逗号分割(不支持为空)",field = "value")
    private String value;

    public void setMacid(String macid)
    {
        this.macid = macid;
    }

    public String getMacid()
    {
        return macid;
    }

    public void setGpsTime(Long gpsTime)
    {
        this.gpsTime = gpsTime;
    }

    public Long getGpsTime()
    {
        return gpsTime;
    }

    public void setHeartTime(Long heartTime)
    {
        this.heartTime = heartTime;
    }

    public Long getHeartTime()
    {
        return heartTime;
    }

    public void setUpdTime(Long updTime)
    {
        this.updTime = updTime;
    }

    public Long getUpdTime()
    {
        return updTime;
    }

    public void setSpeed(String speed)
    {
        this.speed = speed;
    }

    public String getSpeed()
    {
        return speed;
    }

    public void setDir(String dir)
    {
        this.dir = dir;
    }

    public String getDir()
    {
        return dir;
    }

    public void setLat(String lat)
    {
        this.lat = lat;
    }

    public String getLat()
    {
        return lat;
    }

    public void setLon(String lon)
    {
        this.lon = lon;
    }

    public String getLon()
    {
        return lon;
    }

    public void setMapLat(String mapLat)
    {
        this.mapLat = mapLat;
    }

    public String getMapLat()
    {
        return mapLat;
    }

    public void setMapLon(String mapLon)
    {
        this.mapLon = mapLon;
    }

    public String getMapLon()
    {
        return mapLon;
    }

    public void setStats(String stats)
    {
        this.stats = stats;
    }

    public String getStats()
    {
        return stats;
    }

    public void setValue(String value)
    {
        this.value = value;
    }

    public String getValue()
    {
        return value;
    }


    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("macid", getMacid())
            .append("gpsTime", getGpsTime())
            .append("heartTime", getHeartTime())
            .append("updTime", getUpdTime())
            .append("speed", getSpeed())
            .append("dir", getDir())
            .append("lat", getLat())
            .append("lon", getLon())
            .append("mapLat", getMapLat())
            .append("mapLon", getMapLon())
            .append("stats", getStats())
            .append("value", getValue())
            .append("id", getId())
            .toString();
    }
}
