ruoyi-api/ruoyi-api-dataInterchange/src/main/java/com/ruoyi/dataInterchange/api/factory/UPWarnMsgAdptInfoClientFallbackFactory.java
@@ -22,7 +22,7 @@ } @Override public R<UPWarnMsgAdptInfoVo> findByInfoId(Integer infoId) { public R<UPWarnMsgAdptInfoVo> findByInfoId(String infoId) { return R.fail("根据信息id查询报警原始数据失败:" + cause.getMessage()); } }; ruoyi-api/ruoyi-api-dataInterchange/src/main/java/com/ruoyi/dataInterchange/api/feignClient/UPWarnMsgAdptInfoClient.java
@@ -35,5 +35,5 @@ * @return */ @PostMapping("/warnMsgAdptInfo/findByInfoId") R<UPWarnMsgAdptInfoVo> findByInfoId(@RequestParam("infoId") Integer infoId); R<UPWarnMsgAdptInfoVo> findByInfoId(@RequestParam("infoId") String infoId); } ruoyi-api/ruoyi-api-dataInterchange/src/main/java/com/ruoyi/dataInterchange/api/vo/UPWarnMsgAdptInfoVo.java
@@ -61,7 +61,7 @@ /** * 信息ID */ private int infoId; private String infoId; /** * 报警数据长度 */ ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/model/Warn.java
@@ -137,7 +137,7 @@ * 原始数据id */ @TableField("object_id") private Integer objectId; private String objectId; /** * 车牌号 */ ruoyi-service/ruoyi-dataInterchange/src/main/java/com/ruoyi/dataInterchange/RuoYiDataInterchangeApplication.java
@@ -28,6 +28,5 @@ public static void main(String[] args) { SpringApplication.run(RuoYiDataInterchangeApplication.class, args); System.out.println("\n(♥◠‿◠)ノ゙ 数据交互模块启动成功 ლ(´ڡ`ლ)゙ \n"); // Artemis.run(); } } ruoyi-service/ruoyi-dataInterchange/src/main/java/com/ruoyi/dataInterchange/controller/UPWarnMsgAdptInfoController.java
@@ -81,7 +81,7 @@ * @return */ @PostMapping("/findByInfoId") public R<UPWarnMsgAdptInfoVo> findByInfoId(@RequestParam("infoId") Integer infoId) { public R<UPWarnMsgAdptInfoVo> findByInfoId(@RequestParam("infoId") String infoId) { UPWarnMsgAdptInfo warnMsgAdptInfo = upWarnMsgAdptInfoDao.findByInfoIdIs(infoId); if(null != warnMsgAdptInfo){ UPWarnMsgAdptInfoVo vo = new UPWarnMsgAdptInfoVo(); ruoyi-service/ruoyi-dataInterchange/src/main/java/com/ruoyi/dataInterchange/server/WarnMsgService.java
@@ -187,18 +187,21 @@ * 存储mqtt协议报警信息 */ public void saveWarnMsgService(JSONObject jsonObject) { SubscriptionEvent subscriptionEvent = jsonObject.getObject("", SubscriptionEvent.class); 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(data.getVehicleLicenseColor()); 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))); @@ -207,11 +210,14 @@ 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.setSpeed(data.getSpeed().intValue() / 100000); upWarnMsgAdptInfo.setVec2(data.getSpeed().intValue() / 100000); upWarnMsgAdptInfo.setStatus(data.getStatus()); upWarnMsgAdptInfo.setDirection(data.getDirection() / 100); upWarnMsgAdptInfo.setInfoContent(data.getAlarmInfo()); if(2 == upWarnMsgAdptInfo.getLevel()){ return; } upWarnMsgAdptInfoDao.save(upWarnMsgAdptInfo); }); } ruoyi-service/ruoyi-dataInterchange/src/main/java/com/ruoyi/dataInterchange/util/haikang/Artemis.java
@@ -74,40 +74,10 @@ GetTopicInfoRequest getTopicInfoRequest = new GetTopicInfoRequest(); getTopicInfoRequest.setEventTypes(new ArrayList<Long>(){{ add(5201154049L); add(5201301505L); }}); String eventSubscriptionView = Artemis.getTopicInfo(getTopicInfoRequest); JSONObject jsonObject = JSON.parseObject(eventSubscriptionView); String code = jsonObject.getString("code"); if("0".equals(code)){ JSONArray jsonArray = jsonObject.getJSONObject("data").getJSONArray("detail"); List<String> list = new ArrayList<>(); for (int i = 0; i < jsonArray.size(); i++) { JSONArray eventTypes = jsonArray.getJSONObject(i).getJSONArray("eventTypes"); eventTypes.forEach(eventType -> { list.add(eventType.toString()); }); } //告警事件类型 if(!list.contains("5201154049")){ //订阅事件 EventSubscriptionByEventTypesRequest eventSubscriptionByEventTypesRequest = new EventSubscriptionByEventTypesRequest(); eventSubscriptionByEventTypesRequest.setSubWay(1); eventSubscriptionByEventTypesRequest.setEventDest("http://221.182.45.100:1000/dataInterchange/warnMsgAdptInfo/alarmNotice"); eventSubscriptionByEventTypesRequest.setEventTypes(new ArrayList<String>(){{ add("5201154049"); }}); String subscription = Artemis.eventSubscriptionByEventTypes(eventSubscriptionByEventTypesRequest); jsonObject = JSON.parseObject(subscription); code = jsonObject.getString("code"); if(!"0".equals(code)){ log.error("告警事件订阅失败"); }else { log.info("告警事件订阅成功"); } } }else{ log.error("查询事件订阅信息失败"); } }catch (Exception e){ e.printStackTrace(); } @@ -138,6 +108,9 @@ String result = ArtemisHttpUtil.doPostStringArtemis(artemisConfig,path,body,null,null,"application/json"); return result; } public static void main(String[] args) { Artemis.run(); } }