From 8c6849d98fc168369d6de2d94d2f42a6d67cd9c5 Mon Sep 17 00:00:00 2001 From: puzhibing <393733352@qq.com> Date: 星期一, 26 五月 2025 11:51:08 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- ruoyi-service/ruoyi-dataInterchange/src/main/java/com/ruoyi/dataInterchange/server/WarnMsgService.java | 246 +++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 235 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..2932e7e 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,7 +52,8 @@ @Resource private UPExgMsgRealLocationDao upExgMsgRealLocationDao; - + //走川标的公司 + private List<Integer> enterprise = Arrays.asList(17458936, 43984060, 13914394); public void up_warn_msg(ChannelHandlerContext ctx, OuterPacket out) { if (!redisTemplate.hasKey("login:" + out.getGnsscenterId())) { @@ -68,7 +76,6 @@ break; } } - /** * 解析子业务数据 @@ -98,8 +105,7 @@ warnMsg.setData(data); return warnMsg; } - - + /** * 报警督办应答消息 * @@ -114,13 +120,6 @@ upWarnMsgUrgeTodoAckDao.save(upWarnMsgUrgeTodoAck); } - - - - //走川标的公司 - private List<Integer> enterprise = Arrays.asList(17458936, 43984060, 13914394); - - /** * 上报报警信息 * @@ -182,4 +181,229 @@ upWarnMsgAdptInfo.setPushTime(LocalDateTime.now().plusDays(7).toEpochSecond(ZoneOffset.ofHours(8))); upWarnMsgAdptInfoDao.save(upWarnMsgAdptInfo); } + + + /** + * 存储mqtt协议报警信息 + */ + public void saveWarnMsgService(JSONObject jsonObject) { + SubscriptionEvent subscriptionEvent = jsonObject.getObject("", SubscriptionEvent.class); + List<Event> events = subscriptionEvent.getEvents(); + events.forEach(event -> { + //车牌号 + String srcName = event.getSrcName(); + Alarm data = JSONObject.parseObject(event.getData(), Alarm.class); + UPWarnMsgAdptInfo upWarnMsgAdptInfo = upWarnMsgAdptInfoDao.findByInfoIdIs(data.getAlarmId()); + if(null == upWarnMsgAdptInfo){ + upWarnMsgAdptInfo = new UPWarnMsgAdptInfo(); + } + upWarnMsgAdptInfo.setVehicleNo(srcName); + upWarnMsgAdptInfo.setVehicleColor(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.getLongitude().intValue()); + upWarnMsgAdptInfo.setLatitude(data.getLatitude().intValue()); + upWarnMsgAdptInfo.setAltitude(data.getHeight().intValue() / 10); + upWarnMsgAdptInfo.setSpeed(data.getSpeed().intValue() / 10000); + upWarnMsgAdptInfo.setVec2(data.getSpeed().intValue()); + upWarnMsgAdptInfo.setStatus(data.getStatus()); + upWarnMsgAdptInfo.setDirection(data.getDirection() / 100); + upWarnMsgAdptInfo.setInfoContent(data.getAlarmInfo()); + 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