puzhibing
3 天以前 312f26c49124f355e9f78c6ddd69f71895aa73fc
修改公交公司的事件订阅功能
8个文件已修改
62 ■■■■■ 已修改文件
ruoyi-api/ruoyi-api-dataInterchange/src/main/java/com/ruoyi/dataInterchange/api/factory/UPWarnMsgAdptInfoClientFallbackFactory.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-dataInterchange/src/main/java/com/ruoyi/dataInterchange/api/feignClient/UPWarnMsgAdptInfoClient.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-dataInterchange/src/main/java/com/ruoyi/dataInterchange/api/vo/UPWarnMsgAdptInfoVo.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/model/Warn.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-dataInterchange/src/main/java/com/ruoyi/dataInterchange/RuoYiDataInterchangeApplication.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-dataInterchange/src/main/java/com/ruoyi/dataInterchange/controller/UPWarnMsgAdptInfoController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-dataInterchange/src/main/java/com/ruoyi/dataInterchange/server/WarnMsgService.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-dataInterchange/src/main/java/com/ruoyi/dataInterchange/util/haikang/Artemis.java 37 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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();
    }
}