From 4ad32c37e3317fb6cb7cbfb034b53d3220c27db4 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期五, 30 五月 2025 17:59:16 +0800
Subject: [PATCH] 优化报警

---
 ruoyi-service/ruoyi-dataInterchange/src/main/java/com/ruoyi/dataInterchange/model/GnssData.java |  101 +++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 74 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..1d720e1 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,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;
+	}
 }

--
Gitblit v1.7.1