From 0c0a751f2e1abac46b506697096cc3b2a5b54510 Mon Sep 17 00:00:00 2001
From: wang-hao-jie <1550036656@qq.com>
Date: 星期二, 14 十二月 2021 15:28:02 +0800
Subject: [PATCH] 违章记录

---
 xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/controller/pc/StatisticController.java    |   23 +++
 xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/mapper/AreaMapper.java                    |    9 
 xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/util/HaiKangPost.java                     |   19 +-
 xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/util/MQTT.java                            |  137 ++++++++++++++++++++++
 xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/entity/AreaSection.java                   |    2 
 xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/mapper/AreaSectionMapper.java             |    3 
 xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/serviceimpl/IAreaSectionServiceImpl.java  |    5 
 xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/entity/Area.java                          |    8 +
 /dev/null                                                                                             |   30 -----
 xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/entity/Alarm.java                         |    2 
 xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/schedulings/StatisticPc2ScheduleImpl.java |   42 ++++++
 xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/serviceimpl/IAreaServiceImpl.java         |    5 
 xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/service/IAreaSectionService.java          |    2 
 xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/service/IAreaService.java                 |    2 
 xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/util/ApplicationRunnerImpl.java           |   32 +++++
 15 files changed, 270 insertions(+), 51 deletions(-)

diff --git a/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/controller/pc/StatisticController.java b/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/controller/pc/StatisticController.java
index 56ecf50..ef56f37 100644
--- a/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/controller/pc/StatisticController.java
+++ b/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/controller/pc/StatisticController.java
@@ -5,10 +5,7 @@
 import cn.exrick.xboot.core.common.utils.ResultUtil;
 import cn.exrick.xboot.core.common.vo.PageVo;
 import cn.exrick.xboot.core.common.vo.Result;
-import cn.exrick.xboot.your.entity.Area;
-import cn.exrick.xboot.your.entity.Car;
-import cn.exrick.xboot.your.entity.EventLog;
-import cn.exrick.xboot.your.entity.OrderTask;
+import cn.exrick.xboot.your.entity.*;
 import cn.exrick.xboot.your.service.*;
 import cn.exrick.xboot.your.util.HaiKangPost;
 import cn.hutool.core.date.DateUtil;
@@ -106,7 +103,23 @@
     @RequestMapping(value = "/getAnalysis", method = RequestMethod.GET)
     @ApiOperation(value = "鑾峰彇閰嶉�佸垎鏋�")
     public Result<Object> getAnalysis() {
-        List<Area> list = iAreaService.list();
+        List<Area> list = iAreaService.list2();
+        for(Area area:list){
+            double sum = 0;
+            int flag = 0;
+            for(AreaSection areaSection: area.getChildren()){
+                sum+=areaSection.getStability();
+                flag++;
+            }
+            if(flag>0){
+                double v = sum / flag;
+                area.setVariance(trans2(v));
+            }
+        }
         return new ResultUtil<Object>().setData(list);
     }
+
+    public double trans2(double v2){
+        return (double) Math.round(v2 * 100) / 100;
+    }
 }
diff --git a/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/entity/Alarm.java b/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/entity/Alarm.java
index c6c7f32..e344a0e 100644
--- a/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/entity/Alarm.java
+++ b/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/entity/Alarm.java
@@ -51,4 +51,6 @@
     @ApiModelProperty(value = "鏄惁琚皟鐢� 0锛氬惁  1锛氭槸")
     private int flag;
 
+    @ApiModelProperty(value = "杞︽満鎶ヨid")
+    private String alarmId;
 }
\ No newline at end of file
diff --git a/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/entity/Area.java b/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/entity/Area.java
index 70c04ea..9f4c0ac 100644
--- a/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/entity/Area.java
+++ b/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/entity/Area.java
@@ -15,6 +15,7 @@
 import javax.persistence.Table;
 import javax.persistence.Transient;
 import java.util.Date;
