| | |
| | | |
| | | 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.core.date.DateUtil; |
| | | import cn.hutool.json.JSONArray; |
| | | import cn.hutool.json.JSONObject; |
| | | import cn.hutool.json.JSONUtil; |
| | |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | |
| | | |
| | | @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(); |
| | |
| | | } |
| | | |
| | | 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"; |
| | |
| | | // 设置回调函数 |
| | | 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()); |
| | | } |
| | | |
| | | |
| | |
| | | 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"));//报警类型 |
| | | //未系安全带:132376 |
| | | //抽烟:132375 |
| | | //接打电话:132374 |
| | | //疲劳驾驶:132371 |
| | | String eventType = jsonObject2.get("eventType").toString(); |
| | | String vehicleIndexCode = jsonObject2.get("vehicleIndexCode").toString(); |
| | | String alarmId = jsonObject2.get("alarmId").toString(); |
| | | String alarmTime = jsonObject2.get("alarmTime").toString(); |
| | | |
| | | QueryWrapper<Car> wrapper = new QueryWrapper<Car>(); |
| | | wrapper.eq("code",vehicleIndexCode); |
| | | Car car = iCarService.getOne(wrapper); |
| | | if(car==null){ |
| | | return; |
| | | } |
| | | |
| | | Alarm alarm = new Alarm(); |
| | | if(eventType.equals("132371")){ |
| | |
| | | }else if(eventType.equals("132375")){ |
| | | alarm.setType(4); |
| | | alarm.setValue("抽烟"); |
| | | }else if(eventType.equals("132405")){ |
| | | alarm.setType(7); |
| | | alarm.setValue("超速"); |
| | | }else{ |
| | | return; |
| | | } |
| | | |
| | | QueryWrapper<Car> wrapper = new QueryWrapper<Car>(); |
| | | wrapper.eq("code",vehicleIndexCode); |
| | | Car car = iCarService.getOne(wrapper); |
| | | if(car==null){ |
| | | Date date1 = new Date(); |
| | | long time = date1.getTime()-2*60*1000; |
| | | Date date = new Date(time); |
| | | String format1 = DateUtil.format(date,"yyyy-MM-dd HH:mm:ss"); |
| | | String format2 = DateUtil.format(date1,"yyyy-MM-dd HH:mm:ss"); |
| | | QueryWrapper<Alarm> awrapper = new QueryWrapper<>(); |
| | | awrapper.between("create_time",format1,format2); |
| | | awrapper.eq("car_no",car.getCarNo()); |
| | | awrapper.eq("type",alarm.getType()); |
| | | List<Alarm> list = iAlarmService.list(awrapper); |
| | | if(list.size()>0){ |
| | | return; |
| | | } |
| | | |
| | |
| | | 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); |
| | | } |
| | | } |
| | | } |