package com.mosty.base.model.dto.wzzx;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.mosty.base.model.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Date;

/**
 * @author 晏大兵
 * @ClassName: LocationInfo
 * @Description: (位置信息主表)
 * @date 2022年4月17日 下午11:29:43
 */
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@ApiModel(value = "位置信息实体", description = "位置信息实体")
public class LocationInfo extends BaseEntity {

    // eq查询
    public static final transient String PAGE_PAR_EQ = "id,deptId,userId,sourceName,sourceCode,locationType,provider,accessNumberType,accessNumber";
    // like查询
    public static final transient String PAGE_PAR_LIKE = "deptName,userName,poiName,address";
    public static final String[] PAR_EQ = PAGE_PAR_EQ.split(",");
    public static final String[] PAR_LIKE = PAGE_PAR_LIKE.split(",");
    private static final long serialVersionUID = 1L;

    @TableId(value = "id", type = IdType.INPUT)
    @ApiModelProperty(value = "id", name = "id")
    private String id;

    @ApiModelProperty(value = "数据来源名称", name = "sourceName")
    private String sourceName;

    @ApiModelProperty(value = "数据来源 默认为 融合计算", name = "sourceCode")
    private String sourceCode;

    @ApiModelProperty(value = "报送数据的用户名称", name = "userName")
    private String userName;

    @ApiModelProperty(value = "报送数据的用户ID(sfzh)", name = "userId")
    private String userId;

    @ApiModelProperty(value = "定位类型", name = "locationType")
    private String locationType;

    @ApiModelProperty(value = "坐标来源(1.GPS 2.融合通讯 3.对讲机 4.执法记录仪)", name = "zbly")
    private String zbly;

    @ApiModelProperty(value = "精度", name = "accuracy")
    private Double accuracy;

    @ApiModelProperty(value = "角度", name = "bearing")
    private Double bearing;

    @ApiModelProperty(value = "提供者", name = "provider")
    private String provider;

    @ApiModelProperty(value = "星数", name = "satellites")
    private Integer satellites;

    @ApiModelProperty(value = "国家", name = "country")
    private String country;

    @ApiModelProperty(value = "省", name = "provinc")
    private String provinc;

    @ApiModelProperty(value = "市", name = "city")
    private String city;

    @ApiModelProperty(value = "城市编码", name = "cityCode")
    private String cityCode;

    @ApiModelProperty(value = "区", name = "district")
    private String district;

    @ApiModelProperty(value = "区域码", name = "adCode")
    private String adCode;

    @ApiModelProperty(value = "地址", name = "address")
    private String address;

    @ApiModelProperty(value = "地址简称", name = "poiName")
    private String poiName;

    @ApiModelProperty(value = "原始经度(上报的原始数据未进行转换)", name = "sourceLng")
    private Double sourceLng;

    @ApiModelProperty(value = "原始纬度(上报的原始数据未进行转换)", name = "sourceLat")
    private Double sourceLat;

    /** =====位置原始数据开始===== **/
    @ApiModelProperty(value = "消息ID", name = "messageID")
    protected short messageId;

    @ApiModelProperty(value = "消息流水号", name = "serialNumber")
    protected short serialNumber;

    @ApiModelProperty(value = "消息包版本", name = "version")
    protected byte version;

    @ApiModelProperty(value = "接入编号编码类型，0:十六进制；1: ASCII编码；2: GBK编码；", name = "accessNumberType")
    private int accessNumberType;

    @ApiModelProperty(value = "接入编号", name = "accessNumber")
    private String accessNumber;

    @ApiModelProperty(value = "经度(转WGS84后的值)", name = "lng")
    private Double lng;

    @ApiModelProperty(value = "纬度(转WGS84后的值)", name = "lat")
    private Double lat;

    @ApiModelProperty(value = "高程，单位米", name = "altitude")
    private Integer altitude;

    @ApiModelProperty(value = "速度，单位Km/h", name = "speed")
    private Float speed;

    @ApiModelProperty(value = "方向，0-359，正北为0，顺时针", name = "direction")
    private Integer direction;

    @ApiModelProperty(value = "定位时间", name = "time")
    private Date time;

    @ApiModelProperty(value = "是否打开ACC", name = "openAcc")
    private boolean openAcc;

    @ApiModelProperty(value = "是否已定位", name = "located")
    private boolean located;

    @ApiModelProperty(value = "是否是西经(负值)", name = "westLng")
    private boolean westLng;

    @ApiModelProperty(value = "是否是南纬(负值)", name = "southLat")
    private boolean southLat;

    @ApiModelProperty(value = "是否是实时位置", name = "realtime")
    private boolean realtime;

    @ApiModelProperty(value = "是否紧急报警", name = "urgency")
    private boolean urgency;

    @ApiModelProperty(value = "是否超速报警", name = "overspeed")
    private boolean overspeed;

    @ApiModelProperty(value = "是否断电报警", name = "outage")
    private boolean outage;

    @ApiModelProperty(value = "是否碰撞报警", name = "crash")
    private boolean crash;

    @ApiModelProperty(value = "用户ID", name = "yhid")
    private String yhid;

    @ApiModelProperty(value = "报备ID,接入编号", name = "bbid")
    private String bbid;

    @ApiModelProperty(value = "警组ID", name = "jzid")
    private String jzid;

    @ApiModelProperty(value = "警组名称", name = "jzmc")
    private String jzmc;

    @ApiModelProperty(value = "上次经度 经度(转WGS84后的值)", name = "lng")
    private Double lastLng;

    @ApiModelProperty(value = "上次纬度 纬度(转WGS84后的值)", name = "lat")
    private Double lastLat;

    @ApiModelProperty(value = "上次定位时间", name = "time")
    private Date lastTime;

    @ApiModelProperty(value = "部门Id", name = "deptId")
    private String deptId;

    @ApiModelProperty(value = "部门名称", name = "deptName")
    private String deptName;

    @ApiModelProperty(value = "所属县公安局")
    private String ssxgaj;

    @ApiModelProperty(value = "所属县公安局代码")
    private String ssxgajId;

    @ApiModelProperty(value = "所属市公安局")
    private String sssgaj;

    @ApiModelProperty(value = "所属市公安局代码")
    private String sssgajId;

    @ApiModelProperty(value = "唯一标识")
    private String wybs;

    @ApiModelProperty(value = "设备ID（UDP有才推送）")
    private String sbid;

    @ApiModelProperty(value = "设备名称（UDP有才推送）")
    private String sbmc;

    /** =====位置原始数据结束===== **/

}