+import java.util.List;
 
 /**
  * @author Exrick
@@ -50,7 +51,12 @@
     @Transient
     @TableField(exist = false)
     @ApiModelProperty(value = "鎬讳綋鏂瑰樊")
-    private int variance;
+    private double variance;
+
+    @Transient
+    @TableField(exist = false)
+    @ApiModelProperty(value = "鍒嗘瀵硅薄")
+    private List<AreaSection> children;
 
     @Transient
     @TableField(exist = false)
diff --git a/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/entity/AreaSection.java b/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/entity/AreaSection.java
index 2dd46c0..96520b7 100644
--- a/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/entity/AreaSection.java
+++ b/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/entity/AreaSection.java
@@ -50,6 +50,6 @@
     private double maxTime;
 
     @ApiModelProperty(value = "绋冲畾鎬у垎鏋�")
-    private int stability;
+    private double stability;
 
 }
\ No newline at end of file
diff --git a/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/mapper/AreaMapper.java b/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/mapper/AreaMapper.java
index d641dd8..de3c04a 100644
--- a/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/mapper/AreaMapper.java
+++ b/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/mapper/AreaMapper.java
@@ -7,10 +7,7 @@
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Constants;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import org.apache.ibatis.annotations.Param;
-import org.apache.ibatis.annotations.Result;
-import org.apache.ibatis.annotations.Results;
-import org.apache.ibatis.annotations.Select;
+import org.apache.ibatis.annotations.*;
 import org.apache.ibatis.type.JdbcType;
 
 import java.util.List;
@@ -24,4 +21,8 @@
     @Select("SELECT a.*,b.nickname as temp FROM t_area a LEFT JOIN t_user b ON a.user_id=b.id ${ew.customSqlSegment} ")
     @Results({@Result(column="temp", property="nickName", jdbcType = JdbcType.VARCHAR)})
     IPage<Area> page2(Page initMpPage, @Param(Constants.WRAPPER) QueryWrapper<Area> wrapper);
+
+    @Select("SELECT * FROM t_area")
+    @Results({@Result(column="id", property="children", many = @Many(select = "cn.exrick.xboot.your.mapper.AreaSectionMapper.getListByParentId"))})
+    List<Area> list2();
 }
\ No newline at end of file
diff --git a/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/mapper/AreaSectionMapper.java b/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/mapper/AreaSectionMapper.java
index e1098cc..a9a8347 100644
--- a/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/mapper/AreaSectionMapper.java
+++ b/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/mapper/AreaSectionMapper.java
@@ -2,6 +2,7 @@
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import cn.exrick.xboot.your.entity.AreaSection;
+import org.apache.ibatis.annotations.Select;
 
 import java.util.List;
 
@@ -11,4 +12,6 @@
  */
 public interface AreaSectionMapper extends BaseMapper<AreaSection> {
 
+    @Select("select * from t_area_ection where area_id=#{id}")
+    List<AreaSection> getListByParentId(String id);
 }
\ No newline at end of file
diff --git a/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/schedulings/StatisticPc2ScheduleImpl.java b/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/schedulings/StatisticPc2ScheduleImpl.java
index 48f6124..ffe5cb1 100644
--- a/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/schedulings/StatisticPc2ScheduleImpl.java
+++ b/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/schedulings/StatisticPc2ScheduleImpl.java
@@ -14,6 +14,8 @@
 
 import java.io.IOException;
 import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
 import java.util.List;
 
 //澶у睆閰嶉�佸垎鏋�
@@ -32,7 +34,7 @@
     @Autowired
     private IOrderTaskService iOrderTaskService;
 
-    @Scheduled(cron="0 0 * * * ?")//姣忓皬鏃舵墽琛屼竴娆�
+    @Scheduled(cron="0 * * * * ?")//姣忓皬鏃舵墽琛屼竴娆�
     public void execute(){
         List<Area> list = iAreaService.list();
         for(Area area:list){
@@ -59,12 +61,50 @@
                 listTime.add(orderTask.getTime());
             }
 
+            Collections.sort(listTime);
 
+            double v = (sum * 1.0) / (1000 * 60 * 60) / listTime.size();
+            areaSection.setAvgTime((double) Math.round(v * 10) / 10);
+            if(listTime.size()>0){
+                double v1 = (listTime.get(0) * 1.0) / (1000 * 60 * 60);
+                areaSection.setMinTime((double) Math.round(v1 * 10) / 10);
 
+                double v2 = (listTime.get(listTime.size()-1) * 1.0) / (1000 * 60 * 60);
+                areaSection.setMaxTime((double) Math.round(v2 * 10) / 10);
+            }
 
+            double variance = Variance(listTime);
+            areaSection.setStability(variance);
+            iAreaSectionService.saveOrUpdate(areaSection);
         }
 
+    }
 
