From 2e1766b31e889d9ee54d433476d031220dfda294 Mon Sep 17 00:00:00 2001 From: Pu Zhibing <393733352@qq.com> Date: 星期日, 27 四月 2025 17:46:24 +0800 Subject: [PATCH] 处理异常报错 --- ruoyi-service/ruoyi-dataInterchange/src/main/java/com/ruoyi/dataInterchange/model/UPWarnMsgAdptInfo.java | 80 ++++++++++++++++++++++++++------------- 1 files changed, 53 insertions(+), 27 deletions(-) diff --git a/ruoyi-service/ruoyi-dataInterchange/src/main/java/com/ruoyi/dataInterchange/model/UPWarnMsgAdptInfo.java b/ruoyi-service/ruoyi-dataInterchange/src/main/java/com/ruoyi/dataInterchange/model/UPWarnMsgAdptInfo.java index 389b9f6..ae3245e 100644 --- a/ruoyi-service/ruoyi-dataInterchange/src/main/java/com/ruoyi/dataInterchange/model/UPWarnMsgAdptInfo.java +++ b/ruoyi-service/ruoyi-dataInterchange/src/main/java/com/ruoyi/dataInterchange/model/UPWarnMsgAdptInfo.java @@ -1,7 +1,7 @@ package com.ruoyi.dataInterchange.model; -import com.ruoyi.common.core.utils.DateUtils; import com.ruoyi.dataInterchange.pojo.BaseModel; +import com.ruoyi.dataInterchange.util.jtt809.common.ByteArrayUtil; import com.ruoyi.dataInterchange.util.jtt809.common.Jtt809Util; import io.netty.buffer.ByteBuf; import io.netty.buffer.Unpooled; @@ -9,8 +9,6 @@ import org.springframework.data.elasticsearch.annotations.Document; import org.springframework.data.elasticsearch.annotations.Field; import org.springframework.data.elasticsearch.annotations.FieldType; - -import java.text.ParseException; /** * 上报报警信息 @@ -52,6 +50,15 @@ private int warnSrc; /** * 报警类型 + * 0x0001: 超速报警 + * 0x0002: 疲劳驾驶报警 + * 0x0003: 紧急报警 + * 0x0004: 进入指定区域报警 + * 0x0005: 离开指定区域报警 + * 0x0006: 路段堵塞报警 + * 0x0007: 危险路段报警 + * 0x0008: 越界报警 + * 0x0009: 盗警 */ @Field(type = FieldType.Integer) private int warnType; @@ -76,6 +83,21 @@ @Field(type = FieldType.Text) private String infoContent; /** + * 速度 + */ + @Field(type = FieldType.Integer) + private Integer speed; + /** + * 经度 + */ + @Field(type = FieldType.Integer) + private Integer longitude; + /** + * 纬度 + */ + @Field(type = FieldType.Integer) + private Integer latitude; + /** * 报警处理结果 * 0x00:处理中 * 0x01:已处理完毕 @@ -84,39 +106,43 @@ */ @Field(type = FieldType.Integer) private int result; + /** + * 报警督办发起时间 + */ + @Field(type = FieldType.Long) + private long pushTime; /** * 解析报文 */ public UPWarnMsgAdptInfo decode(WarnMsg warnMsg) { - byte[] data = warnMsg.getData(); - ByteBuf byteBuf = Unpooled.wrappedBuffer(data); - this.vehicleNo = warnMsg.getVehicleNo(); - this.vehicleColor = warnMsg.getVehicleColor(); - this.dataType = warnMsg.getDataType(); - this.dataLength = warnMsg.getDataLength(); - - //报警信息来源 - this.warnSrc = byteBuf.readByte(); - //报警类型 - this.warnType = byteBuf.readShort(); - String date = byteBuf.readByte() + "-" + byteBuf.readByte() + "-" + byteBuf.readShort() + " " + - byteBuf.readByte() + ":" + byteBuf.readByte() + ":" + byteBuf.readByte(); - long time = 0; try { - time = DateUtils.parseDate(date, "dd-MM-yyyy HH:mm:ss").getTime(); - } catch (ParseException e) { + byte[] data = warnMsg.getData(); + ByteBuf byteBuf = Unpooled.wrappedBuffer(data); + this.vehicleNo = warnMsg.getVehicleNo(); + this.vehicleColor = warnMsg.getVehicleColor(); + this.dataType = warnMsg.getDataType(); + this.dataLength = warnMsg.getDataLength(); + + //报警信息来源 + this.warnSrc = byteBuf.readByte(); + //报警类型 + this.warnType = byteBuf.readShort(); + byte[] readableBytes = new byte[8]; + byteBuf.readBytes(readableBytes); + String time = ByteArrayUtil.bytes2HexStr(readableBytes); + //报警时间 + this.warnTime = Long.parseLong(time, 16); + //信息ID + this.infoId = byteBuf.readInt(); + //报警数据长度 + this.infoLength = byteBuf.readInt(); + //上报报警信息内容 + this.infoContent = Jtt809Util.readGBKString(byteBuf, this.infoLength); + }catch (Exception e){ e.printStackTrace(); } - //报警时间 - this.warnTime = time; - //信息ID - this.infoId = byteBuf.readInt(); - //报警数据长度 - this.infoLength = byteBuf.readInt(); - //上报报警信息内容 - this.infoContent = Jtt809Util.readGBKString(byteBuf, this.infoLength); return this; } } -- Gitblit v1.7.1