From 297512bc22b179b7038d96a1ff033eceaed38c4b Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期五, 07 三月 2025 19:44:31 +0800
Subject: [PATCH] 新增加809对接逻辑

---
 ruoyi-service/ruoyi-dataInterchange/src/main/java/com/ruoyi/dataInterchange/model/GnssData.java |   96 ++++++++++++++++++++++++++++++++++-------------
 1 files changed, 69 insertions(+), 27 deletions(-)

diff --git a/ruoyi-service/ruoyi-dataInterchange/src/main/java/com/ruoyi/dataInterchange/model/GnssData.java b/ruoyi-service/ruoyi-dataInterchange/src/main/java/com/ruoyi/dataInterchange/model/GnssData.java
index 99b4868..fcc647c 100644
--- a/ruoyi-service/ruoyi-dataInterchange/src/main/java/com/ruoyi/dataInterchange/model/GnssData.java
+++ b/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,85 @@
 	 * 1:已加密
 	 * 0:未加密
 	 */
-	@JsonProperty("ENCRYPT")
-	private Integer encrypt;
+	@Field(type = FieldType.Integer)
+	private int encrypt;
 	/**
-	 * 车辆定位信息数据长度
+	 * 日月年
 	 */
-	@JsonProperty("DATA_LENGTH")
-	private Integer dataLength;
+	@Field(type = FieldType.Integer)
+	private int date;
 	/**
-	 * 车辆定位信息内容
+	 * 时分秒
 	 */
-	@JsonProperty("GNSS_DATA")
-	private Object gnssData;
+	@Field(type = FieldType.Integer)
+	private int 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) {
+		this.encrypt = byteBuf.readByte();
+		this.date = byteBuf.readInt();
+		ByteBuf byteBuf1 = byteBuf.readBytes(3);
+		StringBuilder t = new StringBuilder();
+		for (int i = 0; i < 3; i++) {
+			t.append(byteBuf1.getByte(i));
+		}
+		this.time = Integer.valueOf(t.toString());
+		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();
+		return this;
+	}
 }

--
Gitblit v1.7.1