Browse Source

ip改为内网

DogEggDragon 1 week ago
parent
commit
7a281ff8ad

+ 4 - 0
pom.xml

@@ -78,6 +78,10 @@
             <artifactId>junit</artifactId>
             <version>4.11</version>
         </dependency>
+        <dependency>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok</artifactId>
+        </dependency>
 
     </dependencies>
 

+ 21 - 23
src/main/java/com/xyhy/xingshenmqttcluster/common/HttpRequest.java

@@ -1,5 +1,9 @@
 package com.xyhy.xingshenmqttcluster.common;
 
+import com.xyhy.xingshenmqttcluster.common.message.MessageHandle;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Component;
 
 import java.io.BufferedReader;
@@ -13,6 +17,8 @@ import java.util.Map;
 
 @Component
 public class HttpRequest {
+
+    public static final Logger log = LoggerFactory.getLogger(HttpRequest.class);
     /**
      * 向指定URL发送GET方法的请求
      *
@@ -73,52 +79,44 @@ public class HttpRequest {
      * @return 所代表远程资源的响应结果
      */
     public static Object sendPost(String url, String param) {
+        log.info("请求路径为:{},请求参数为:{}", url, param);
         PrintWriter out = null;
         BufferedReader in = null;
         String result = "";
+
         try {
             URL realUrl = new URL(url);
-            // 打开和URL之间的连接
             URLConnection conn = realUrl.openConnection();
-            // 设置通用的请求属性
-            conn.setRequestProperty("accept", "*/*");
-            conn.setRequestProperty("connection", "Keep-Alive");
-            conn.setRequestProperty("user-agent",
-                    "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
-            // 发送POST请求必须设置如下两行
+            conn.setRequestProperty("Content-Type", "application/json");
             conn.setDoOutput(true);
             conn.setDoInput(true);
-            // 获取URLConnection对象对应的输出流
             out = new PrintWriter(conn.getOutputStream());
-            // 发送请求参数
             out.print(param);
-            // flush输出流的缓冲
             out.flush();
-            // 定义BufferedReader输入流来读取URL的响应
-            in = new BufferedReader(
-                    new InputStreamReader(conn.getInputStream()));
+
             String line;
-            while ((line = in.readLine()) != null) {
-                result += line;
+            for(in = new BufferedReader(new InputStreamReader(conn.getInputStream())); (line = in.readLine()) != null; result = result + line) {
             }
 
-        } catch (Exception e) {
-            System.out.println("发送 POST 请求出现异常!" + e);
-            e.printStackTrace();
-        }
-        //使用finally块来关闭输出流、输入流
-        finally {
+            log.info("返回值:{}", result);
+        } catch (Exception var16) {
+            System.out.println("发送 POST 请求出现异常!" + var16);
+            var16.printStackTrace();
+        } finally {
             try {
                 if (out != null) {
                     out.close();
                 }
+
                 if (in != null) {
                     in.close();
                 }
-            } catch (IOException ex) {
-                ex.printStackTrace();
+            } catch (IOException var15) {
+                var15.printStackTrace();
             }
+
         }
+
         return result;
     }
 }

+ 252 - 0
src/main/java/com/xyhy/xingshenmqttcluster/common/domain/IvCar.java

@@ -0,0 +1,252 @@
+package com.xyhy.xingshenmqttcluster.common.domain;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+public class IvCar implements Serializable {
+
+    private static final long serialVersionUID = -7298597230336141186L;
+
+    /**
+     * id
+     */
+    private Integer id;
+
+    /**
+     * 车云平台车辆ID
+     */
+    private String ivCarId;
+
+    /**
+     * 车云平台运力资源ID
+     */
+    private String ivCapacityResourceId;
+
+    /**
+     * 车辆名称
+     */
+    private String carName;
+
+    /**
+     * 车辆型号
+     */
+    private String model;
+
+    /**
+     * 出厂编码
+     */
+    private String factoryCode;
+
+    /**
+     * 生产日期
+     */
+    private Date productDate;
+
+    /**
+     * 最高车速
+     */
+    private String maxSpeed;
+
+    /**
+     * 最大载重
+     */
+    private String maxPayload;
+
+    /**
+     * 当前所在经度
+     */
+    private String longitude;
+
+    /**
+     * 当前所在纬度
+     */
+    private String latitude;
+
+    /**
+     * 当前海拔
+     */
+    private String altitude;
+
+    /**
+     * 当前驾驶角度
+     */
+    private String steerAngle;
+
+    /**
+     * 当前所在位置方向角
+     */
+    private String azimuth;
+
+    /**
+     * 当前楼层
+     */
+    private Integer regionId;
+
+    /**
+     * 当前速度
+     */
+    private String speed;
+
+    /**
+     * 当前驾驶模式
+     */
+    private String driveMode;
+
+    /**
+     * 剩余电量
+     */
+    private String residualFuel;
+
+    /**
+     * 当前电压
+     */
+    private String voltage;
+
+    /**
+     * 当前电流
+     */
+    private String ammeter;
+
+    /**
+     * 当前温度
+     */
+    private String temperature;
+
+    /**
+     * 耐力
+     */
+    private String endurance;
+
+    /**
+     * 总里程
+     */
+    private String odometer;
+
+    /**
+     * 删除标志(0正常;1删除)
+     */
+    private String delFlag;
+
+    /**
+     * 车辆在线状态(0离线;1在线;2未知)
+     */
+    private Integer status;
+
+    /**
+     * 车辆是否充电中(0否;1是;2未知)
+     */
+    private Integer chargeStatus;
+
+    /**
+     * 车辆是否锁定(0否;1是)
+     */
+    private Integer lockStatus;
+
+    /**
+     * 车辆补电插口状态(0未知;1空闲;2已插枪;3充电中)
+     */
+    private Integer pluginStatus;
+
+    /**
+     * 车辆在线状态
+     */
+    public enum Status {
+        offline(0, "离线"),
+        online(1, "在线"),
+        unknown(2, "未知");
+
+        private int code;
+        private String message;
+
+        private Status(int code, String message) {
+            this.code = code;
+            this.message = message;
+        }
+
+        public int getCode() {
+            return code;
+        }
+
+        public String getMessage() {
+            return message;
+        }
+    }
+
+    /**
+     * 车辆充电状态
+     */
+    public enum ChargeStatus {
+        no(0, "否"),
+        yes(1, "是"),
+        unknown(2, "未知");
+
+        private int code;
+        private String message;
+
+        private ChargeStatus(int code, String message) {
+            this.code = code;
+            this.message = message;
+        }
+
+        public int getCode() {
+            return code;
+        }
+
+        public String getMessage() {
+            return message;
+        }
+    }
+
+    /**
+     * 车辆锁定状态
+     */
+    public enum LockStatus {
+        no(0, "否"),
+        yes(1, "是");
+
+        private int code;
+        private String message;
+
+        private LockStatus(int code, String message) {
+            this.code = code;
+            this.message = message;
+        }
+
+        public int getCode() {
+            return code;
+        }
+
+        public String getMessage() {
+            return message;
+        }
+    }
+
+    /**
+     * 车辆补电插口状态
+     */
+    public enum PluginStatus {
+        unknown(0, "未知"),
+        idle(1, "空闲"),
+        connected(2, "已插枪"),
+        charging(3, "充电中");
+
+        private int code;
+        private String message;
+
+        private PluginStatus(int code, String message) {
+            this.code = code;
+            this.message = message;
+        }
+
+        public int getCode() {
+            return code;
+        }
+
+        public String getMessage() {
+            return message;
+        }
+    }
+}

+ 88 - 15
src/main/java/com/xyhy/xingshenmqttcluster/common/message/MessageHandle.java

@@ -1,8 +1,10 @@
 package com.xyhy.xingshenmqttcluster.common.message;
 
+import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.xyhy.xingshenmqttcluster.common.Common;
 import com.xyhy.xingshenmqttcluster.common.HttpRequest;
+import com.xyhy.xingshenmqttcluster.common.domain.IvCar;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -11,15 +13,44 @@ public class MessageHandle {
     public static final Logger log =  LoggerFactory.getLogger(MessageHandle.class);
 
     public static void vehicleOnline(String topic, JSONObject msg){
-
+        JSONObject msgBody = JSONObject.parseObject(msg.getString("msgBody"));
+        String ivCarUrl = getUrl() + "cloud/chargapi/restapi/robot/sysnCar";
+        JSONObject data = msgBody.getJSONObject("data");
+        IvCar ivCar = new IvCar();
+        ivCar.setIvCarId(msgBody.getString("capacityResourceObjectId"));
+        ivCar.setIvCapacityResourceId(msgBody.getString("capacityResourceId"));
+        ivCar.setStatus(1);
+        String ivCarParam = JSONObject.toJSONString(ivCar);
+        HttpRequest.sendPost(ivCarUrl, ivCarParam);
     }
 
     public static void vehicleOffline(String topic, JSONObject msg){
-
+        JSONObject msgBody = JSONObject.parseObject(msg.getString("msgBody"));
+        String ivCarUrl = getUrl() + "cloud/chargapi/restapi/robot/sysnCar";
+        JSONObject data = msgBody.getJSONObject("data");
+        IvCar ivCar = new IvCar();
+        ivCar.setIvCarId(msgBody.getString("capacityResourceObjectId"));
+        ivCar.setIvCapacityResourceId(msgBody.getString("capacityResourceId"));
+        ivCar.setStatus(0);
+        String ivCarParam = JSONObject.toJSONString(ivCar);
+        HttpRequest.sendPost(ivCarUrl, ivCarParam);
     }
 
     public static void fuelState(String topic, JSONObject msg){
-
+        String url = getUrl() + "cloud/chargapi/restapi/robot/sysnCar";
+        JSONObject msgBody = JSONObject.parseObject(msg.getString("msgBody"));
+        JSONObject data = msgBody.getJSONObject("data");
+        IvCar ivCar = new IvCar();
+        ivCar.setIvCarId(msgBody.getString("capacityResourceObjectId"));
+        ivCar.setIvCapacityResourceId(msgBody.getString("capacityResourceId"));
+        ivCar.setAmmeter(data.getString("ammeter"));
+        ivCar.setOdometer(data.getString("odometer"));
+        ivCar.setResidualFuel(data.getString("residualFuel"));
+        ivCar.setChargeStatus(data.getInteger("isCharging"));
+        ivCar.setEndurance(data.getString("endurance"));
+        ivCar.setVoltage(data.getString("voltage"));
+        String param = JSONObject.toJSONString(ivCar);
+        HttpRequest.sendPost(url, param);
     }
 
     public static void vehicleState(String topic, JSONObject msg){
@@ -27,27 +58,59 @@ public class MessageHandle {
     }
 
     public static void vehicleStart(String topic, JSONObject msg){
-        JSONObject msgBody = JSONObject.parseObject(msg.getString("msgBody"));
-        String capacityResourceObjectId = msgBody.getString("capacityResourceObjectId");
-        String url = Common.getConfigByName("charging.interface.api.url.test") + "/tcpcarControl";
-        String param = "ivCapacityResourceld" + "=" + capacityResourceObjectId + "&" + "messageType" + "=" + "2";
-        log.info(param);
-        Object o = HttpRequest.sendPost(url, param);
+        log.info("运力资源对象起步事件");
         log.info(msg.toJSONString());
+        JSONObject msgBody = JSONObject.parseObject(msg.getString("msgBody"));
+        String capacityResourceObjectId = msgBody.getString("capacityResourceId");
+        String url = getUrl() + "cloud/chargapi/restapi/robot/tcpCarControl";
+        JSONObject obj = new JSONObject();
+        obj.put("ivCarId", msgBody.getString("capacityResourceObjectId"));
+        obj.put("ivCapacityResourceId", capacityResourceObjectId);
+        obj.put("messageType", "2");
+        String param = obj.toJSONString();
+        HttpRequest.sendPost(url, param);
+        String ivCarUrl = getUrl() + "cloud/chargapi/restapi/robot/sysnCar";
+        JSONObject data = msgBody.getJSONObject("data");
+        IvCar ivCar = new IvCar();
+        ivCar.setIvCarId(msgBody.getString("capacityResourceObjectId"));
+        ivCar.setIvCapacityResourceId(msgBody.getString("capacityResourceId"));
+        ivCar.setLatitude(data.getString("latitude"));
+        ivCar.setAzimuth(data.getString("azimuth"));
+        ivCar.setLongitude(data.getString("longitude"));
+        String ivCarParam = JSONObject.toJSONString(ivCar);
+        HttpRequest.sendPost(ivCarUrl, ivCarParam);
     }
 
     public static void arriveStationRequest(String topic, JSONObject msg){
+        log.info("运力资源对象到达停靠点");
+        log.info(msg.toJSONString());
         JSONObject msgBody = JSONObject.parseObject(msg.getString("msgBody"));
         String capacityResourceObjectId = msgBody.getString("capacityResourceId");
         JSONObject data = msgBody.getJSONObject("data");
         JSONObject station = data.getJSONObject("station");
         String stationId = station.getString("stationId");
-        String url = Common.getConfigByName("charging.interface.api.url.test") + "/tcpcarControl";
-        String param = "ivCapacityResourceld" + "=" + capacityResourceObjectId + "&" +
-                       "ivParkPointId" + "=" + stationId + "&" +
-                       "messageType" + "=" + "1";
-        log.info(param);
-        Object o = HttpRequest.sendPost(url, param);
+        String url = getUrl() + "cloud/chargapi/restapi/robot/tcpCarControl";
+        JSONObject obj = new JSONObject();
+        obj.put("ivCapacityResourceId", capacityResourceObjectId);
+        obj.put("ivParkPointId", stationId);
+        obj.put("messageType", "1");
+        obj.put("ivCarId", msgBody.getString("capacityResourceObjectId"));
+        String param = obj.toJSONString();
+        HttpRequest.sendPost(url, param);
+        String ivCarUrl = getUrl() + "cloud/chargapi/restapi/robot/sysnCar";
+        IvCar ivCar = new IvCar();
+        ivCar.setIvCarId(msgBody.getString("capacityResourceObjectId"));
+        ivCar.setIvCapacityResourceId(msgBody.getString("capacityResourceId"));
+        ivCar.setLatitude(station.getString("latitude"));
+        ivCar.setAzimuth(station.getString("azimuth"));
+        ivCar.setRegionId(station.getInteger("regionId"));
+        ivCar.setLongitude(station.getString("longitude"));
+        String ivCarParam = JSONObject.toJSONString(ivCar);
+        HttpRequest.sendPost(ivCarUrl, ivCarParam);
+    }
+
+    public static void fault(String topic, JSONObject msg) {
+        log.info("故障告警");
         log.info(msg.toJSONString());
     }
 
@@ -74,4 +137,14 @@ public class MessageHandle {
     public static void startCarFailMsg(String topic, JSONObject msg){
 
     }
+
+    private static String getUrl() {
+        String url = "";
+        if (Common.getConfigByName("charging.interface.api.url.status").equals("run")){
+            url = Common.getConfigByName("charging.interface.api.url.produce");
+        } else {
+            url = Common.getConfigByName("charging.interface.api.url.test");
+        }
+        return url;
+    }
 }

+ 5 - 1
src/main/java/com/xyhy/xingshenmqttcluster/common/mqtt/MqttGetMessage.java

@@ -7,6 +7,7 @@ import com.xyhy.xingshenmqttcluster.common.message.MessageHandle;
 import org.eclipse.paho.client.mqttv3.IMqttDeliveryToken;
 import org.eclipse.paho.client.mqttv3.MqttCallback;
 import org.eclipse.paho.client.mqttv3.MqttMessage;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
 @Component
@@ -23,7 +24,7 @@ public class MqttGetMessage extends Common implements MqttCallback {
         JSONObject msg = JSONObject.parseObject(new String(mqttMessage.getPayload()));
         String msgType = msg.getString("msgType");
         int i = Integer.parseInt(msgType);
-//        log.info(new String(mqttMessage.getPayload()));
+        log.info(new String(mqttMessage.getPayload()));
         switch (i) {
             case 1:
                 MessageHandle.vehicleOnline(s, msg);
@@ -40,6 +41,9 @@ public class MqttGetMessage extends Common implements MqttCallback {
             case 6:
                 MessageHandle.vehicleStart(s, msg);
                 break;
+            case 8:
+                MessageHandle.fault(s, msg);
+                break;
             case 19:
                 MessageHandle.arriveStationRequest(s, msg);
                 break;

+ 62 - 0
src/main/resources/application-debug.properties

@@ -0,0 +1,62 @@
+
+#######MQTT SERVER##########
+MQTT.server.hostUrl=wss://console.api.xingshentech.com:443/ws/mqtt
+MQTT.server.hostName=zdcx
+MQTT.server.password=zdcx0115
+MQTT.server.timeout=100000
+MQTT.server.keepAlive=60000
+
+
+
+#######MQTT Subscribe##########
+
+##MQTT.server.Subscribe=$queue\\101,$queue\\103,$queue\\105,$queue\\201,$queue\\302,$queue\\303,$queue\\305,$queue\\306,$queue\\309,$queue\\401,$queue\\501
+##MQTT.server.Subscribe=xs/v1/business/boot/task/notify/important/msg/queue/34,xs/v1/business/boot/boot/task/notify/msg/queue/34
+#MQTT.server.Subscribe=xs/business/boot/task/notify/important/msg/queue/6
+MQTT.server.Subscribe=xs/v1/business/boot/boot/task/notify/msg/queue/34,xs/v1/business/boot/task/notify/important/msg/queue/34
+
+#######WEB SERVER###########
+server.port=20002
+
+
+#######REDIS SERVER#########
+redis.server.ip=39.98.37.180
+redis.server.port=6397
+redis.server.db=11
+redis.server.pw=boxun91#Rs
+reids.server.MaxTotal=50
+reids.server.MaxIdle=20
+reids.server.MinIdle=10
+reids.server.MaxWaitMillis=3000
+reids.server.TestOnBorrow=true
+reids.server.Timeout=3000
+
+
+
+#######Charging interface service###########
+charging.interface.api.port=9999
+charging.interface.api.realtime=/realtime/restapi/realtime/
+charging.interface.api.pileLog=/web/restapi/pileLog/
+charging.interface.api.url.produce=https://cdglyy.pjnes.com/
+charging.interface.api.url.test=https://jqcs.pjnes.com/
+charging.interface.api.url.status=debug
+
+
+#logging.level.root=error
+
+#######rabbitMQ###########
+rabbitMq.server.ip=39.98.37.180
+rabbitMq.server.port=5673
+rabbitMq.server.vHost=/
+rabbitMq.server.userName=rabbit
+rabbitMq.server.passWord=rabbit@blhld
+rabbitMq.server.queue.toImplServer=TOIMPLSERVERQUEUE
+rabbitMq.server.queue.toMQTTServer=TOMQTTSERVERQUEUE
+rabbitMq.server.queue.toRealTimeServer=TOREALTIMESERVEQUEUE
+
+rabbitMq.server.TOMQTTSERVEREXCHANGE=TOMQTTSERVEREXCHANGE
+rabbitMq.server.TOIMPLSERVEREXCHANGE=TOIMPLSERVEREXCHANGE
+rabbitMq.server.TOREALTIMEDATASERVEREXCHANGE=TOREALTIMEDATASERVEREXCHANGE
+
+#######log projectName###########
+project.name=xingshenMQTTCluster

+ 3 - 3
src/main/resources/application.properties

@@ -20,7 +20,7 @@ server.port=20002
 
 
 #######REDIS SERVER#########
-redis.server.ip=39.98.37.180
+redis.server.ip=172.26.76.39
 redis.server.port=6397
 redis.server.db=11
 redis.server.pw=boxun91#Rs
@@ -39,13 +39,13 @@ charging.interface.api.realtime=/realtime/restapi/realtime/
 charging.interface.api.pileLog=/web/restapi/pileLog/
 charging.interface.api.url.produce=https://cdglyy.pjnes.com/
 charging.interface.api.url.test=https://jqcs.pjnes.com/
-charging.interface.api.url.status=debug
+charging.interface.api.url.status=run
 
 
 #logging.level.root=error
 
 #######rabbitMQ###########
-rabbitMq.server.ip=39.98.37.180
+rabbitMq.server.ip=172.26.76.39
 rabbitMq.server.port=5673
 rabbitMq.server.vHost=/
 rabbitMq.server.userName=rabbit