GpsEntity.java 7.72 KB
package com.bsth.entity;

import com.bsth.client.pd.protocol.BasicInfo;
import com.bsth.data.schedule.entity.ScheduleRealInfo;
import com.bsth.util.geo.Point;
import org.apache.commons.lang3.StringUtils;

import java.io.Serializable;

/**
 * @author PanZhao
 * @ClassName: GpsRealData
 * @Description: TODO(HTTP接口的实时GPS数据)
 * @date 2016年5月11日 下午4:32:07
 */
public class GpsEntity implements Serializable {

    private static final long serialVersionUID = 123456789L;

    /*** 线路编码 */
    private String lineId;

    /*** 设备编码 */
    private String deviceId;

    /*** 经度 */
    private Float lon;

    /*** 纬度 */
    private Float lat;

    /*** 发送时间戳 */
    private Long timestamp;

    /*** 速度 */
    private Float speed;

    /*** 方向(角度) */
    private float direction;

    /*** 营运状态( 0 营运 ,1 非营运, -1 无效) */
    private Integer state;

    /*** 上下行(0 上行 , 1 下行 , -1 无效) */
    private Byte upDown;

    /**
     * 当前站点编码
     */
    private String stationCode;
    private String stationName;
    private int stationNo;

    /**
     * 0: 站外 1: 站内 2:场内
     */
    private int inOut;

    /**
     * 停车场编码
     */
    private String parkCode;

    /**
     * 进站距离
     */
    private Double inStationDistance;

    /**
     * 出站距离
     */
    private Double outStationDistance;

    private int version;

    /*** gps是否有效 设备端发送的状态*/
    private int valid;

    /**
     * 网关收到时间
     */
    private Long serverTimestamp;

    /**
     * 越界距离
     */
    private double overstepDistance;

    private String nbbm;

    /**
     * 班次信息
     */
    private ScheduleRealInfo sch;

    /**
     * 无信号,系统平滑过渡的时间
     */
    private Long transitionTime;

    /**
     * 到下一站的距离
     */
    private Double distance;

    /**
     * 到下一站的时间,秒
     */
    private int seconds;

    /**
     * 是否对外发布
     */
    private boolean release = true;

    public String getCode() {
        return lineId + "_" + upDown;
    }

    public static GpsEntity getInstance(BasicInfo basicInfo, int version) {
        if (StringUtils.isBlank(basicInfo.getDeviceId()))
            return null;

        GpsEntity gps = new GpsEntity();

        gps.setDeviceId(basicInfo.getDeviceId());
        gps.setTimestamp(basicInfo.getTimestamp());
        gps.setLat(basicInfo.getLat());
        gps.setLon(basicInfo.getLon());
        gps.setDirection((float) basicInfo.getDirection() / 10);
        gps.setValid(basicInfo.getGpsValid());
        gps.setUpDown(basicInfo.getUpOrDown());
        gps.setSpeed((float) basicInfo.getSpeedGps() / 10);
        gps.setLineId(String.valueOf(basicInfo.getLineId()));
        gps.setVersion(version);
        gps.setServerTimestamp(System.currentTimeMillis());

        gps.setState((int) basicInfo.getService());
        return gps;
    }

    public void setStationInfo(StationRoute s){
        this.stationCode = s.getStationCode();
        this.stationName = s.getName();
        this.stationNo = s.getSerialNo();
    }

    public void setStationInfo(GpsEntity prev){
        this.stationCode = prev.stationCode;
        this.stationName = prev.stationName;
        this.stationNo = prev.stationNo;
    }

    public Point getPoint(){
        return new Point(lon, lat);
    }

    public String getLineId() {
        return lineId;
    }

    public void setLineId(String lineId) {
        this.lineId = lineId;
    }

    public String getDeviceId() {
        return deviceId;
    }

    public void setDeviceId(String deviceId) {
        this.deviceId = deviceId;
    }

    public Float getLon() {
        return lon;
    }

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

    public Float getLat() {
        return lat;
    }

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

    public Long getTimestamp() {
        return timestamp;
    }

    public void setTimestamp(Long timestamp) {
        this.timestamp = timestamp;
    }

    public Float getSpeed() {
        return speed;
    }

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

    public float getDirection() {
        return direction;
    }

    public void setDirection(float direction) {
        this.direction = direction;
    }

    public Integer getState() {
        return state;
    }

    public void setState(Integer state) {
        this.state = state;
    }

    public Byte getUpDown() {
        return upDown;
    }

    public void setUpDown(Byte upDown) {
        this.upDown = upDown;
    }

    public int getVersion() {
        return version;
    }

    public void setVersion(int version) {
        this.version = version;
    }

    public int getValid() {
        return valid;
    }

    public void setValid(int valid) {
        this.valid = valid;
    }

    public Long getServerTimestamp() {
        return serverTimestamp;
    }

    public void setServerTimestamp(Long serverTimestamp) {
        this.serverTimestamp = serverTimestamp;
    }

    public double getOverstepDistance() {
        return overstepDistance;
    }

    public void setOverstepDistance(double overstepDistance) {
        this.overstepDistance = overstepDistance;
    }

    public ScheduleRealInfo getSch() {
        return sch;
    }

    public void setSch(ScheduleRealInfo sch) {
        this.sch = sch;
    }

    public Long getTransitionTime() {
        return transitionTime;
    }

    public void setTransitionTime(Long transitionTime) {
        this.transitionTime = transitionTime;
    }

    public String getNbbm() {
        return nbbm;
    }

    public void setNbbm(String nbbm) {
        this.nbbm = nbbm;
    }

    public String getStationCode() {
        return stationCode;
    }

    public void setStationCode(String stationCode) {
        this.stationCode = stationCode;
    }

    public int getInOut() {
        return inOut;
    }

    public void setInOut(int inOut) {
        this.inOut = inOut;
    }

    public String getParkCode() {
        return parkCode;
    }

    public void setParkCode(String parkCode) {
        this.parkCode = parkCode;
    }

    public Double getInStationDistance() {
        return inStationDistance;
    }

    public void setInStationDistance(Double inStationDistance) {
        this.inStationDistance = inStationDistance;
    }

    public Double getOutStationDistance() {
        return outStationDistance;
    }

    public void setOutStationDistance(Double outStationDistance) {
        this.outStationDistance = outStationDistance;
    }

    public Double getDistance() {
        return distance;
    }

    public void setDistance(Double distance) {
        this.distance = distance;
    }

    public int getSeconds() {
        return seconds;
    }

    public void setSeconds(int seconds) {
        this.seconds = seconds;
    }

    public String getStationName() {
        return stationName;
    }

    public void setStationName(String stationName) {
        this.stationName = stationName;
    }

    public int getStationNo() {
        return stationNo;
    }

    public void setStationNo(int stationNo) {
        this.stationNo = stationNo;
    }

    public boolean isRelease() {
        return release;
    }

    public void setRelease(boolean release) {
        this.release = release;
    }

}