+    public double Variance(List<Integer> x) {
+        List<Double> y = new ArrayList<>();
+        for(Integer s:x){
+            y.add(trans((s*1.0)/(3600*1000)));
+        }
 
+        int m = x.size();
+        double sum = 0;
+        for (int i = 0; i < m; i++) {
+            sum += y.get(i);
+        }
+        double dAve = sum / m;
+        double dVar = 0;
+        for (int i = 0; i < m; i++) {
+            dVar += (y.get(i) - dAve) * (y.get(i) - dAve);
+        }
+        double v = dVar / m;
+        return trans2(v);
+    }
+
+    public double trans(double v2){
+        return (double) Math.round(v2 * 10) / 10;
+    }
+
+    public double trans2(double v2){
+        return (double) Math.round(v2 * 100) / 100;
     }
 }
diff --git a/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/service/IAreaSectionService.java b/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/service/IAreaSectionService.java
index d6f8ee5..e5a8af7 100644
--- a/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/service/IAreaSectionService.java
+++ b/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/service/IAreaSectionService.java
@@ -11,4 +11,6 @@
  */
 public interface IAreaSectionService extends IService<AreaSection> {
 
+    List<AreaSection> getListByParentId(String id);
+
 }
\ No newline at end of file
diff --git a/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/service/IAreaService.java b/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/service/IAreaService.java
index 7c5853d..b2b72a7 100644
--- a/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/service/IAreaService.java
+++ b/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/service/IAreaService.java
@@ -14,4 +14,6 @@
  */
 public interface IAreaService extends IService<Area> {
     IPage<Area> page2(Page initMpPage, QueryWrapper<Area> wrapper);
+
+    List<Area> list2();
 }
\ No newline at end of file
diff --git a/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/serviceimpl/IAreaSectionServiceImpl.java b/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/serviceimpl/IAreaSectionServiceImpl.java
index d277f79..b922820 100644
--- a/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/serviceimpl/IAreaSectionServiceImpl.java
+++ b/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/serviceimpl/IAreaSectionServiceImpl.java
@@ -23,4 +23,9 @@
 
     @Autowired
     private AreaSectionMapper areaSectionMapper;
+
+    @Override
+    public List<AreaSection> getListByParentId(String areaId) {
+        return areaSectionMapper.getListByParentId(areaId);
+    }
 }
\ No newline at end of file
diff --git a/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/serviceimpl/IAreaServiceImpl.java b/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/serviceimpl/IAreaServiceImpl.java
index 9dce0cf..13e72ed 100644
--- a/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/serviceimpl/IAreaServiceImpl.java
+++ b/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/serviceimpl/IAreaServiceImpl.java
@@ -31,4 +31,9 @@
     public IPage<Area> page2(Page initMpPage, QueryWrapper<Area> wrapper) {
         return areaMapper.page2(initMpPage,wrapper);
     }
+
+    @Override
+    public List<Area> list2() {
+        return areaMapper.list2();
+    }
 }
