wang-hao-jie
2022-03-23 7005c13237516d5dd965afb1b3c5aa734a01a661
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/util/MQTT.java
@@ -2,8 +2,10 @@
import cn.exrick.xboot.your.entity.Alarm;
import cn.exrick.xboot.your.entity.Car;
import cn.exrick.xboot.your.entity.EventLog;
import cn.exrick.xboot.your.service.IAlarmService;
import cn.exrick.xboot.your.service.ICarService;
import cn.exrick.xboot.your.service.IEventLogService;
import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
@@ -13,12 +15,17 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component
public class MQTT {
    @Autowired
    private IAlarmService iAlarmService;
    @Autowired
    private ICarService iCarService;
    @Autowired
    private HaiKangPost haiKangPost;
    @Autowired
    private IEventLogService iEventLogService;
    public static void main(String[] args) {
        MQTT mqtt = new MQTT();
@@ -26,7 +33,8 @@
    }
    public void event(String clientid,String userName,String passWord){
        String HOST = "tcp://111.63.178.115:1883";
        String HOST = "tcp://10.10.101.1:1883";
        //String HOST = "tcp://111.63.178.115:1883";
        String TOPIC = "artemis/event_msa_alarm/5201154049/admin";
        int qos = 1;
//            String clientid = "28156526";
@@ -50,11 +58,22 @@
            // 设置回调函数
            client.setCallback(new MqttCallback() {
                public void connectionLost(Throwable cause) {
                    System.out.println("connectionLost");
                    //System.out.println("connectionLost");
                    String topicInfo = haiKangPost.getTopicInfo();
                    //System.out.println("重连-订阅信息:"+topicInfo);
                    JSONObject jsonObject = JSONUtil.parseObj(topicInfo);
                    if(jsonObject.get("data")!=null){
                        String data = jsonObject.get("data").toString();
                        JSONObject jsonObject2 = JSONUtil.parseObj(data);
                        String clientId = jsonObject2.get("clientId").toString();
                        String userName = jsonObject2.get("userName").toString();
                        String password = jsonObject2.get("password").toString();
                        event(clientId,userName,password);
                    }
                }
                public void deliveryComplete(IMqttDeliveryToken token) {
                    System.out.println("deliveryComplete---------"+ token.isComplete());
                    //System.out.println("deliveryComplete---------"+ token.isComplete());
                }
@@ -77,9 +96,9 @@
                                    JSONObject jsonObject1 = JSONUtil.parseObj(s1);
                                    String data = jsonObject1.get("data").toString();
                                    JSONObject jsonObject2 = JSONUtil.parseObj(data);
                                    System.out.println(jsonObject2.get("alarmId"));//报警id
                                    System.out.println(jsonObject2.get("vehicleIndexCode"));//车辆code
                                    System.out.println(jsonObject2.get("eventType"));//报警类型
                                    //System.out.println(jsonObject2.get("alarmId"));//报警id
                                    //System.out.println(jsonObject2.get("vehicleIndexCode"));//车辆code
                                    //System.out.println(jsonObject2.get("eventType"));//报警类型
                                    //未系安全带:132376
                                    //抽烟:132375
                                    //接打电话:132374
@@ -87,6 +106,7 @@
                                    String eventType = jsonObject2.get("eventType").toString();
                                    String vehicleIndexCode = jsonObject2.get("vehicleIndexCode").toString();
                                    String alarmId = jsonObject2.get("alarmId").toString();
                                    String alarmTime = jsonObject2.get("alarmTime").toString();
                                    Alarm alarm = new Alarm();
                                    if(eventType.equals("132371")){
@@ -101,6 +121,9 @@
                                    }else if(eventType.equals("132375")){
                                        alarm.setType(4);
                                        alarm.setValue("抽烟");
                                    }else if(eventType.equals("132405")){
                                        alarm.setType(7);
                                        alarm.setValue("超速");
                                    }else{
                                        return;
                                    }
@@ -117,8 +140,14 @@
                                    alarm.setCarNo(car.getCarNo());
                                    alarm.setCarUserId(car.getUserId());
                                    alarm.setFollowUserId(car.getFollowUserId());
                                    alarm.setAlarmTime(alarmTime);
                                    iAlarmService.saveOrUpdate(alarm);
                                    EventLog eventLog = new EventLog();
                                    eventLog.setType(alarm.getType());
                                    eventLog.setRefId(alarmId);
                                    eventLog.setCarNo(car.getCarNo());
                                    iEventLogService.saveOrUpdate(eventLog);
                                }
                            }
                        }