diff --git a/cloud-modules/cloud-modules-vehiclegateway/pom.xml b/cloud-modules/cloud-modules-vehiclegateway/pom.xml
new file mode 100644
index 0000000..75790e1
--- /dev/null
+++ b/cloud-modules/cloud-modules-vehiclegateway/pom.xml
@@ -0,0 +1,112 @@
+
+
+ 4.0.0
+
+ com.muyu
+ cloud-modules
+ 3.6.3
+
+
+ cloud-modules-vehiclegateway
+
+
+ 17
+ 17
+ UTF-8
+
+
+
+
+
+
+ org.springframework.cloud
+ spring-cloud-starter-bootstrap
+ 4.1.2
+
+
+
+
+
+ com.alibaba.cloud
+ spring-cloud-starter-alibaba-nacos-discovery
+
+
+
+
+ com.alibaba.cloud
+ spring-cloud-starter-alibaba-nacos-config
+
+
+
+
+ com.alibaba.cloud
+ spring-cloud-starter-alibaba-sentinel
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-actuator
+
+
+
+
+ com.mysql
+ mysql-connector-j
+
+
+
+
+ com.muyu
+ cloud-common-datasource
+
+
+
+
+ com.muyu
+ cloud-common-datascope
+
+
+
+
+ com.muyu
+ cloud-common-log
+
+
+
+
+ com.muyu
+ cloud-common-api-doc
+
+
+
+
+ com.muyu
+ cloud-common-rabbit
+
+
+ org.springframework.boot
+ spring-boot-autoconfigure
+
+
+
+
+ ${project.artifactId}
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+
+
+
+ repackage
+
+
+
+
+
+
+
+
diff --git a/cloud-modules/cloud-modules-vehiclegateway/src/main/java/com/muyu/VehicleGatewayApplication.java b/cloud-modules/cloud-modules-vehiclegateway/src/main/java/com/muyu/VehicleGatewayApplication.java
new file mode 100644
index 0000000..f3c8b40
--- /dev/null
+++ b/cloud-modules/cloud-modules-vehiclegateway/src/main/java/com/muyu/VehicleGatewayApplication.java
@@ -0,0 +1,11 @@
+package com.muyu;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+@SpringBootApplication
+public class VehicleGatewayApplication {
+ public static void main(String[] args) {
+ SpringApplication.run(VehicleGatewayApplication.class,args);
+ }
+}
diff --git a/cloud-modules/cloud-modules-vehiclegateway/src/main/java/com/muyu/core/LocalContainer.java b/cloud-modules/cloud-modules-vehiclegateway/src/main/java/com/muyu/core/LocalContainer.java
new file mode 100644
index 0000000..6e379a3
--- /dev/null
+++ b/cloud-modules/cloud-modules-vehiclegateway/src/main/java/com/muyu/core/LocalContainer.java
@@ -0,0 +1,24 @@
+package com.muyu.core;
+
+import com.muyu.domain.VehicleInstance;
+
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+
+public class LocalContainer {
+ private static final Map> tenantVehicleDataMap
+ =new ConcurrentHashMap<>();
+
+ /**
+ * 获取租户ID下车辆
+ */
+ public static MapgetVehicleDataMap(String tenantId){
+ return tenantVehicleDataMap.computeIfAbsent(tenantId,k->new ConcurrentHashMap<>());
+ }
+
+ /**
+ *
+ */
+
+
+}
diff --git a/cloud-modules/cloud-modules-vehiclegateway/src/main/java/com/muyu/core/VehicleConfiguration.java b/cloud-modules/cloud-modules-vehiclegateway/src/main/java/com/muyu/core/VehicleConfiguration.java
new file mode 100644
index 0000000..7b91529
--- /dev/null
+++ b/cloud-modules/cloud-modules-vehiclegateway/src/main/java/com/muyu/core/VehicleConfiguration.java
@@ -0,0 +1,13 @@
+package com.muyu.core;
+
+import lombok.AllArgsConstructor;
+import lombok.extern.log4j.Log4j2;
+import org.springframework.boot.ApplicationArguments;
+import org.springframework.boot.ApplicationRunner;
+import org.springframework.context.annotation.Configuration;
+
+@Log4j2
+@Configuration
+@AllArgsConstructor
+public class VehicleConfiguration {
+}
diff --git a/cloud-modules/cloud-modules-vehiclegateway/src/main/java/com/muyu/domain/MqttProperties.java b/cloud-modules/cloud-modules-vehiclegateway/src/main/java/com/muyu/domain/MqttProperties.java
new file mode 100644
index 0000000..f005027
--- /dev/null
+++ b/cloud-modules/cloud-modules-vehiclegateway/src/main/java/com/muyu/domain/MqttProperties.java
@@ -0,0 +1,42 @@
+package com.muyu.domain;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * mqtt配置类
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class MqttProperties {
+ /**
+ * 节点
+ */
+ private String broker;
+
+ /**
+ * 主题
+ */
+ private String topic;
+ /**
+ * 用户名
+ */
+ private String userName;
+
+ /**
+ * 密码
+ */
+ private String password;
+
+ /**
+ * 节点ID
+ */
+ private String clientId;
+ /**
+ * 上报级别
+ */
+ private int qos=0;
+
+}
diff --git a/cloud-modules/cloud-modules-vehiclegateway/src/main/java/com/muyu/domain/ServerConfig.java b/cloud-modules/cloud-modules-vehiclegateway/src/main/java/com/muyu/domain/ServerConfig.java
new file mode 100644
index 0000000..ad4b607
--- /dev/null
+++ b/cloud-modules/cloud-modules-vehiclegateway/src/main/java/com/muyu/domain/ServerConfig.java
@@ -0,0 +1,76 @@
+package com.muyu.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.muyu.domain.model.ServerConfigModel;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.function.Supplier;
+
+/**
+ * 服务器配置类
+ */
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+@TableName(value = "server_config")
+public class ServerConfig {
+
+ /**
+ * 主键
+ */
+ @TableId(value = "id",type = IdType.AUTO)
+ private Long id;
+
+
+ /**
+ * 主机地址
+ */
+ private String host;
+
+ /**
+ * 端口号
+ */
+ private String port;
+
+ /**
+ * 负载地址
+ */
+ private String url;
+
+ /**
+ * 默认MOTT地址
+ */
+ private String defaultMqttAddr;
+
+ /**
+ * 默认MQTT主题
+ */
+ private String defaultMqttTopic;
+
+ /**
+ * 默认MOTT交付级别
+ */
+ private Integer defaultMqttQos;
+
+
+ public static ServerConfig modeBuild(ServerConfigModel serverConfigModel, Supplier idKey){
+ return builder()
+ .id(idKey.get())
+ .host(serverConfigModel.getHost())
+ .port(serverConfigModel.getPort())
+ .url(serverConfigModel.getUrl())
+ .defaultMqttAddr(serverConfigModel.getDefaultMqttAddr())
+ .defaultMqttTopic(serverConfigModel.getDefaultMqttTopic())
+ .defaultMqttQos(serverConfigModel.getDefaultMqttQos())
+ .build();
+
+
+
+ }
+}
diff --git a/cloud-modules/cloud-modules-vehiclegateway/src/main/java/com/muyu/domain/VehicleInstance.java b/cloud-modules/cloud-modules-vehiclegateway/src/main/java/com/muyu/domain/VehicleInstance.java
new file mode 100644
index 0000000..640ed37
--- /dev/null
+++ b/cloud-modules/cloud-modules-vehiclegateway/src/main/java/com/muyu/domain/VehicleInstance.java
@@ -0,0 +1,27 @@
+package com.muyu.domain;
+
+import com.muyu.domain.model.PositionModel;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.concurrent.LinkedBlockingQueue;
+
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@Builder
+public class VehicleInstance {
+ /**
+ * 路线轨迹编码
+ */
+ private String positionCode;
+
+ /**
+ * 路径队列
+ */
+ private LinkedBlockingQueue positionQueue=new LinkedBlockingQueue<>();
+
+
+}
diff --git a/cloud-modules/cloud-modules-vehiclegateway/src/main/java/com/muyu/domain/model/MqttServerModel.java b/cloud-modules/cloud-modules-vehiclegateway/src/main/java/com/muyu/domain/model/MqttServerModel.java
new file mode 100644
index 0000000..bdd921c
--- /dev/null
+++ b/cloud-modules/cloud-modules-vehiclegateway/src/main/java/com/muyu/domain/model/MqttServerModel.java
@@ -0,0 +1,37 @@
+package com.muyu.domain.model;
+
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ Mqtt服务器模型
+ */
+
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class MqttServerModel {
+ private static final Logger log=LoggerFactory.getLogger(MqttServerModel.class);
+
+ /**
+ * MQTT服务节点
+ */
+ private String broker;
+
+ /**
+ * MQTT订阅主题
+ */
+ private String topic;
+
+ public String getBroker(){
+ log.info("broker:{}",broker);
+ return broker.contains("tcp://")?broker:"tcp://"+broker+":1883";
+ }
+
+
+}
+
diff --git a/cloud-modules/cloud-modules-vehiclegateway/src/main/java/com/muyu/domain/model/PositionModel.java b/cloud-modules/cloud-modules-vehiclegateway/src/main/java/com/muyu/domain/model/PositionModel.java
new file mode 100644
index 0000000..88d00e4
--- /dev/null
+++ b/cloud-modules/cloud-modules-vehiclegateway/src/main/java/com/muyu/domain/model/PositionModel.java
@@ -0,0 +1,33 @@
+package com.muyu.domain.model;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * @description: 位置模型
+ */
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class PositionModel {
+ /**
+ * 经度
+ */
+ private String longitude;
+
+ /**
+ * 维度
+ */
+ private String latitude;
+
+ public static PositionModel strBuild (String positionStr) {
+ String[] split = positionStr.split(",");
+ return PositionModel.builder()
+ .longitude(split[0])
+ .latitude(split[1])
+ .build();
+ }
+}
diff --git a/cloud-modules/cloud-modules-vehiclegateway/src/main/java/com/muyu/domain/model/ServerConfigModel.java b/cloud-modules/cloud-modules-vehiclegateway/src/main/java/com/muyu/domain/model/ServerConfigModel.java
new file mode 100644
index 0000000..fa63cdb
--- /dev/null
+++ b/cloud-modules/cloud-modules-vehiclegateway/src/main/java/com/muyu/domain/model/ServerConfigModel.java
@@ -0,0 +1,53 @@
+package com.muyu.domain.model;
+
+import com.muyu.domain.ServerConfig;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+public class ServerConfigModel {
+ /**
+ * 主机地址
+ */
+ private String host;
+
+ /**
+ * 端口号
+ */
+ private String port;
+ /**
+ * 负载地址
+ */
+ private String url;
+
+ /**
+ * 默认MOTT地址
+ */
+ private String defaultMqttAddr;
+
+ /**
+ * 默认MQTT主题
+ */
+ private String defaultMqttTopic;
+
+ /**
+ * 默认MOTT交付级别
+ */
+ private Integer defaultMqttQos;
+
+ public static ServerConfigModel serverConfigModelBuild(ServerConfig serverConfig){
+ return builder()
+ .host(serverConfig.getHost().trim())
+ .port(serverConfig.getPort())
+ .url(serverConfig.getUrl().trim())
+ .defaultMqttAddr(serverConfig.getDefaultMqttAddr().trim())
+ .defaultMqttTopic(serverConfig.getDefaultMqttTopic().trim())
+ .defaultMqttQos(serverConfig.getDefaultMqttQos())
+ .build();
+ }
+}
diff --git a/cloud-modules/cloud-modules-vehiclegateway/src/main/resources/banner.txt b/cloud-modules/cloud-modules-vehiclegateway/src/main/resources/banner.txt
new file mode 100644
index 0000000..0dd5eee
--- /dev/null
+++ b/cloud-modules/cloud-modules-vehiclegateway/src/main/resources/banner.txt
@@ -0,0 +1,2 @@
+Spring Boot Version: ${spring-boot.version}
+Spring Application Name: ${spring.application.name}
diff --git a/cloud-modules/cloud-modules-vehiclegateway/src/main/resources/logback/dev.xml b/cloud-modules/cloud-modules-vehiclegateway/src/main/resources/logback/dev.xml
new file mode 100644
index 0000000..621579c
--- /dev/null
+++ b/cloud-modules/cloud-modules-vehiclegateway/src/main/resources/logback/dev.xml
@@ -0,0 +1,74 @@
+
+
+
+
+
+
+
+
+
+
+ ${log.pattern}
+
+
+
+
+
+ ${log.path}/info.log
+
+
+
+ ${log.path}/info.%d{yyyy-MM-dd}.log
+
+ 60
+
+
+ ${log.pattern}
+
+
+
+ INFO
+
+ ACCEPT
+
+ DENY
+
+
+
+
+ ${log.path}/error.log
+
+
+
+ ${log.path}/error.%d{yyyy-MM-dd}.log
+
+ 60
+
+
+ ${log.pattern}
+
+
+
+ ERROR
+
+ ACCEPT
+
+ DENY
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/cloud-modules/cloud-modules-vehiclegateway/src/main/resources/logback/prod.xml b/cloud-modules/cloud-modules-vehiclegateway/src/main/resources/logback/prod.xml
new file mode 100644
index 0000000..2419bf9
--- /dev/null
+++ b/cloud-modules/cloud-modules-vehiclegateway/src/main/resources/logback/prod.xml
@@ -0,0 +1,81 @@
+
+
+
+
+
+
+
+
+
+
+
+ ${log.sky.pattern}
+
+
+
+
+
+ ${log.path}/info.log
+
+
+
+ ${log.path}/info.%d{yyyy-MM-dd}.log
+
+ 60
+
+
+
+
+ INFO
+
+ ACCEPT
+
+ DENY
+
+
+
+
+ ${log.path}/error.log
+
+
+
+ ${log.path}/error.%d{yyyy-MM-dd}.log
+
+ 60
+
+
+
+
+ ERROR
+
+ ACCEPT
+
+ DENY
+
+
+
+
+
+
+
+ ${log.sky.pattern}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/cloud-modules/cloud-modules-vehiclegateway/src/main/resources/logback/test.xml b/cloud-modules/cloud-modules-vehiclegateway/src/main/resources/logback/test.xml
new file mode 100644
index 0000000..2419bf9
--- /dev/null
+++ b/cloud-modules/cloud-modules-vehiclegateway/src/main/resources/logback/test.xml
@@ -0,0 +1,81 @@
+
+
+
+
+
+
+
+
+
+
+
+ ${log.sky.pattern}
+
+
+
+
+
+ ${log.path}/info.log
+
+
+
+ ${log.path}/info.%d{yyyy-MM-dd}.log
+
+ 60
+
+
+
+
+ INFO
+
+ ACCEPT
+
+ DENY
+
+
+
+
+ ${log.path}/error.log
+
+
+
+ ${log.path}/error.%d{yyyy-MM-dd}.log
+
+ 60
+
+
+
+
+ ERROR
+
+ ACCEPT
+
+ DENY
+
+
+
+
+
+
+
+ ${log.sky.pattern}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/cloud-modules/cloud-modules-warn/src/main/java/com/muyu/mapper/WarnLogsMapper.java b/cloud-modules/cloud-modules-warn/src/main/java/com/muyu/mapper/WarnLogsMapper.java
index 8a2d610..98298af 100644
--- a/cloud-modules/cloud-modules-warn/src/main/java/com/muyu/mapper/WarnLogsMapper.java
+++ b/cloud-modules/cloud-modules-warn/src/main/java/com/muyu/mapper/WarnLogsMapper.java
@@ -18,4 +18,6 @@ public interface WarnLogsMapper extends BaseMapper{
List selectWarnLogsList();
WarnLogsResp selectWarnLogs(@Param("id")Long id);
+
+ Integer addWarnLog(List list);
}
diff --git a/cloud-modules/cloud-modules-warn/src/main/resources/mapper/WarnLogsMapper.xml b/cloud-modules/cloud-modules-warn/src/main/resources/mapper/WarnLogsMapper.xml
index 6d83fc0..5308b43 100644
--- a/cloud-modules/cloud-modules-warn/src/main/resources/mapper/WarnLogsMapper.xml
+++ b/cloud-modules/cloud-modules-warn/src/main/resources/mapper/WarnLogsMapper.xml
@@ -3,6 +3,12 @@
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+
+ INSERT INTO warn_logs VALUES
+
+ (#{warnLogs.id})
+
+