\ No newline at end of file
diff --git a/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/util/ApplicationRunnerImpl.java b/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/util/ApplicationRunnerImpl.java
new file mode 100644
index 0000000..16887ff
--- /dev/null
+++ b/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/util/ApplicationRunnerImpl.java
@@ -0,0 +1,32 @@
+package cn.exrick.xboot.your.util;
+
+import cn.hutool.json.JSONObject;
+import cn.hutool.json.JSONUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.ApplicationArguments;
+import org.springframework.boot.ApplicationRunner;
+import org.springframework.stereotype.Component;
+
+@Component
+public class ApplicationRunnerImpl implements ApplicationRunner {
+
+    @Autowired
+    private HaiKangPost haiKangPost;
+    @Autowired
+    private MQTT mqtt;
+
+    @Override
+    public void run(ApplicationArguments args) throws Exception {
+        String topicInfo = haiKangPost.getTopicInfo();
+        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();
+            mqtt.event(clientId,userName,password);
+        }
+
+    }
+}
diff --git a/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/util/ClientMQTT.java b/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/util/ClientMQTT.java
deleted file mode 100644
index eb6f911..0000000
--- a/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/util/ClientMQTT.java
+++ /dev/null
@@ -1,60 +0,0 @@
-package cn.exrick.xboot.your.util;
-
-import java.util.concurrent.ScheduledExecutorService;
-import org.eclipse.paho.client.mqttv3.MqttClient;
-import org.eclipse.paho.client.mqttv3.MqttConnectOptions;
-import org.eclipse.paho.client.mqttv3.MqttException;
-import org.eclipse.paho.client.mqttv3.MqttTopic;
-import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence;
-
-public class ClientMQTT {
-
-    public static final String HOST = "tcp://10.10.101.1:1883";
-    //public static final String TOPIC = "\"5201154049\": \"artemis/event_msa_alarm/5201154049/admin\"";
-    public static final String TOPIC = "5201154049";
-    private static final String clientid = "28156526";
-    private MqttClient client;
-    private MqttConnectOptions options;
-    private String userName = "artemis_28156526_8SS2BGXE";
-    private String passWord = "1GVZ2F7C";
-
-    private ScheduledExecutorService scheduler;
-
-    private void start() {
-        try {
-            // host涓轰富鏈哄悕锛宑lientid鍗宠繛鎺QTT鐨勫鎴风ID锛屼竴鑸互鍞竴鏍囪瘑绗﹁〃绀猴紝MemoryPersistence璁剧疆clientid鐨勪繚瀛樺舰寮忥紝榛樿涓轰互鍐呭瓨淇濆瓨
-            client = new MqttClient(HOST, clientid, new MemoryPersistence());
-            // MQTT鐨勮繛鎺ヨ缃�
-            options = new MqttConnectOptions();
-            // 璁剧疆鏄惁娓呯┖session,杩欓噷濡傛灉璁剧疆涓篺alse琛ㄧず鏈嶅姟鍣ㄤ細淇濈暀瀹㈡埛绔殑杩炴帴璁板綍锛岃繖閲岃缃负true琛ㄧず姣忔杩炴帴鍒版湇鍔″櫒閮戒互鏂扮殑韬唤杩炴帴
-            options.setCleanSession(true);
-            // 璁剧疆杩炴帴鐨勭敤鎴峰悕
-            options.setUserName(userName);
-            // 璁剧疆杩炴帴鐨勫瘑鐮�
-            options.setPassword(passWord.toCharArray());
-            // 璁剧疆瓒呮椂鏃堕棿 鍗曚綅涓虹
-            options.setConnectionTimeout(30);
-            // 璁剧疆浼氳瘽蹇冭烦鏃堕棿 鍗曚綅涓虹 鏈嶅姟鍣ㄤ細姣忛殧1.5*20绉掔殑鏃堕棿鍚戝鎴风鍙戦�佷釜娑堟伅鍒ゆ柇瀹㈡埛绔槸鍚﹀湪绾匡紝浣嗚繖涓柟娉曞苟娌℃湁閲嶈繛鐨勬満鍒�
-            options.setKeepAliveInterval(20);
-            // 璁剧疆鍥炶皟
-            client.setCallback(new PushCallback());
-            MqttTopic topic = client.getTopic(TOPIC);
-            //setWill鏂规硶锛屽鏋滈」鐩腑闇�瑕佺煡閬撳鎴风鏄惁鎺夌嚎鍙互璋冪敤璇ユ柟娉曘�傝缃渶缁堢鍙g殑閫氱煡娑堟伅
-            options.setWill(topic, "close".getBytes(), 2, true);
-
-            client.connect(options);
-            //璁㈤槄娑堟伅
-            int[] Qos  = {1};
-            String[] topic1 = {TOPIC};
-            client.subscribe(topic1, Qos);
-
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-    }
-
-    public static void main(String[] args) throws MqttException {
-        ClientMQTT client = new ClientMQTT();
-        client.start();
-    }
-}
diff --git a/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/util/HaiKangPost.java b/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/util/HaiKangPost.java
index e315f23..2c9e0f1 100644
--- a/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/util/HaiKangPost.java
+++ b/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/util/HaiKangPost.java
@@ -164,16 +164,17 @@
 
 
 	public static void main(String[] args) {
-		//getTopicInfo();
-
-		FindHistoryGpsRequest findHistoryGpsRequest = new FindHistoryGpsRequest();
-		findHistoryGpsRequest.setVehicleIndexCode("b279d865eabe497db465eb2f4d2cc87d");
-		findHistoryGpsRequest.setPageNo(1);
-		findHistoryGpsRequest.setPageSize(20);
-		findHistoryGpsRequest.setBeginTime("2021-11-25T03:10:01.000+08:00");
-		findHistoryGpsRequest.setEndTime("2021-11-25T12:10:01.000+08:00");
 		HaiKangPost haiKangPost = new HaiKangPost();
-		System.out.println(haiKangPost.findHistoryGps(findHistoryGpsRequest));
+		haiKangPost.getTopicInfo();
+
+//		FindHistoryGpsRequest findHistoryGpsRequest = new FindHistoryGpsRequest();
+//		findHistoryGpsRequest.setVehicleIndexCode("b279d865eabe497db465eb2f4d2cc87d");
+//		findHistoryGpsRequest.setPageNo(1);
+//		findHistoryGpsRequest.setPageSize(20);
+//		findHistoryGpsRequest.setBeginTime("2021-11-25T03:10:01.000+08:00");
+//		findHistoryGpsRequest.setEndTime("2021-11-25T12:10:01.000+08:00");
+//		HaiKangPost haiKangPost = new HaiKangPost();
+//		System.out.println(haiKangPost.findHistoryGps(findHistoryGpsRequest));
 
 //		String code[] = {"b279d865eabe497db465eb2f4d2cc87d"};
 //		System.out.println(findLatestGps(code));
diff --git a/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/util/MQTT.java b/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/util/MQTT.java
new file mode 100644
index 0000000..390c107
--- /dev/null
+++ b/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/util/MQTT.java
@@ -0,0 +1,137 @@
+package cn.exrick.xboot.your.util;
+
+import cn.exrick.xboot.your.entity.Alarm;
+import cn.exrick.xboot.your.entity.Car;
+import cn.exrick.xboot.your.service.IAlarmService;
+import cn.exrick.xboot.your.service.ICarService;
+import cn.hutool.json.JSONArray;
+import cn.hutool.json.JSONObject;
+import cn.hutool.json.JSONUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import org.eclipse.paho.client.mqttv3.*;
+import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+@Component
+public class MQTT {
+    @Autowired
+    private IAlarmService iAlarmService;
+    @Autowired
+    private ICarService iCarService;
+
+    public static void main(String[] args) {
+        MQTT mqtt = new MQTT();
+        mqtt.event("28156526","artemis_28156526_AQ4ZLCRT","X34YB59A");
+    }
+
+    public void event(String clientid,String userName,String passWord){
+        String HOST = "tcp://111.63.178.115:1883";
+        String TOPIC = "artemis/event_msa_alarm/5201154049/admin";
+        int qos = 1;
+//            String clientid = "28156526";
+//            String userName = "artemis_28156526_PSDARORD";
+//            String passWord = "T48B7XI6";
+        try {
+            // host涓轰富鏈哄悕锛宼est涓篶lientid鍗宠繛鎺QTT鐨勫鎴风ID锛屼竴鑸互瀹㈡埛绔敮涓�鏍囪瘑绗﹁〃绀猴紝MemoryPersistence璁剧疆clientid鐨勪繚瀛樺舰寮忥紝榛樿涓轰互鍐呭瓨淇濆瓨
+            MqttClient client = new MqttClient(HOST, clientid, new MemoryPersistence());
+            // MQTT鐨勮繛鎺ヨ缃�
+            MqttConnectOptions options = new MqttConnectOptions();
+            // 璁剧疆鏄惁娓呯┖session,杩欓噷濡傛灉璁剧疆涓篺alse琛ㄧず鏈嶅姟鍣ㄤ細淇濈暀瀹㈡埛绔殑杩炴帴璁板綍锛岃繖閲岃缃负true琛ㄧず姣忔杩炴帴鍒版湇鍔″櫒閮戒互鏂扮殑韬唤杩炴帴
+            options.setCleanSession(true);
+            // 璁剧疆杩炴帴鐨勭敤鎴峰悕
+            options.setUserName(userName);
+            // 璁剧疆杩炴帴鐨勫瘑鐮�
+            options.setPassword(passWord.toCharArray());
+            // 璁剧疆瓒呮椂鏃堕棿 鍗曚綅涓虹
+            options.setConnectionTimeout(10);
+            // 璁剧疆浼氳瘽蹇冭烦鏃堕棿 鍗曚綅涓虹 鏈嶅姟鍣ㄤ細姣忛殧1.5*20绉掔殑鏃堕棿鍚戝鎴风鍙戦�佷釜娑堟伅鍒ゆ柇瀹㈡埛绔槸鍚﹀湪绾匡紝浣嗚繖涓柟娉曞苟娌℃湁閲嶈繛鐨勬満鍒�
+            options.setKeepAliveInterval(20);
+            // 璁剧疆鍥炶皟鍑芥暟
+            client.setCallback(new MqttCallback() {
+                public void connectionLost(Throwable cause) {
+                    System.out.println("connectionLost");
+                }
+
+                public void deliveryComplete(IMqttDeliveryToken token) {
+                    System.out.println("deliveryComplete---------"+ token.isComplete());
+                }
+
+
+                public void messageArrived(String topic, MqttMessage message) throws Exception {
+//                    System.out.println("topic:"+topic);
+//                    System.out.println("Qos:"+message.getQos());
+//                    System.out.println("message content:"+new String(message.getPayload()));
+
+                    String s = new String(message.getPayload());
+
+                    if(!s.equals("close")){
+                        JSONObject jsonObject = JSONUtil.parseObj(s);
+                        if(jsonObject.get("params")!=null){
+                            String params = jsonObject.get("params").toString();
+                            if(JSONUtil.parseObj(params)!=null){
+                                String events = JSONUtil.parseObj(params).get("events").toString();
+                                JSONArray objects = JSONUtil.parseArray(events);
+                                for(int i=0;i<objects.size();i++){
+                                    String s1 = objects.get(i).toString();
+                                    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();
+
+                                    Alarm alarm = new Alarm();
+                                    if(eventType.equals("132371")){
+                                        alarm.setType(1);
+                                        alarm.setValue("鐤插姵椹鹃┒");
+                                    }else if(eventType.equals("132374")){
+                                        alarm.setType(2);
+                                        alarm.setValue("鎺ユ墦鐢佃瘽");
+                                    }else if(eventType.equals("132376")){
+                                        alarm.setType(3);
+                                        alarm.setValue("鏈郴瀹夊叏甯�");
+                                    }else if(eventType.equals("132375")){
+                                        alarm.setType(4);
+                                        alarm.setValue("鎶界儫");
+                                    }else{
+                                        return;
+                                    }
+
+                                    QueryWrapper<Car> wrapper = new QueryWrapper<Car>();
+                                    wrapper.eq("code",vehicleIndexCode);
+                                    Car car = iCarService.getOne(wrapper);
+                                    if(car==null){
+                                        return;
+                                    }
+
+                                    alarm.setAlarmId(alarmId);
+                                    alarm.setCarId(car.getId());
+                                    alarm.setCarNo(car.getCarNo());
+                                    alarm.setCarUserId(car.getUserId());
+                                    alarm.setFollowUserId(car.getFollowUserId());
+
+                                    iAlarmService.saveOrUpdate(alarm);
+                                }
+                            }
+                        }
+                    }
+
+                }
+
+            });
+            client.connect(options);
+            //璁㈤槄娑堟伅
+            client.subscribe(TOPIC, qos);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+}
diff --git a/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/util/PushCallback.java b/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/util/PushCallback.java
deleted file mode 100644
index 2ab560f..0000000
--- a/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/util/PushCallback.java
+++ /dev/null
@@ -1,41 +0,0 @@
-package cn.exrick.xboot.your.util;
-
-import org.eclipse.paho.client.mqttv3.IMqttDeliveryToken;
-import org.eclipse.paho.client.mqttv3.MqttCallback;
-import org.eclipse.paho.client.mqttv3.MqttMessage;
-
-/**
- * 鍙戝竷娑堟伅鐨勫洖璋冪被
- *
- * 蹇呴』瀹炵幇MqttCallback鐨勬帴鍙e苟瀹炵幇瀵瑰簲鐨勭浉鍏虫帴鍙f柟娉旵allBack 绫诲皢瀹炵幇 MqttCallBack銆�
- * 姣忎釜瀹㈡埛鏈烘爣璇嗛兘闇�瑕佷竴涓洖璋冨疄渚嬨�傚湪姝ょず渚嬩腑锛屾瀯閫犲嚱鏁颁紶閫掑鎴锋満鏍囪瘑浠ュ彟瀛樹负瀹炰緥鏁版嵁銆�
- * 鍦ㄥ洖璋冧腑锛屽皢瀹冪敤鏉ユ爣璇嗗凡缁忓惎鍔ㄤ簡璇ュ洖璋冪殑鍝釜瀹炰緥銆�
- * 蹇呴』鍦ㄥ洖璋冪被涓疄鐜颁笁涓柟娉曪細
- *
- *  public void messageArrived(MqttTopic topic, MqttMessage message)鎺ユ敹宸茬粡棰勮鐨勫彂甯冦��
- *
- *  public void connectionLost(Throwable cause)鍦ㄦ柇寮�杩炴帴鏃惰皟鐢ㄣ��
- *
- *  public void deliveryComplete(MqttDeliveryToken token))
- *  鎺ユ敹鍒板凡缁忓彂甯冪殑 QoS 1 鎴� QoS 2 娑堟伅鐨勪紶閫掍护鐗屾椂璋冪敤銆�
- *  鐢� MqttClient.connect 婵�娲绘鍥炶皟銆�
- *
- */
-public class PushCallback implements MqttCallback {
-
-    public void connectionLost(Throwable cause) {
-        // 杩炴帴涓㈠け鍚庯紝涓�鑸湪杩欓噷闈㈣繘琛岄噸杩�
-        System.out.println("杩炴帴鏂紑锛屽彲浠ュ仛閲嶈繛");
-    }
-
-    public void deliveryComplete(IMqttDeliveryToken token) {
-        System.out.println("deliveryComplete---------" + token.isComplete());
-    }
-
-    public void messageArrived(String topic, MqttMessage message) throws Exception {
-        // subscribe鍚庡緱鍒扮殑娑堟伅浼氭墽琛屽埌杩欓噷闈�
-        System.out.println("鎺ユ敹娑堟伅涓婚 : " + topic);
-        System.out.println("鎺ユ敹娑堟伅Qos : " + message.getQos());
-        System.out.println("鎺ユ敹娑堟伅鍐呭 : " + new String(message.getPayload()));
-    }
-}
diff --git a/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/util/Recv.java b/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/util/Recv.java
deleted file mode 100644
index 47ea2db..0000000
--- a/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/util/Recv.java
+++ /dev/null
@@ -1,30 +0,0 @@
-package cn.exrick.xboot.your.util;
-
-import com.rabbitmq.client.Channel;
-import com.rabbitmq.client.Connection;
-import com.rabbitmq.client.ConnectionFactory;
-import com.rabbitmq.client.DeliverCallback;
-
-public class Recv {
-    private final static String QUEUE_NAME = "5201154049";
-
-    public static void main(String[] argv) throws Exception {
-        ConnectionFactory factory = new ConnectionFactory();
-        factory.setHost("111.63.178.115");
-        factory.setPort(1883);
-        factory.setUsername("artemis_28156526_8SS2BGXE");
-        factory.setPassword("1GVZ2F7C");
-        Connection connection = factory.newConnection();
-        Channel channel = connection.createChannel();
-//璇锋敞鎰忥紝鎴戜滑涔熷湪杩欓噷澹版槑浜嗛槦鍒椼�傚洜涓烘垜浠彲鑳藉湪鍙戝竷鑰呬箣鍓嶅惎鍔ㄦ秷璐硅�咃紝鎵�浠ユ垜浠笇鏈涘湪灏濊瘯浣跨敤娑堟伅涔嬪墠纭繚闃熷垪瀛樺湪銆�
-        channel.queueDeclare(QUEUE_NAME, false, false, false, null);
-        System.out.println(" [*] Waiting for messages. To exit press CTRL+C");
-//鎴戜滑鍗冲皢鍛婅瘔鏈嶅姟鍣ㄤ粠闃熷垪涓紶閫掓秷鎭�傚洜涓哄畠浼氬紓姝ュ湴鍚戞垜浠彂閫佹秷鎭紝
-// 鎵�浠ユ垜浠互瀵硅薄鐨勫舰寮忔彁渚涗竴涓洖璋冿紝瀹冨皢缂撳啿娑堟伅锛岀洿鍒版垜浠噯澶囧ソ浣跨敤瀹冧滑銆傝繖灏辨槸DeliverCallback瀛愮被鐨勪綔鐢ㄣ��
-        DeliverCallback deliverCallback = (consumerTag, delivery) -> {
-            String message = new String(delivery.getBody(), "UTF-8");
-            System.out.println(" [x] Received '" + message + "'");
-        };
-        channel.basicConsume(QUEUE_NAME, true, deliverCallback, consumerTag -> { });
-    }
-}

--
Gitblit v1.9.1