From d41c7315b1850e58c93604001052bcfcb877e4cd Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期五, 30 五月 2025 11:02:42 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
ruoyi-service/ruoyi-dataInterchange/src/main/java/com/ruoyi/dataInterchange/server/WarnMsgService.java | 257 +++++++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 246 insertions(+), 11 deletions(-)
diff --git a/ruoyi-service/ruoyi-dataInterchange/src/main/java/com/ruoyi/dataInterchange/server/WarnMsgService.java b/ruoyi-service/ruoyi-dataInterchange/src/main/java/com/ruoyi/dataInterchange/server/WarnMsgService.java
index 4951ede..fd1cb7e 100644
--- a/ruoyi-service/ruoyi-dataInterchange/src/main/java/com/ruoyi/dataInterchange/server/WarnMsgService.java
+++ b/ruoyi-service/ruoyi-dataInterchange/src/main/java/com/ruoyi/dataInterchange/server/WarnMsgService.java
@@ -1,12 +1,17 @@
package com.ruoyi.dataInterchange.server;
import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson2.JSONObject;
import com.ruoyi.dataInterchange.dao.UPExgMsgRealLocationDao;
import com.ruoyi.dataInterchange.dao.UPWarnMsgAdptInfoDao;
import com.ruoyi.dataInterchange.dao.UPWarnMsgUrgeTodoAckDao;
import com.ruoyi.dataInterchange.model.*;
import com.ruoyi.dataInterchange.model.enu.DataType;
import com.ruoyi.dataInterchange.netty.client.ChannelMap;
+import com.ruoyi.dataInterchange.util.haikang.model.Alarm;
+import com.ruoyi.dataInterchange.util.haikang.model.AlarmPic;
+import com.ruoyi.dataInterchange.util.haikang.model.Event;
+import com.ruoyi.dataInterchange.util.haikang.model.SubscriptionEvent;
import com.ruoyi.dataInterchange.util.jtt809.common.Jtt809Util;
import com.ruoyi.dataInterchange.util.jtt809.packet.common.OuterPacket;
import io.netty.buffer.ByteBuf;
@@ -16,10 +21,12 @@
import lombok.extern.slf4j.Slf4j;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Component;
+import org.springframework.util.StringUtils;
import javax.annotation.Resource;
import java.time.LocalDateTime;
import java.time.ZoneOffset;
+import java.time.format.DateTimeFormatter;
import java.util.Arrays;
import java.util.List;
@@ -45,6 +52,10 @@
@Resource
private UPExgMsgRealLocationDao upExgMsgRealLocationDao;
+ //走川标的公司
+ private List<Integer> enterprise = Arrays.asList(17458936, 43984060, 13914394);
+ //固定报警类型
+ private List<Integer> warnType = Arrays.asList(0x0201, 0x0202, 0x0301, 0x000B, 0x0012, 0x0203, 0x0208, 0x0002, 0x0211, 0x0212, 0x0214, 0x0213, 0x0215, 0x0217, 0x0307);
public void up_warn_msg(ChannelHandlerContext ctx, OuterPacket out) {
@@ -68,7 +79,6 @@
break;
}
}
-
/**
* 解析子业务数据
@@ -98,8 +108,7 @@
warnMsg.setData(data);
return warnMsg;
}
-
-
+
/**
* 报警督办应答消息
*
@@ -114,13 +123,6 @@
upWarnMsgUrgeTodoAckDao.save(upWarnMsgUrgeTodoAck);
}
-
-
-
- //走川标的公司
- private List<Integer> enterprise = Arrays.asList(17458936, 43984060, 13914394);
-
-
/**
* 上报报警信息
*
@@ -141,7 +143,7 @@
upWarnMsgAdptInfo.setLongitude(gnssData.getLon());
upWarnMsgAdptInfo.setLatitude(gnssData.getLat());
}
- }else if(2 != upWarnMsgAdptInfo.getLevel()){
+ }else if(!warnType.contains(upWarnMsgAdptInfo.getWarnType())){
return;
}
upWarnMsgAdptInfoDao.save(upWarnMsgAdptInfo);
@@ -182,4 +184,237 @@
upWarnMsgAdptInfo.setPushTime(LocalDateTime.now().plusDays(7).toEpochSecond(ZoneOffset.ofHours(8)));
upWarnMsgAdptInfoDao.save(upWarnMsgAdptInfo);
}
+
+
+ /**
+ * 存储mqtt协议报警信息
+ */
+ public void saveWarnMsgService(JSONObject jsonObject) {
+ SubscriptionEvent subscriptionEvent = jsonObject.getObject("params", SubscriptionEvent.class);
+ List<Event> events = subscriptionEvent.getEvents();
+ events.forEach(event -> {
+ //车牌号
+ String srcName = event.getSrcName();
+ Alarm data = JSONObject.parseObject(event.getData(), Alarm.class);
+ if(!StringUtils.hasLength(data.getAlarmId())){
+ return;
+ }
+ UPWarnMsgAdptInfo upWarnMsgAdptInfo = upWarnMsgAdptInfoDao.findByInfoIdIs(data.getAlarmId());
+ if(null == upWarnMsgAdptInfo){
+ upWarnMsgAdptInfo = new UPWarnMsgAdptInfo();
+ }
+ upWarnMsgAdptInfo.setVehicleNo(srcName);
+ upWarnMsgAdptInfo.setVehicleColor(null == data.getVehicleLicenseColor() ? 0 : data.getVehicleLicenseColor());
+ upWarnMsgAdptInfo.setWarnSrc(data.getSourceType() + 1);
+ upWarnMsgAdptInfo.setWarnType(getAlarmType(data.getEventType()));
+ upWarnMsgAdptInfo.setWarnTime(LocalDateTime.parse(data.getAlarmTime(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")).toEpochSecond(ZoneOffset.ofHours(8)));
+ upWarnMsgAdptInfo.setInfoId(data.getAlarmId());
+ upWarnMsgAdptInfo.setLevel(getLevel(data.getLevel()));
+ upWarnMsgAdptInfo.setLongitude(data.getLatitude().intValue() * 10);
+ upWarnMsgAdptInfo.setLatitude(data.getLongitude().intValue());
+ upWarnMsgAdptInfo.setAltitude(data.getHeight().intValue() / 10);
+ upWarnMsgAdptInfo.setSpeed(data.getSpeed().intValue() / 100000);
+ upWarnMsgAdptInfo.setVec2(data.getSpeed().intValue() / 100000);
+ upWarnMsgAdptInfo.setStatus(data.getStatus());
+ upWarnMsgAdptInfo.setDirection(data.getDirection() / 100);
+ upWarnMsgAdptInfo.setInfoContent(data.getAlarmInfo());
+ upWarnMsgAdptInfo.setInferiorPlatformId(25439966);
+ upWarnMsgAdptInfo.setCreateTime(LocalDateTime.now().toEpochSecond(ZoneOffset.ofHours(8)));
+ if(!warnType.contains(upWarnMsgAdptInfo.getWarnType())){
+ return;
+ }
+ upWarnMsgAdptInfoDao.save(upWarnMsgAdptInfo);
+ });
+ }
+
+ public int getAlarmType(long eventType){
+ switch ((int) eventType){
+ case 0x00020501:
+ return 0x0301;
+ case 0x00020502:
+ return 0x0201;
+ case 0x00020503:
+ return 0x0202;
+ case 0x00020504:
+ return 0x0202;
+ case 0x00020505:
+ return 0x0202;
+ case 0x00020506:
+ return 0x0202;
+ case 0x00020507:
+ return 0x0203;
+ case 0x00020508:
+ return 0x0203;
+ case 0x00020509:
+ return 0x0204;
+ case 0x00020510:
+ return 0x0204;
+ case 0x00037017:
+ return 0x00FF;
+ case 0x00020511:
+ return 0x00FF;
+ case 0x00037005:
+ return 0x00FF;
+ case 0x00020512:
+ return 0x0002;
+ case 0x00020513:
+ return 0x0002;
+ case 0x00020514:
+ return 0x00FF;
+ case 0x00020515:
+ return 0x00FF;
+ case 0x00020516:
+ return 0x0214;
+ case 0x00020517:
+ return 0x0213;
+ case 0x00020519:
+ return 0x0215;
+ case 0x00020520:
+ return 0x0234;
+ case 0x00020521:
+ return 0x0234;
+ case 0x00020522:
+ return 0x0234;
+ case 0x00020523:
+ return 0x0241;
+ case 0x00020524:
+ return 0x0242;
+ case 0x00020525:
+ return 0x0243;
+ case 0x00020526:
+ return 0x0243;
+ case 0x00020531:
+ return 0x00FF;
+ case 0x00020532:
+ return 0x00FF;
+ case 0x00020533:
+ return 0x00FF;
+ case 0x00020534:
+ return 0x0218;
+ case 0x00020518:
+ return 0xA0FF;
+ case 0x00037001:
+ return 0xA0FF;
+ case 0x00037002:
+ return 0x0216;
+ case 0x00037006:
+ return 0x0216;
+ case 0x00020535:
+ return 0x0001;
+ case 0x00020536:
+ return 0x0001;
+ case 0x00020537:
+ return 0x000D;
+ case 0x00020102:
+ return 0x0102;
+ case 0x00020538:
+ return 0x0005;
+ case 0x00020539:
+ return 0x0004;
+ case 0x00020540:
+ return 0x0304;
+ case 0x00020541:
+ return 0x0304;
+ case 0x00020542:
+ return 0x000B;
+ case 0x00020543:
+ return 0x0001;
+ case 0x00020544:
+ return 0x0001;
+ case 0x00020545:
+ return 0xA001;
+ case 0x00020546:
+ return 0x0305;
+ case 0x00020547:
+ return 0x0305;
+ case 0x00020548:
+ return 0xA0FF;
+ case 0x00010202:
+ return 0x0103;
+ case 0x00010206:
+ return 0x0103;
+ case 0x00020101:
+ return 0x0101;
+ case 0x00020103:
+ return 0x000C;
+ case 0x00020549:
+ return 0xA00A;
+ case 0x00020550:
+ return 0xA00A;
+ case 0x00020551:
+ return 0xA00A;
+ case 0x00020552:
+ return 0x0308;
+ case 0x00020553:
+ return 0x0308;
+ case 0x00020554:
+ return 0x0308;
+ case 0x00020555:
+ return 0x0308;
+ case 0x00020556:
+ return 0x0308;
+ case 0x00020557:
+ return 0x0308;
+ case 0x00020558:
+ return 0x0308;
+ case 0x00020559:
+ return 0x0003;
+ case 0x00020527:
+ return 0x0301;
+ case 0x00020528:
+ return 0x0201;
+ case 0x00020529:
+ return 0x0302;
+ case 0x00020530:
+ return 0x0302;
+ case 0x00020560:
+ return 0x0009;
+ case 0x00020561:
+ return 0x0306;
+ case 0x00020562:
+ return 0x0307;
+ case 0x00090001:
+ return 0x00FF;
+ default:
+ return 0x00FF;
+ }
+ }
+
+ public int getLevel(String level){
+ switch (level){
+ case "h":
+ case "m":
+ return 1;
+ case "l":
+ case "w":
+ return 2;
+ default:
+ return 0;
+ }
+ }
+
+ /**
+ * 存储mqtt协议报警图片信息
+ */
+ public void saveWarnMsgPicService(JSONObject jsonObject) {
+ SubscriptionEvent subscriptionEvent = jsonObject.getObject("", SubscriptionEvent.class);
+ List<Event> events = subscriptionEvent.getEvents();
+ events.forEach(event -> {
+ AlarmPic data = JSONObject.parseObject(event.getData(), AlarmPic.class);
+ if(StringUtils.hasLength(data.getAlarmId())){
+ UPWarnMsgAdptInfo upWarnMsgAdptInfo = upWarnMsgAdptInfoDao.findByInfoIdIs(data.getAlarmId());
+ if(null != upWarnMsgAdptInfo){
+ upWarnMsgAdptInfo.setPicUrl(data.getUrl());
+ upWarnMsgAdptInfoDao.save(upWarnMsgAdptInfo);
+ }else{
+ upWarnMsgAdptInfo = new UPWarnMsgAdptInfo();
+ upWarnMsgAdptInfo.setInfoId(data.getAlarmId());
+ upWarnMsgAdptInfoDao.save(upWarnMsgAdptInfo);
+ }
+ }
+ });
+ }
+
+
+
}
--
Gitblit v1.7.1