Pu Zhibing
12 小时以前 185b6c7f14d8324540f39913e2b92146636cc5e0
ruoyi-service/ruoyi-dataInterchange/src/main/java/com/ruoyi/dataInterchange/model/GnssData.java
@@ -1,10 +1,13 @@
package com.ruoyi.dataInterchange.model;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.netty.buffer.ByteBuf;
import lombok.Data;
import org.springframework.data.elasticsearch.annotations.Field;
import org.springframework.data.elasticsearch.annotations.FieldType;
/**
 * 车辆定位信息
 *
 * @author zhibing.pu
 * @Date 2025/2/24 11:56
 */
@@ -16,46 +19,90 @@
    * 1:已加密
    * 0:未加密
    */
   @JsonProperty("ENCRYPT")
   private Integer encrypt;
   @Field(type = FieldType.Integer)
   private int encrypt;
   /**
    * 车辆定位信息数据长度
    * 日月年
    */
   @JsonProperty("DATA_LENGTH")
   private Integer dataLength;
   @Field(type = FieldType.Text)
   private String date;
   /**
    * 车辆定位信息内容
    * 时分秒
    */
   @JsonProperty("GNSS_DATA")
   private Object gnssData;
   @Field(type = FieldType.Text)
   private String time;
   /**
    * 监控平台唯一编码,由平台所在地行政区划代码和平台编号组成
    * 经度
    */
   @JsonProperty("PLATFORM_ID1")
   private String platformId1;
   @Field(type = FieldType.Integer)
   private int lon;
   /**
    * 报警状态,二进制表示,0表示正常,1表示报警
    * 纬度
    */
   @JsonProperty("ALARM1")
   private Integer alarm1;
   @Field(type = FieldType.Integer)
   private int lat;
   /**
    * 市级监管平台唯一编码,由平台所在地行政区划代码和平台编号组成;未填写时,全填0;无市级平台应由省级平台全填1
    * 速度
    */
   @JsonProperty("PLATFORM_ID2")
   private String platformId2;
   @Field(type = FieldType.Integer)
   private int vec1;
   /**
    * 报警状态,二进制表示,0表示正常,1表示报警
    * 行驶记录速度
    */
   @JsonProperty("ALARM2")
   private Integer alarm2;
   @Field(type = FieldType.Integer)
   private int vec2;
   /**
    * 省级监管平台唯一编码,由平台所在地行政区划代码和平台编号组成;未填写时,全填0
    * 车辆当前总里程数
    */
   @JsonProperty("PLATFORM_ID3")
   private String platformId3;
   @Field(type = FieldType.Integer)
   private int vec3;
   /**
    * 报警状态,二进制表示,0表示正常,1表示报警
    * 方向
    */
   @JsonProperty("ALARM3")
   private Integer alarm3;
   @Field(type = FieldType.Integer)
   private int direction;
   /**
    * 海拔高度
    */
   @Field(type = FieldType.Integer)
   private int altitude;
   /**
    * 车辆状态
    */
   @Field(type = FieldType.Integer)
   private int state;
   /**
    * 报警状态
    */
   @Field(type = FieldType.Integer)
   private int alarm;
   /**
    * 解析报文
    */
   public GnssData decode(ByteBuf byteBuf) {
      try {
         this.encrypt = byteBuf.readByte();
         int d = byteBuf.readByte();
         int m = byteBuf.readByte();
         int y = byteBuf.readShort();
         this.date = y + "-" + String.format("%02d", m) + "-" + String.format("%02d", d);
         int h = byteBuf.readByte();
         int mi = byteBuf.readByte();
         int s = byteBuf.readByte();
         this.time = String.format("%02d", h) + ":" + String.format("%02d", mi) + ":" + String.format("%02d", s);
         this.lon = byteBuf.readInt();
         this.lat = byteBuf.readInt();
         this.vec1 = byteBuf.readShort();
         this.vec2 = byteBuf.readShort();
         this.vec3 = byteBuf.readInt();
         this.direction = byteBuf.readShort();
         this.altitude = byteBuf.readShort();
         this.state = byteBuf.readInt();
         this.alarm = byteBuf.readInt();
      }catch (Exception e){
         e.printStackTrace();
      }
      return this;
   }
}