From 48916dce82d41ca5f5a2d2952f25fede199b7cd1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=86=B7=E8=B0=83?= <3084898776@qq.com> Date: Wed, 9 Oct 2024 12:10:26 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E9=87=8D=E6=9E=84?= =?UTF-8?q?=E4=B8=89=E6=AC=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Aliyun/service/AliYunEcsService.java | 8 +++ .../CarOneClickOperationController.java | 4 +- .../com/muyu/cargateway/domain/VinIp.java | 4 +- .../domain/model/MqttServerModel.java | 2 + .../mapper/CarOneClickOperationMapper.java | 3 + .../service/CarOneClickOperationService.java | 3 +- .../Impl/CarOneClickOperationServiceImpl.java | 62 ++++++++++++++----- .../src/main/resources/bootstrap.yml | 2 +- .../mapper/CarOneClickOperationMapper.xml | 3 + 9 files changed, 70 insertions(+), 21 deletions(-) diff --git a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/Aliyun/service/AliYunEcsService.java b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/Aliyun/service/AliYunEcsService.java index 753c3e3..2f0fb62 100644 --- a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/Aliyun/service/AliYunEcsService.java +++ b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/Aliyun/service/AliYunEcsService.java @@ -51,6 +51,9 @@ public class AliYunEcsService { public List generateInstance(Integer amount) { redisService.deleteObject("instanceIds"); redisService.deleteObject("instanceList"); + redisService.deleteObject("ipList"); + redisService.deleteObject("count"); + redisService.deleteObject("vinIp"); // 检查生成实例的数量是否有效 if (amount == null || amount <= 0) { throw new ServiceException("生成数量不能小于1"); @@ -125,6 +128,7 @@ public class AliYunEcsService { // 创建运行时选项对象,用于配置请求的额外参数 RuntimeOptions runtimeOptions = new RuntimeOptions(); List aliInstances = new ArrayList<>(); + List stringArrayList = new ArrayList<>(); try { // 发送请求并获取响应对象 DescribeInstancesResponse describeInstancesResponse = client.describeInstancesWithOptions(request, runtimeOptions); @@ -140,12 +144,16 @@ public class AliYunEcsService { // ip地址 String ipAddress = bodyInstance.getPublicIpAddress().getIpAddress().get(0); log.info("实例ip为:{}", ipAddress); + stringArrayList.add(ipAddress); + // 实例状态 String status = bodyInstance.getStatus(); log.info("实例状态为:{}", status); AliInstance aliInstance = new AliInstance(instanceId, ipAddress, status); aliInstances.add(aliInstance); } + log.info("======================ipList:{}", stringArrayList); + redisService.setCacheList("ipList", stringArrayList); log.info("查询成功"); } catch (Exception e) { log.error("查询服务器实例错误:[{}]", e.getMessage(), e); diff --git a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/controller/CarOneClickOperationController.java b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/controller/CarOneClickOperationController.java index 8173dc7..54ffd3c 100644 --- a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/controller/CarOneClickOperationController.java +++ b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/controller/CarOneClickOperationController.java @@ -36,7 +36,7 @@ public class CarOneClickOperationController { @PostMapping("/receiveMsg/connect") public Result receiveMsg(@RequestBody VehicleConnectionReq vehicleConnectionReq){ log.info(">"+vehicleConnectionReq); - MqttServerModel mqttServerModel =carOneClickOperationService.getConnect(vehicleConnectionReq); - return Result.success(mqttServerModel); + return carOneClickOperationService.getConnect(vehicleConnectionReq); + } } diff --git a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/domain/VinIp.java b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/domain/VinIp.java index b6787f9..7d37381 100644 --- a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/domain/VinIp.java +++ b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/domain/VinIp.java @@ -19,9 +19,9 @@ public class VinIp { /** * 车辆的vin */ - String vehicleVin; + String vin; /** * 车辆的ip */ - String ipAddress; + String ip; } diff --git a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/domain/model/MqttServerModel.java b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/domain/model/MqttServerModel.java index 2f29353..17181d1 100644 --- a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/domain/model/MqttServerModel.java +++ b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/domain/model/MqttServerModel.java @@ -26,4 +26,6 @@ public class MqttServerModel { * MQTT订阅主题 */ private String topic; + + } diff --git a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/mapper/CarOneClickOperationMapper.java b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/mapper/CarOneClickOperationMapper.java index 3fc31fa..8ca2ce8 100644 --- a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/mapper/CarOneClickOperationMapper.java +++ b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/mapper/CarOneClickOperationMapper.java @@ -18,4 +18,7 @@ public interface CarOneClickOperationMapper { void addConnect(VehicleConnection vehicleConnection); List selectByVehicleVin(String vehicleVin); + + List selectVin(); + } diff --git a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/service/CarOneClickOperationService.java b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/service/CarOneClickOperationService.java index 71c639f..e2deaa9 100644 --- a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/service/CarOneClickOperationService.java +++ b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/service/CarOneClickOperationService.java @@ -2,6 +2,7 @@ package com.muyu.cargateway.service; import com.muyu.cargateway.domain.model.MqttServerModel; import com.muyu.cargateway.domain.req.VehicleConnectionReq; +import com.muyu.common.core.domain.Result; /** * @ Tool:IntelliJ IDEA @@ -18,5 +19,5 @@ public interface CarOneClickOperationService { * @param vehicleConnectionReq 车辆连接请求参数 * @return */ - MqttServerModel getConnect(VehicleConnectionReq vehicleConnectionReq); + Result getConnect(VehicleConnectionReq vehicleConnectionReq); } diff --git a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/service/Impl/CarOneClickOperationServiceImpl.java b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/service/Impl/CarOneClickOperationServiceImpl.java index 5792030..a24f1cf 100644 --- a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/service/Impl/CarOneClickOperationServiceImpl.java +++ b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/service/Impl/CarOneClickOperationServiceImpl.java @@ -6,14 +6,15 @@ import com.muyu.cargateway.domain.model.MqttServerModel; import com.muyu.cargateway.domain.req.VehicleConnectionReq; import com.muyu.cargateway.mapper.CarOneClickOperationMapper; import com.muyu.cargateway.service.CarOneClickOperationService; +import com.muyu.common.core.domain.Result; import com.muyu.common.redis.service.RedisService; import lombok.extern.log4j.Log4j2; import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.HashOperations; +import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.stereotype.Service; -import java.util.List; - /** * @ Tool:IntelliJ IDEA * @ Author:CHX @@ -28,11 +29,12 @@ public class CarOneClickOperationServiceImpl implements CarOneClickOperationServ @Autowired private CarOneClickOperationMapper carOneClickOperationMapper; - @Autowired private RabbitTemplate rabbitTemplate; @Autowired private RedisService redisService; + @Autowired + private StringRedisTemplate redisTemplate; /** * 获取连接信息 @@ -40,7 +42,7 @@ public class CarOneClickOperationServiceImpl implements CarOneClickOperationServ * @return */ @Override - public MqttServerModel getConnect(VehicleConnectionReq vehicleConnectionReq) { + public Result getConnect(VehicleConnectionReq vehicleConnectionReq) { log.info("车辆连接请求:{}",vehicleConnectionReq.toString()); // 使用交换机发送消息 @@ -55,24 +57,54 @@ public class CarOneClickOperationServiceImpl implements CarOneClickOperationServ vehicleConnection.setUsername(vehicleConnectionReq.getUsername()); //密码(vin+时间戳+随机数) vehicleConnection.setPassword(vehicleConnectionReq.getVehicleVin()+vehicleConnectionReq.getTimestamp()+vehicleConnectionReq.getNonce()); - //查询车辆vin集合 - List vehicleConnections =carOneClickOperationMapper.selectByVehicleVin(vehicleConnectionReq.getVehicleVin()); - if(vehicleConnections.isEmpty()){ - //添加 - carOneClickOperationMapper.addConnect(vehicleConnection); + //添加连接信息 + carOneClickOperationMapper.addConnect(vehicleConnection); + //先判断vin码 + HashOperations hashOps = redisTemplate.opsForHash(); + String vinIp = hashOps.get("vinIp", vehicleConnectionReq.getVehicleVin()); + if(vinIp!=null){ + log.info("车辆绑定ip失败,已经存在"); + throw new RuntimeException("车辆绑定ip失败,已经存在"); } - log.info("该车辆已存在,不能重复预上线"); - //TODO 返回连接信息 做轮询操作 + //判断redis有没有count键 + if(redisTemplate.hasKey("count")){ + //取出count + Integer count = Integer.valueOf(redisTemplate.opsForValue().get("count")); + if(count == 1){ + redisTemplate.opsForValue().set("count",String.valueOf(0)); + }else { + redisTemplate.opsForValue().set("count",String.valueOf(count+1)); + } + //根据游标count获取服务IP +// String ip = redisTemplate.opsForList().index("ipList", count); + Object ipList = redisService.redisTemplate.opsForList().index("ipList", count); - return new MqttServerModel("tcp://"+"106.15.136.7"+":1883","vehicle"); + log.info("=========================ipList:"+ipList); + //关联车辆和服务 + this.addIpAddress(new VinIp(vehicleConnectionReq.getVehicleVin(),ipList.toString())); + //响应信息 + log.info("车辆:{}",vehicleConnectionReq.getVehicleVin()+"绑定成功:{}",ipList); + return Result.success(new MqttServerModel("tcp://"+ipList+":1883","vehicle")); + }else { + redisTemplate.opsForValue().set("count",String.valueOf(0)); + //根据游标count获取服务器Ip + Object ipList = redisService.redisTemplate.opsForList().index("ipList", 0); + //关联车辆和服务 + this.addIpAddress(new VinIp(vehicleConnectionReq.getVehicleVin(),ipList.toString())); + //响应信息 + log.info("车辆:{}",vehicleConnectionReq.getVehicleVin(),"与:{}绑定成功",ipList); + return Result.success(new MqttServerModel("tcp://"+ipList+":1883","vehicle")); + } } /** * 添加车辆绑定IP地址存入redis中 */ - public void addIpAddress(VinIp vinIp){ - redisService.setCacheObject("vehicle_ip_address:"+vinIp.getVehicleVin(),vinIp.getIpAddress()); + public void addIpAddress(VinIp vinIp) { + if (vinIp == null || vinIp.getVin() == null || vinIp.getVin().isEmpty() || vinIp.getIp() == null || vinIp.getIp().isEmpty()) { + throw new IllegalArgumentException("vin 或 ip 不能为空或无效"); + } + redisTemplate.opsForHash().put("vinIp", vinIp.getVin(), vinIp.getIp()); } - } diff --git a/cloud-modules/cloud-modules-car-gateway/src/main/resources/bootstrap.yml b/cloud-modules/cloud-modules-car-gateway/src/main/resources/bootstrap.yml index e33efb2..c11a18d 100644 --- a/cloud-modules/cloud-modules-car-gateway/src/main/resources/bootstrap.yml +++ b/cloud-modules/cloud-modules-car-gateway/src/main/resources/bootstrap.yml @@ -82,4 +82,4 @@ aliyun: instance-type: ecs.t6-c1m1.large security-group-id: sg-uf642d5u4ja5gsiitx8y switch-id: vsw-uf66lifrkhxqc94xi06v3 - amount: 1 + amount: 2 diff --git a/cloud-modules/cloud-modules-car-gateway/src/main/resources/mapper/CarOneClickOperationMapper.xml b/cloud-modules/cloud-modules-car-gateway/src/main/resources/mapper/CarOneClickOperationMapper.xml index 814cfa2..2f06cdf 100644 --- a/cloud-modules/cloud-modules-car-gateway/src/main/resources/mapper/CarOneClickOperationMapper.xml +++ b/cloud-modules/cloud-modules-car-gateway/src/main/resources/mapper/CarOneClickOperationMapper.xml @@ -14,6 +14,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + From 6b571dfddcda81d9ad3a7359586973259356ccc7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=86=B7=E8=B0=83?= <3084898776@qq.com> Date: Wed, 9 Oct 2024 22:37:17 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E7=BB=99=E5=8D=8F=E8=AE=AE=E8=A7=A3?= =?UTF-8?q?=E6=9E=90=E4=BD=BF=E7=94=A8mq=E5=8F=91=E9=80=81=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E5=90=8D=E5=AF=86=E7=A0=81=E5=92=8Cip=E4=BB=A5?= =?UTF-8?q?=E5=8F=8A=E5=AE=A2=E6=88=B7=E7=AB=AFid?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../gateway}/Aliyun/AliYunConfig.java | 4 +- .../Aliyun}/instance/DeleteSample.java | 4 +- .../gateway/Aliyun}/instance/Sample.java | 20 +-- .../Aliyun/service/AliYunEcsService.java | 31 ++-- .../gateway}/CarGatewayApplication.java | 2 +- .../gateway}/config/AliProperties.java | 2 +- .../gateway}/config/RabbitmqConfig.java | 2 +- .../CarOneClickOperationController.java | 8 +- .../gateway}/domain/AliInstance.java | 2 +- .../gateway}/domain/AliServerConfig.java | 2 +- .../gateway}/domain/ConnectWeight.java | 2 +- .../gateway}/domain/HttpStatus.java | 2 +- .../gateway}/domain/ServerConfig.java | 2 +- .../gateway}/domain/VehicleConnection.java | 2 +- .../gateway}/domain/VinIp.java | 2 +- .../domain/model/MqttServerModel.java | 2 +- .../domain/properties/MqttProperties.java | 2 +- .../domain/req/VehicleConnectionReq.java | 2 +- .../gateway}/domain/resp/AliServerConfig.java | 2 +- .../mapper/CarOneClickOperationMapper.java | 8 +- .../service/CarOneClickOperationService.java | 6 +- .../Impl/CarOneClickOperationServiceImpl.java | 89 ++++++++---- .../cargateway/domain/model/TaskModel.java | 87 ----------- .../com/muyu/cargateway/utils/ECSTool.java | 135 ------------------ .../mapper/CarOneClickOperationMapper.xml | 11 +- 25 files changed, 125 insertions(+), 306 deletions(-) rename cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/{cargateway => car/gateway}/Aliyun/AliYunConfig.java (93%) rename cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/{cargateway => car/gateway/Aliyun}/instance/DeleteSample.java (89%) rename cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/{cargateway => car/gateway/Aliyun}/instance/Sample.java (72%) rename cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/{cargateway => car/gateway}/Aliyun/service/AliYunEcsService.java (92%) rename cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/{cargateway => car/gateway}/CarGatewayApplication.java (95%) rename cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/{cargateway => car/gateway}/config/AliProperties.java (96%) rename cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/{cargateway => car/gateway}/config/RabbitmqConfig.java (98%) rename cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/{cargateway => car/gateway}/controller/CarOneClickOperationController.java (83%) rename cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/{cargateway => car/gateway}/domain/AliInstance.java (93%) rename cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/{cargateway => car/gateway}/domain/AliServerConfig.java (95%) rename cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/{cargateway => car/gateway}/domain/ConnectWeight.java (92%) rename cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/{cargateway => car/gateway}/domain/HttpStatus.java (97%) rename cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/{cargateway => car/gateway}/domain/ServerConfig.java (96%) rename cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/{cargateway => car/gateway}/domain/VehicleConnection.java (94%) rename cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/{cargateway => car/gateway}/domain/VinIp.java (91%) rename cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/{cargateway => car/gateway}/domain/model/MqttServerModel.java (91%) rename cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/{cargateway => car/gateway}/domain/properties/MqttProperties.java (93%) rename cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/{cargateway => car/gateway}/domain/req/VehicleConnectionReq.java (93%) rename cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/{cargateway => car/gateway}/domain/resp/AliServerConfig.java (94%) rename cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/{cargateway => car/gateway}/mapper/CarOneClickOperationMapper.java (71%) rename cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/{cargateway => car/gateway}/service/CarOneClickOperationService.java (74%) rename cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/{cargateway => car/gateway}/service/Impl/CarOneClickOperationServiceImpl.java (51%) delete mode 100644 cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/domain/model/TaskModel.java delete mode 100644 cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/utils/ECSTool.java diff --git a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/Aliyun/AliYunConfig.java b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/Aliyun/AliYunConfig.java similarity index 93% rename from cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/Aliyun/AliYunConfig.java rename to cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/Aliyun/AliYunConfig.java index 489a044..6848146 100644 --- a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/Aliyun/AliYunConfig.java +++ b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/Aliyun/AliYunConfig.java @@ -1,8 +1,8 @@ -package com.muyu.cargateway.Aliyun; +package com.muyu.car.gateway.Aliyun; import com.aliyun.ecs20140526.Client; import com.aliyun.teaopenapi.models.Config; -import com.muyu.cargateway.config.AliProperties; +import com.muyu.car.gateway.config.AliProperties; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; diff --git a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/instance/DeleteSample.java b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/Aliyun/instance/DeleteSample.java similarity index 89% rename from cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/instance/DeleteSample.java rename to cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/Aliyun/instance/DeleteSample.java index d7cd031..eb1f35b 100644 --- a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/instance/DeleteSample.java +++ b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/Aliyun/instance/DeleteSample.java @@ -1,6 +1,6 @@ -package com.muyu.cargateway.instance; +package com.muyu.car.gateway.Aliyun.instance; -import com.muyu.cargateway.Aliyun.service.AliYunEcsService; +import com.muyu.car.gateway.Aliyun.service.AliYunEcsService; import lombok.extern.log4j.Log4j2; import org.springframework.beans.factory.DisposableBean; import org.springframework.beans.factory.annotation.Autowired; diff --git a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/instance/Sample.java b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/Aliyun/instance/Sample.java similarity index 72% rename from cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/instance/Sample.java rename to cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/Aliyun/instance/Sample.java index ecf2176..9e796ac 100644 --- a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/instance/Sample.java +++ b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/Aliyun/instance/Sample.java @@ -1,9 +1,8 @@ -package com.muyu.cargateway.instance; +package com.muyu.car.gateway.Aliyun.instance; -import com.muyu.cargateway.Aliyun.service.AliYunEcsService; -import com.muyu.cargateway.config.AliProperties; -import com.muyu.cargateway.domain.AliInstance; -import com.muyu.common.redis.service.RedisService; +import com.muyu.car.gateway.Aliyun.service.AliYunEcsService; +import com.muyu.car.gateway.config.AliProperties; +import com.muyu.car.gateway.domain.AliInstance; import lombok.extern.log4j.Log4j2; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.ApplicationArguments; @@ -28,8 +27,6 @@ public class Sample implements ApplicationRunner{ private AliYunEcsService aliYunEcsService; @Autowired private AliProperties aliProperties; - @Autowired - private RedisService redisService; @Override public void run(ApplicationArguments args) throws Exception { @@ -42,17 +39,14 @@ public class Sample implements ApplicationRunner{ throw new RuntimeException(e); } log.info("创建实例成功"); - redisService.setCacheList("instanceIds", list); +// redisService.setCacheList("instanceIds", list); try { - Thread.sleep(6000); + Thread.sleep(9000); } catch (InterruptedException e) { throw new RuntimeException(e); } List aliInstances = aliYunEcsService.selectInstance(list); - log.info("查询实例信息成功:{}",aliInstances); - // 将查询到的实例信息列表存储到Redis中 - redisService.setCacheList("instanceList", aliInstances); - log.info("redis存储成功:{}", aliInstances); + log.info("================查询实例信息成功:{}",aliInstances); } // @Override diff --git a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/Aliyun/service/AliYunEcsService.java b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/Aliyun/service/AliYunEcsService.java similarity index 92% rename from cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/Aliyun/service/AliYunEcsService.java rename to cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/Aliyun/service/AliYunEcsService.java index 2f0fb62..8d704a4 100644 --- a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/Aliyun/service/AliYunEcsService.java +++ b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/Aliyun/service/AliYunEcsService.java @@ -1,11 +1,11 @@ -package com.muyu.cargateway.Aliyun.service; +package com.muyu.car.gateway.Aliyun.service; import com.aliyun.ecs20140526.Client; import com.aliyun.ecs20140526.models.*; import com.aliyun.tea.TeaException; import com.aliyun.teautil.models.RuntimeOptions; -import com.muyu.cargateway.config.AliProperties; -import com.muyu.cargateway.domain.AliInstance; +import com.muyu.car.gateway.domain.AliInstance; +import com.muyu.car.gateway.config.AliProperties; import com.muyu.common.core.exception.ServiceException; import com.muyu.common.redis.service.RedisService; import lombok.extern.log4j.Log4j2; @@ -49,11 +49,9 @@ public class AliYunEcsService { * @return 实例id集合 */ public List generateInstance(Integer amount) { - redisService.deleteObject("instanceIds"); - redisService.deleteObject("instanceList"); - redisService.deleteObject("ipList"); - redisService.deleteObject("count"); - redisService.deleteObject("vinIp"); + redisService.deleteObject("oneIpList"); + redisService.deleteObject("oneCount"); + redisService.deleteObject("oneVinIp"); // 检查生成实例的数量是否有效 if (amount == null || amount <= 0) { throw new ServiceException("生成数量不能小于1"); @@ -140,20 +138,25 @@ public class AliYunEcsService { for (DescribeInstancesResponseBody.DescribeInstancesResponseBodyInstancesInstance bodyInstance : instance) { // 实例id String instanceId = bodyInstance.getInstanceId(); - log.info("实例id为:{}", instanceId); // ip地址 String ipAddress = bodyInstance.getPublicIpAddress().getIpAddress().get(0); - log.info("实例ip为:{}", ipAddress); - stringArrayList.add(ipAddress); - // 实例状态 String status = bodyInstance.getStatus(); - log.info("实例状态为:{}", status); + + log.info("=======================实例id为:{}", instanceId); + log.info("=======================实例ip为:{}", ipAddress); + log.info("=======================实例状态为:{}", status); + + + stringArrayList.add(ipAddress); AliInstance aliInstance = new AliInstance(instanceId, ipAddress, status); aliInstances.add(aliInstance); + redisService.setCacheList(instanceId, aliInstances); + aliInstances.remove(aliInstance); + } log.info("======================ipList:{}", stringArrayList); - redisService.setCacheList("ipList", stringArrayList); + redisService.setCacheList("oneIpList", stringArrayList); log.info("查询成功"); } catch (Exception e) { log.error("查询服务器实例错误:[{}]", e.getMessage(), e); diff --git a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/CarGatewayApplication.java b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/CarGatewayApplication.java similarity index 95% rename from cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/CarGatewayApplication.java rename to cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/CarGatewayApplication.java index bce08e8..f360231 100644 --- a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/CarGatewayApplication.java +++ b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/CarGatewayApplication.java @@ -1,4 +1,4 @@ -package com.muyu.cargateway; +package com.muyu.car.gateway; import com.muyu.common.security.annotation.EnableCustomConfig; import lombok.extern.log4j.Log4j2; diff --git a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/config/AliProperties.java b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/config/AliProperties.java similarity index 96% rename from cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/config/AliProperties.java rename to cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/config/AliProperties.java index c0ff543..b1148a9 100644 --- a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/config/AliProperties.java +++ b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/config/AliProperties.java @@ -1,4 +1,4 @@ -package com.muyu.cargateway.config; +package com.muyu.car.gateway.config; import lombok.Data; import org.springframework.boot.context.properties.ConfigurationProperties; diff --git a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/config/RabbitmqConfig.java b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/config/RabbitmqConfig.java similarity index 98% rename from cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/config/RabbitmqConfig.java rename to cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/config/RabbitmqConfig.java index 734b37f..25435f9 100644 --- a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/config/RabbitmqConfig.java +++ b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/config/RabbitmqConfig.java @@ -1,4 +1,4 @@ -package com.muyu.cargateway.config; +package com.muyu.car.gateway.config; import lombok.extern.log4j.Log4j2; import org.slf4j.Logger; diff --git a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/controller/CarOneClickOperationController.java b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/controller/CarOneClickOperationController.java similarity index 83% rename from cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/controller/CarOneClickOperationController.java rename to cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/controller/CarOneClickOperationController.java index 54ffd3c..822008f 100644 --- a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/controller/CarOneClickOperationController.java +++ b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/controller/CarOneClickOperationController.java @@ -1,8 +1,8 @@ -package com.muyu.cargateway.controller; +package com.muyu.car.gateway.controller; -import com.muyu.cargateway.domain.model.MqttServerModel; -import com.muyu.cargateway.domain.req.VehicleConnectionReq; -import com.muyu.cargateway.service.CarOneClickOperationService; +import com.muyu.car.gateway.domain.req.VehicleConnectionReq; +import com.muyu.car.gateway.service.CarOneClickOperationService; +import com.muyu.car.gateway.domain.model.MqttServerModel; import com.muyu.common.core.domain.Result; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.extern.log4j.Log4j2; diff --git a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/domain/AliInstance.java b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/domain/AliInstance.java similarity index 93% rename from cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/domain/AliInstance.java rename to cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/domain/AliInstance.java index eb1b4ae..4c61dcc 100644 --- a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/domain/AliInstance.java +++ b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/domain/AliInstance.java @@ -1,4 +1,4 @@ -package com.muyu.cargateway.domain; +package com.muyu.car.gateway.domain; import lombok.AllArgsConstructor; import lombok.Builder; diff --git a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/domain/AliServerConfig.java b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/domain/AliServerConfig.java similarity index 95% rename from cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/domain/AliServerConfig.java rename to cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/domain/AliServerConfig.java index b6d545a..a34b3eb 100644 --- a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/domain/AliServerConfig.java +++ b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/domain/AliServerConfig.java @@ -1,4 +1,4 @@ -package com.muyu.cargateway.domain; +package com.muyu.car.gateway.domain; import lombok.AllArgsConstructor; import lombok.Data; diff --git a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/domain/ConnectWeight.java b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/domain/ConnectWeight.java similarity index 92% rename from cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/domain/ConnectWeight.java rename to cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/domain/ConnectWeight.java index efd0076..c8a7389 100644 --- a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/domain/ConnectWeight.java +++ b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/domain/ConnectWeight.java @@ -1,4 +1,4 @@ -package com.muyu.cargateway.domain; +package com.muyu.car.gateway.domain; import lombok.AllArgsConstructor; import lombok.Data; diff --git a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/domain/HttpStatus.java b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/domain/HttpStatus.java similarity index 97% rename from cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/domain/HttpStatus.java rename to cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/domain/HttpStatus.java index 8665adb..ef5db8d 100644 --- a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/domain/HttpStatus.java +++ b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/domain/HttpStatus.java @@ -1,4 +1,4 @@ -package com.muyu.cargateway.domain; +package com.muyu.car.gateway.domain; /** * 返回状态码 diff --git a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/domain/ServerConfig.java b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/domain/ServerConfig.java similarity index 96% rename from cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/domain/ServerConfig.java rename to cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/domain/ServerConfig.java index 6628de0..38b34de 100644 --- a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/domain/ServerConfig.java +++ b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/domain/ServerConfig.java @@ -1,4 +1,4 @@ -package com.muyu.cargateway.domain; +package com.muyu.car.gateway.domain; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; diff --git a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/domain/VehicleConnection.java b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/domain/VehicleConnection.java similarity index 94% rename from cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/domain/VehicleConnection.java rename to cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/domain/VehicleConnection.java index 819d48e..6030dd8 100644 --- a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/domain/VehicleConnection.java +++ b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/domain/VehicleConnection.java @@ -1,4 +1,4 @@ -package com.muyu.cargateway.domain; +package com.muyu.car.gateway.domain; import lombok.AllArgsConstructor; import lombok.Data; diff --git a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/domain/VinIp.java b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/domain/VinIp.java similarity index 91% rename from cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/domain/VinIp.java rename to cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/domain/VinIp.java index 7d37381..e2ad14d 100644 --- a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/domain/VinIp.java +++ b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/domain/VinIp.java @@ -1,4 +1,4 @@ -package com.muyu.cargateway.domain; +package com.muyu.car.gateway.domain; import lombok.AllArgsConstructor; import lombok.Data; diff --git a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/domain/model/MqttServerModel.java b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/domain/model/MqttServerModel.java similarity index 91% rename from cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/domain/model/MqttServerModel.java rename to cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/domain/model/MqttServerModel.java index 17181d1..c76292d 100644 --- a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/domain/model/MqttServerModel.java +++ b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/domain/model/MqttServerModel.java @@ -1,4 +1,4 @@ -package com.muyu.cargateway.domain.model; +package com.muyu.car.gateway.domain.model; import lombok.AllArgsConstructor; import lombok.Builder; diff --git a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/domain/properties/MqttProperties.java b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/domain/properties/MqttProperties.java similarity index 93% rename from cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/domain/properties/MqttProperties.java rename to cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/domain/properties/MqttProperties.java index f848275..7af69a7 100644 --- a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/domain/properties/MqttProperties.java +++ b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/domain/properties/MqttProperties.java @@ -1,4 +1,4 @@ -package com.muyu.cargateway.domain.properties; +package com.muyu.car.gateway.domain.properties; import lombok.AllArgsConstructor; import lombok.Builder; diff --git a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/domain/req/VehicleConnectionReq.java b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/domain/req/VehicleConnectionReq.java similarity index 93% rename from cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/domain/req/VehicleConnectionReq.java rename to cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/domain/req/VehicleConnectionReq.java index 3101fac..842fa2d 100644 --- a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/domain/req/VehicleConnectionReq.java +++ b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/domain/req/VehicleConnectionReq.java @@ -1,4 +1,4 @@ -package com.muyu.cargateway.domain.req; +package com.muyu.car.gateway.domain.req; import lombok.AllArgsConstructor; import lombok.Builder; diff --git a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/domain/resp/AliServerConfig.java b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/domain/resp/AliServerConfig.java similarity index 94% rename from cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/domain/resp/AliServerConfig.java rename to cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/domain/resp/AliServerConfig.java index ded0cc8..51a70fb 100644 --- a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/domain/resp/AliServerConfig.java +++ b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/domain/resp/AliServerConfig.java @@ -1,4 +1,4 @@ -package com.muyu.cargateway.domain.resp; +package com.muyu.car.gateway.domain.resp; import lombok.AllArgsConstructor; import lombok.Data; diff --git a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/mapper/CarOneClickOperationMapper.java b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/mapper/CarOneClickOperationMapper.java similarity index 71% rename from cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/mapper/CarOneClickOperationMapper.java rename to cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/mapper/CarOneClickOperationMapper.java index 8ca2ce8..66e0ca3 100644 --- a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/mapper/CarOneClickOperationMapper.java +++ b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/mapper/CarOneClickOperationMapper.java @@ -1,6 +1,6 @@ -package com.muyu.cargateway.mapper; +package com.muyu.car.gateway.mapper; -import com.muyu.cargateway.domain.VehicleConnection; +import com.muyu.car.gateway.domain.VehicleConnection; import org.apache.ibatis.annotations.Mapper; import java.util.List; @@ -19,6 +19,8 @@ public interface CarOneClickOperationMapper { List selectByVehicleVin(String vehicleVin); - List selectVin(); + + List getMqttServerModel(String vehicleVin); + } diff --git a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/service/CarOneClickOperationService.java b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/service/CarOneClickOperationService.java similarity index 74% rename from cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/service/CarOneClickOperationService.java rename to cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/service/CarOneClickOperationService.java index e2deaa9..3f20de1 100644 --- a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/service/CarOneClickOperationService.java +++ b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/service/CarOneClickOperationService.java @@ -1,7 +1,7 @@ -package com.muyu.cargateway.service; +package com.muyu.car.gateway.service; -import com.muyu.cargateway.domain.model.MqttServerModel; -import com.muyu.cargateway.domain.req.VehicleConnectionReq; +import com.muyu.car.gateway.domain.model.MqttServerModel; +import com.muyu.car.gateway.domain.req.VehicleConnectionReq; import com.muyu.common.core.domain.Result; /** diff --git a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/service/Impl/CarOneClickOperationServiceImpl.java b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/service/Impl/CarOneClickOperationServiceImpl.java similarity index 51% rename from cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/service/Impl/CarOneClickOperationServiceImpl.java rename to cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/service/Impl/CarOneClickOperationServiceImpl.java index a24f1cf..704cb9f 100644 --- a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/service/Impl/CarOneClickOperationServiceImpl.java +++ b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/service/Impl/CarOneClickOperationServiceImpl.java @@ -1,11 +1,12 @@ -package com.muyu.cargateway.service.Impl; +package com.muyu.car.gateway.service.Impl; -import com.muyu.cargateway.domain.VehicleConnection; -import com.muyu.cargateway.domain.VinIp; -import com.muyu.cargateway.domain.model.MqttServerModel; -import com.muyu.cargateway.domain.req.VehicleConnectionReq; -import com.muyu.cargateway.mapper.CarOneClickOperationMapper; -import com.muyu.cargateway.service.CarOneClickOperationService; +import com.muyu.car.gateway.domain.VehicleConnection; +import com.muyu.car.gateway.domain.VinIp; +import com.muyu.car.gateway.domain.model.MqttServerModel; +import com.muyu.car.gateway.domain.properties.MqttProperties; +import com.muyu.car.gateway.domain.req.VehicleConnectionReq; +import com.muyu.car.gateway.mapper.CarOneClickOperationMapper; +import com.muyu.car.gateway.service.CarOneClickOperationService; import com.muyu.common.core.domain.Result; import com.muyu.common.redis.service.RedisService; import lombok.extern.log4j.Log4j2; @@ -15,6 +16,11 @@ import org.springframework.data.redis.core.HashOperations; import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.stereotype.Service; +import java.util.List; + +import static com.muyu.car.gateway.config.RabbitmqConfig.EXCHANGE_TOPICS_INFORM; +import static com.muyu.car.gateway.config.RabbitmqConfig.ROUTINGKEY_SMS; + /** * @ Tool:IntelliJ IDEA * @ Author:CHX @@ -45,10 +51,9 @@ public class CarOneClickOperationServiceImpl implements CarOneClickOperationServ public Result getConnect(VehicleConnectionReq vehicleConnectionReq) { log.info("车辆连接请求:{}",vehicleConnectionReq.toString()); - // 使用交换机发送消息 - rabbitTemplate.convertAndSend("exchange_topics_inform","inform.#.email.#",vehicleConnectionReq.getVehicleVin()); - log.info("发送消息成功:{}",vehicleConnectionReq.getVehicleVin()); - +// // 使用交换机发送消息 给事件系统发 +// rabbitTemplate.convertAndSend("exchange_topics_inform","inform.#.email.#",vehicleConnectionReq.getVehicleVin()); +// log.info("发送消息成功:{}",vehicleConnectionReq.getVehicleVin()); VehicleConnection vehicleConnection = new VehicleConnection(); //车辆vin @@ -57,44 +62,67 @@ public class CarOneClickOperationServiceImpl implements CarOneClickOperationServ vehicleConnection.setUsername(vehicleConnectionReq.getUsername()); //密码(vin+时间戳+随机数) vehicleConnection.setPassword(vehicleConnectionReq.getVehicleVin()+vehicleConnectionReq.getTimestamp()+vehicleConnectionReq.getNonce()); - //添加连接信息 - carOneClickOperationMapper.addConnect(vehicleConnection); + //查询有没有这辆车的vin码 + List selectVehicle = carOneClickOperationMapper.selectByVehicleVin(vehicleConnectionReq.getVehicleVin()); + + if(selectVehicle.isEmpty()){ + //添加连接信息 + carOneClickOperationMapper.addConnect(vehicleConnection); + log.info("车辆上线成功"); + }else { + throw new RuntimeException("车辆无法重复上线"); + + } //先判断vin码 HashOperations hashOps = redisTemplate.opsForHash(); - String vinIp = hashOps.get("vinIp", vehicleConnectionReq.getVehicleVin()); + String vinIp = hashOps.get("oneVinIp", vehicleConnectionReq.getVehicleVin()); if(vinIp!=null){ - log.info("车辆绑定ip失败,已经存在"); throw new RuntimeException("车辆绑定ip失败,已经存在"); } - + MqttProperties mqttProperties = new MqttProperties(); + List vehicleVin = selectByVehicleVin(vehicleConnectionReq.getVehicleVin()); + for (VehicleConnection connection : vehicleVin) { + mqttProperties.setClientId(connection.getVehicleVin()); + mqttProperties.setUserName(connection.getUsername()); + mqttProperties.setPassword(connection.getPassword()); + } + mqttProperties.setTopic("vehicle"); + mqttProperties.setQos(0); //判断redis有没有count键 - if(redisTemplate.hasKey("count")){ + if(redisTemplate.hasKey("oneCount")){ //取出count - Integer count = Integer.valueOf(redisTemplate.opsForValue().get("count")); + Integer count = Integer.valueOf(redisTemplate.opsForValue().get("oneCount")); if(count == 1){ - redisTemplate.opsForValue().set("count",String.valueOf(0)); + redisTemplate.opsForValue().set("oneCount",String.valueOf(0)); }else { - redisTemplate.opsForValue().set("count",String.valueOf(count+1)); + redisTemplate.opsForValue().set("oneCount",String.valueOf(count+1)); } //根据游标count获取服务IP // String ip = redisTemplate.opsForList().index("ipList", count); - Object ipList = redisService.redisTemplate.opsForList().index("ipList", count); + Object ipList = redisService.redisTemplate.opsForList().index("oneIpList", count); - log.info("=========================ipList:"+ipList); + log.info("=========================oneIpList:"+ipList); //关联车辆和服务 this.addIpAddress(new VinIp(vehicleConnectionReq.getVehicleVin(),ipList.toString())); //响应信息 log.info("车辆:{}",vehicleConnectionReq.getVehicleVin()+"绑定成功:{}",ipList); + mqttProperties.setBroker("tcp://"+ipList+":1883"); + // 使用交换机发送消息 + rabbitTemplate.convertAndSend(EXCHANGE_TOPICS_INFORM,ROUTINGKEY_SMS,mqttProperties); + log.info("============================发送消息成功:{}",mqttProperties); return Result.success(new MqttServerModel("tcp://"+ipList+":1883","vehicle")); - }else { - redisTemplate.opsForValue().set("count",String.valueOf(0)); + redisTemplate.opsForValue().set("oneCount",String.valueOf(0)); //根据游标count获取服务器Ip - Object ipList = redisService.redisTemplate.opsForList().index("ipList", 0); + Object ipList = redisService.redisTemplate.opsForList().index("oneIpList", 0); //关联车辆和服务 this.addIpAddress(new VinIp(vehicleConnectionReq.getVehicleVin(),ipList.toString())); //响应信息 log.info("车辆:{}",vehicleConnectionReq.getVehicleVin(),"与:{}绑定成功",ipList); + mqttProperties.setBroker("tcp://"+ipList+":1883"); + // 使用交换机发送消息 + rabbitTemplate.convertAndSend(EXCHANGE_TOPICS_INFORM,ROUTINGKEY_SMS,mqttProperties); + log.info("============================发送消息成功:{}",mqttProperties); return Result.success(new MqttServerModel("tcp://"+ipList+":1883","vehicle")); } } @@ -105,6 +133,15 @@ public class CarOneClickOperationServiceImpl implements CarOneClickOperationServ if (vinIp == null || vinIp.getVin() == null || vinIp.getVin().isEmpty() || vinIp.getIp() == null || vinIp.getIp().isEmpty()) { throw new IllegalArgumentException("vin 或 ip 不能为空或无效"); } - redisTemplate.opsForHash().put("vinIp", vinIp.getVin(), vinIp.getIp()); + redisTemplate.opsForHash().put("oneVinIp", vinIp.getVin(), vinIp.getIp()); + } + + /** + * 查询车辆绑定的服务器信息 + * @param vehicleVin 车辆vin码集合 + * @return + */ + public List selectByVehicleVin(String vehicleVin) { + return carOneClickOperationMapper.getMqttServerModel(vehicleVin); } } diff --git a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/domain/model/TaskModel.java b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/domain/model/TaskModel.java deleted file mode 100644 index f4ea58c..0000000 --- a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/domain/model/TaskModel.java +++ /dev/null @@ -1,87 +0,0 @@ -package com.muyu.cargateway.domain.model; - -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; -import lombok.extern.log4j.Log4j2; - -import java.util.concurrent.CountDownLatch; -import java.util.concurrent.LinkedBlockingDeque; -import java.util.concurrent.atomic.AtomicBoolean; -import java.util.concurrent.atomic.AtomicInteger; - -/** - * @ Tool:IntelliJ IDEA - * @ Author:CHX - * @ Date:2024-09-26-20:23 - * @ Version:1.0 - * @ Description:任务执行模型 - * @author Lenovo - */ -@Data -@Log4j2 -@Builder -@AllArgsConstructor -@NoArgsConstructor -public class TaskModel { - /** - * 任务状态 默认为false状态 - * true为执行中,false为未执行 - */ - private final AtomicBoolean status =new AtomicBoolean(Boolean.FALSE); - /** - * 堵塞计数器 - */ - private CountDownLatch countDownLatch; - /** - * 任务执行堵塞队列 - */ - private LinkedBlockingDeque carQueue =new LinkedBlockingDeque<>(); - /** - * 任务是否执行 - * true 执行中 - * false 未执行 - * @return 是否有任务执行 - */ - private boolean isExecution(){ - return !status.get(); - } - /** - * 任务名称 - */ - private String taskName; - /** - * 任务执行次数 - */ - private Integer taskExecutionCount=0; - /** - * 任务开始时间 - */ - private Long taskStartTime; - /** - * 任务成功执行次数 - */ - private AtomicInteger taskSuccessSum=new AtomicInteger(); - /** - * 任务执行失败次数 - */ - private AtomicInteger taskErrorSum=new AtomicInteger(); - - /** - * 判断是否有任务 - * @return true 有任务 - */ - public boolean hashNext(){ - return !carQueue.isEmpty(); - } - - /** - * 获取下一个任务节点 - * @return 任务VIN - */ - public String next(){ - return carQueue.poll(); - } - -} diff --git a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/utils/ECSTool.java b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/utils/ECSTool.java deleted file mode 100644 index e96fac4..0000000 --- a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/utils/ECSTool.java +++ /dev/null @@ -1,135 +0,0 @@ -package com.muyu.cargateway.utils; - -import com.aliyun.ecs20140526.Client; -import com.aliyun.ecs20140526.models.DeleteInstanceRequest; -import com.aliyun.ecs20140526.models.DescribeInstancesRequest; -import com.aliyun.ecs20140526.models.DescribeInstancesResponse; -import com.aliyun.ecs20140526.models.RunInstancesRequest; -import com.aliyun.tea.TeaException; -import com.aliyun.teaopenapi.models.Config; -import com.aliyun.teautil.Common; -import com.aliyun.teautil.models.RuntimeOptions; -import lombok.extern.log4j.Log4j2; - -import java.util.ArrayList; -import java.util.List; -import java.util.stream.Collectors; - -/** - * @ Tool:IntelliJ IDEA - * @ Author:CHX - * @ Date:2024-10-02-16:04 - * @ Version:1.0 - * @ Description:ecs实例工具类 - * @author Lenovo - */ -@Log4j2 -public class ECSTool { - - public static final String ACCESS_KEY_ID = "LTAI5tDH3FyRx4PRr6anx2TL"; - public static final String ACCESS_KEY_SECRET = "xdQnX2tDattY50raNkUWmHzE2tondP"; - - public static Client createClient() throws Exception { - // 工程代码泄露可能会导致 AccessKey 泄露,并威胁账号下所有资源的安全性。以下代码示例仅供参考。 - Config config = new Config() - // 必填,请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_ID。 - .setAccessKeyId(ACCESS_KEY_ID) - // 必填,请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_SECRET。 - .setAccessKeySecret(ACCESS_KEY_SECRET); - // Endpoint 请参考 https://api.aliyun.com/product/Ecs - config.endpoint = "ecs-cn-hangzhou.aliyuncs.com"; - return new Client(config); - } - public static void runEcsInstance(String regionId, String launchTemplateId) throws Exception { - Client client = ECSTool.createClient(); - RunInstancesRequest request = new RunInstancesRequest(); - request.setRegionId(regionId) - .setLaunchTemplateId(launchTemplateId); - RuntimeOptions runtimeOptions = new RuntimeOptions(); - try{ - client.runInstancesWithOptions(request, runtimeOptions); - }catch (Exception error){ - // 处理API调用过程中出现的异常 - System.out.println(error.getMessage()); - if (error instanceof TeaException) { - // 处理特定类型的异常,如TeaException - TeaException teaError = (TeaException) error; - // 打印诊断推荐链接 - System.out.println(teaError.getData().get("Recommend")); - // 断言错误信息 - com.aliyun.teautil.Common.assertAsString(teaError.getMessage()); - } else { - // 处理其他类型的异常 - System.out.println(error.getMessage()); - } - } - } - - /** - *销毁实例 - */ - public static void runEcsRemove(String instanceId) throws Exception { - Client client = ECSTool.createClient(); - DeleteInstanceRequest deleteInstancesRequest = new DeleteInstanceRequest(); - deleteInstancesRequest.setInstanceId(instanceId); - RuntimeOptions runtimeOptions = new RuntimeOptions(); - - try { - // 复制代码运行请自行打印 API 的返回值 - client.deleteInstanceWithOptions(deleteInstancesRequest, runtimeOptions); - } catch (TeaException error) { - // 此处仅做打印展示,请谨慎对待异常处理,在工程项目中切勿直接忽略异常。 - // 错误 message - System.out.println(error.getMessage()); - // 诊断地址 - System.out.println(error.getData().get("Recommend")); - com.aliyun.teautil.Common.assertAsString(error.message); - } catch (Exception _error) { - TeaException error = new TeaException(_error.getMessage(), _error); - // 此处仅做打印展示,请谨慎对待异常处理,在工程项目中切勿直接忽略异常。 - // 错误 message - System.out.println(error.getMessage()); - // 诊断地址 - System.out.println(error.getData().get("Recommend")); - com.aliyun.teautil.Common.assertAsString(error.message); - } - } - - /** - * 查询实例列表 - * @param regionId 地域ID - */ - public static List findInstance(String regionId) throws Exception { - Client client = ECSTool.createClient(); - DescribeInstancesRequest describeInstancesRequest = new DescribeInstancesRequest(); - describeInstancesRequest.setRegionId(regionId); - RuntimeOptions runtimeOptions = new RuntimeOptions(); - List stringArrayList = new ArrayList<>(); - try { - DescribeInstancesResponse response = client.describeInstancesWithOptions(describeInstancesRequest, runtimeOptions); - List> ipListList = response.getBody().instances.getInstance().stream().map(instance -> instance.publicIpAddress.ipAddress).collect(Collectors.toList()); - for (List strings : ipListList) { - for (String ip : strings) { - stringArrayList.add(ip); - } - return stringArrayList; - } - } catch (TeaException error) { - // 此处仅做打印展示,请谨慎对待异常处理,在工程项目中切勿直接忽略异常。 - // 错误 message - System.out.println(error.getMessage()); - // 诊断地址 - System.out.println(error.getData().get("Recommend")); - Common.assertAsString(error.message); - } catch (Exception _error) { - TeaException error = new TeaException(_error.getMessage(), _error); - // 此处仅做打印展示,请谨慎对待异常处理,在工程项目中切勿直接忽略异常。 - // 错误 message - System.out.println(error.getMessage()); - // 诊断地址 - System.out.println(error.getData().get("Recommend")); - Common.assertAsString(error.message); - } - return null; - } -} diff --git a/cloud-modules/cloud-modules-car-gateway/src/main/resources/mapper/CarOneClickOperationMapper.xml b/cloud-modules/cloud-modules-car-gateway/src/main/resources/mapper/CarOneClickOperationMapper.xml index 2f06cdf..b40427b 100644 --- a/cloud-modules/cloud-modules-car-gateway/src/main/resources/mapper/CarOneClickOperationMapper.xml +++ b/cloud-modules/cloud-modules-car-gateway/src/main/resources/mapper/CarOneClickOperationMapper.xml @@ -2,7 +2,7 @@ - + @@ -14,8 +14,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + select + vehicle_vin,user_name,password + from + car_one_click_operation + where + vehicle_vin = #{vehicleVin} From 97572f57122c6e00d13148a48a2dd05ce85920c7 Mon Sep 17 00:00:00 2001 From: chentaisen <14615430+chentaisen@user.noreply.gitee.com> Date: Thu, 10 Oct 2024 09:46:33 +0800 Subject: [PATCH 3/3] =?UTF-8?q?feat=EF=BC=9A=E4=BF=AE=E5=A4=8D=E4=BB=A3?= =?UTF-8?q?=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cloud-auth/src/main/resources/bootstrap.yml | 25 +- .../cloud-common-cache}/pom.xml | 15 +- .../common/cache/AtomicSequenceCache.java | 37 +++ .../com/muyu/common/cache/BasicCacheData.java | 11 + .../java/com/muyu/common/cache/Cache.java | 43 +++ .../java/com/muyu/common/cache/HashCache.java | 104 +++++++ .../cache/abs/AtomicSequenceCacheAbs.java | 99 ++++++ .../com/muyu/common/cache/abs/CacheAbs.java | 96 ++++++ .../muyu/common/cache/abs/HashCacheAbs.java | 223 +++++++++++++ .../cache/decoration/DecorationKey.java | 30 ++ ...ot.autoconfigure.AutoConfiguration.imports | 2 + .../cloud-common-caffeine}/pom.xml | 28 +- .../common/caffeine/bean/CaffeineManager.java | 49 +++ .../caffeine/constents/CaffeineContent.java | 17 + .../common/caffeine/enums/CacheNameEnums.java | 68 ++++ ...ot.autoconfigure.AutoConfiguration.imports | 1 + cloud-common/cloud-common-core/pom.xml | 1 + .../muyu/common/core/annotation/Excel.java | 52 ++-- .../muyu/common/core/annotation/Excels.java | 2 +- .../core/constant/ServiceNameConstants.java | 2 + .../com/muyu/common/core/enums/ClassType.java | 63 ++++ .../muyu/common/core/utils/SpringUtils.java | 10 +- .../java/com/muyu/common/core/xss/Xss.java | 6 +- .../datascope/annotation/DataScope.java | 6 +- .../cloud-common-iotdb}/pom.xml | 16 +- .../iotdb/config/IotDBSessionConfig.java | 53 ++++ ...ot.autoconfigure.AutoConfiguration.imports | 1 + cloud-common/cloud-common-kafka/pom.xml | 37 +++ .../kafka/config/KafkaConsumerConfig.java | 54 ++++ .../kafka/config/KafkaProviderConfig.java | 45 +++ .../kafka/constants/KafkaConstants.java | 14 + ...ot.autoconfigure.AutoConfiguration.imports | 2 + .../com/muyu/common/log/annotation/Log.java | 12 +- cloud-common/cloud-common-rabbit/pom.xml | 7 +- .../rabbit/RabbitListenerConfigurer.java | 41 --- .../rabbit/constants/RabbitConstants.java | 15 + ...ot.autoconfigure.AutoConfiguration.imports | 4 - .../common/redis/service/RedisService.java | 31 +- cloud-common/cloud-common-saas/pom.xml | 4 +- .../many/datasource/ManyDataSource.java | 6 +- .../factory/DruidDataSourceFactory.java | 6 +- .../annotation/EnableMyFeignClients.java | 10 +- .../common/security/annotation/InnerAuth.java | 2 +- .../annotation/RequiresPermissions.java | 4 +- .../security/annotation/RequiresRoles.java | 4 +- .../com/muyu/common/system/domain/SysEnt.java | 1 + .../common/system/domain/SysFirmUser.java | 1 + .../muyu/common/system/domain/SysMember.java | 31 ++ cloud-common/pom.xml | 4 + .../src/main/resources/bootstrap.yml | 33 +- .../com/muyu/breakdown/DTO/MessageDTO.java | 93 ------ .../muyu/breakdown/domain/SysCarMessage.java | 43 --- ...ot.autoconfigure.AutoConfiguration.imports | 1 - .../cloud-breakdown-server/pom.xml | 92 ------ .../java/com/muyu/BreakDownApplication.java | 23 -- .../controller/SysCarMessageController.java | 20 -- .../service/SysCarMessageService.java | 15 - .../impl/SysCarMessageServiceImpl.java | 19 -- .../src/main/resources/logback/dev.xml | 74 ----- .../src/main/resources/logback/prod.xml | 81 ----- .../Impl/CarOneClickOperationServiceImpl.java | 147 --------- .../Aliyun/AliYunConfig.java | 4 +- .../Aliyun/service/AliYunEcsService.java | 27 +- .../CloudVehicleGatewayApplication.java} | 6 +- .../config/AliProperties.java | 2 +- .../config/RabbitmqConfig.java | 2 +- .../CarOneClickOperationController.java | 12 +- .../domain/AliInstance.java | 2 +- .../domain/AliServerConfig.java | 2 +- .../domain/ConnectWeight.java | 2 +- .../domain/HttpStatus.java | 2 +- .../domain/ServerConfig.java | 2 +- .../domain/VehicleConnection.java | 2 +- .../gateway => cargateway}/domain/VinIp.java | 6 +- .../domain/model/MqttServerModel.java | 4 +- .../cargateway/domain/model/TaskModel.java | 87 ++++++ .../domain/properties/MqttProperties.java | 2 +- .../domain/req/VehicleConnectionReq.java | 2 +- .../domain/resp/AliServerConfig.java | 2 +- .../instance/DeleteSample.java | 4 +- .../instance/Sample.java | 20 +- .../mapper/CarOneClickOperationMapper.java | 9 +- .../service/CarOneClickOperationService.java | 9 +- .../Impl/CarOneClickOperationServiceImpl.java | 79 +++++ .../com/muyu/cargateway/utils/ECSTool.java | 135 ++++++++ .../src/main/resources/bootstrap.yml | 4 +- .../mapper/CarOneClickOperationMapper.xml | 10 +- cloud-modules/cloud-modules-car/pom.xml | 95 ------ .../muyu/carrail/CloudCarRailApplication.java | 23 -- .../src/main/resources/bootstrap.yml | 58 ---- .../com/muyu/car/CloudCarApplication.java | 21 -- .../com/muyu/car/redis/RedisInitialize.java | 157 ---------- .../main/java/com/muyu/car/util/SSLUtils.java | 75 ----- .../pom.xml | 67 ++-- .../CloudVehicleEventApplication.java | 30 ++ .../processing/config/RabbitmqConfig.java | 100 ++++++ .../controller/DataProcessingController.java | 37 +++ .../data/processing/domain/BasicData.java | 30 ++ .../muyu/data/processing/domain/CarData.java | 25 ++ .../data/processing/domain/IotDbData.java | 35 +++ .../data/processing/domain/Temporary2.java | 22 ++ .../kafka/KafkaConsumerService.java | 74 +++++ .../mapper/DataProcessingMapper.java | 26 ++ .../rebbit/DownlineRabbitConsumer.java | 72 +++++ .../rebbit/GoOnlineRabbitConsumer.java | 72 +++++ .../service/DataProcessingService.java | 22 ++ .../impl/DataProcessingServiceImpl.java | 37 +++ .../processing/strategy/StrategyHandler.java | 24 ++ .../strategy/abstractStrategyRouter.java | 65 ++++ .../branch/DataStorageProcessStrategy.java | 63 ++++ .../branch/FaultJudgmentStrategy.java | 38 +++ .../branch/FaultProcessingStrategy.java | 37 +++ .../branch/FenceJudgmentStrategy.java | 38 +++ .../branch/FenceProcessingStrategy.java | 36 +++ .../branch/RealTimeJudgmentStrategy.java | 38 +++ .../branch/RealTimeProcessingStrategy.java | 36 +++ .../branch/WarningJudgmentStrategy.java | 38 +++ .../branch/WarningProcessingStrategy.java | 36 +++ .../strategy/core/BasicStrategy.java | 53 ++++ .../processing/strategy/core/EndStrategy.java | 29 ++ .../strategy/core/RoutingStrategy.java | 58 ++++ .../strategy/core/StartStrategy.java | 50 +++ .../strategy/leaves/DataStorageStrategy.java | 81 +++++ .../strategy/leaves/FaultAlarmStrategy.java | 37 +++ .../strategy/leaves/FenceAlarmStrategy.java | 37 +++ .../leaves/RealTimeAlarmStrategy.java | 37 +++ .../strategy/leaves/WarningAlarmStrategy.java | 37 +++ .../data/processing/utils/CacheUtils.java | 79 +++++ .../muyu/data/processing/utils/DataUtils.java | 28 ++ .../src/main/resources/banner.txt | 0 .../src/main/resources/bootstrap.yml | 20 +- .../src/main/resources/logback/dev.xml | 2 +- .../src/main/resources/logback/prod.xml | 2 +- .../src/main/resources/logback/test.xml | 2 +- .../com/muyu/file/CloudFileApplication.java | 1 + .../src/main/resources/bootstrap.yml | 22 +- .../src/main/resources/bootstrap.yml | 12 +- .../cloud-modules-openbusiness-cache/pom.xml | 41 +++ .../openbusiness/VehicleCacheService.java | 34 ++ .../apply/SysCarCacheRemoteData.java | 23 ++ .../pom.xml | 34 +- .../com/muyu/openbusiness/domain/Animal.java | 20 ++ .../muyu/openbusiness}/domain/BreakDown.java | 5 +- .../muyu/openbusiness}/domain/FaultLog.java | 13 +- .../muyu/openbusiness}/domain/MessageMap.java | 2 +- .../muyu/openbusiness}/domain/Messages.java | 2 +- .../com/muyu/openbusiness}/domain/SysCar.java | 2 +- .../openbusiness/domain/SysCarMessage.java | 68 ++++ .../openbusiness}/domain/SysCorpuscle.java | 9 +- .../muyu/openbusiness}/domain/SysFence.java | 10 +- .../openbusiness}/domain/SysMessageType.java | 4 +- .../openbusiness}/domain/VehicleMessage.java | 5 +- .../muyu/openbusiness}/domain/WarnLogs.java | 11 +- .../muyu/openbusiness}/domain/WarnRule.java | 8 +- .../openbusiness}/domain/WarnRuleDTO.java | 2 +- .../openbusiness}/domain/WarnStrategy.java | 8 +- .../muyu/openbusiness}/wx/AccessToken.java | 2 +- .../com/muyu/openbusiness}/wx/Message.java | 3 +- .../pom.xml | 12 +- .../remote/SysCarRemoteService.java | 14 + .../pom.xml | 105 ++++--- .../CloudOpenBusinessApplication.java} | 16 +- .../cahce/apply/SysCarCacheRemoteData.java | 31 ++ .../config/MybatisPlusConfig.java | 9 +- .../openbusiness}/config/RabbitMQConfig.java | 2 +- .../config/RabbitMQDirectConfig.java | 2 +- .../config/RabbitMQTopicConfig.java | 2 +- .../config/SnowflakeIdWorker.java | 108 +++++++ .../openbusiness}/constant/RedisConstant.java | 2 +- .../controller/BreakDownController.java | 9 +- .../controller/FaultLogController.java | 32 +- .../controller/RailController.java | 4 + .../controller/StationMessageController.java | 12 +- .../controller/SysCarController.java | 35 +-- .../controller/SysCarMessageController.java | 56 ++-- .../controller/SysCorpuscleController.java | 37 +-- .../controller/SysFenceController.java | 31 +- .../controller/SysMessageTypeController.java | 34 +- .../controller/SysUserController.java | 12 +- .../controller/WarnLogsController.java | 30 +- .../controller/WarnRuleController.java | 39 +-- .../controller/WarnRulesController.java | 8 +- .../controller/WarnStrategyController.java | 33 +- .../controller/WxTestController.java | 13 +- .../openbusiness}/mapper/BreakDownMapper.java | 6 +- .../openbusiness}/mapper/FaultLogMapper.java | 6 +- .../mapper/StationMessageMapper.java | 7 +- .../openbusiness}/mapper/SysCarMapper.java | 6 +- .../mapper/SysCarMessageMapper.java | 8 +- .../mapper/SysCorpuscleMapper.java | 14 +- .../openbusiness}/mapper/SysFenceMapper.java | 5 +- .../mapper/SysMessageTypeMapper.java | 6 +- .../openbusiness}/mapper/SysUserMapper.java | 4 +- .../mapper/SysUserPostMapper.java | 2 +- .../mapper/SysUserRoleMapper.java | 2 +- .../openbusiness}/mapper/WarnLogsMapper.java | 4 +- .../openbusiness}/mapper/WarnRuleMapper.java | 7 +- .../openbusiness}/mapper/WarnRulesMapper.java | 4 +- .../mapper/WarnStrategyMapper.java | 4 +- .../muyu/openbusiness}/message/Article.java | 2 +- .../openbusiness}/message/NewMessage.java | 2 +- .../service/BreakDownService.java | 7 +- .../service/IFaultLogService.java | 9 +- .../service/ISysCarMessageService.java | 11 +- .../openbusiness}/service/ISysCarService.java | 7 +- .../service/ISysCorpuscleService.java | 7 +- .../service/ISysFenceService.java | 8 +- .../service/ISysMessageTypeService.java | 8 +- .../service/IWarRulesService.java | 5 +- .../service/IWarnLogsService.java | 7 +- .../service/IWarnRuleService.java | 5 +- .../service/IWarnStrategyService.java | 7 +- .../service/StationMessageService.java | 5 +- .../service/SysCarMessageService.java | 15 + .../openbusiness}/service/SysUserService.java | 2 +- .../service/impl/BreakDownServiceImpl.java | 20 +- .../service/impl/FaultLogServiceImpl.java | 8 +- .../impl/StationMessageServiceImpl.java | 11 +- .../impl/SysCarMessageServiceImpl.java | 43 ++- .../service/impl/SysCarServiceImpl.java | 29 +- .../service/impl/SysCorpuscleServiceImpl.java | 15 +- .../service/impl/SysFenceServiceImpl.java | 29 +- .../impl/SysMessageTypeServiceImpl.java | 28 +- .../service/impl/SysUserServiceImpl.java | 20 +- .../service/impl/WarnLogsServiceImpl.java | 13 +- .../service/impl/WarnRuleServiceImpl.java | 10 +- .../service/impl/WarnRulesServiceImpl.java | 12 +- .../service/impl/WarnStrategyServiceImpl.java | 13 +- .../muyu/openbusiness}/util/OkHttpUtils.java | 2 +- .../muyu/openbusiness}/util/TokenUtil.java | 4 +- .../src/main/resources/banner.txt | 0 .../src/main/resources/bootstrap.yml | 40 ++- .../src/main/resources/logback/dev.xml | 0 .../src/main/resources/logback/prod.xml | 0 .../src/main/resources/logback/test.xml | 4 +- .../mapper/openbusiness}/SysCarMapper.xml | 2 +- .../openbusiness}/SysCarMessageMapper.xml | 13 +- .../mapper/openbusiness}/SysFenceMapper.xml | 6 +- .../openbusiness}/SysMessageTypeMapper.xml | 2 +- .../mapper/openbusiness}/SysUserMapper.xml | 2 +- .../openbusiness}/SysUserPostMapper.xml | 2 +- .../openbusiness}/SysUserRoleMapper.xml | 2 +- .../mapper/openbusiness}/SyscarRailMapper.xml | 4 +- .../pom.xml | 15 +- .../pom.xml | 51 ++- ...loudVehicleMessageParsingApplication.java} | 13 +- .../parsing/consumer/FormMessageConsumer.java | 131 ++++++++ .../controller/SysCarMessageController.java | 182 +++++++++++ .../com/muyu/parsing/domain/KafKaData.java | 26 ++ .../muyu/parsing}/domain/SysCarMessage.java | 13 +- .../parsing/domain/resp/SysMessageResp.java} | 10 +- .../com/muyu/parsing/manager/TaskManager.java | 24 ++ .../muyu/parsing/manager/TaskManagers.java | 189 +++++++++++ .../parsing}/mapper/SysCarMessageMapper.java | 13 +- .../java/com/muyu/parsing/mqtt/MqttTest.java | 127 ++++++++ .../service/ISysCarMessageService.java | 44 +++ .../impl/SysCarMessageServiceImpl.java | 97 ++++++ .../java/com/muyu/parsing/test/MqttTest.java | 71 +++++ .../src/main/resources/banner.txt | 0 .../src/main/resources/bootstrap.yml | 40 ++- .../src/main/resources/logback/dev.xml | 2 +- .../src/main/resources/logback/prod.xml} | 0 .../src/main/resources/logback/test.xml | 2 +- cloud-modules/cloud-modules-rail/pom.xml | 91 ------ .../zhangyi/rail/CloudRailApplication.java | 7 - .../rail/controller/RailController.java | 4 - .../com/zhangyi/rail/domain/SysFenceRail.java | 38 --- cloud-modules/cloud-modules-system/pom.xml | 5 + .../muyu/system/CloudSystemApplication.java | 7 - .../system/controller/SysDeptController.java | 6 +- .../system/controller/SysFirmController.java | 137 +++++++- .../controller/SysMemberController.java | 28 ++ .../system/controller/SysMenuController.java | 2 +- .../java/com/muyu/system/domain/SysFirm.java | 4 + .../muyu/system/domain/req/SysFirmReq.java | 30 ++ .../muyu/system/mapper/SysMemberMapper.java | 7 + .../com/muyu/system/rabbit/RabbitTest.java | 2 +- .../muyu/system/service/SysMemberService.java | 10 + .../muyu/system/service/SysMenuService.java | 1 + .../service/impl/SysConfigServiceImpl.java | 3 +- .../service/impl/SysFirmServiceImpl.java | 18 +- .../service/impl/SysMemberServiceImpl.java | 27 ++ .../service/impl/SysMenuServiceImpl.java | 2 + .../src/main/resources/bootstrap.yml | 12 +- .../resources/mapper/system/SysDeptMapper.xml | 2 +- .../main/resources/static/saas_operation.sql | 294 ++++++++++++++++++ .../cloud-warn-client/pom.xml | 20 -- .../cloud-warn-remote/pom.xml | 20 -- .../src/main/resources/banner.txt | 2 - .../src/main/resources/bootstrap.yml | 48 --- .../src/main/resources/logback/prod.xml | 81 ----- .../mapper/platform/WarnLogsMapper.xml | 96 ------ .../mapper/platform/WarnRuleMapper.xml | 86 ----- .../mapper/platform/WarnRulesMapper.xml | 9 - .../mapper/platform/WarnStrategyMapper.xml | 66 ---- cloud-modules/pom.xml | 9 +- .../src/main/resources/bootstrap.yml | 20 +- init-file/cloud-seata.sql | 118 ------- init-file/nacos_config.zip | Bin 7550 -> 0 bytes init-file/saas_operation.sql | 242 ++++++++++++++ init-file/xxl-init.sql | 122 -------- pom.xml | 32 ++ 302 files changed, 6009 insertions(+), 2857 deletions(-) rename {cloud-modules/cloud-breakdown/cloud-breakdown-client => cloud-common/cloud-common-cache}/pom.xml (74%) create mode 100644 cloud-common/cloud-common-cache/src/main/java/com/muyu/common/cache/AtomicSequenceCache.java create mode 100644 cloud-common/cloud-common-cache/src/main/java/com/muyu/common/cache/BasicCacheData.java create mode 100644 cloud-common/cloud-common-cache/src/main/java/com/muyu/common/cache/Cache.java create mode 100644 cloud-common/cloud-common-cache/src/main/java/com/muyu/common/cache/HashCache.java create mode 100644 cloud-common/cloud-common-cache/src/main/java/com/muyu/common/cache/abs/AtomicSequenceCacheAbs.java create mode 100644 cloud-common/cloud-common-cache/src/main/java/com/muyu/common/cache/abs/CacheAbs.java create mode 100644 cloud-common/cloud-common-cache/src/main/java/com/muyu/common/cache/abs/HashCacheAbs.java create mode 100644 cloud-common/cloud-common-cache/src/main/java/com/muyu/common/cache/decoration/DecorationKey.java create mode 100644 cloud-common/cloud-common-cache/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports rename {cloud-modules/cloud-breakdown => cloud-common/cloud-common-caffeine}/pom.xml (55%) create mode 100644 cloud-common/cloud-common-caffeine/src/main/java/com/muyu/common/caffeine/bean/CaffeineManager.java create mode 100644 cloud-common/cloud-common-caffeine/src/main/java/com/muyu/common/caffeine/constents/CaffeineContent.java create mode 100644 cloud-common/cloud-common-caffeine/src/main/java/com/muyu/common/caffeine/enums/CacheNameEnums.java create mode 100644 cloud-common/cloud-common-caffeine/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports create mode 100644 cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/enums/ClassType.java rename {cloud-modules/cloud-breakdown/cloud-breakdown-common => cloud-common/cloud-common-iotdb}/pom.xml (69%) create mode 100644 cloud-common/cloud-common-iotdb/src/main/java/com/muyu/common/iotdb/config/IotDBSessionConfig.java create mode 100644 cloud-common/cloud-common-iotdb/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports create mode 100644 cloud-common/cloud-common-kafka/pom.xml create mode 100644 cloud-common/cloud-common-kafka/src/main/java/com/muyu/common/kafka/config/KafkaConsumerConfig.java create mode 100644 cloud-common/cloud-common-kafka/src/main/java/com/muyu/common/kafka/config/KafkaProviderConfig.java create mode 100644 cloud-common/cloud-common-kafka/src/main/java/com/muyu/common/kafka/constants/KafkaConstants.java create mode 100644 cloud-common/cloud-common-kafka/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports delete mode 100644 cloud-common/cloud-common-rabbit/src/main/java/com/muyu/common/rabbit/RabbitListenerConfigurer.java create mode 100644 cloud-common/cloud-common-rabbit/src/main/java/com/muyu/common/rabbit/constants/RabbitConstants.java create mode 100644 cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/domain/SysMember.java delete mode 100644 cloud-modules/cloud-breakdown/cloud-breakdown-common/src/main/java/com/muyu/breakdown/DTO/MessageDTO.java delete mode 100644 cloud-modules/cloud-breakdown/cloud-breakdown-common/src/main/java/com/muyu/breakdown/domain/SysCarMessage.java delete mode 100644 cloud-modules/cloud-breakdown/cloud-breakdown-remote/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports delete mode 100644 cloud-modules/cloud-breakdown/cloud-breakdown-server/pom.xml delete mode 100644 cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/BreakDownApplication.java delete mode 100644 cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/controller/SysCarMessageController.java delete mode 100644 cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/service/SysCarMessageService.java delete mode 100644 cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/service/impl/SysCarMessageServiceImpl.java delete mode 100644 cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/resources/logback/dev.xml delete mode 100644 cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/resources/logback/prod.xml delete mode 100644 cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/service/Impl/CarOneClickOperationServiceImpl.java rename cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/{car/gateway => cargateway}/Aliyun/AliYunConfig.java (93%) rename cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/{car/gateway => cargateway}/Aliyun/service/AliYunEcsService.java (90%) rename cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/{car/gateway/CarGatewayApplication.java => cargateway/CloudVehicleGatewayApplication.java} (78%) rename cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/{car/gateway => cargateway}/config/AliProperties.java (96%) rename cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/{car/gateway => cargateway}/config/RabbitmqConfig.java (98%) rename cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/{car/gateway => cargateway}/controller/CarOneClickOperationController.java (74%) rename cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/{car/gateway => cargateway}/domain/AliInstance.java (93%) rename cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/{car/gateway => cargateway}/domain/AliServerConfig.java (95%) rename cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/{car/gateway => cargateway}/domain/ConnectWeight.java (92%) rename cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/{car/gateway => cargateway}/domain/HttpStatus.java (97%) rename cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/{car/gateway => cargateway}/domain/ServerConfig.java (96%) rename cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/{car/gateway => cargateway}/domain/VehicleConnection.java (94%) rename cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/{car/gateway => cargateway}/domain/VinIp.java (82%) rename cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/{car/gateway => cargateway}/domain/model/MqttServerModel.java (91%) create mode 100644 cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/domain/model/TaskModel.java rename cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/{car/gateway => cargateway}/domain/properties/MqttProperties.java (93%) rename cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/{car/gateway => cargateway}/domain/req/VehicleConnectionReq.java (93%) rename cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/{car/gateway => cargateway}/domain/resp/AliServerConfig.java (94%) rename cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/{car/gateway/Aliyun => cargateway}/instance/DeleteSample.java (89%) rename cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/{car/gateway/Aliyun => cargateway}/instance/Sample.java (72%) rename cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/{car/gateway => cargateway}/mapper/CarOneClickOperationMapper.java (71%) rename cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/{car/gateway => cargateway}/service/CarOneClickOperationService.java (53%) create mode 100644 cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/service/Impl/CarOneClickOperationServiceImpl.java create mode 100644 cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/utils/ECSTool.java delete mode 100644 cloud-modules/cloud-modules-car/pom.xml delete mode 100644 cloud-modules/cloud-modules-car/src/main/java/com/muyu/carrail/CloudCarRailApplication.java delete mode 100644 cloud-modules/cloud-modules-car/src/main/resources/bootstrap.yml delete mode 100644 cloud-modules/cloud-modules-carmanage/src/main/java/com/muyu/car/CloudCarApplication.java delete mode 100644 cloud-modules/cloud-modules-carmanage/src/main/java/com/muyu/car/redis/RedisInitialize.java delete mode 100644 cloud-modules/cloud-modules-carmanage/src/main/java/com/muyu/car/util/SSLUtils.java rename cloud-modules/{cloud-modules-carmanage => cloud-modules-data-processing}/pom.xml (84%) create mode 100644 cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/CloudVehicleEventApplication.java create mode 100644 cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/config/RabbitmqConfig.java create mode 100644 cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/controller/DataProcessingController.java create mode 100644 cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/domain/BasicData.java create mode 100644 cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/domain/CarData.java create mode 100644 cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/domain/IotDbData.java create mode 100644 cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/domain/Temporary2.java create mode 100644 cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/kafka/KafkaConsumerService.java create mode 100644 cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/mapper/DataProcessingMapper.java create mode 100644 cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/rebbit/DownlineRabbitConsumer.java create mode 100644 cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/rebbit/GoOnlineRabbitConsumer.java create mode 100644 cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/service/DataProcessingService.java create mode 100644 cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/service/impl/DataProcessingServiceImpl.java create mode 100644 cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/strategy/StrategyHandler.java create mode 100644 cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/strategy/abstractStrategyRouter.java create mode 100644 cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/strategy/branch/DataStorageProcessStrategy.java create mode 100644 cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/strategy/branch/FaultJudgmentStrategy.java create mode 100644 cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/strategy/branch/FaultProcessingStrategy.java create mode 100644 cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/strategy/branch/FenceJudgmentStrategy.java create mode 100644 cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/strategy/branch/FenceProcessingStrategy.java create mode 100644 cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/strategy/branch/RealTimeJudgmentStrategy.java create mode 100644 cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/strategy/branch/RealTimeProcessingStrategy.java create mode 100644 cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/strategy/branch/WarningJudgmentStrategy.java create mode 100644 cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/strategy/branch/WarningProcessingStrategy.java create mode 100644 cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/strategy/core/BasicStrategy.java create mode 100644 cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/strategy/core/EndStrategy.java create mode 100644 cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/strategy/core/RoutingStrategy.java create mode 100644 cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/strategy/core/StartStrategy.java create mode 100644 cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/strategy/leaves/DataStorageStrategy.java create mode 100644 cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/strategy/leaves/FaultAlarmStrategy.java create mode 100644 cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/strategy/leaves/FenceAlarmStrategy.java create mode 100644 cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/strategy/leaves/RealTimeAlarmStrategy.java create mode 100644 cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/strategy/leaves/WarningAlarmStrategy.java create mode 100644 cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/utils/CacheUtils.java create mode 100644 cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/utils/DataUtils.java rename cloud-modules/{cloud-breakdown/cloud-breakdown-server => cloud-modules-data-processing}/src/main/resources/banner.txt (100%) rename cloud-modules/{cloud-breakdown/cloud-breakdown-server => cloud-modules-data-processing}/src/main/resources/bootstrap.yml (80%) rename cloud-modules/{cloud-modules-system-saas => cloud-modules-data-processing}/src/main/resources/logback/dev.xml (97%) rename cloud-modules/{cloud-modules-system-saas => cloud-modules-data-processing}/src/main/resources/logback/prod.xml (98%) rename cloud-modules/{cloud-modules-system-saas => cloud-modules-data-processing}/src/main/resources/logback/test.xml (98%) create mode 100644 cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-cache/pom.xml create mode 100644 cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-cache/src/main/java/com/muyu/openbusiness/VehicleCacheService.java create mode 100644 cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-cache/src/main/java/com/muyu/openbusiness/apply/SysCarCacheRemoteData.java rename cloud-modules/{cloud-modules-warn/cloud-warn-server => cloud-modules-openbusiness/cloud-modules-openbusiness-common}/pom.xml (66%) create mode 100644 cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-common/src/main/java/com/muyu/openbusiness/domain/Animal.java rename cloud-modules/{cloud-breakdown/cloud-breakdown-common/src/main/java/com/muyu/breakdown => cloud-modules-openbusiness/cloud-modules-openbusiness-common/src/main/java/com/muyu/openbusiness}/domain/BreakDown.java (96%) rename cloud-modules/{cloud-breakdown/cloud-breakdown-common/src/main/java/com/muyu/breakdown => cloud-modules-openbusiness/cloud-modules-openbusiness-common/src/main/java/com/muyu/openbusiness}/domain/FaultLog.java (89%) rename cloud-modules/{cloud-breakdown/cloud-breakdown-common/src/main/java/com/muyu/breakdown => cloud-modules-openbusiness/cloud-modules-openbusiness-common/src/main/java/com/muyu/openbusiness}/domain/MessageMap.java (91%) rename cloud-modules/{cloud-breakdown/cloud-breakdown-common/src/main/java/com/muyu/breakdown => cloud-modules-openbusiness/cloud-modules-openbusiness-common/src/main/java/com/muyu/openbusiness}/domain/Messages.java (96%) rename cloud-modules/{cloud-modules-carmanage/src/main/java/com/muyu/car => cloud-modules-openbusiness/cloud-modules-openbusiness-common/src/main/java/com/muyu/openbusiness}/domain/SysCar.java (98%) create mode 100644 cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-common/src/main/java/com/muyu/openbusiness/domain/SysCarMessage.java rename cloud-modules/{cloud-modules-car/src/main/java/com/muyu/carrail => cloud-modules-openbusiness/cloud-modules-openbusiness-common/src/main/java/com/muyu/openbusiness}/domain/SysCorpuscle.java (95%) rename cloud-modules/{cloud-modules-car/src/main/java/com/muyu/carrail => cloud-modules-openbusiness/cloud-modules-openbusiness-common/src/main/java/com/muyu/openbusiness}/domain/SysFence.java (95%) rename cloud-modules/{cloud-modules-carmanage/src/main/java/com/muyu/car => cloud-modules-openbusiness/cloud-modules-openbusiness-common/src/main/java/com/muyu/openbusiness}/domain/SysMessageType.java (97%) rename cloud-modules/{cloud-modules-carmanage/src/main/java/com/muyu/car => cloud-modules-openbusiness/cloud-modules-openbusiness-common/src/main/java/com/muyu/openbusiness}/domain/VehicleMessage.java (98%) rename cloud-modules/{cloud-modules-warn/cloud-warn-common/src/main/java/com/muyu/warning => cloud-modules-openbusiness/cloud-modules-openbusiness-common/src/main/java/com/muyu/openbusiness}/domain/WarnLogs.java (98%) rename cloud-modules/{cloud-modules-warn/cloud-warn-common/src/main/java/com/muyu/warning => cloud-modules-openbusiness/cloud-modules-openbusiness-common/src/main/java/com/muyu/openbusiness}/domain/WarnRule.java (97%) rename cloud-modules/{cloud-modules-warn/cloud-warn-common/src/main/java/com/muyu/warning => cloud-modules-openbusiness/cloud-modules-openbusiness-common/src/main/java/com/muyu/openbusiness}/domain/WarnRuleDTO.java (97%) rename cloud-modules/{cloud-modules-warn/cloud-warn-common/src/main/java/com/muyu/warning => cloud-modules-openbusiness/cloud-modules-openbusiness-common/src/main/java/com/muyu/openbusiness}/domain/WarnStrategy.java (97%) rename cloud-modules/{cloud-modules-warn/cloud-warn-common/src/main/java/com/muyu/warning => cloud-modules-openbusiness/cloud-modules-openbusiness-common/src/main/java/com/muyu/openbusiness}/wx/AccessToken.java (89%) rename cloud-modules/{cloud-modules-warn/cloud-warn-common/src/main/java/com/muyu/warning => cloud-modules-openbusiness/cloud-modules-openbusiness-common/src/main/java/com/muyu/openbusiness}/wx/Message.java (93%) rename cloud-modules/{cloud-breakdown/cloud-breakdown-remote => cloud-modules-openbusiness/cloud-modules-openbusiness-remote}/pom.xml (75%) create mode 100644 cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-remote/src/main/java/com/muyu/openbusiness/remote/SysCarRemoteService.java rename cloud-modules/{cloud-modules-warn/cloud-warn-common => cloud-modules-openbusiness/cloud-modules-openbusiness-server}/pom.xml (65%) rename cloud-modules/{cloud-modules-system-saas/src/main/java/com/muyu/system/saas/CloudSystemSaasApplication.java => cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/CloudOpenBusinessApplication.java} (75%) create mode 100644 cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/cahce/apply/SysCarCacheRemoteData.java rename cloud-modules/{cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown => cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness}/config/MybatisPlusConfig.java (68%) rename cloud-modules/{cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown => cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness}/config/RabbitMQConfig.java (97%) rename cloud-modules/{cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown => cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness}/config/RabbitMQDirectConfig.java (97%) rename cloud-modules/{cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown => cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness}/config/RabbitMQTopicConfig.java (97%) create mode 100644 cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/config/SnowflakeIdWorker.java rename cloud-modules/{cloud-modules-carmanage/src/main/java/com/muyu/car => cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness}/constant/RedisConstant.java (85%) rename cloud-modules/{cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown => cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness}/controller/BreakDownController.java (94%) rename cloud-modules/{cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown => cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness}/controller/FaultLogController.java (83%) create mode 100644 cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/controller/RailController.java rename cloud-modules/{cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown => cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness}/controller/StationMessageController.java (72%) rename cloud-modules/{cloud-modules-carmanage/src/main/java/com/muyu/car => cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness}/controller/SysCarController.java (83%) rename cloud-modules/{cloud-modules-carmanage/src/main/java/com/muyu/car => cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness}/controller/SysCarMessageController.java (83%) rename cloud-modules/{cloud-modules-car/src/main/java/com/muyu/carrail => cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness}/controller/SysCorpuscleController.java (78%) rename cloud-modules/{cloud-modules-car/src/main/java/com/muyu/carrail => cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness}/controller/SysFenceController.java (80%) rename cloud-modules/{cloud-modules-carmanage/src/main/java/com/muyu/car => cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness}/controller/SysMessageTypeController.java (80%) rename cloud-modules/{cloud-modules-system-saas/src/main/java/com/muyu/system/saas => cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness}/controller/SysUserController.java (97%) rename cloud-modules/{cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning => cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness}/controller/WarnLogsController.java (82%) rename cloud-modules/{cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning => cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness}/controller/WarnRuleController.java (78%) rename cloud-modules/{cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning => cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness}/controller/WarnRulesController.java (85%) rename cloud-modules/{cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning => cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness}/controller/WarnStrategyController.java (82%) rename cloud-modules/{cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning => cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness}/controller/WxTestController.java (95%) rename cloud-modules/{cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown => cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness}/mapper/BreakDownMapper.java (79%) rename cloud-modules/{cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown => cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness}/mapper/FaultLogMapper.java (71%) rename cloud-modules/{cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown => cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness}/mapper/StationMessageMapper.java (57%) rename cloud-modules/{cloud-modules-carmanage/src/main/java/com/muyu/car => cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness}/mapper/SysCarMapper.java (73%) rename cloud-modules/{cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown => cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness}/mapper/SysCarMessageMapper.java (52%) rename cloud-modules/{cloud-modules-car/src/main/java/com/muyu/carrail => cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness}/mapper/SysCorpuscleMapper.java (79%) rename cloud-modules/{cloud-modules-car/src/main/java/com/muyu/carrail => cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness}/mapper/SysFenceMapper.java (72%) rename cloud-modules/{cloud-modules-carmanage/src/main/java/com/muyu/car => cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness}/mapper/SysMessageTypeMapper.java (73%) rename cloud-modules/{cloud-modules-system-saas/src/main/java/com/muyu/system/saas => cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness}/mapper/SysUserMapper.java (93%) rename cloud-modules/{cloud-modules-system-saas/src/main/java/com/muyu/system/saas => cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness}/mapper/SysUserPostMapper.java (96%) rename cloud-modules/{cloud-modules-system-saas/src/main/java/com/muyu/system/saas => cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness}/mapper/SysUserRoleMapper.java (97%) rename cloud-modules/{cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning => cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness}/mapper/WarnLogsMapper.java (74%) rename cloud-modules/{cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning => cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness}/mapper/WarnRuleMapper.java (55%) rename cloud-modules/{cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning => cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness}/mapper/WarnRulesMapper.java (86%) rename cloud-modules/{cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning => cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness}/mapper/WarnStrategyMapper.java (74%) rename cloud-modules/{cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning => cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness}/message/Article.java (93%) rename cloud-modules/{cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning => cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness}/message/NewMessage.java (95%) rename cloud-modules/{cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown => cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness}/service/BreakDownService.java (87%) rename cloud-modules/{cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown => cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness}/service/IFaultLogService.java (89%) rename cloud-modules/{cloud-modules-carmanage/src/main/java/com/muyu/car => cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness}/service/ISysCarMessageService.java (83%) rename cloud-modules/{cloud-modules-carmanage/src/main/java/com/muyu/car => cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness}/service/ISysCarService.java (90%) rename cloud-modules/{cloud-modules-car/src/main/java/com/muyu/carrail => cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness}/service/ISysCorpuscleService.java (84%) rename cloud-modules/{cloud-modules-car/src/main/java/com/muyu/carrail => cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness}/service/ISysFenceService.java (89%) rename cloud-modules/{cloud-modules-carmanage/src/main/java/com/muyu/car => cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness}/service/ISysMessageTypeService.java (90%) rename cloud-modules/{cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning => cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness}/service/IWarRulesService.java (70%) rename cloud-modules/{cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning => cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness}/service/IWarnLogsService.java (89%) rename cloud-modules/{cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning => cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness}/service/IWarnRuleService.java (85%) rename cloud-modules/{cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning => cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness}/service/IWarnStrategyService.java (89%) rename cloud-modules/{cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown => cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness}/service/StationMessageService.java (80%) create mode 100644 cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/service/SysCarMessageService.java rename cloud-modules/{cloud-modules-system-saas/src/main/java/com/muyu/system/saas => cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness}/service/SysUserService.java (95%) rename cloud-modules/{cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown => cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness}/service/impl/BreakDownServiceImpl.java (82%) rename cloud-modules/{cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown => cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness}/service/impl/FaultLogServiceImpl.java (91%) rename cloud-modules/{cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown => cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness}/service/impl/StationMessageServiceImpl.java (72%) rename cloud-modules/{cloud-modules-carmanage/src/main/java/com/muyu/car => cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness}/service/impl/SysCarMessageServiceImpl.java (76%) rename cloud-modules/{cloud-modules-carmanage/src/main/java/com/muyu/car => cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness}/service/impl/SysCarServiceImpl.java (79%) rename cloud-modules/{cloud-modules-car/src/main/java/com/muyu/carrail => cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness}/service/impl/SysCorpuscleServiceImpl.java (75%) rename cloud-modules/{cloud-modules-car/src/main/java/com/muyu/carrail => cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness}/service/impl/SysFenceServiceImpl.java (70%) rename cloud-modules/{cloud-modules-carmanage/src/main/java/com/muyu/car => cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness}/service/impl/SysMessageTypeServiceImpl.java (74%) rename cloud-modules/{cloud-modules-system-saas/src/main/java/com/muyu/system/saas => cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness}/service/impl/SysUserServiceImpl.java (92%) rename cloud-modules/{cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning => cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness}/service/impl/WarnLogsServiceImpl.java (93%) rename cloud-modules/{cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning => cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness}/service/impl/WarnRuleServiceImpl.java (92%) rename cloud-modules/{cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning => cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness}/service/impl/WarnRulesServiceImpl.java (80%) rename cloud-modules/{cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning => cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness}/service/impl/WarnStrategyServiceImpl.java (91%) rename cloud-modules/{cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning => cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness}/util/OkHttpUtils.java (96%) rename cloud-modules/{cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning => cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness}/util/TokenUtil.java (93%) rename cloud-modules/{cloud-modules-carmanage => cloud-modules-openbusiness/cloud-modules-openbusiness-server}/src/main/resources/banner.txt (100%) rename cloud-modules/{cloud-modules-carmanage => cloud-modules-openbusiness/cloud-modules-openbusiness-server}/src/main/resources/bootstrap.yml (60%) rename cloud-modules/{cloud-modules-carmanage => cloud-modules-openbusiness/cloud-modules-openbusiness-server}/src/main/resources/logback/dev.xml (100%) rename cloud-modules/{cloud-modules-carmanage => cloud-modules-openbusiness/cloud-modules-openbusiness-server}/src/main/resources/logback/prod.xml (100%) rename cloud-modules/{cloud-breakdown/cloud-breakdown-server => cloud-modules-openbusiness/cloud-modules-openbusiness-server}/src/main/resources/logback/test.xml (98%) rename cloud-modules/{cloud-modules-carmanage/src/main/resources/mapper/car => cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/resources/mapper/openbusiness}/SysCarMapper.xml (98%) rename cloud-modules/{cloud-modules-carmanage/src/main/resources/mapper/car => cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/resources/mapper/openbusiness}/SysCarMessageMapper.xml (82%) rename cloud-modules/{cloud-modules-car/src/main/resources/mapper/carrail => cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/resources/mapper/openbusiness}/SysFenceMapper.xml (88%) rename cloud-modules/{cloud-modules-carmanage/src/main/resources/mapper/car => cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/resources/mapper/openbusiness}/SysMessageTypeMapper.xml (97%) rename cloud-modules/{cloud-modules-system-saas/src/main/resources/mapper/saas => cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/resources/mapper/openbusiness}/SysUserMapper.xml (98%) rename cloud-modules/{cloud-modules-system-saas/src/main/resources/mapper/saas => cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/resources/mapper/openbusiness}/SysUserPostMapper.xml (94%) rename cloud-modules/{cloud-modules-system-saas/src/main/resources/mapper/saas => cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/resources/mapper/openbusiness}/SysUserRoleMapper.xml (96%) rename cloud-modules/{cloud-modules-car/src/main/resources/mapper/carrail => cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/resources/mapper/openbusiness}/SyscarRailMapper.xml (74%) rename cloud-modules/{cloud-modules-warn => cloud-modules-openbusiness}/pom.xml (66%) rename cloud-modules/{cloud-modules-system-saas => cloud-modules-parsing}/pom.xml (75%) rename cloud-modules/{cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/WarnApplication.java => cloud-modules-parsing/src/main/java/com/muyu/parsing/CloudVehicleMessageParsingApplication.java} (66%) create mode 100644 cloud-modules/cloud-modules-parsing/src/main/java/com/muyu/parsing/consumer/FormMessageConsumer.java create mode 100644 cloud-modules/cloud-modules-parsing/src/main/java/com/muyu/parsing/controller/SysCarMessageController.java create mode 100644 cloud-modules/cloud-modules-parsing/src/main/java/com/muyu/parsing/domain/KafKaData.java rename cloud-modules/{cloud-modules-carmanage/src/main/java/com/muyu/car => cloud-modules-parsing/src/main/java/com/muyu/parsing}/domain/SysCarMessage.java (93%) rename cloud-modules/{cloud-modules-carmanage/src/main/java/com/muyu/car/domain/VO/SysMessageVO.java => cloud-modules-parsing/src/main/java/com/muyu/parsing/domain/resp/SysMessageResp.java} (75%) create mode 100644 cloud-modules/cloud-modules-parsing/src/main/java/com/muyu/parsing/manager/TaskManager.java create mode 100644 cloud-modules/cloud-modules-parsing/src/main/java/com/muyu/parsing/manager/TaskManagers.java rename cloud-modules/{cloud-modules-carmanage/src/main/java/com/muyu/car => cloud-modules-parsing/src/main/java/com/muyu/parsing}/mapper/SysCarMessageMapper.java (59%) create mode 100644 cloud-modules/cloud-modules-parsing/src/main/java/com/muyu/parsing/mqtt/MqttTest.java create mode 100644 cloud-modules/cloud-modules-parsing/src/main/java/com/muyu/parsing/service/ISysCarMessageService.java create mode 100644 cloud-modules/cloud-modules-parsing/src/main/java/com/muyu/parsing/service/impl/SysCarMessageServiceImpl.java create mode 100644 cloud-modules/cloud-modules-parsing/src/main/java/com/muyu/parsing/test/MqttTest.java rename cloud-modules/{cloud-modules-system-saas => cloud-modules-parsing}/src/main/resources/banner.txt (100%) rename cloud-modules/{cloud-modules-system-saas => cloud-modules-parsing}/src/main/resources/bootstrap.yml (56%) rename cloud-modules/{cloud-modules-warn/cloud-warn-server => cloud-modules-parsing}/src/main/resources/logback/dev.xml (98%) rename cloud-modules/{cloud-modules-carmanage/src/main/resources/logback/test.xml => cloud-modules-parsing/src/main/resources/logback/prod.xml} (100%) rename cloud-modules/{cloud-modules-warn/cloud-warn-server => cloud-modules-parsing}/src/main/resources/logback/test.xml (98%) delete mode 100644 cloud-modules/cloud-modules-rail/pom.xml delete mode 100644 cloud-modules/cloud-modules-rail/src/main/java/com/zhangyi/rail/CloudRailApplication.java delete mode 100644 cloud-modules/cloud-modules-rail/src/main/java/com/zhangyi/rail/controller/RailController.java delete mode 100644 cloud-modules/cloud-modules-rail/src/main/java/com/zhangyi/rail/domain/SysFenceRail.java create mode 100644 cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysMemberController.java create mode 100644 cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/req/SysFirmReq.java create mode 100644 cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/mapper/SysMemberMapper.java create mode 100644 cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/SysMemberService.java create mode 100644 cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/impl/SysMemberServiceImpl.java create mode 100644 cloud-modules/cloud-modules-system/src/main/resources/static/saas_operation.sql delete mode 100644 cloud-modules/cloud-modules-warn/cloud-warn-client/pom.xml delete mode 100644 cloud-modules/cloud-modules-warn/cloud-warn-remote/pom.xml delete mode 100644 cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/resources/banner.txt delete mode 100644 cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/resources/bootstrap.yml delete mode 100644 cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/resources/logback/prod.xml delete mode 100644 cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/resources/mapper/platform/WarnLogsMapper.xml delete mode 100644 cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/resources/mapper/platform/WarnRuleMapper.xml delete mode 100644 cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/resources/mapper/platform/WarnRulesMapper.xml delete mode 100644 cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/resources/mapper/platform/WarnStrategyMapper.xml delete mode 100644 init-file/cloud-seata.sql delete mode 100644 init-file/nacos_config.zip create mode 100644 init-file/saas_operation.sql delete mode 100644 init-file/xxl-init.sql diff --git a/cloud-auth/src/main/resources/bootstrap.yml b/cloud-auth/src/main/resources/bootstrap.yml index 00e0e7e..6db3958 100644 --- a/cloud-auth/src/main/resources/bootstrap.yml +++ b/cloud-auth/src/main/resources/bootstrap.yml @@ -4,14 +4,10 @@ server: # nacos线上地址 nacos: - addr: 106.54.193.225:8848 + addr: 47.116.173.119:8848 user-name: nacos password: nacos - namespace: one-saas - - namespace: one - # Spring spring: application: @@ -26,33 +22,26 @@ spring: # 服务注册地址 server-addr: ${nacos.addr} # nacos用户名 - username: ${nacos.user-name} - # nacos密码 - password: ${nacos.password} +# username: ${nacos.user-name} +# # nacos密码 +# password: ${nacos.password} # 命名空间 namespace: ${nacos.namespace} config: # 服务注册地址 server-addr: ${nacos.addr} # nacos用户名 - username: ${nacos.user-name} - # nacos密码 - password: ${nacos.password} +# username: ${nacos.user-name} +# # nacos密码 +# password: ${nacos.password} # 命名空间 namespace: ${nacos.namespace} # 配置文件格式 file-extension: yml # 共享配置 shared-configs: - # 系统环境Config共享配置 - application-config-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} # 系统共享配置 - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} - # 系统共享配置 - - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} - # 系统环境Config共享配置 - - application-config-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} - - diff --git a/cloud-modules/cloud-breakdown/cloud-breakdown-client/pom.xml b/cloud-common/cloud-common-cache/pom.xml similarity index 74% rename from cloud-modules/cloud-breakdown/cloud-breakdown-client/pom.xml rename to cloud-common/cloud-common-cache/pom.xml index 603eba0..12b64f4 100644 --- a/cloud-modules/cloud-breakdown/cloud-breakdown-client/pom.xml +++ b/cloud-common/cloud-common-cache/pom.xml @@ -5,23 +5,26 @@ 4.0.0 com.muyu - cloud-breakdown + cloud-common 3.6.3 - cloud-breakdown-client - + cloud-common-cache + + cloud-common-cache 缓存基准 + 17 17 UTF-8 - + + com.muyu - cloud-breakdown-common - 3.6.3 + cloud-common-redis + diff --git a/cloud-common/cloud-common-cache/src/main/java/com/muyu/common/cache/AtomicSequenceCache.java b/cloud-common/cloud-common-cache/src/main/java/com/muyu/common/cache/AtomicSequenceCache.java new file mode 100644 index 0000000..6215b75 --- /dev/null +++ b/cloud-common/cloud-common-cache/src/main/java/com/muyu/common/cache/AtomicSequenceCache.java @@ -0,0 +1,37 @@ +package com.muyu.common.cache; + +import com.muyu.common.cache.decoration.DecorationKey; + +/** + * @author DongZl + * @description: 原子序列缓存基准 + * @Date 2024-4-1 下午 08:07 + */ +public interface AtomicSequenceCache extends DecorationKey { + + /** + * 获取存储的值 + * @param key 键 + * @return 值 + */ + public Long get(K key); + + /** + * 自增 + */ + public Long increment(K key); + /** + * 自减 + */ + public Long decrement(K key); + + /** + * 增加数值 + */ + public Long increment(K key, Long number); + + /** + * 减少数值 + */ + public Long decrement(K key, Long number); +} diff --git a/cloud-common/cloud-common-cache/src/main/java/com/muyu/common/cache/BasicCacheData.java b/cloud-common/cloud-common-cache/src/main/java/com/muyu/common/cache/BasicCacheData.java new file mode 100644 index 0000000..3ae5073 --- /dev/null +++ b/cloud-common/cloud-common-cache/src/main/java/com/muyu/common/cache/BasicCacheData.java @@ -0,0 +1,11 @@ +package com.muyu.common.cache; + +/** + * 数据转换接口 + * @param 数据键 + * @param 数据值 + */ +public interface BasicCacheData { + + public V apply(K key); +} diff --git a/cloud-common/cloud-common-cache/src/main/java/com/muyu/common/cache/Cache.java b/cloud-common/cloud-common-cache/src/main/java/com/muyu/common/cache/Cache.java new file mode 100644 index 0000000..9d96206 --- /dev/null +++ b/cloud-common/cloud-common-cache/src/main/java/com/muyu/common/cache/Cache.java @@ -0,0 +1,43 @@ +package com.muyu.common.cache; + +import com.muyu.common.cache.decoration.DecorationKey; + +/** + * @author DongZl + * @description: 缓存接口基类 + * @Date 2024-3-26 下午 03:25 + */ +public interface Cache extends DecorationKey { + + /** + * 通过Key获取value值 + * @param key 键 + * @return 值 + */ + public V get(K key); + + /** + * 缓存添加/修改 + * @param key 键 + * @param value 值 + */ + public void put(K key, V value); + + /** + * 通过键删除 + * @param key 键 + */ + public void remove(K key); + + /** + * 刷新缓存时间 + * @param key 键 + */ + public void refreshTime (K key); + + /** + * 刷新缓存数据 + * @param key 键 + */ + public void refreshData (K key); +} diff --git a/cloud-common/cloud-common-cache/src/main/java/com/muyu/common/cache/HashCache.java b/cloud-common/cloud-common-cache/src/main/java/com/muyu/common/cache/HashCache.java new file mode 100644 index 0000000..19549ba --- /dev/null +++ b/cloud-common/cloud-common-cache/src/main/java/com/muyu/common/cache/HashCache.java @@ -0,0 +1,104 @@ +package com.muyu.common.cache; + +import com.muyu.common.cache.decoration.DecorationKey; + +import java.util.List; +import java.util.Map; +import java.util.function.Function; + +/** + * @author DongZl + * @description: Hash缓存基准 + * @Date 2024-3-29 下午 03:16 + */ +public interface HashCache extends DecorationKey { + + + /** + * 编码 + * @param hashKey ID + * @return 键 + */ + public String encodeHashKey(HK hashKey); + + /** + * 解码 + * @param redisHashKey 数据库键 + * @return ID + */ + public HK decodeHashKey(String redisHashKey); + + /** + * 通过Key获取所有的map + * @param key 数据库键 + * @return 所有集合Map + */ + public Map get(K key); + + /** + * 通过键和hashKey获取数据库hashValue + * @param key 键 + * @param hashKey hash键 + * @return hash值 + */ + public HV get(K key, HK hashKey); + + /** + * 通过键和hashKey获取数据库hashValue + * @param key 键 + * @param hashKeyList hash键集合 + * @return hash值 + */ + public List get(K key, HK... hashKeyList); + + /** + * 获取hash值集合 + * @param key 键 + * @return hash值集合 + */ + public List getToList(K key); + + /** + * 存储数据 + * @param key redis键 + * @param map hashMap集合 + */ + public void put(K key, Map map); + + /** + * 存储数据 + * @param key redis键 + * @param dataList 数据值 + * @param hashKey hash键 + */ + public void put(K key, List dataList, Function hashKey); + + /** + * 存储数据 + * @param key redis键 + * @param hashKey hash键 + * @param hashValue hash值 + */ + public void put(K key, HK hashKey, HV hashValue); + + /** + * 通过redis键删除 + * @param key hash键 + */ + public void remove(K key); + + /** + * 通过redis键和hash键删除 + * @param key redis键 + * @param hashKey hash键 + */ + public void remove(K key, HK hashKey); + + /** + * 判断redis中hashKey是否存在 + * @param key redis键 + * @param hashKey hash键 + */ + public boolean hasKey(K key, HK hashKey); + +} diff --git a/cloud-common/cloud-common-cache/src/main/java/com/muyu/common/cache/abs/AtomicSequenceCacheAbs.java b/cloud-common/cloud-common-cache/src/main/java/com/muyu/common/cache/abs/AtomicSequenceCacheAbs.java new file mode 100644 index 0000000..54358b7 --- /dev/null +++ b/cloud-common/cloud-common-cache/src/main/java/com/muyu/common/cache/abs/AtomicSequenceCacheAbs.java @@ -0,0 +1,99 @@ +package com.muyu.common.cache.abs; + +import com.muyu.common.cache.AtomicSequenceCache; +import com.muyu.common.redis.service.RedisService; +import org.springframework.beans.factory.annotation.Autowired; + +/** + * @author DongZl + * @description: 原子序列缓存抽象类 + * @Date 2024-4-1 下午 08:33 + */ +public abstract class AtomicSequenceCacheAbs implements AtomicSequenceCache { + + @Autowired + private RedisService redisService; + + /** + * 获取存储的值 + * @param key 键 + * @return 值 + */ + @Override + public Long get (K key) { + Long cacheValue = this.redisService.getCacheObject(encode(key)); + if (cacheValue == null){ + Long data = getData(key); + cacheValue = data == null ? 0L : data; + this.redisService.setCacheObject(encode(key), cacheValue); + } + return cacheValue; + } + + /** + * 自增 + * @param key + */ + @Override + public Long increment (K key) { + return this.increment(key, 1L); + } + + /** + * 自减 + * + * @param key + */ + @Override + public Long decrement (K key) { + return this.decrement(key, 1L); + } + + /** + * 增加数值 + * + * @param key + * @param number + */ + @Override + public Long increment (K key, Long number) { + Long numberValue = redisService.getCacheObject(encode(key)); + if (numberValue == null){ + Long data = getData(key); + data = data == null ? 0L : data; + redisService.setCacheObject(encode(key), data); + } + return redisService.increment(encode(key), number); + } + + /** + * 减少数值 + * + * @param key + * @param number + */ + @Override + public Long decrement (K key, Long number) { + Long numberValue = redisService.getCacheObject(encode(key)); + if (numberValue == null){ + Long data = getData(key); + data = data == null ? 0L : data; + redisService.setCacheObject(encode(key), data); + } + return redisService.decrement(encode(key), number); + } + + /** + * 编码 + * + * @param key ID + * + * @return 键 + */ + @Override + public String encode (K key) { + return keyPre() + key; + } + + public abstract Long getData(K key); +} diff --git a/cloud-common/cloud-common-cache/src/main/java/com/muyu/common/cache/abs/CacheAbs.java b/cloud-common/cloud-common-cache/src/main/java/com/muyu/common/cache/abs/CacheAbs.java new file mode 100644 index 0000000..d2bf765 --- /dev/null +++ b/cloud-common/cloud-common-cache/src/main/java/com/muyu/common/cache/abs/CacheAbs.java @@ -0,0 +1,96 @@ +package com.muyu.common.cache.abs; + +import com.muyu.common.cache.Cache; +import com.muyu.common.redis.service.RedisService; +import org.springframework.beans.factory.annotation.Autowired; + +import java.util.concurrent.TimeUnit; + +/** + * @author DongZl + * @description: 缓存抽象类 + * @Date 2024-3-27 下午 03:10 + */ +public abstract class CacheAbs implements Cache { + + @Autowired + private RedisService redisService; + + /** + * 编码 + * @param key ID + * @return 键 + */ + @Override + public String encode (K key) { + return keyPre() + key; + } + + /** + * 通过Key获取value值 + * @param key 键 + * @return 值 + */ + @Override + public V get (K key) { + V value = redisService.getCacheObject(encode(key)); + if (value == null){ + value = getData(key); + if (value == null){ + value = defaultValue(); + } + } + this.put(key, value); + return value; + } + + /** + * 缓存添加/修改 + * @param key 键 + * @param value 值 + */ + @Override + public void put (K key, V value) { + this.redisService.setCacheObject(encode(key), value); + } + + /** + * 通过键删除 + * @param key 键 + */ + @Override + public void remove (K key) { + this.redisService.deleteObject(encode(key)); + } + + /** + * 刷新缓存 + * @param key 键 + */ + @Override + public void refreshTime (K key) { + this.redisService.expire(encode(key), 60, TimeUnit.SECONDS); + } + + /** + * 刷新缓存数据 + * + * @param key 键 + */ + @Override + public void refreshData (K key) { + this.put(key, getData(key)); + } + + /** + * 从数据库获取数据 + * @param key ID + * @return 缓存对象 + */ + public abstract V getData(K key); + + /** + * 默认值 + */ + public abstract V defaultValue(); +} diff --git a/cloud-common/cloud-common-cache/src/main/java/com/muyu/common/cache/abs/HashCacheAbs.java b/cloud-common/cloud-common-cache/src/main/java/com/muyu/common/cache/abs/HashCacheAbs.java new file mode 100644 index 0000000..adada29 --- /dev/null +++ b/cloud-common/cloud-common-cache/src/main/java/com/muyu/common/cache/abs/HashCacheAbs.java @@ -0,0 +1,223 @@ +package com.muyu.common.cache.abs; + +import com.muyu.common.cache.HashCache; +import com.muyu.common.redis.service.RedisService; +import org.springframework.beans.factory.annotation.Autowired; + +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.function.Function; + +/** + * @author DongZl + * @description: hash缓存抽象类 + * @Date 2024-3-29 下午 07:40 + */ +public abstract class HashCacheAbs implements HashCache { + + @Autowired + private RedisService redisService; + + /** + * 编码 + * + * @param key ID + * + * @return 键 + */ + @Override + public String encode (K key) { + return keyPre() + key; + } + + /** + * 编码 + * @param hashKey ID + * @return 键 + */ + @Override + public String encodeHashKey (HK hashKey) { + return hashKey.toString(); + } + + /** + * 通过Key获取所有的map + * @param key 数据库键 + * @return 所有集合Map + */ + @Override + public Map get (K key) { + // 获取为null的情况 + Map cacheMap = redisService.getCacheMap(encode(key)); + if (cacheMap == null || cacheMap.isEmpty()){ + Map dataMap = getData(key); + if (dataMap != null && !dataMap.isEmpty()){ + cacheMap = encodeMap(dataMap); + }else { + cacheMap = encodeMap(defaultValue()); + } + redisService.setCacheMap(encode(key), cacheMap); + } + return decodeMap(cacheMap); + } + + /** + * 通过键和hashKey获取数据库hashValue + * + * @param key 键 + * @param hashKey hash键 + * + * @return hash值 + */ + @Override + public HV get (K key, HK hashKey) { + HV hashValue = redisService.getCacheMapValue(encode(key), encodeHashKey(hashKey)); + if (hashValue == null){ + HV dataValue = getData(key, hashKey); + hashValue = dataValue != null ? dataValue : defaultHashValue(); + put(key, hashKey, hashValue); + } + return hashValue; + } + + /** + * 通过键和hashKey获取数据库hashValue + * + * @param key 键 + * @param hashKeyList hash键集合 + * + * @return hash值 + */ + @Override + public List get (K key, HK... hashKeyList) { + List encodeHashKeyList = Arrays.stream(hashKeyList).map(this::encodeHashKey).toList(); + return redisService.getMultiCacheMapValue(encode(key), encodeHashKeyList); + } + + /** + * 获取hash值集合 + * + * @param key 键 + * + * @return hash值集合 + */ + @Override + public List getToList (K key) { + Map hkhvMap = get(key); + return hkhvMap.values().stream().toList(); + } + + /** + * 存储数据 + * + * @param key redis键 + * @param map hashMap集合 + */ + @Override + public void put (K key, Map map) { + redisService.setCacheMap(encode(key), encodeMap(map)); + } + + /** + * 存储数据 + * + * @param key redis键 + * @param dataList 数据值 + * @param hashKey hash键 + */ + @Override + public void put (K key, List dataList, Function hashKey) { + Map dataMap = new HashMap<>(); + dataList.forEach((data) -> dataMap.put(hashKey.apply(data), data)); + redisService.setCacheMap(encode(key), encodeMap(dataMap)); + } + + /** + * 存储数据 + * + * @param key redis键 + * @param hashKey hash键 + * @param hashValue hash值 + */ + @Override + public void put (K key, HK hashKey, HV hashValue) { + redisService.setCacheMapValue(encode(key), encodeHashKey(hashKey), hashValue); + } + + /** + * 通过redis键删除 + * + * @param key hash键 + */ + @Override + public void remove (K key) { + redisService.deleteObject(encode(key)); + } + + /** + * 通过redis键和hash键删除 + * + * @param key redis键 + * @param hashKey hash键 + */ + @Override + public void remove (K key, HK hashKey) { + redisService.deleteCacheMapValue(encode(key), encodeHashKey(hashKey)); + } + + /** + * 判断redis中hashKey是否存在 + * + * @param key redis键 + * @param hashKey hash键 + */ + @Override + public boolean hasKey (K key, HK hashKey) { + return redisService.hashKey(encode(key), encodeHashKey(hashKey)); + } + + /** + * 原始数据转编码数据 + * @param dataMap 原始数据 + * @return 编码数据 + */ + private Map encodeMap(Map dataMap){ + Map encodeDataMap = new HashMap<>(); + dataMap.forEach((hashKey, HashValue) -> encodeDataMap.put(encodeHashKey(hashKey), HashValue)); + return encodeDataMap; + } + + /** + * 编码数据转原始数据 + * @param encodeDataMap 编码数据 + * @return 原始数据 + */ + private Map decodeMap(Map encodeDataMap){ + Map dataMap = new HashMap<>(); + encodeDataMap.forEach((hashKey, hashValue) -> dataMap.put(decodeHashKey(hashKey), hashValue)); + return dataMap; + } + + /** + * 通过键获取所有的hash数据 + * @param key 键 + * @return + */ + public abstract Map getData(K key); + + /** + * 通过缓存键和hash键获取hash值 + * @param key 缓存键 + * @param hashKey hash键 + * @return hash值 + */ + public abstract HV getData(K key, HK hashKey); + + /** + * 默认值 + */ + public abstract Map defaultValue(); + public abstract HV defaultHashValue(); +} diff --git a/cloud-common/cloud-common-cache/src/main/java/com/muyu/common/cache/decoration/DecorationKey.java b/cloud-common/cloud-common-cache/src/main/java/com/muyu/common/cache/decoration/DecorationKey.java new file mode 100644 index 0000000..284b09a --- /dev/null +++ b/cloud-common/cloud-common-cache/src/main/java/com/muyu/common/cache/decoration/DecorationKey.java @@ -0,0 +1,30 @@ +package com.muyu.common.cache.decoration; + +/** + * @author DongZl + * @description: 装饰Key + * @Date 2024-3-29 下午 03:19 + */ +public interface DecorationKey { + + /** + * key前缀 + * @return key前缀 + */ + public String keyPre(); + + + /** + * 编码 + * @param key ID + * @return 键 + */ + public String encode(K key); + + /** + * 解码 + * @param redisKey 数据库键 + * @return ID + */ + public K decode(String redisKey); +} diff --git a/cloud-common/cloud-common-cache/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/cloud-common/cloud-common-cache/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports new file mode 100644 index 0000000..f4a1fdb --- /dev/null +++ b/cloud-common/cloud-common-cache/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -0,0 +1,2 @@ +com.muyu.common.kafka.config.KafkaConsumerConfig +com.muyu.common.kafka.config.KafkaProviderConfig diff --git a/cloud-modules/cloud-breakdown/pom.xml b/cloud-common/cloud-common-caffeine/pom.xml similarity index 55% rename from cloud-modules/cloud-breakdown/pom.xml rename to cloud-common/cloud-common-caffeine/pom.xml index 03dc09d..286b121 100644 --- a/cloud-modules/cloud-breakdown/pom.xml +++ b/cloud-common/cloud-common-caffeine/pom.xml @@ -5,23 +5,31 @@ 4.0.0 com.muyu - cloud-modules + cloud-common 3.6.3 - cloud-breakdown - pom - - cloud-breakdown-common - cloud-breakdown-server - cloud-breakdown-remote - cloud-breakdown-client - - + cloud-common-caffeine + + cloud-common-caffeine caffeine缓存模块 + 17 17 UTF-8 + + + com.muyu + cloud-common-redis + + + + com.github.ben-manes.caffeine + caffeine + + + + diff --git a/cloud-common/cloud-common-caffeine/src/main/java/com/muyu/common/caffeine/bean/CaffeineManager.java b/cloud-common/cloud-common-caffeine/src/main/java/com/muyu/common/caffeine/bean/CaffeineManager.java new file mode 100644 index 0000000..d4463d2 --- /dev/null +++ b/cloud-common/cloud-common-caffeine/src/main/java/com/muyu/common/caffeine/bean/CaffeineManager.java @@ -0,0 +1,49 @@ +package com.muyu.common.caffeine.bean; + + +import com.muyu.common.caffeine.enums.CacheNameEnums; +import lombok.extern.slf4j.Slf4j; +import com.github.benmanes.caffeine.cache.Caffeine; +import org.springframework.cache.CacheManager; +import org.springframework.cache.caffeine.CaffeineCache; +import org.springframework.cache.support.SimpleCacheManager; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.stereotype.Component; + +import java.util.List; + + +/** + * Caffeine管理器 + * @Author: 胡杨 + * @Name: CaffeineCacheConfig + * @Description: Caffeine管理器 + * @CreatedDate: 2024/9/26 上午11:52 + * @FilePath: com.muyu.common.caffeine.config + */ + +@Slf4j +@Configuration +public class CaffeineManager { + + /** + * 创建缓存管理器 + * @return 缓存管理器实例 + */ + @Bean + public CacheManager cacheManager() { + SimpleCacheManager cacheManager = new SimpleCacheManager(); + List cacheNames = CacheNameEnums.getCodes(); + cacheManager.setCaches(cacheNames.stream() + .map(name -> new CaffeineCache( + name, + Caffeine.newBuilder() + .recordStats() + .build())) + .toList()); + log.info("缓存管理器初始化完成,缓存分区:{}", cacheNames); + return cacheManager; + } + +} diff --git a/cloud-common/cloud-common-caffeine/src/main/java/com/muyu/common/caffeine/constents/CaffeineContent.java b/cloud-common/cloud-common-caffeine/src/main/java/com/muyu/common/caffeine/constents/CaffeineContent.java new file mode 100644 index 0000000..251bc9b --- /dev/null +++ b/cloud-common/cloud-common-caffeine/src/main/java/com/muyu/common/caffeine/constents/CaffeineContent.java @@ -0,0 +1,17 @@ +package com.muyu.common.caffeine.constents; + +/** + * Caffeine常量 + * @Author: 胡杨 + * @Name: CaffeineContent + * @Description: Caffeine常量 + * @CreatedDate: 2024/9/26 下午12:06 + * @FilePath: com.muyu.common.caffeine.constents + */ + +public class CaffeineContent { + + public static final String CAR_VIN_KEY = "car:vin"; + + public static final String VIN = "vin"; +} diff --git a/cloud-common/cloud-common-caffeine/src/main/java/com/muyu/common/caffeine/enums/CacheNameEnums.java b/cloud-common/cloud-common-caffeine/src/main/java/com/muyu/common/caffeine/enums/CacheNameEnums.java new file mode 100644 index 0000000..3d3116b --- /dev/null +++ b/cloud-common/cloud-common-caffeine/src/main/java/com/muyu/common/caffeine/enums/CacheNameEnums.java @@ -0,0 +1,68 @@ +package com.muyu.common.caffeine.enums; + +import lombok.Getter; + +import java.util.Arrays; +import java.util.List; + +/** + * 缓存分区枚举 + * + * @Author: 胡杨 + * @Name: CacheNameEnums + * @Description: 缓存分区枚举 + * @CreatedDate: 2024/10/2 上午9:17 + * @FilePath: com.muyu.common.caffeine.enums + */ + +@Getter +public enum CacheNameEnums { + STORAGE("storage", "持久化"), + FAULT("fault", "故障"), + FENCE("fence", "围栏"), + WARMING("warming", "预警"), + REALTIME("realTime", "实时信息"); + + private final String code; + private final String info; + + CacheNameEnums(String code, String info) { + this.code = code; + this.info = info; + } + + /** + * 鉴别参数是否是枚举的值 + * + * @param code 需鉴别参数 + * @return 如果存在返回结果turn, 否则返回false + */ + public static boolean isCode(String code) { + return Arrays.stream(values()) + .map(CacheNameEnums::getCode) + .anyMatch(c -> c.equals(code)); + } + + /** + * 获取枚举Value + * @param code 编码 + * @return Value + */ + public static String getInfo(String code) { + return Arrays.stream(values()) + .filter(c -> c.getCode().equals(code)) + .map(CacheNameEnums::getInfo) + .findFirst() + .orElse(""); + } + + /** + * 获取所有code + * @return code集合 + */ + public static List getCodes() { + return Arrays.stream(values()) + .map(CacheNameEnums::getCode) + .toList(); + } +} diff --git a/cloud-common/cloud-common-caffeine/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/cloud-common/cloud-common-caffeine/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports new file mode 100644 index 0000000..42fbf86 --- /dev/null +++ b/cloud-common/cloud-common-caffeine/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -0,0 +1 @@ +com.muyu.common.caffeine.bean.CaffeineManager diff --git a/cloud-common/cloud-common-core/pom.xml b/cloud-common/cloud-common-core/pom.xml index de8898d..29f8379 100644 --- a/cloud-common/cloud-common-core/pom.xml +++ b/cloud-common/cloud-common-core/pom.xml @@ -22,6 +22,7 @@ mybatis-plus-join-boot-starter 1.4.11 + org.springframework.cloud diff --git a/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/annotation/Excel.java b/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/annotation/Excel.java index 36180e5..5168b9d 100644 --- a/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/annotation/Excel.java +++ b/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/annotation/Excel.java @@ -21,132 +21,132 @@ public @interface Excel { /** * 导出时在excel中排序 */ - public int sort () default Integer.MAX_VALUE; + public int sort() default Integer.MAX_VALUE; /** * 导出到Excel中的名字. */ - public String name () default ""; + public String name() default ""; /** * 日期格式, 如: yyyy-MM-dd */ - public String dateFormat () default ""; + public String dateFormat() default ""; /** * 读取内容转表达式 (如: 0=男,1=女,2=未知) */ - public String readConverterExp () default ""; + public String readConverterExp() default ""; /** * 分隔符,读取字符串组内容 */ - public String separator () default ","; + public String separator() default ","; /** * BigDecimal 精度 默认:-1(默认不开启BigDecimal格式化) */ - public int scale () default -1; + public int scale() default -1; /** * BigDecimal 舍入规则 默认:BigDecimal.ROUND_HALF_EVEN */ - public int roundingMode () default BigDecimal.ROUND_HALF_EVEN; + public int roundingMode() default BigDecimal.ROUND_HALF_EVEN; /** * 导出时在excel中每个列的高度 */ - public double height () default 14; + public double height() default 14; /** * 导出时在excel中每个列的宽度 */ - public double width () default 16; + public double width() default 16; /** * 文字后缀,如% 90 变成90% */ - public String suffix () default ""; + public String suffix() default ""; /** * 当值为空时,字段的默认值 */ - public String defaultValue () default ""; + public String defaultValue() default ""; /** * 提示信息 */ - public String prompt () default ""; + public String prompt() default ""; /** * 设置只能选择不能输入的列内容. */ - public String[] combo () default {}; + public String[] combo() default {}; /** * 是否需要纵向合并单元格,应对需求:含有list集合单元格) */ - public boolean needMerge () default false; + public boolean needMerge() default false; /** * 是否导出数据,应对需求:有时我们需要导出一份模板,这是标题需要但内容需要用户手工填写. */ - public boolean isExport () default true; + public boolean isExport() default true; /** * 另一个类中的属性名称,支持多级获取,以小数点隔开 */ - public String targetAttr () default ""; + public String targetAttr() default ""; /** * 是否自动统计数据,在最后追加一行统计数据总和 */ - public boolean isStatistics () default false; + public boolean isStatistics() default false; /** * 导出类型(0数字 1字符串) */ - public ColumnType cellType () default ColumnType.STRING; + public ColumnType cellType() default ColumnType.STRING; /** * 导出列头背景颜色 */ - public IndexedColors headerBackgroundColor () default IndexedColors.GREY_50_PERCENT; + public IndexedColors headerBackgroundColor() default IndexedColors.GREY_50_PERCENT; /** * 导出列头字体颜色 */ - public IndexedColors headerColor () default IndexedColors.WHITE; + public IndexedColors headerColor() default IndexedColors.WHITE; /** * 导出单元格背景颜色 */ - public IndexedColors backgroundColor () default IndexedColors.WHITE; + public IndexedColors backgroundColor() default IndexedColors.WHITE; /** * 导出单元格字体颜色 */ - public IndexedColors color () default IndexedColors.BLACK; + public IndexedColors color() default IndexedColors.BLACK; /** * 导出字段对齐方式 */ - public HorizontalAlignment align () default HorizontalAlignment.CENTER; + public HorizontalAlignment align() default HorizontalAlignment.CENTER; /** * 自定义数据处理器 */ - public Class handler () default ExcelHandlerAdapter.class; + public Class handler() default ExcelHandlerAdapter.class; /** * 自定义数据处理器参数 */ - public String[] args () default {}; + public String[] args() default {}; /** * 字段类型(0:导出导入;1:仅导出;2:仅导入) */ - Type type () default Type.ALL; + Type type() default Type.ALL; public enum Type { ALL(0), EXPORT(1), IMPORT(2); diff --git a/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/annotation/Excels.java b/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/annotation/Excels.java index f8fc165..ea8dd80 100644 --- a/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/annotation/Excels.java +++ b/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/annotation/Excels.java @@ -13,5 +13,5 @@ import java.lang.annotation.Target; @Target(ElementType.FIELD) @Retention(RetentionPolicy.RUNTIME) public @interface Excels { - Excel[] value (); + Excel[] value(); } diff --git a/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/constant/ServiceNameConstants.java b/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/constant/ServiceNameConstants.java index 4397df7..01189de 100644 --- a/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/constant/ServiceNameConstants.java +++ b/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/constant/ServiceNameConstants.java @@ -21,6 +21,8 @@ public class ServiceNameConstants { */ public static final String FILE_SERVICE = "cloud-file"; + public static final String CAR_SERVICE = "cloud-car"; + /** * 智能车联服务 */ diff --git a/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/enums/ClassType.java b/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/enums/ClassType.java new file mode 100644 index 0000000..69db8d3 --- /dev/null +++ b/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/enums/ClassType.java @@ -0,0 +1,63 @@ +package com.muyu.common.core.enums; + +import lombok.Getter; + +import java.util.Arrays; +import java.util.List; +import java.util.Map; +import java.util.Set; + +/** + * 类型枚举 + * + * @Author: 胡杨 + * @Name: ClassType + * @Description: 类型枚举 + * @CreatedDate: 2024/9/29 上午9:28 + * @FilePath: com.muyu.common.core.enums + */ + +@Getter +public enum ClassType { + BYTE("byte", byte.class), + SHORT("short", short.class), + INT("int", int.class), + LONG("long", long.class), + FLOAT("float", float.class), + DOUBLE("double", double.class), + BOOLEAN("boolean", boolean.class), + CHAR("char", char.class), + STRING("String", String.class), + SET("Set", Set.class), + MAP("Map", Map.class), + LIST("List", List.class); + + private final String code; + private final Class info; + + ClassType(String code, Class info) { + this.code = code; + this.info = info; + } + + /** + * 鉴别参数是否是枚举的值 + * + * @param code 需鉴别参数 + * @return 如果存在返回结果turn, 否则返回false + */ + public static boolean isCode(String code) { + return Arrays.stream(values()) + .map(ClassType::getCode) + .anyMatch(c -> c.equals(code)); + } + + + public static Class getInfo(String code) { + return Arrays.stream(values()) + .filter(c -> c.getCode().equals(code)) + .findFirst() + .map(ClassType::getInfo) + .orElse(null); + } +} diff --git a/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/utils/SpringUtils.java b/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/utils/SpringUtils.java index c37a65c..6f50b56 100644 --- a/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/utils/SpringUtils.java +++ b/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/utils/SpringUtils.java @@ -26,7 +26,7 @@ public final class SpringUtils implements BeanFactoryPostProcessor { * * @return Object 一个以所给名字注册的bean的实例 * - * @throws org.springframework.beans.BeansException + * @throws BeansException */ @SuppressWarnings("unchecked") public static T getBean (String name) throws BeansException { @@ -40,7 +40,7 @@ public final class SpringUtils implements BeanFactoryPostProcessor { * * @return * - * @throws org.springframework.beans.BeansException + * @throws BeansException */ public static T getBean (Class clz) throws BeansException { T result = (T) beanFactory.getBean(clz); @@ -65,7 +65,7 @@ public final class SpringUtils implements BeanFactoryPostProcessor { * * @return boolean * - * @throws org.springframework.beans.factory.NoSuchBeanDefinitionException + * @throws NoSuchBeanDefinitionException */ public static boolean isSingleton (String name) throws NoSuchBeanDefinitionException { return beanFactory.isSingleton(name); @@ -76,7 +76,7 @@ public final class SpringUtils implements BeanFactoryPostProcessor { * * @return Class 注册对象的类型 * - * @throws org.springframework.beans.factory.NoSuchBeanDefinitionException + * @throws NoSuchBeanDefinitionException */ public static Class getType (String name) throws NoSuchBeanDefinitionException { return beanFactory.getType(name); @@ -89,7 +89,7 @@ public final class SpringUtils implements BeanFactoryPostProcessor { * * @return * - * @throws org.springframework.beans.factory.NoSuchBeanDefinitionException + * @throws NoSuchBeanDefinitionException */ public static String[] getAliases (String name) throws NoSuchBeanDefinitionException { return beanFactory.getAliases(name); diff --git a/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/xss/Xss.java b/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/xss/Xss.java index fa31755..9b53042 100644 --- a/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/xss/Xss.java +++ b/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/xss/Xss.java @@ -17,11 +17,11 @@ import java.lang.annotation.Target; @Target(value = {ElementType.METHOD, ElementType.FIELD, ElementType.CONSTRUCTOR, ElementType.PARAMETER}) @Constraint(validatedBy = {XssValidator.class}) public @interface Xss { - String message () + String message() default "不允许任何脚本运行"; - Class[] groups () default {}; + Class[] groups() default {}; - Class[] payload () default {}; + Class[] payload() default {}; } diff --git a/cloud-common/cloud-common-datascope/src/main/java/com/muyu/common/datascope/annotation/DataScope.java b/cloud-common/cloud-common-datascope/src/main/java/com/muyu/common/datascope/annotation/DataScope.java index 498f06b..5277b20 100644 --- a/cloud-common/cloud-common-datascope/src/main/java/com/muyu/common/datascope/annotation/DataScope.java +++ b/cloud-common/cloud-common-datascope/src/main/java/com/muyu/common/datascope/annotation/DataScope.java @@ -14,15 +14,15 @@ public @interface DataScope { /** * 部门表的别名 */ - public String deptAlias () default ""; + public String deptAlias() default ""; /** * 用户表的别名 */ - public String userAlias () default ""; + public String userAlias() default ""; /** * 权限字符(用于多个角色匹配符合要求的权限)默认根据权限注解@RequiresPermissions获取,多个权限用逗号分隔开来 */ - public String permission () default ""; + public String permission() default ""; } diff --git a/cloud-modules/cloud-breakdown/cloud-breakdown-common/pom.xml b/cloud-common/cloud-common-iotdb/pom.xml similarity index 69% rename from cloud-modules/cloud-breakdown/cloud-breakdown-common/pom.xml rename to cloud-common/cloud-common-iotdb/pom.xml index fc96ca7..0972390 100644 --- a/cloud-modules/cloud-breakdown/cloud-breakdown-common/pom.xml +++ b/cloud-common/cloud-common-iotdb/pom.xml @@ -5,22 +5,32 @@ 4.0.0 com.muyu - cloud-breakdown + cloud-common 3.6.3 - cloud-breakdown-common - + cloud-common-iotdb + + cloud-common-iotdb 时序数据库模块 + 17 17 UTF-8 + + com.muyu cloud-common-core + + + org.apache.iotdb + iotdb-session + 1.3.2 + diff --git a/cloud-common/cloud-common-iotdb/src/main/java/com/muyu/common/iotdb/config/IotDBSessionConfig.java b/cloud-common/cloud-common-iotdb/src/main/java/com/muyu/common/iotdb/config/IotDBSessionConfig.java new file mode 100644 index 0000000..b83bbad --- /dev/null +++ b/cloud-common/cloud-common-iotdb/src/main/java/com/muyu/common/iotdb/config/IotDBSessionConfig.java @@ -0,0 +1,53 @@ +package com.muyu.common.iotdb.config; + +import org.apache.iotdb.rpc.IoTDBConnectionException; +import org.apache.iotdb.rpc.StatementExecutionException; +import org.apache.iotdb.session.Session; +import org.apache.iotdb.session.pool.SessionPool; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +/** + * 时序数据库配置 + * + * @Author: 胡杨 + * @Name: IotDBConfig + * @Description: 时序数据库配置 + * @CreatedDate: 2024/9/29 下午9:30 + * @FilePath: com.muyu.data.processing.config + */ + +@Configuration +public class IotDBSessionConfig { + + @Value("${spring.iotdb.ip}") + private String ip; + + @Value("${spring.iotdb.port}") + private int port; + + @Value("${spring.iotdb.user}") + private String user; + + @Value("${spring.iotdb.password}") + private String password; + + @Value("${spring.iotdb.fetchSize}") + private int fetchSize; + + private static SessionPool sessionPool; + @Bean + public SessionPool getSessionPool(){ + if (sessionPool == null) { + sessionPool = new SessionPool(ip, port, user, password, fetchSize); + try { + sessionPool.setTimeZone("+08:00"); + } catch (Exception e) { + throw new RuntimeException(e); + } + } + return sessionPool; + } + +} diff --git a/cloud-common/cloud-common-iotdb/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/cloud-common/cloud-common-iotdb/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports new file mode 100644 index 0000000..6ef70f8 --- /dev/null +++ b/cloud-common/cloud-common-iotdb/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -0,0 +1 @@ +com.muyu.common.iotdb.config.IotDBSessionConfig diff --git a/cloud-common/cloud-common-kafka/pom.xml b/cloud-common/cloud-common-kafka/pom.xml new file mode 100644 index 0000000..fca6155 --- /dev/null +++ b/cloud-common/cloud-common-kafka/pom.xml @@ -0,0 +1,37 @@ + + + 4.0.0 + + com.muyu + cloud-common + 3.6.3 + + + cloud-common-kafka + + cloud-common-kafka kafka中间件模块 + + + 17 + 17 + UTF-8 + + + + + + com.muyu + cloud-common-redis + + + + org.apache.kafka + kafka-clients + 3.0.0 + + + + + diff --git a/cloud-common/cloud-common-kafka/src/main/java/com/muyu/common/kafka/config/KafkaConsumerConfig.java b/cloud-common/cloud-common-kafka/src/main/java/com/muyu/common/kafka/config/KafkaConsumerConfig.java new file mode 100644 index 0000000..21092d2 --- /dev/null +++ b/cloud-common/cloud-common-kafka/src/main/java/com/muyu/common/kafka/config/KafkaConsumerConfig.java @@ -0,0 +1,54 @@ +package com.muyu.common.kafka.config; + +import com.muyu.common.kafka.constants.KafkaConstants; +import org.apache.kafka.clients.consumer.KafkaConsumer; +import org.apache.kafka.common.serialization.Deserializer; +import org.apache.kafka.common.serialization.StringDeserializer; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.boot.SpringBootConfiguration; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +import java.util.HashMap; +import java.util.Map; + +/** + * kafka 消息的消费者 配置类 + */ +@Configuration +public class KafkaConsumerConfig { + + @Bean + public KafkaConsumer kafkaConsumer() { + Map configs = new HashMap<>(); + //kafka服务端的IP和端口,格式:(ip:port) + configs.put("bootstrap.servers", "47.116.173.119:9092"); + //开启consumer的偏移量(offset)自动提交到Kafka + configs.put("enable.auto.commit", true); + //consumer的偏移量(offset) 自动提交的时间间隔,单位毫秒 + configs.put("auto.commit.interval", 5000); + //在Kafka中没有初始化偏移量或者当前偏移量不存在情况 + //earliest, 在偏移量无效的情况下, 自动重置为最早的偏移量 + //latest, 在偏移量无效的情况下, 自动重置为最新的偏移量 + //none, 在偏移量无效的情况下, 抛出异常. + configs.put("auto.offset.reset", "latest"); + //请求阻塞的最大时间(毫秒) + configs.put("fetch.max.wait", 500); + //请求应答的最小字节数 + configs.put("fetch.min.size", 1); + //心跳间隔时间(毫秒) + configs.put("heartbeat-interval", 3000); + //一次调用poll返回的最大记录条数 + configs.put("max.poll.records", 500); + //指定消费组 + configs.put("group.id", KafkaConstants.KafkaGrop); + //指定key使用的反序列化类 + Deserializer keyDeserializer = new StringDeserializer(); + //指定value使用的反序列化类 + Deserializer valueDeserializer = new StringDeserializer(); + //创建Kafka消费者 + KafkaConsumer kafkaConsumer = new KafkaConsumer(configs, keyDeserializer, valueDeserializer); + return kafkaConsumer; + } + +} diff --git a/cloud-common/cloud-common-kafka/src/main/java/com/muyu/common/kafka/config/KafkaProviderConfig.java b/cloud-common/cloud-common-kafka/src/main/java/com/muyu/common/kafka/config/KafkaProviderConfig.java new file mode 100644 index 0000000..07b56d3 --- /dev/null +++ b/cloud-common/cloud-common-kafka/src/main/java/com/muyu/common/kafka/config/KafkaProviderConfig.java @@ -0,0 +1,45 @@ +package com.muyu.common.kafka.config; + +import org.apache.kafka.clients.producer.KafkaProducer; +import org.apache.kafka.common.serialization.Serializer; +import org.apache.kafka.common.serialization.StringSerializer; +import org.springframework.boot.SpringBootConfiguration; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +import java.util.HashMap; +import java.util.Map; + +/** + * kafka 消息的生产者 配置类 + */ +@Configuration +public class KafkaProviderConfig { + + @Bean + public KafkaProducer kafkaProducer() { + Map configs = new HashMap<>(); + //#kafka服务端的IP和端口,格式:(ip:port) + configs.put("bootstrap.servers", "47.116.173.119:9092"); + //客户端发送服务端失败的重试次数 + configs.put("retries", 2); + //多个记录被发送到同一个分区时,生产者将尝试将记录一起批处理成更少的请求. + //此设置有助于提高客户端和服务器的性能,配置控制默认批量大小(以字节为单位) + configs.put("batch.size", 16384); + //生产者可用于缓冲等待发送到服务器的记录的总内存字节数(以字节为单位) + configs.put("buffer-memory", 33554432); + //生产者producer要求leader节点在考虑完成请求之前收到的确认数,用于控制发送记录在服务端的持久化 + //acks=0,设置为0,则生产者producer将不会等待来自服务器的任何确认.该记录将立即添加到套接字(socket)缓冲区并视为已发送.在这种情况下,无法保证服务器已收到记录,并且重试配置(retries)将不会生效(因为客户端通常不会知道任何故障),每条记录返回的偏移量始终设置为-1. + //acks=1,设置为1,leader节点会把记录写入本地日志,不需要等待所有follower节点完全确认就会立即应答producer.在这种情况下,在follower节点复制前,leader节点确认记录后立即失败的话,记录将会丢失. + //acks=all,acks=-1,leader节点将等待所有同步复制副本完成再确认记录,这保证了只要至少有一个同步复制副本存活,记录就不会丢失. + configs.put("acks", "-1"); + //指定key使用的序列化类 + Serializer keySerializer = new StringSerializer(); + //指定value使用的序列化类 + Serializer valueSerializer = new StringSerializer(); + //创建Kafka生产者 + KafkaProducer kafkaProducer = new KafkaProducer(configs, keySerializer, valueSerializer); + return kafkaProducer; + } + +} diff --git a/cloud-common/cloud-common-kafka/src/main/java/com/muyu/common/kafka/constants/KafkaConstants.java b/cloud-common/cloud-common-kafka/src/main/java/com/muyu/common/kafka/constants/KafkaConstants.java new file mode 100644 index 0000000..d4c3d13 --- /dev/null +++ b/cloud-common/cloud-common-kafka/src/main/java/com/muyu/common/kafka/constants/KafkaConstants.java @@ -0,0 +1,14 @@ +package com.muyu.common.kafka.constants; + +/** + * @Author: 胡杨 + * @date: 2024/7/10 + * @Description: kafka常量 + * @Version 1.0.0 + */ +public class KafkaConstants { + + public final static String KafkaTopic = "kafka_topic"; + + public final static String KafkaGrop = "kafka_grop"; +} diff --git a/cloud-common/cloud-common-kafka/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/cloud-common/cloud-common-kafka/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports new file mode 100644 index 0000000..f4a1fdb --- /dev/null +++ b/cloud-common/cloud-common-kafka/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -0,0 +1,2 @@ +com.muyu.common.kafka.config.KafkaConsumerConfig +com.muyu.common.kafka.config.KafkaProviderConfig diff --git a/cloud-common/cloud-common-log/src/main/java/com/muyu/common/log/annotation/Log.java b/cloud-common/cloud-common-log/src/main/java/com/muyu/common/log/annotation/Log.java index ac6394e..a8b6fea 100644 --- a/cloud-common/cloud-common-log/src/main/java/com/muyu/common/log/annotation/Log.java +++ b/cloud-common/cloud-common-log/src/main/java/com/muyu/common/log/annotation/Log.java @@ -17,30 +17,30 @@ public @interface Log { /** * 模块 */ - public String title () default ""; + public String title() default ""; /** * 功能 */ - public BusinessType businessType () default BusinessType.OTHER; + public BusinessType businessType() default BusinessType.OTHER; /** * 操作人类别 */ - public OperatorType operatorType () default OperatorType.MANAGE; + public OperatorType operatorType() default OperatorType.MANAGE; /** * 是否保存请求的参数 */ - public boolean isSaveRequestData () default true; + public boolean isSaveRequestData() default true; /** * 是否保存响应的参数 */ - public boolean isSaveResponseData () default true; + public boolean isSaveResponseData() default true; /** * 排除指定的请求参数 */ - public String[] excludeParamNames () default {}; + public String[] excludeParamNames() default {}; } diff --git a/cloud-common/cloud-common-rabbit/pom.xml b/cloud-common/cloud-common-rabbit/pom.xml index 3681d6f..01f2f25 100644 --- a/cloud-common/cloud-common-rabbit/pom.xml +++ b/cloud-common/cloud-common-rabbit/pom.xml @@ -10,7 +10,9 @@ cloud-common-rabbit - + + cloud-common-rabbit rabbit中间件模块 + 17 17 @@ -32,7 +34,4 @@ - - - diff --git a/cloud-common/cloud-common-rabbit/src/main/java/com/muyu/common/rabbit/RabbitListenerConfigurer.java b/cloud-common/cloud-common-rabbit/src/main/java/com/muyu/common/rabbit/RabbitListenerConfigurer.java deleted file mode 100644 index 51cb359..0000000 --- a/cloud-common/cloud-common-rabbit/src/main/java/com/muyu/common/rabbit/RabbitListenerConfigurer.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.muyu.common.rabbit; - -import org.springframework.amqp.rabbit.connection.ConnectionFactory; -import org.springframework.amqp.rabbit.listener.RabbitListenerEndpointRegistrar; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.messaging.converter.MappingJackson2MessageConverter; -import org.springframework.messaging.handler.annotation.support.DefaultMessageHandlerMethodFactory; - -@Configuration -public class RabbitListenerConfigurer implements org.springframework.amqp.rabbit.annotation.RabbitListenerConfigurer { - - static { - System.setProperty("spring.amqp.deserialization.trust.all", "true"); - } - - //以下配置RabbitMQ消息服务 - @Autowired - public ConnectionFactory connectionFactory; - - - /** - * 处理器方法工厂 - * @return - */ - @Bean - public DefaultMessageHandlerMethodFactory handlerMethodFactory() { - DefaultMessageHandlerMethodFactory factory = new DefaultMessageHandlerMethodFactory(); - // 这里的转换器设置实现了 通过 @Payload 注解 自动反序列化message body - factory.setMessageConverter(new MappingJackson2MessageConverter()); - return factory; - } - - @Override - public void configureRabbitListeners(RabbitListenerEndpointRegistrar rabbitListenerEndpointRegistrar) { - rabbitListenerEndpointRegistrar.setMessageHandlerMethodFactory(handlerMethodFactory()); - } - -} - diff --git a/cloud-common/cloud-common-rabbit/src/main/java/com/muyu/common/rabbit/constants/RabbitConstants.java b/cloud-common/cloud-common-rabbit/src/main/java/com/muyu/common/rabbit/constants/RabbitConstants.java new file mode 100644 index 0000000..70c7620 --- /dev/null +++ b/cloud-common/cloud-common-rabbit/src/main/java/com/muyu/common/rabbit/constants/RabbitConstants.java @@ -0,0 +1,15 @@ +package com.muyu.common.rabbit.constants; + +/** + * rabbit常量 + * @Author: 胡杨 + * @date: 2024/7/10 + * @Description: rabbit常量 + * @Version 1.0.0 + */ +public class RabbitConstants { + + public final static String GO_ONLINE_QUEUE= "GoOnline"; + + public final static String DOWNLINE_QUEUE= "Downline"; +} diff --git a/cloud-common/cloud-common-rabbit/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/cloud-common/cloud-common-rabbit/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports index 292c5ed..0b13700 100644 --- a/cloud-common/cloud-common-rabbit/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports +++ b/cloud-common/cloud-common-rabbit/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -1,7 +1,3 @@ - com.muyu.common.rabbit.config.RabbitListenerConfig com.muyu.common.rabbit.config.RabbitAdminConfig com.muyu.common.rabbit.config.RabbitMQMessageConverterConfig - -com.muyu.common.rabbit.RabbitListenerConfigurer - diff --git a/cloud-common/cloud-common-redis/src/main/java/com/muyu/common/redis/service/RedisService.java b/cloud-common/cloud-common-redis/src/main/java/com/muyu/common/redis/service/RedisService.java index 2c1cad4..ca98a3d 100644 --- a/cloud-common/cloud-common-redis/src/main/java/com/muyu/common/redis/service/RedisService.java +++ b/cloud-common/cloud-common-redis/src/main/java/com/muyu/common/redis/service/RedisService.java @@ -235,7 +235,7 @@ public class RedisService { * * @return Hash对象集合 */ - public List getMultiCacheMapValue (final String key, final Collection hKeys) { + public List getMultiCacheMapValue (final String key, final Collection hKeys) { return redisTemplate.opsForHash().multiGet(key, hKeys); } @@ -261,4 +261,33 @@ public class RedisService { public Collection keys (final String pattern) { return redisTemplate.keys(pattern); } + + + /** + * 判断redis中hashKey是否存在 + * @param key redis键 + * @param hashKey hash键 + */ + public boolean hashKey(final String key, final String hashKey){ + return this.redisTemplate.opsForHash().hasKey(key, hashKey); + } + + /** + * 减少序列值 + * @param key key + * @param number 值 + * @return 操作后的值 + */ + public Long decrement (final String key, Long number) { + return redisTemplate.opsForValue().decrement(key,number); + } + /** + * 增加序列值 + * @param key key + * @param number 值 + * @return 操作后的值 + */ + public Long increment (final String key, Long number) { + return redisTemplate.opsForValue().increment(key,number); + } } diff --git a/cloud-common/cloud-common-saas/pom.xml b/cloud-common/cloud-common-saas/pom.xml index 60b4041..c537804 100644 --- a/cloud-common/cloud-common-saas/pom.xml +++ b/cloud-common/cloud-common-saas/pom.xml @@ -10,7 +10,9 @@ cloud-common-saas - + + cloud-common-saas saas数据源切换模块 + 17 17 diff --git a/cloud-common/cloud-common-saas/src/main/java/com/muyu/cloud/common/many/datasource/ManyDataSource.java b/cloud-common/cloud-common-saas/src/main/java/com/muyu/cloud/common/many/datasource/ManyDataSource.java index ce887d6..275dff0 100644 --- a/cloud-common/cloud-common-saas/src/main/java/com/muyu/cloud/common/many/datasource/ManyDataSource.java +++ b/cloud-common/cloud-common-saas/src/main/java/com/muyu/cloud/common/many/datasource/ManyDataSource.java @@ -71,8 +71,10 @@ public class ManyDataSource implements ApplicationRunner{ Objects.requireNonNull(dataSourceInfoList()) .stream() .map(DataSourceInfo::hostAndPortBuild) - .forEach(dataSourceInfo -> { - dataSourceMap.put(dataSourceInfo.getKey(), druidDataSourceFactory.create(dataSourceInfo)); + .map(druidDataSourceFactory::create) + .filter(Objects::nonNull) + .forEach( druidDataSource -> { + dataSourceMap.put(druidDataSource.getName(), druidDataSource); }); //设置动态数据源 DynamicDataSource dynamicDataSource = new DynamicDataSource(); diff --git a/cloud-common/cloud-common-saas/src/main/java/com/muyu/cloud/common/many/datasource/factory/DruidDataSourceFactory.java b/cloud-common/cloud-common-saas/src/main/java/com/muyu/cloud/common/many/datasource/factory/DruidDataSourceFactory.java index 78f2d8a..a148247 100644 --- a/cloud-common/cloud-common-saas/src/main/java/com/muyu/cloud/common/many/datasource/factory/DruidDataSourceFactory.java +++ b/cloud-common/cloud-common-saas/src/main/java/com/muyu/cloud/common/many/datasource/factory/DruidDataSourceFactory.java @@ -1,6 +1,7 @@ package com.muyu.cloud.common.many.datasource.factory; import com.alibaba.druid.pool.DruidDataSource; +import com.alibaba.druid.pool.DruidPooledConnection; import com.muyu.cloud.common.many.datasource.domain.model.DataSourceInfo; import lombok.extern.log4j.Log4j2; import org.springframework.stereotype.Component; @@ -23,15 +24,18 @@ public class DruidDataSourceFactory { */ public DruidDataSource create(DataSourceInfo dataSourceInfo) { DruidDataSource druidDataSource = new DruidDataSource(); + druidDataSource.setName(dataSourceInfo.getKey()); druidDataSource.setUrl(dataSourceInfo.getUrl()); druidDataSource.setConnectTimeout(10000); + druidDataSource.setMaxWait(60000); druidDataSource.setUsername(dataSourceInfo.getUserName()); druidDataSource.setPassword(dataSourceInfo.getPassword()); druidDataSource.setBreakAfterAcquireFailure(true); druidDataSource.setConnectionErrorRetryAttempts(0); try { - druidDataSource.getConnection(2000); + DruidPooledConnection connection = druidDataSource.getConnection(2000); log.info("{} -> 数据源连接成功", dataSourceInfo.getKey()); + connection.close(); return druidDataSource; } catch (SQLException throwables) { log.error("数据源 {} 连接失败,用户名:{},密码 {}, 原因:{}",dataSourceInfo.getUrl(),dataSourceInfo.getUserName(),dataSourceInfo.getPassword(), throwables); diff --git a/cloud-common/cloud-common-security/src/main/java/com/muyu/common/security/annotation/EnableMyFeignClients.java b/cloud-common/cloud-common-security/src/main/java/com/muyu/common/security/annotation/EnableMyFeignClients.java index 7a59fa4..1a4443b 100644 --- a/cloud-common/cloud-common-security/src/main/java/com/muyu/common/security/annotation/EnableMyFeignClients.java +++ b/cloud-common/cloud-common-security/src/main/java/com/muyu/common/security/annotation/EnableMyFeignClients.java @@ -15,13 +15,13 @@ import java.lang.annotation.*; @Documented @EnableFeignClients public @interface EnableMyFeignClients { - String[] value () default {}; + String[] value() default {}; - String[] basePackages () default {"com.muyu"}; + String[] basePackages() default {"com.muyu"}; - Class[] basePackageClasses () default {}; + Class[] basePackageClasses() default {}; - Class[] defaultConfiguration () default {}; + Class[] defaultConfiguration() default {}; - Class[] clients () default {}; + Class[] clients() default {}; } diff --git a/cloud-common/cloud-common-security/src/main/java/com/muyu/common/security/annotation/InnerAuth.java b/cloud-common/cloud-common-security/src/main/java/com/muyu/common/security/annotation/InnerAuth.java index 092a573..69b0912 100644 --- a/cloud-common/cloud-common-security/src/main/java/com/muyu/common/security/annotation/InnerAuth.java +++ b/cloud-common/cloud-common-security/src/main/java/com/muyu/common/security/annotation/InnerAuth.java @@ -14,5 +14,5 @@ public @interface InnerAuth { /** * 是否校验用户信息 */ - boolean isUser () default false; + boolean isUser() default false; } diff --git a/cloud-common/cloud-common-security/src/main/java/com/muyu/common/security/annotation/RequiresPermissions.java b/cloud-common/cloud-common-security/src/main/java/com/muyu/common/security/annotation/RequiresPermissions.java index 8d95bb4..c0d9e08 100644 --- a/cloud-common/cloud-common-security/src/main/java/com/muyu/common/security/annotation/RequiresPermissions.java +++ b/cloud-common/cloud-common-security/src/main/java/com/muyu/common/security/annotation/RequiresPermissions.java @@ -16,10 +16,10 @@ public @interface RequiresPermissions { /** * 需要校验的权限码 */ - String[] value () default {}; + String[] value() default {}; /** * 验证模式:AND | OR,默认AND */ - Logical logical () default Logical.AND; + Logical logical() default Logical.AND; } diff --git a/cloud-common/cloud-common-security/src/main/java/com/muyu/common/security/annotation/RequiresRoles.java b/cloud-common/cloud-common-security/src/main/java/com/muyu/common/security/annotation/RequiresRoles.java index 78911cc..df6c145 100644 --- a/cloud-common/cloud-common-security/src/main/java/com/muyu/common/security/annotation/RequiresRoles.java +++ b/cloud-common/cloud-common-security/src/main/java/com/muyu/common/security/annotation/RequiresRoles.java @@ -16,10 +16,10 @@ public @interface RequiresRoles { /** * 需要校验的角色标识 */ - String[] value () default {}; + String[] value() default {}; /** * 验证逻辑:AND | OR,默认AND */ - Logical logical () default Logical.AND; + Logical logical() default Logical.AND; } diff --git a/cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/domain/SysEnt.java b/cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/domain/SysEnt.java index 0c145d5..87dab28 100644 --- a/cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/domain/SysEnt.java +++ b/cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/domain/SysEnt.java @@ -34,4 +34,5 @@ public class SysEnt { private String userName; private String password; + } diff --git a/cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/domain/SysFirmUser.java b/cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/domain/SysFirmUser.java index 0bba83a..d99cd55 100644 --- a/cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/domain/SysFirmUser.java +++ b/cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/domain/SysFirmUser.java @@ -22,4 +22,5 @@ public class SysFirmUser extends SysUser { * 用户数据库 */ private String databaseName; + } diff --git a/cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/domain/SysMember.java b/cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/domain/SysMember.java new file mode 100644 index 0000000..4d79d28 --- /dev/null +++ b/cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/domain/SysMember.java @@ -0,0 +1,31 @@ +package com.muyu.common.system.domain; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.muyu.common.core.annotation.Excel; +import lombok.*; +import lombok.experimental.SuperBuilder; + +/** + * 会员表(SysMember)实体类 + * + */ +@Data +@Setter +@Getter +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +@TableName("sys_member") +public class SysMember { + @TableId(type = IdType.AUTO) + private Long memberId; + @Excel(name = "会员等级") + private String memberName; + @Excel(name = "可添加车辆数量") + private Integer memberCarNum; + @Excel(name = "可添加报文模板数量") + private Integer memberCarType; +} + diff --git a/cloud-common/pom.xml b/cloud-common/pom.xml index a7a40be..b053ac7 100644 --- a/cloud-common/pom.xml +++ b/cloud-common/pom.xml @@ -21,6 +21,10 @@ cloud-common-xxl cloud-common-rabbit cloud-common-saas + cloud-common-cache + cloud-common-caffeine + cloud-common-iotdb + cloud-common-kafka cloud-common diff --git a/cloud-gateway/src/main/resources/bootstrap.yml b/cloud-gateway/src/main/resources/bootstrap.yml index fae5a46..e5597a6 100644 --- a/cloud-gateway/src/main/resources/bootstrap.yml +++ b/cloud-gateway/src/main/resources/bootstrap.yml @@ -1,18 +1,14 @@ # Tomcat server: - port: 8080 + port: 8081 # nacos线上地址 nacos: - addr: 106.54.193.225:8848 + addr: 47.116.173.119:8848 user-name: nacos password: nacos - namespace: one-saas - namespace: one - - # Spring spring: application: @@ -26,60 +22,35 @@ spring: discovery: # 服务注册地址 server-addr: ${nacos.addr} - # # nacos用户名 # username: ${nacos.user-name} # # nacos密码 # password: ${nacos.password} - - # nacos用户名 - username: ${nacos.user-name} - # nacos密码 - password: ${nacos.password} - # 命名空间 namespace: ${nacos.namespace} config: # 服务注册地址 server-addr: ${nacos.addr} - # # nacos用户名 # username: ${nacos.user-name} # # nacos密码 # password: ${nacos.password} - - # nacos用户名 - username: ${nacos.user-name} - # nacos密码 - password: ${nacos.password} - # 命名空间 namespace: ${nacos.namespace} # 配置文件格式 file-extension: yml # 共享配置 shared-configs: - # 系统环境Config共享配置 - application-config-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} # 系统共享配置 - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} - - # 系统共享配置 - - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} - # 系统环境Config共享配置 - - application-config-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} - sentinel: # 取消控制台懒加载 eager: true transport: # 控制台地址 - - dashboard: 106.54.193.225:8718 - dashboard: 127.0.0.1:8718 - # nacos配置持久化 datasource: ds1: diff --git a/cloud-modules/cloud-breakdown/cloud-breakdown-common/src/main/java/com/muyu/breakdown/DTO/MessageDTO.java b/cloud-modules/cloud-breakdown/cloud-breakdown-common/src/main/java/com/muyu/breakdown/DTO/MessageDTO.java deleted file mode 100644 index 5e933f7..0000000 --- a/cloud-modules/cloud-breakdown/cloud-breakdown-common/src/main/java/com/muyu/breakdown/DTO/MessageDTO.java +++ /dev/null @@ -1,93 +0,0 @@ -//package com.muyu.breakdown.DTO; -// -// -//import com.muyu.breakdown.domain.Messages; -//import org.springframework.beans.factory.annotation.Autowired; -//import org.springframework.stereotype.Component; -// -//import java.sql.*; -//import java.util.*; -// -///** -// * @ Tool:IntelliJ IDEA -// * @ Author:CHX -// * @ Date:2024-09-18-15:00 -// * @ Version:1.0 -// * @ Description:数据库连接层 -// * @author Lenovo -// */ -//@Component -//public class MessageDTO { -// private static final String DB_URL = "jdbc:mysql://106.54.193.225:3306/one"; -// private static final String USER = "root"; -// private static final String PASSWORD = "bawei2112A"; -// -// // 2. 建立数据库连接 -// Connection connection; -// // 构造函数,初始化数据库连接 -// // 保存消息到数据库 -// public void saveMessage(Messages message) { -// String sql = "INSERT INTO sys_messages (sender_id, receiver_id, content) VALUES (?, ?, ?)"; -// try { -// Class.forName("com.mysql.cj.jdbc.Driver"); -// } catch (ClassNotFoundException e) { -// throw new RuntimeException(e); -// } -// try { -// connection = DriverManager.getConnection(DB_URL, USER, PASSWORD); -// } catch (SQLException e) { -// throw new RuntimeException(e); -// } -// try (PreparedStatement preparedStatement = connection.prepareStatement(sql)) { -// preparedStatement.setInt(1, message.getSenderId()); -// preparedStatement.setInt(2, message.getReceiverId()); -// preparedStatement.setString(3, message.getContent()); -// // 执行添加操作 -// preparedStatement.executeUpdate(); -// } catch (SQLException e) { -// throw new RuntimeException(e); -// } -// try { -// connection.close(); -// } catch (SQLException e) { -// throw new RuntimeException(e); -// } -// } -// -// // 获取所有消息 -// public List getAllMessages(int receiverId){ -// String sql = "SELECT * FROM sys_messages WHERE receiver_id = ?"; -// try { -// Class.forName("com.mysql.cj.jdbc.Driver"); -// } catch (ClassNotFoundException e) { -// throw new RuntimeException(e); -// } -// List messages = new ArrayList<>(); -// try { -// connection = DriverManager.getConnection(DB_URL, USER, PASSWORD); -// } catch (SQLException e) { -// throw new RuntimeException(e); -// } -// try (PreparedStatement preparedStatement = connection.prepareStatement(sql)) { -// preparedStatement.setInt(1, receiverId); -// // 执行查询操作 -// ResultSet rs = preparedStatement.executeQuery(); -// while (rs.next()) { -// Messages message = new Messages(rs.getInt("sender_id"), receiverId, rs.getString("content")); -// -// // 添加到消息列表 -// messages.add(message); -// } -// } catch (SQLException e) { -// throw new RuntimeException(e); -// } -// try { -// connection.close(); -// } catch (SQLException e) { -// throw new RuntimeException(e); -// } -// // 返回消息列表 -// return messages; -// } -// -//} diff --git a/cloud-modules/cloud-breakdown/cloud-breakdown-common/src/main/java/com/muyu/breakdown/domain/SysCarMessage.java b/cloud-modules/cloud-breakdown/cloud-breakdown-common/src/main/java/com/muyu/breakdown/domain/SysCarMessage.java deleted file mode 100644 index 7cadf9c..0000000 --- a/cloud-modules/cloud-breakdown/cloud-breakdown-common/src/main/java/com/muyu/breakdown/domain/SysCarMessage.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.muyu.breakdown.domain; - -import com.baomidou.mybatisplus.annotation.TableName; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; -import lombok.experimental.SuperBuilder; - -/** - * @ Tool:IntelliJ IDEA - * @ Author:CHX - * @ Date:2024-09-20-15:35 - * @ Version:1.0 - * @ Description:报文 - * @author Lenovo - */ -@Data -@AllArgsConstructor -@NoArgsConstructor -@SuperBuilder -@TableName("sys_car_message") -public class SysCarMessage { - /** - * id - */ - private Integer id; - /** - * 车辆型号编码 - */ - private String modelCode; - /** - * 车辆报文类型编码 - */ - private String messageTypeCode; - /** - * 开始位下标 - */ - private String messageStartIndex; - /** - * 结束位下标 - */ - private String messageEndIndex; -} diff --git a/cloud-modules/cloud-breakdown/cloud-breakdown-remote/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/cloud-modules/cloud-breakdown/cloud-breakdown-remote/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports deleted file mode 100644 index 8b13789..0000000 --- a/cloud-modules/cloud-breakdown/cloud-breakdown-remote/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cloud-modules/cloud-breakdown/cloud-breakdown-server/pom.xml b/cloud-modules/cloud-breakdown/cloud-breakdown-server/pom.xml deleted file mode 100644 index a208436..0000000 --- a/cloud-modules/cloud-breakdown/cloud-breakdown-server/pom.xml +++ /dev/null @@ -1,92 +0,0 @@ - - - 4.0.0 - - com.muyu - cloud-breakdown - 3.6.3 - - - cloud-breakdown-server - - - 17 - 17 - UTF-8 - - - - - 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-xxl - - - - com.muyu - cloud-common-rabbit - - - - com.muyu - cloud-breakdown-common - 3.6.3 - - - - diff --git a/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/BreakDownApplication.java b/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/BreakDownApplication.java deleted file mode 100644 index 3d4869c..0000000 --- a/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/BreakDownApplication.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.muyu; - -import com.muyu.common.security.annotation.EnableCustomConfig; -import com.muyu.common.security.annotation.EnableMyFeignClients; -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; - -/** - * @ Tool:IntelliJ IDEA - * @ Author:CHX - * @ Date:2024-09-17-15:00 - * @ Version:1.0 - * @ Description:故障启动类 - * @author Lenovo - */ -@EnableCustomConfig -@EnableMyFeignClients -@SpringBootApplication -public class BreakDownApplication { - public static void main(String[] args) { - SpringApplication.run(BreakDownApplication.class, args); - } -} diff --git a/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/controller/SysCarMessageController.java b/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/controller/SysCarMessageController.java deleted file mode 100644 index 11bba59..0000000 --- a/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/controller/SysCarMessageController.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.muyu.breakdown.controller; - -import com.muyu.breakdown.service.SysCarMessageService; -import com.muyu.common.core.web.controller.BaseController; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.RestController; - -/** - * @ Tool:IntelliJ IDEA - * @ Author:CHX - * @ Date:2024-09-20-15:41 - * @ Version:1.0 - * @ Description:报文模版控制层 - * @author Lenovo - */ -@RestController -public class SysCarMessageController extends BaseController { - @Autowired - private SysCarMessageService sysCarMessageService; -} diff --git a/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/service/SysCarMessageService.java b/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/service/SysCarMessageService.java deleted file mode 100644 index f0103b6..0000000 --- a/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/service/SysCarMessageService.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.muyu.breakdown.service; - -import com.baomidou.mybatisplus.extension.service.IService; -import com.muyu.breakdown.domain.SysCarMessage; - -/** - * @ Tool:IntelliJ IDEA - * @ Author:CHX - * @ Date:2024-09-20-15:42 - * @ Version:1.0 - * @ Description: - * @author Lenovo - */ -public interface SysCarMessageService extends IService { -} diff --git a/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/service/impl/SysCarMessageServiceImpl.java b/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/service/impl/SysCarMessageServiceImpl.java deleted file mode 100644 index 754fc9b..0000000 --- a/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/service/impl/SysCarMessageServiceImpl.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.muyu.breakdown.service.impl; - -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.muyu.breakdown.domain.SysCarMessage; -import com.muyu.breakdown.mapper.SysCarMessageMapper; -import com.muyu.breakdown.service.SysCarMessageService; -import org.springframework.stereotype.Service; - -/** - * @ Tool:IntelliJ IDEA - * @ Author:CHX - * @ Date:2024-09-20-15:42 - * @ Version:1.0 - * @ Description: - * @author Lenovo - */ -@Service -public class SysCarMessageServiceImpl extends ServiceImpl implements SysCarMessageService { -} diff --git a/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/resources/logback/dev.xml b/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/resources/logback/dev.xml deleted file mode 100644 index 34cd186..0000000 --- a/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/resources/logback/dev.xml +++ /dev/null @@ -1,74 +0,0 @@ - - - - - - - - - - - ${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-breakdown/cloud-breakdown-server/src/main/resources/logback/prod.xml b/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/resources/logback/prod.xml deleted file mode 100644 index 1193d09..0000000 --- a/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/resources/logback/prod.xml +++ /dev/null @@ -1,81 +0,0 @@ - - - - - - - - - - - - ${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-car-gateway/src/main/java/com/muyu/car/gateway/service/Impl/CarOneClickOperationServiceImpl.java b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/service/Impl/CarOneClickOperationServiceImpl.java deleted file mode 100644 index 704cb9f..0000000 --- a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/service/Impl/CarOneClickOperationServiceImpl.java +++ /dev/null @@ -1,147 +0,0 @@ -package com.muyu.car.gateway.service.Impl; - -import com.muyu.car.gateway.domain.VehicleConnection; -import com.muyu.car.gateway.domain.VinIp; -import com.muyu.car.gateway.domain.model.MqttServerModel; -import com.muyu.car.gateway.domain.properties.MqttProperties; -import com.muyu.car.gateway.domain.req.VehicleConnectionReq; -import com.muyu.car.gateway.mapper.CarOneClickOperationMapper; -import com.muyu.car.gateway.service.CarOneClickOperationService; -import com.muyu.common.core.domain.Result; -import com.muyu.common.redis.service.RedisService; -import lombok.extern.log4j.Log4j2; -import org.springframework.amqp.rabbit.core.RabbitTemplate; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.data.redis.core.HashOperations; -import org.springframework.data.redis.core.StringRedisTemplate; -import org.springframework.stereotype.Service; - -import java.util.List; - -import static com.muyu.car.gateway.config.RabbitmqConfig.EXCHANGE_TOPICS_INFORM; -import static com.muyu.car.gateway.config.RabbitmqConfig.ROUTINGKEY_SMS; - -/** - * @ Tool:IntelliJ IDEA - * @ Author:CHX - * @ Date:2024-09-26-20:16 - * @ Version:1.0 - * @ Description:车辆一键操作业务实现层 - * @author Lenovo - */ -@Log4j2 -@Service -public class CarOneClickOperationServiceImpl implements CarOneClickOperationService { - - @Autowired - private CarOneClickOperationMapper carOneClickOperationMapper; - @Autowired - private RabbitTemplate rabbitTemplate; - @Autowired - private RedisService redisService; - @Autowired - private StringRedisTemplate redisTemplate; - - /** - * 获取连接信息 - * @param vehicleConnectionReq 车辆连接请求参数 - * @return - */ - @Override - public Result getConnect(VehicleConnectionReq vehicleConnectionReq) { - log.info("车辆连接请求:{}",vehicleConnectionReq.toString()); - -// // 使用交换机发送消息 给事件系统发 -// rabbitTemplate.convertAndSend("exchange_topics_inform","inform.#.email.#",vehicleConnectionReq.getVehicleVin()); -// log.info("发送消息成功:{}",vehicleConnectionReq.getVehicleVin()); - - VehicleConnection vehicleConnection = new VehicleConnection(); - //车辆vin - vehicleConnection.setVehicleVin(vehicleConnectionReq.getVehicleVin()); - //用户名 - vehicleConnection.setUsername(vehicleConnectionReq.getUsername()); - //密码(vin+时间戳+随机数) - vehicleConnection.setPassword(vehicleConnectionReq.getVehicleVin()+vehicleConnectionReq.getTimestamp()+vehicleConnectionReq.getNonce()); - //查询有没有这辆车的vin码 - List selectVehicle = carOneClickOperationMapper.selectByVehicleVin(vehicleConnectionReq.getVehicleVin()); - - if(selectVehicle.isEmpty()){ - //添加连接信息 - carOneClickOperationMapper.addConnect(vehicleConnection); - log.info("车辆上线成功"); - }else { - throw new RuntimeException("车辆无法重复上线"); - - } - //先判断vin码 - HashOperations hashOps = redisTemplate.opsForHash(); - String vinIp = hashOps.get("oneVinIp", vehicleConnectionReq.getVehicleVin()); - if(vinIp!=null){ - throw new RuntimeException("车辆绑定ip失败,已经存在"); - } - MqttProperties mqttProperties = new MqttProperties(); - List vehicleVin = selectByVehicleVin(vehicleConnectionReq.getVehicleVin()); - for (VehicleConnection connection : vehicleVin) { - mqttProperties.setClientId(connection.getVehicleVin()); - mqttProperties.setUserName(connection.getUsername()); - mqttProperties.setPassword(connection.getPassword()); - } - mqttProperties.setTopic("vehicle"); - mqttProperties.setQos(0); - //判断redis有没有count键 - if(redisTemplate.hasKey("oneCount")){ - //取出count - Integer count = Integer.valueOf(redisTemplate.opsForValue().get("oneCount")); - if(count == 1){ - redisTemplate.opsForValue().set("oneCount",String.valueOf(0)); - }else { - redisTemplate.opsForValue().set("oneCount",String.valueOf(count+1)); - } - //根据游标count获取服务IP -// String ip = redisTemplate.opsForList().index("ipList", count); - Object ipList = redisService.redisTemplate.opsForList().index("oneIpList", count); - - log.info("=========================oneIpList:"+ipList); - //关联车辆和服务 - this.addIpAddress(new VinIp(vehicleConnectionReq.getVehicleVin(),ipList.toString())); - //响应信息 - log.info("车辆:{}",vehicleConnectionReq.getVehicleVin()+"绑定成功:{}",ipList); - mqttProperties.setBroker("tcp://"+ipList+":1883"); - // 使用交换机发送消息 - rabbitTemplate.convertAndSend(EXCHANGE_TOPICS_INFORM,ROUTINGKEY_SMS,mqttProperties); - log.info("============================发送消息成功:{}",mqttProperties); - return Result.success(new MqttServerModel("tcp://"+ipList+":1883","vehicle")); - }else { - redisTemplate.opsForValue().set("oneCount",String.valueOf(0)); - //根据游标count获取服务器Ip - Object ipList = redisService.redisTemplate.opsForList().index("oneIpList", 0); - //关联车辆和服务 - this.addIpAddress(new VinIp(vehicleConnectionReq.getVehicleVin(),ipList.toString())); - //响应信息 - log.info("车辆:{}",vehicleConnectionReq.getVehicleVin(),"与:{}绑定成功",ipList); - mqttProperties.setBroker("tcp://"+ipList+":1883"); - // 使用交换机发送消息 - rabbitTemplate.convertAndSend(EXCHANGE_TOPICS_INFORM,ROUTINGKEY_SMS,mqttProperties); - log.info("============================发送消息成功:{}",mqttProperties); - return Result.success(new MqttServerModel("tcp://"+ipList+":1883","vehicle")); - } - } - /** - * 添加车辆绑定IP地址存入redis中 - */ - public void addIpAddress(VinIp vinIp) { - if (vinIp == null || vinIp.getVin() == null || vinIp.getVin().isEmpty() || vinIp.getIp() == null || vinIp.getIp().isEmpty()) { - throw new IllegalArgumentException("vin 或 ip 不能为空或无效"); - } - redisTemplate.opsForHash().put("oneVinIp", vinIp.getVin(), vinIp.getIp()); - } - - /** - * 查询车辆绑定的服务器信息 - * @param vehicleVin 车辆vin码集合 - * @return - */ - public List selectByVehicleVin(String vehicleVin) { - return carOneClickOperationMapper.getMqttServerModel(vehicleVin); - } -} diff --git a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/Aliyun/AliYunConfig.java b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/Aliyun/AliYunConfig.java similarity index 93% rename from cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/Aliyun/AliYunConfig.java rename to cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/Aliyun/AliYunConfig.java index 6848146..489a044 100644 --- a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/Aliyun/AliYunConfig.java +++ b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/Aliyun/AliYunConfig.java @@ -1,8 +1,8 @@ -package com.muyu.car.gateway.Aliyun; +package com.muyu.cargateway.Aliyun; import com.aliyun.ecs20140526.Client; import com.aliyun.teaopenapi.models.Config; -import com.muyu.car.gateway.config.AliProperties; +import com.muyu.cargateway.config.AliProperties; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; diff --git a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/Aliyun/service/AliYunEcsService.java b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/Aliyun/service/AliYunEcsService.java similarity index 90% rename from cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/Aliyun/service/AliYunEcsService.java rename to cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/Aliyun/service/AliYunEcsService.java index 8d704a4..753c3e3 100644 --- a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/Aliyun/service/AliYunEcsService.java +++ b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/Aliyun/service/AliYunEcsService.java @@ -1,11 +1,11 @@ -package com.muyu.car.gateway.Aliyun.service; +package com.muyu.cargateway.Aliyun.service; import com.aliyun.ecs20140526.Client; import com.aliyun.ecs20140526.models.*; import com.aliyun.tea.TeaException; import com.aliyun.teautil.models.RuntimeOptions; -import com.muyu.car.gateway.domain.AliInstance; -import com.muyu.car.gateway.config.AliProperties; +import com.muyu.cargateway.config.AliProperties; +import com.muyu.cargateway.domain.AliInstance; import com.muyu.common.core.exception.ServiceException; import com.muyu.common.redis.service.RedisService; import lombok.extern.log4j.Log4j2; @@ -49,9 +49,8 @@ public class AliYunEcsService { * @return 实例id集合 */ public List generateInstance(Integer amount) { - redisService.deleteObject("oneIpList"); - redisService.deleteObject("oneCount"); - redisService.deleteObject("oneVinIp"); + redisService.deleteObject("instanceIds"); + redisService.deleteObject("instanceList"); // 检查生成实例的数量是否有效 if (amount == null || amount <= 0) { throw new ServiceException("生成数量不能小于1"); @@ -126,7 +125,6 @@ public class AliYunEcsService { // 创建运行时选项对象,用于配置请求的额外参数 RuntimeOptions runtimeOptions = new RuntimeOptions(); List aliInstances = new ArrayList<>(); - List stringArrayList = new ArrayList<>(); try { // 发送请求并获取响应对象 DescribeInstancesResponse describeInstancesResponse = client.describeInstancesWithOptions(request, runtimeOptions); @@ -138,25 +136,16 @@ public class AliYunEcsService { for (DescribeInstancesResponseBody.DescribeInstancesResponseBodyInstancesInstance bodyInstance : instance) { // 实例id String instanceId = bodyInstance.getInstanceId(); + log.info("实例id为:{}", instanceId); // ip地址 String ipAddress = bodyInstance.getPublicIpAddress().getIpAddress().get(0); + log.info("实例ip为:{}", ipAddress); // 实例状态 String status = bodyInstance.getStatus(); - - log.info("=======================实例id为:{}", instanceId); - log.info("=======================实例ip为:{}", ipAddress); - log.info("=======================实例状态为:{}", status); - - - stringArrayList.add(ipAddress); + log.info("实例状态为:{}", status); AliInstance aliInstance = new AliInstance(instanceId, ipAddress, status); aliInstances.add(aliInstance); - redisService.setCacheList(instanceId, aliInstances); - aliInstances.remove(aliInstance); - } - log.info("======================ipList:{}", stringArrayList); - redisService.setCacheList("oneIpList", stringArrayList); log.info("查询成功"); } catch (Exception e) { log.error("查询服务器实例错误:[{}]", e.getMessage(), e); diff --git a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/CarGatewayApplication.java b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/CloudVehicleGatewayApplication.java similarity index 78% rename from cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/CarGatewayApplication.java rename to cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/CloudVehicleGatewayApplication.java index f360231..840f0ce 100644 --- a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/CarGatewayApplication.java +++ b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/CloudVehicleGatewayApplication.java @@ -1,4 +1,4 @@ -package com.muyu.car.gateway; +package com.muyu.cargateway; import com.muyu.common.security.annotation.EnableCustomConfig; import lombok.extern.log4j.Log4j2; @@ -18,8 +18,8 @@ import org.springframework.cloud.openfeign.EnableFeignClients; @EnableCustomConfig @EnableFeignClients @SpringBootApplication -public class CarGatewayApplication { +public class CloudVehicleGatewayApplication { public static void main(String[] args) { - SpringApplication.run(CarGatewayApplication.class, args); + SpringApplication.run(CloudVehicleGatewayApplication.class, args); } } diff --git a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/config/AliProperties.java b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/config/AliProperties.java similarity index 96% rename from cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/config/AliProperties.java rename to cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/config/AliProperties.java index b1148a9..c0ff543 100644 --- a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/config/AliProperties.java +++ b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/config/AliProperties.java @@ -1,4 +1,4 @@ -package com.muyu.car.gateway.config; +package com.muyu.cargateway.config; import lombok.Data; import org.springframework.boot.context.properties.ConfigurationProperties; diff --git a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/config/RabbitmqConfig.java b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/config/RabbitmqConfig.java similarity index 98% rename from cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/config/RabbitmqConfig.java rename to cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/config/RabbitmqConfig.java index 25435f9..734b37f 100644 --- a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/config/RabbitmqConfig.java +++ b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/config/RabbitmqConfig.java @@ -1,4 +1,4 @@ -package com.muyu.car.gateway.config; +package com.muyu.cargateway.config; import lombok.extern.log4j.Log4j2; import org.slf4j.Logger; diff --git a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/controller/CarOneClickOperationController.java b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/controller/CarOneClickOperationController.java similarity index 74% rename from cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/controller/CarOneClickOperationController.java rename to cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/controller/CarOneClickOperationController.java index 822008f..8173dc7 100644 --- a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/controller/CarOneClickOperationController.java +++ b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/controller/CarOneClickOperationController.java @@ -1,8 +1,8 @@ -package com.muyu.car.gateway.controller; +package com.muyu.cargateway.controller; -import com.muyu.car.gateway.domain.req.VehicleConnectionReq; -import com.muyu.car.gateway.service.CarOneClickOperationService; -import com.muyu.car.gateway.domain.model.MqttServerModel; +import com.muyu.cargateway.domain.model.MqttServerModel; +import com.muyu.cargateway.domain.req.VehicleConnectionReq; +import com.muyu.cargateway.service.CarOneClickOperationService; import com.muyu.common.core.domain.Result; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.extern.log4j.Log4j2; @@ -36,7 +36,7 @@ public class CarOneClickOperationController { @PostMapping("/receiveMsg/connect") public Result receiveMsg(@RequestBody VehicleConnectionReq vehicleConnectionReq){ log.info(">"+vehicleConnectionReq); - return carOneClickOperationService.getConnect(vehicleConnectionReq); - + MqttServerModel mqttServerModel =carOneClickOperationService.getConnect(vehicleConnectionReq); + return Result.success(mqttServerModel); } } diff --git a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/domain/AliInstance.java b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/domain/AliInstance.java similarity index 93% rename from cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/domain/AliInstance.java rename to cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/domain/AliInstance.java index 4c61dcc..eb1b4ae 100644 --- a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/domain/AliInstance.java +++ b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/domain/AliInstance.java @@ -1,4 +1,4 @@ -package com.muyu.car.gateway.domain; +package com.muyu.cargateway.domain; import lombok.AllArgsConstructor; import lombok.Builder; diff --git a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/domain/AliServerConfig.java b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/domain/AliServerConfig.java similarity index 95% rename from cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/domain/AliServerConfig.java rename to cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/domain/AliServerConfig.java index a34b3eb..b6d545a 100644 --- a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/domain/AliServerConfig.java +++ b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/domain/AliServerConfig.java @@ -1,4 +1,4 @@ -package com.muyu.car.gateway.domain; +package com.muyu.cargateway.domain; import lombok.AllArgsConstructor; import lombok.Data; diff --git a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/domain/ConnectWeight.java b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/domain/ConnectWeight.java similarity index 92% rename from cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/domain/ConnectWeight.java rename to cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/domain/ConnectWeight.java index c8a7389..efd0076 100644 --- a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/domain/ConnectWeight.java +++ b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/domain/ConnectWeight.java @@ -1,4 +1,4 @@ -package com.muyu.car.gateway.domain; +package com.muyu.cargateway.domain; import lombok.AllArgsConstructor; import lombok.Data; diff --git a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/domain/HttpStatus.java b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/domain/HttpStatus.java similarity index 97% rename from cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/domain/HttpStatus.java rename to cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/domain/HttpStatus.java index ef5db8d..8665adb 100644 --- a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/domain/HttpStatus.java +++ b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/domain/HttpStatus.java @@ -1,4 +1,4 @@ -package com.muyu.car.gateway.domain; +package com.muyu.cargateway.domain; /** * 返回状态码 diff --git a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/domain/ServerConfig.java b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/domain/ServerConfig.java similarity index 96% rename from cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/domain/ServerConfig.java rename to cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/domain/ServerConfig.java index 38b34de..6628de0 100644 --- a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/domain/ServerConfig.java +++ b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/domain/ServerConfig.java @@ -1,4 +1,4 @@ -package com.muyu.car.gateway.domain; +package com.muyu.cargateway.domain; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; diff --git a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/domain/VehicleConnection.java b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/domain/VehicleConnection.java similarity index 94% rename from cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/domain/VehicleConnection.java rename to cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/domain/VehicleConnection.java index 6030dd8..819d48e 100644 --- a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/domain/VehicleConnection.java +++ b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/domain/VehicleConnection.java @@ -1,4 +1,4 @@ -package com.muyu.car.gateway.domain; +package com.muyu.cargateway.domain; import lombok.AllArgsConstructor; import lombok.Data; diff --git a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/domain/VinIp.java b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/domain/VinIp.java similarity index 82% rename from cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/domain/VinIp.java rename to cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/domain/VinIp.java index e2ad14d..b6787f9 100644 --- a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/domain/VinIp.java +++ b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/domain/VinIp.java @@ -1,4 +1,4 @@ -package com.muyu.car.gateway.domain; +package com.muyu.cargateway.domain; import lombok.AllArgsConstructor; import lombok.Data; @@ -19,9 +19,9 @@ public class VinIp { /** * 车辆的vin */ - String vin; + String vehicleVin; /** * 车辆的ip */ - String ip; + String ipAddress; } diff --git a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/domain/model/MqttServerModel.java b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/domain/model/MqttServerModel.java similarity index 91% rename from cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/domain/model/MqttServerModel.java rename to cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/domain/model/MqttServerModel.java index c76292d..2f29353 100644 --- a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/domain/model/MqttServerModel.java +++ b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/domain/model/MqttServerModel.java @@ -1,4 +1,4 @@ -package com.muyu.car.gateway.domain.model; +package com.muyu.cargateway.domain.model; import lombok.AllArgsConstructor; import lombok.Builder; @@ -26,6 +26,4 @@ public class MqttServerModel { * MQTT订阅主题 */ private String topic; - - } diff --git a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/domain/model/TaskModel.java b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/domain/model/TaskModel.java new file mode 100644 index 0000000..f4ea58c --- /dev/null +++ b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/domain/model/TaskModel.java @@ -0,0 +1,87 @@ +package com.muyu.cargateway.domain.model; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.extern.log4j.Log4j2; + +import java.util.concurrent.CountDownLatch; +import java.util.concurrent.LinkedBlockingDeque; +import java.util.concurrent.atomic.AtomicBoolean; +import java.util.concurrent.atomic.AtomicInteger; + +/** + * @ Tool:IntelliJ IDEA + * @ Author:CHX + * @ Date:2024-09-26-20:23 + * @ Version:1.0 + * @ Description:任务执行模型 + * @author Lenovo + */ +@Data +@Log4j2 +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class TaskModel { + /** + * 任务状态 默认为false状态 + * true为执行中,false为未执行 + */ + private final AtomicBoolean status =new AtomicBoolean(Boolean.FALSE); + /** + * 堵塞计数器 + */ + private CountDownLatch countDownLatch; + /** + * 任务执行堵塞队列 + */ + private LinkedBlockingDeque carQueue =new LinkedBlockingDeque<>(); + /** + * 任务是否执行 + * true 执行中 + * false 未执行 + * @return 是否有任务执行 + */ + private boolean isExecution(){ + return !status.get(); + } + /** + * 任务名称 + */ + private String taskName; + /** + * 任务执行次数 + */ + private Integer taskExecutionCount=0; + /** + * 任务开始时间 + */ + private Long taskStartTime; + /** + * 任务成功执行次数 + */ + private AtomicInteger taskSuccessSum=new AtomicInteger(); + /** + * 任务执行失败次数 + */ + private AtomicInteger taskErrorSum=new AtomicInteger(); + + /** + * 判断是否有任务 + * @return true 有任务 + */ + public boolean hashNext(){ + return !carQueue.isEmpty(); + } + + /** + * 获取下一个任务节点 + * @return 任务VIN + */ + public String next(){ + return carQueue.poll(); + } + +} diff --git a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/domain/properties/MqttProperties.java b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/domain/properties/MqttProperties.java similarity index 93% rename from cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/domain/properties/MqttProperties.java rename to cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/domain/properties/MqttProperties.java index 7af69a7..f848275 100644 --- a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/domain/properties/MqttProperties.java +++ b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/domain/properties/MqttProperties.java @@ -1,4 +1,4 @@ -package com.muyu.car.gateway.domain.properties; +package com.muyu.cargateway.domain.properties; import lombok.AllArgsConstructor; import lombok.Builder; diff --git a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/domain/req/VehicleConnectionReq.java b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/domain/req/VehicleConnectionReq.java similarity index 93% rename from cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/domain/req/VehicleConnectionReq.java rename to cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/domain/req/VehicleConnectionReq.java index 842fa2d..3101fac 100644 --- a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/domain/req/VehicleConnectionReq.java +++ b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/domain/req/VehicleConnectionReq.java @@ -1,4 +1,4 @@ -package com.muyu.car.gateway.domain.req; +package com.muyu.cargateway.domain.req; import lombok.AllArgsConstructor; import lombok.Builder; diff --git a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/domain/resp/AliServerConfig.java b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/domain/resp/AliServerConfig.java similarity index 94% rename from cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/domain/resp/AliServerConfig.java rename to cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/domain/resp/AliServerConfig.java index 51a70fb..ded0cc8 100644 --- a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/domain/resp/AliServerConfig.java +++ b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/domain/resp/AliServerConfig.java @@ -1,4 +1,4 @@ -package com.muyu.car.gateway.domain.resp; +package com.muyu.cargateway.domain.resp; import lombok.AllArgsConstructor; import lombok.Data; diff --git a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/Aliyun/instance/DeleteSample.java b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/instance/DeleteSample.java similarity index 89% rename from cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/Aliyun/instance/DeleteSample.java rename to cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/instance/DeleteSample.java index eb1f35b..d7cd031 100644 --- a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/Aliyun/instance/DeleteSample.java +++ b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/instance/DeleteSample.java @@ -1,6 +1,6 @@ -package com.muyu.car.gateway.Aliyun.instance; +package com.muyu.cargateway.instance; -import com.muyu.car.gateway.Aliyun.service.AliYunEcsService; +import com.muyu.cargateway.Aliyun.service.AliYunEcsService; import lombok.extern.log4j.Log4j2; import org.springframework.beans.factory.DisposableBean; import org.springframework.beans.factory.annotation.Autowired; diff --git a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/Aliyun/instance/Sample.java b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/instance/Sample.java similarity index 72% rename from cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/Aliyun/instance/Sample.java rename to cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/instance/Sample.java index 9e796ac..ecf2176 100644 --- a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/Aliyun/instance/Sample.java +++ b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/instance/Sample.java @@ -1,8 +1,9 @@ -package com.muyu.car.gateway.Aliyun.instance; +package com.muyu.cargateway.instance; -import com.muyu.car.gateway.Aliyun.service.AliYunEcsService; -import com.muyu.car.gateway.config.AliProperties; -import com.muyu.car.gateway.domain.AliInstance; +import com.muyu.cargateway.Aliyun.service.AliYunEcsService; +import com.muyu.cargateway.config.AliProperties; +import com.muyu.cargateway.domain.AliInstance; +import com.muyu.common.redis.service.RedisService; import lombok.extern.log4j.Log4j2; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.ApplicationArguments; @@ -27,6 +28,8 @@ public class Sample implements ApplicationRunner{ private AliYunEcsService aliYunEcsService; @Autowired private AliProperties aliProperties; + @Autowired + private RedisService redisService; @Override public void run(ApplicationArguments args) throws Exception { @@ -39,14 +42,17 @@ public class Sample implements ApplicationRunner{ throw new RuntimeException(e); } log.info("创建实例成功"); -// redisService.setCacheList("instanceIds", list); + redisService.setCacheList("instanceIds", list); try { - Thread.sleep(9000); + Thread.sleep(6000); } catch (InterruptedException e) { throw new RuntimeException(e); } List aliInstances = aliYunEcsService.selectInstance(list); - log.info("================查询实例信息成功:{}",aliInstances); + log.info("查询实例信息成功:{}",aliInstances); + // 将查询到的实例信息列表存储到Redis中 + redisService.setCacheList("instanceList", aliInstances); + log.info("redis存储成功:{}", aliInstances); } // @Override diff --git a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/mapper/CarOneClickOperationMapper.java b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/mapper/CarOneClickOperationMapper.java similarity index 71% rename from cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/mapper/CarOneClickOperationMapper.java rename to cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/mapper/CarOneClickOperationMapper.java index 66e0ca3..3fc31fa 100644 --- a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/mapper/CarOneClickOperationMapper.java +++ b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/mapper/CarOneClickOperationMapper.java @@ -1,6 +1,6 @@ -package com.muyu.car.gateway.mapper; +package com.muyu.cargateway.mapper; -import com.muyu.car.gateway.domain.VehicleConnection; +import com.muyu.cargateway.domain.VehicleConnection; import org.apache.ibatis.annotations.Mapper; import java.util.List; @@ -18,9 +18,4 @@ public interface CarOneClickOperationMapper { void addConnect(VehicleConnection vehicleConnection); List selectByVehicleVin(String vehicleVin); - - - List getMqttServerModel(String vehicleVin); - - } diff --git a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/service/CarOneClickOperationService.java b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/service/CarOneClickOperationService.java similarity index 53% rename from cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/service/CarOneClickOperationService.java rename to cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/service/CarOneClickOperationService.java index 3f20de1..71c639f 100644 --- a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/car/gateway/service/CarOneClickOperationService.java +++ b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/service/CarOneClickOperationService.java @@ -1,8 +1,7 @@ -package com.muyu.car.gateway.service; +package com.muyu.cargateway.service; -import com.muyu.car.gateway.domain.model.MqttServerModel; -import com.muyu.car.gateway.domain.req.VehicleConnectionReq; -import com.muyu.common.core.domain.Result; +import com.muyu.cargateway.domain.model.MqttServerModel; +import com.muyu.cargateway.domain.req.VehicleConnectionReq; /** * @ Tool:IntelliJ IDEA @@ -19,5 +18,5 @@ public interface CarOneClickOperationService { * @param vehicleConnectionReq 车辆连接请求参数 * @return */ - Result getConnect(VehicleConnectionReq vehicleConnectionReq); + MqttServerModel getConnect(VehicleConnectionReq vehicleConnectionReq); } diff --git a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/service/Impl/CarOneClickOperationServiceImpl.java b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/service/Impl/CarOneClickOperationServiceImpl.java new file mode 100644 index 0000000..f4fd72c --- /dev/null +++ b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/service/Impl/CarOneClickOperationServiceImpl.java @@ -0,0 +1,79 @@ +package com.muyu.cargateway.service.Impl; + +import com.muyu.cargateway.config.RabbitmqConfig; +import com.muyu.cargateway.domain.VehicleConnection; +import com.muyu.cargateway.domain.VinIp; +import com.muyu.cargateway.domain.model.MqttServerModel; +import com.muyu.cargateway.domain.req.VehicleConnectionReq; +import com.muyu.cargateway.mapper.CarOneClickOperationMapper; +import com.muyu.cargateway.service.CarOneClickOperationService; +import com.muyu.common.redis.service.RedisService; +import lombok.extern.log4j.Log4j2; +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * @ Tool:IntelliJ IDEA + * @ Author:CHX + * @ Date:2024-09-26-20:16 + * @ Version:1.0 + * @ Description:车辆一键操作业务实现层 + * @author Lenovo + */ +@Log4j2 +@Service +public class CarOneClickOperationServiceImpl implements CarOneClickOperationService { + + @Autowired + private CarOneClickOperationMapper carOneClickOperationMapper; + + @Autowired + private RabbitTemplate rabbitTemplate; + @Autowired + private RedisService redisService; + + /** + * 获取连接信息 + * @param vehicleConnectionReq 车辆连接请求参数 + * @return + */ + @Override + public MqttServerModel getConnect(VehicleConnectionReq vehicleConnectionReq) { + log.info("车辆连接请求:{}",vehicleConnectionReq.toString()); + + // 使用交换机发送消息 + rabbitTemplate.convertAndSend(RabbitmqConfig.EXCHANGE_TOPICS_INFORM,RabbitmqConfig.ROUTINGKEY_EMAIL,vehicleConnectionReq.getVehicleVin()); + log.info("发送消息成功:{}",vehicleConnectionReq.getVehicleVin()); + + + VehicleConnection vehicleConnection = new VehicleConnection(); + //车辆vin + vehicleConnection.setVehicleVin(vehicleConnectionReq.getVehicleVin()); + //用户名 + vehicleConnection.setUsername(vehicleConnectionReq.getUsername()); + //密码(vin+时间戳+随机数) + vehicleConnection.setPassword(vehicleConnectionReq.getVehicleVin()+vehicleConnectionReq.getTimestamp()+vehicleConnectionReq.getNonce()); + //查询车辆vin集合 + List vehicleConnections =carOneClickOperationMapper.selectByVehicleVin(vehicleConnectionReq.getVehicleVin()); + if(vehicleConnections.isEmpty()){ + //添加 + carOneClickOperationMapper.addConnect(vehicleConnection); + } + log.info("该车辆已存在,不能重复预上线"); + //TODO 返回连接信息 做轮询操作 + + + return new MqttServerModel("tcp://"+"106.15.136.7"+":1883","vehicle"); + + } + /** + * 添加车辆绑定IP地址存入redis中 + */ + public void addIpAddress(VinIp vinIp){ + redisService.setCacheObject("vehicle_ip_address:"+vinIp.getVehicleVin(),vinIp.getIpAddress()); + } + +} diff --git a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/utils/ECSTool.java b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/utils/ECSTool.java new file mode 100644 index 0000000..f83fa50 --- /dev/null +++ b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/utils/ECSTool.java @@ -0,0 +1,135 @@ +package com.muyu.cargateway.utils; + +import com.aliyun.ecs20140526.Client; +import com.aliyun.ecs20140526.models.DeleteInstanceRequest; +import com.aliyun.ecs20140526.models.DescribeInstancesRequest; +import com.aliyun.ecs20140526.models.DescribeInstancesResponse; +import com.aliyun.ecs20140526.models.RunInstancesRequest; +import com.aliyun.tea.TeaException; +import com.aliyun.teaopenapi.models.Config; +import com.aliyun.teautil.Common; +import com.aliyun.teautil.models.RuntimeOptions; +import lombok.extern.log4j.Log4j2; + +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; + +/** + * @ Tool:IntelliJ IDEA + * @ Author:CHX + * @ Date:2024-10-02-16:04 + * @ Version:1.0 + * @ Description:ecs实例工具类 + * @author Lenovo + */ +@Log4j2 +public class ECSTool { + + public static final String ACCESS_KEY_ID = "LTAI5tDH3FyRx4PRr6anx2TL"; + public static final String ACCESS_KEY_SECRET = "xdQnX2tDattY50raNkUWmHzE2tondP"; + + public static Client createClient() throws Exception { + // 工程代码泄露可能会导致 AccessKey 泄露,并威胁账号下所有资源的安全性。以下代码示例仅供参考。 + Config config = new Config() + // 必填,请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_ID。 + .setAccessKeyId(ACCESS_KEY_ID) + // 必填,请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_SECRET。 + .setAccessKeySecret(ACCESS_KEY_SECRET); + // Endpoint 请参考 https://api.aliyun.com/product/Ecs + config.endpoint = "ecs-cn-hangzhou.aliyuncs.com"; + return new Client(config); + } + public static void runEcsInstance(String regionId, String launchTemplateId) throws Exception { + Client client = ECSTool.createClient(); + RunInstancesRequest request = new RunInstancesRequest(); + request.setRegionId(regionId) + .setLaunchTemplateId(launchTemplateId); + RuntimeOptions runtimeOptions = new RuntimeOptions(); + try{ + client.runInstancesWithOptions(request, runtimeOptions); + }catch (Exception error){ + // 处理API调用过程中出现的异常 + System.out.println(error.getMessage()); + if (error instanceof TeaException) { + // 处理特定类型的异常,如TeaException + TeaException teaError = (TeaException) error; + // 打印诊断推荐链接 + System.out.println(teaError.getData().get("Recommend")); + // 断言错误信息 + Common.assertAsString(teaError.getMessage()); + } else { + // 处理其他类型的异常 + System.out.println(error.getMessage()); + } + } + } + + /** + *销毁实例 + */ + public static void runEcsRemove(String instanceId) throws Exception { + Client client = ECSTool.createClient(); + DeleteInstanceRequest deleteInstancesRequest = new DeleteInstanceRequest(); + deleteInstancesRequest.setInstanceId(instanceId); + RuntimeOptions runtimeOptions = new RuntimeOptions(); + + try { + // 复制代码运行请自行打印 API 的返回值 + client.deleteInstanceWithOptions(deleteInstancesRequest, runtimeOptions); + } catch (TeaException error) { + // 此处仅做打印展示,请谨慎对待异常处理,在工程项目中切勿直接忽略异常。 + // 错误 message + System.out.println(error.getMessage()); + // 诊断地址 + System.out.println(error.getData().get("Recommend")); + Common.assertAsString(error.message); + } catch (Exception _error) { + TeaException error = new TeaException(_error.getMessage(), _error); + // 此处仅做打印展示,请谨慎对待异常处理,在工程项目中切勿直接忽略异常。 + // 错误 message + System.out.println(error.getMessage()); + // 诊断地址 + System.out.println(error.getData().get("Recommend")); + Common.assertAsString(error.message); + } + } + + /** + * 查询实例列表 + * @param regionId 地域ID + */ + public static List findInstance(String regionId) throws Exception { + Client client = ECSTool.createClient(); + DescribeInstancesRequest describeInstancesRequest = new DescribeInstancesRequest(); + describeInstancesRequest.setRegionId(regionId); + RuntimeOptions runtimeOptions = new RuntimeOptions(); + List stringArrayList = new ArrayList<>(); + try { + DescribeInstancesResponse response = client.describeInstancesWithOptions(describeInstancesRequest, runtimeOptions); + List> ipListList = response.getBody().instances.getInstance().stream().map(instance -> instance.publicIpAddress.ipAddress).collect(Collectors.toList()); + for (List strings : ipListList) { + for (String ip : strings) { + stringArrayList.add(ip); + } + return stringArrayList; + } + } catch (TeaException error) { + // 此处仅做打印展示,请谨慎对待异常处理,在工程项目中切勿直接忽略异常。 + // 错误 message + System.out.println(error.getMessage()); + // 诊断地址 + System.out.println(error.getData().get("Recommend")); + Common.assertAsString(error.message); + } catch (Exception _error) { + TeaException error = new TeaException(_error.getMessage(), _error); + // 此处仅做打印展示,请谨慎对待异常处理,在工程项目中切勿直接忽略异常。 + // 错误 message + System.out.println(error.getMessage()); + // 诊断地址 + System.out.println(error.getData().get("Recommend")); + Common.assertAsString(error.message); + } + return null; + } +} diff --git a/cloud-modules/cloud-modules-car-gateway/src/main/resources/bootstrap.yml b/cloud-modules/cloud-modules-car-gateway/src/main/resources/bootstrap.yml index c11a18d..f9ee15c 100644 --- a/cloud-modules/cloud-modules-car-gateway/src/main/resources/bootstrap.yml +++ b/cloud-modules/cloud-modules-car-gateway/src/main/resources/bootstrap.yml @@ -7,7 +7,7 @@ nacos: addr: 47.116.173.119:8848 user-name: nacos password: nacos - namespace: one + namespace: one-saas # SPRING_AMQP_DESERIALIZATION_TRUST_ALL=true spring.amqp.deserialization.trust.all # Spring spring: @@ -82,4 +82,4 @@ aliyun: instance-type: ecs.t6-c1m1.large security-group-id: sg-uf642d5u4ja5gsiitx8y switch-id: vsw-uf66lifrkhxqc94xi06v3 - amount: 2 + amount: 1 diff --git a/cloud-modules/cloud-modules-car-gateway/src/main/resources/mapper/CarOneClickOperationMapper.xml b/cloud-modules/cloud-modules-car-gateway/src/main/resources/mapper/CarOneClickOperationMapper.xml index b40427b..814cfa2 100644 --- a/cloud-modules/cloud-modules-car-gateway/src/main/resources/mapper/CarOneClickOperationMapper.xml +++ b/cloud-modules/cloud-modules-car-gateway/src/main/resources/mapper/CarOneClickOperationMapper.xml @@ -2,7 +2,7 @@ - + @@ -14,14 +14,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - diff --git a/cloud-modules/cloud-modules-car/pom.xml b/cloud-modules/cloud-modules-car/pom.xml deleted file mode 100644 index c7daf6d..0000000 --- a/cloud-modules/cloud-modules-car/pom.xml +++ /dev/null @@ -1,95 +0,0 @@ - - - 4.0.0 - - com.muyu - cloud-modules - 3.6.3 - - - cloud-modules-car - - - 17 - 17 - UTF-8 - - - - - - - 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-core - - - - com.muyu - cloud-common-api-doc - - - - - - - ${project.artifactId} - - - org.springframework.boot - spring-boot-maven-plugin - - - - repackage - - - - - - - - - diff --git a/cloud-modules/cloud-modules-car/src/main/java/com/muyu/carrail/CloudCarRailApplication.java b/cloud-modules/cloud-modules-car/src/main/java/com/muyu/carrail/CloudCarRailApplication.java deleted file mode 100644 index 98d9546..0000000 --- a/cloud-modules/cloud-modules-car/src/main/java/com/muyu/carrail/CloudCarRailApplication.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.muyu.carrail; - -import com.muyu.common.security.annotation.EnableCustomConfig; -import com.muyu.common.security.annotation.EnableMyFeignClients; -import org.mybatis.spring.annotation.MapperScan; -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; - -@EnableCustomConfig -@EnableMyFeignClients -@MapperScan("com.muyu.carrail.mapper") -@SpringBootApplication -public class CloudCarRailApplication { - public static void main(String[] args) { -// try { -// -// } catch (Exception e) { -// e.printStackTrace(); -// } - SpringApplication.run(CloudCarRailApplication.class, args); - } -} diff --git a/cloud-modules/cloud-modules-car/src/main/resources/bootstrap.yml b/cloud-modules/cloud-modules-car/src/main/resources/bootstrap.yml deleted file mode 100644 index c5229d5..0000000 --- a/cloud-modules/cloud-modules-car/src/main/resources/bootstrap.yml +++ /dev/null @@ -1,58 +0,0 @@ -# Tomcat -server: - port: 10011 - -# nacos线上地址 -nacos: - addr: 47.116.173.119:8848 - user-name: nacos - password: nacos - namespace: public -# SPRING_AMQP_DESERIALIZATION_TRUST_ALL=true spring.amqp.deserialization.trust.all -# Spring -spring: - amqp: - deserialization: - trust: - all: true - main: - allow-bean-definition-overriding: true - application: - # 应用名称 - name: cloud-car - profiles: - # 环境配置 - active: dev - cloud: - nacos: - discovery: - # 服务注册地址 - server-addr: ${nacos.addr} - # nacos用户名 - username: ${nacos.user-name} - # nacos密码 - password: ${nacos.password} - # 命名空间 - namespace: ${nacos.namespace} - config: - # 服务注册地址 - server-addr: ${nacos.addr} - # nacos用户名 - username: ${nacos.user-name} - # nacos密码 - password: ${nacos.password} - # 命名空间 - namespace: ${nacos.namespace} - # 配置文件格式 - file-extension: yml - # 共享配置 - shared-configs: - # 系统共享配置 - - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} - # 系统环境Config共享配置 - - application-config-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} - -logging: - level: - com.muyu.carrail.mapper: DEBUG - diff --git a/cloud-modules/cloud-modules-carmanage/src/main/java/com/muyu/car/CloudCarApplication.java b/cloud-modules/cloud-modules-carmanage/src/main/java/com/muyu/car/CloudCarApplication.java deleted file mode 100644 index 662105f..0000000 --- a/cloud-modules/cloud-modules-carmanage/src/main/java/com/muyu/car/CloudCarApplication.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.muyu.car; - -import com.muyu.common.security.annotation.EnableCustomConfig; -import com.muyu.common.security.annotation.EnableMyFeignClients; -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; - -/** - * 系统模块 - * - * @author muyu - */ -@EnableCustomConfig -//@EnableCustomSwagger2 -@EnableMyFeignClients -@SpringBootApplication -public class CloudCarApplication { - public static void main (String[] args) { - SpringApplication.run(CloudCarApplication.class, args); - } -} diff --git a/cloud-modules/cloud-modules-carmanage/src/main/java/com/muyu/car/redis/RedisInitialize.java b/cloud-modules/cloud-modules-carmanage/src/main/java/com/muyu/car/redis/RedisInitialize.java deleted file mode 100644 index d0798fd..0000000 --- a/cloud-modules/cloud-modules-carmanage/src/main/java/com/muyu/car/redis/RedisInitialize.java +++ /dev/null @@ -1,157 +0,0 @@ -package com.muyu.car.redis; - -import com.alibaba.fastjson2.JSON; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; - -import com.muyu.car.constant.RedisConstant; -import com.muyu.car.domain.VehicleMessage; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.data.redis.core.RedisTemplate; -import org.springframework.stereotype.Component; - -import javax.annotation.PostConstruct; -import java.util.Arrays; -import java.util.List; - -@Component -public class RedisInitialize { - - - @Autowired - private RedisTemplateredisTemplate; - - @PostConstruct - public void a() { - - new Thread(()->{ - try { - Thread.sleep(1000); - }catch (Exception exception){ - throw new RuntimeException(exception); - } - }); - VehicleMessage message1 = new VehicleMessage(); - message1.setStartTime(System.currentTimeMillis()); - message1.setSpeed("50"); - message1.setLongitude("126.397428"); - message1.setLatitude("37.90923"); - message1.setTotalMileage("1010"); - message1.setTotalVoltage("22.5"); - message1.setAcceleratorPedalTravelValue("1.5"); - message1.setBrakePedalTravelValue("1.2"); - message1.setSpecificFuelConsumption("1.8"); - message1.setMotorControllerTemperature("59"); - message1.setMotorSpeed("850"); - message1.setMotorTorque("110"); - message1.setMotorTemperature("53"); - message1.setMotorVoltage("12.5"); - message1.setMotorCurrent("1.1"); - message1.setPowerBatteryRemainingSOC("88"); - message1.setMaximumPower("999"); - message1.setMaximumDischargePower("950"); - message1.setDcdc("2"); - message1.setChg("2"); - message1.setBMSSelfCheckCounter("2"); - message1.setElectricCurrent("2.3"); - message1.setTotalVoltageV3("13.1"); - message1.setSingleMaximumVoltage("14.1"); - message1.setMinimumVoltageOfABattery("12.2"); - message1.setMaximumBatteryTemperature("85"); - message1.setMinimumBatteryTemperature("51"); - message1.setPowerBatteryAvailableCapacity("560"); - message1.setCombinedCurrent("1.1"); - message1.setRunningState("2"); - message1.setWorkStatus("2"); - message1.setDriveMotorCondition("1"); - message1.setVehicleStatus("1"); - message1.setChargingState("1"); - message1.setHeatingState("1"); - message1.setCarVin("1HGCM826X3A004352"); - - redisTemplate.opsForValue().set(RedisConstant.VEHICLE_ENTERPRISE + message1.getCarVin(), JSON.toJSONString(message1)); - } - - @PostConstruct - public void initialize() { - - -// -// new Thread(() -> { -// try { -// Thread.sleep(500); -// } catch (InterruptedException e) { -// throw new RuntimeException(e); -// } -// List vehicleMessageMiddleList = vehicleMessageMiddleService.list(); -// vehicleMessageMiddleList.forEach(vehicleMessageMiddle -> { -// List messageDetailList = messageDetailService.list(new LambdaQueryWrapper<>() {{ -// in(MessageDetail::getId, Arrays.asList(vehicleMessageMiddle.getMessageIds().split(","))); -// }}); -// String jsonString = JSON.toJSONString(messageDetailList); -// redisTemplate.opsForHash().put(RedisConstant.MESSAGE_DETAIL, vehicleMessageMiddle.getCarVin(), jsonString); -// }); -// }); - -// MessageDetail messageDetail = new MessageDetail(); -// messageDetail.setKeyCode("1"); -// messageDetail.setLabel("测试"); -// messageDetail.setStartBit(0); -// messageDetail.setStopBit(8); -// messageDetail.setType("1"); - -// List list = vehicleMessageMiddleService.list(); -// list.forEach(vehicleMessageMiddle -> { -// List messageDetailList = messageDetailService.list(new LambdaQueryWrapper<>() {{ -// in(MessageDetail::getId, Arrays.asList(vehicleMessageMiddle.getMessageIds().split(","))); -// }); -// String jsonString = JSON.toJSONString(messageDetailList); -// redisTemplate.opsForHash().put(RedisConstant.VEHICLE_ENTERPRISE, message1.getCarVin(), String.valueOf(jsonString)); - - new Thread(()->{ - try { - Thread.sleep(500); - }catch (Exception exception){ - throw new RuntimeException(exception); - } - }); - VehicleMessage message1 = new VehicleMessage(); - message1.setStartTime(System.currentTimeMillis()); - message1.setSpeed("50"); - message1.setLongitude("116.397428"); - message1.setLatitude("39.90923"); - message1.setTotalMileage("1000"); - message1.setTotalVoltage("12.5"); - message1.setAcceleratorPedalTravelValue("0.5"); - message1.setBrakePedalTravelValue("0.2"); - message1.setSpecificFuelConsumption("0.8"); - message1.setMotorControllerTemperature("60"); - message1.setMotorSpeed("800"); - message1.setMotorTorque("100"); - message1.setMotorTemperature("70"); - message1.setMotorVoltage("12.6"); - message1.setMotorCurrent("1.2"); - message1.setPowerBatteryRemainingSOC("80"); - message1.setMaximumPower("1000"); - message1.setMaximumDischargePower("900"); - message1.setDcdc("1"); - message1.setChg("1"); - message1.setBMSSelfCheckCounter("1"); - message1.setElectricCurrent("2.5"); - message1.setTotalVoltageV3("13.5"); - message1.setSingleMaximumVoltage("14.5"); - message1.setMinimumVoltageOfABattery("12.0"); - message1.setMaximumBatteryTemperature("80"); - message1.setMinimumBatteryTemperature("50"); - message1.setPowerBatteryAvailableCapacity("800"); - message1.setCombinedCurrent("1.5"); - message1.setRunningState("1"); - message1.setWorkStatus("1"); - message1.setDriveMotorCondition("1"); - message1.setVehicleStatus("1"); - message1.setChargingState("1"); - message1.setHeatingState("1"); - message1.setCarVin("1HGCM826X3A004352"); - - redisTemplate.opsForValue().set(RedisConstant.VEHICLE_ENTERPRISE + message1.getCarVin(), JSON.toJSONString(message1)); - } -} diff --git a/cloud-modules/cloud-modules-carmanage/src/main/java/com/muyu/car/util/SSLUtils.java b/cloud-modules/cloud-modules-carmanage/src/main/java/com/muyu/car/util/SSLUtils.java deleted file mode 100644 index 794b2d9..0000000 --- a/cloud-modules/cloud-modules-carmanage/src/main/java/com/muyu/car/util/SSLUtils.java +++ /dev/null @@ -1,75 +0,0 @@ -package com.muyu.car.util; - -import org.bouncycastle.jce.provider.BouncyCastleProvider; -import org.bouncycastle.openssl.PEMKeyPair; -import org.bouncycastle.openssl.PEMParser; -import org.bouncycastle.openssl.jcajce.JcaPEMKeyConverter; - -import javax.net.ssl.KeyManagerFactory; -import javax.net.ssl.SSLContext; -import javax.net.ssl.SSLSocketFactory; -import javax.net.ssl.TrustManagerFactory; -import java.io.BufferedInputStream; -import java.io.FileInputStream; -import java.io.FileReader; -import java.security.KeyPair; -import java.security.KeyStore; -import java.security.Security; -import java.security.cert.CertificateFactory; -import java.security.cert.X509Certificate; - -public class SSLUtils { - public static SSLSocketFactory getSocketFactory(final String caCrtFile, - final String crtFile, final String keyFile, final String password) - throws Exception { - Security.addProvider(new BouncyCastleProvider()); - - // load CA certificate - X509Certificate caCert = null; - - FileInputStream fis = new FileInputStream(caCrtFile); - BufferedInputStream bis = new BufferedInputStream(fis); - CertificateFactory cf = CertificateFactory.getInstance("X.509"); - - while (bis.available() > 0) { - caCert = (X509Certificate) cf.generateCertificate(bis); - } - - // load client certificate - bis = new BufferedInputStream(new FileInputStream(crtFile)); - X509Certificate cert = null; - while (bis.available() > 0) { - cert = (X509Certificate) cf.generateCertificate(bis); - } - - // load client private key - PEMParser pemParser = new PEMParser(new FileReader(keyFile)); - Object object = pemParser.readObject(); - JcaPEMKeyConverter converter = new JcaPEMKeyConverter().setProvider("BC"); - KeyPair key = converter.getKeyPair((PEMKeyPair) object); - pemParser.close(); - - // CA certificate is used to authenticate server - KeyStore caKs = KeyStore.getInstance(KeyStore.getDefaultType()); - caKs.load(null, null); - caKs.setCertificateEntry("ca-certificate", caCert); - TrustManagerFactory tmf = TrustManagerFactory.getInstance("X509"); - tmf.init(caKs); - - // client key and certificates are sent to server so it can authenticate - KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType()); - ks.load(null, null); - ks.setCertificateEntry("certificate", cert); - ks.setKeyEntry("private-key", key.getPrivate(), password.toCharArray(), - new java.security.cert.Certificate[]{cert}); - KeyManagerFactory kmf = KeyManagerFactory.getInstance(KeyManagerFactory - .getDefaultAlgorithm()); - kmf.init(ks, password.toCharArray()); - - // finally, create SSL socket factory - SSLContext context = SSLContext.getInstance("TLSv1.2"); - context.init(kmf.getKeyManagers(), tmf.getTrustManagers(), null); - - return context.getSocketFactory(); - } -} diff --git a/cloud-modules/cloud-modules-carmanage/pom.xml b/cloud-modules/cloud-modules-data-processing/pom.xml similarity index 84% rename from cloud-modules/cloud-modules-carmanage/pom.xml rename to cloud-modules/cloud-modules-data-processing/pom.xml index 21532f7..572d4d5 100644 --- a/cloud-modules/cloud-modules-carmanage/pom.xml +++ b/cloud-modules/cloud-modules-data-processing/pom.xml @@ -9,16 +9,42 @@ 3.6.3 - cloud-modules-carmanage + cloud-modules-data-processing + + + cloud-data-processing 数据处理模块 + 17 17 UTF-8 - + + com.muyu + cloud-common-kafka + 3.6.3 + + + + com.muyu + cloud-common-caffeine + 3.6.3 + + + + com.muyu + cloud-common-rabbit + + + + com.muyu + cloud-common-iotdb + 3.6.3 + + com.alibaba.cloud @@ -43,51 +69,26 @@ spring-boot-starter-actuator + + org.springframework.boot + spring-boot-starter-tomcat + + 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-xxl - - - - com.muyu - cloud-common-rabbit - - - - org.bouncycastle - bcpkix-jdk15on - 1.70 + cloud-common-datasource diff --git a/cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/CloudVehicleEventApplication.java b/cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/CloudVehicleEventApplication.java new file mode 100644 index 0000000..751ae62 --- /dev/null +++ b/cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/CloudVehicleEventApplication.java @@ -0,0 +1,30 @@ +package com.muyu.data.processing; + +import com.muyu.common.security.annotation.EnableCustomConfig; +import com.muyu.common.security.annotation.EnableMyFeignClients; +import org.springframework.amqp.rabbit.annotation.EnableRabbit; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.context.annotation.ComponentScan; + +/** + * 数据处理模块启动器 + * @Author: 胡杨 + * @Name: MyData + * @Description: 数据处理模块启动器 + * @CreatedDate: 2024/9/26 下午7:31 + * @FilePath: com.muyu.data.processing + */ +@EnableRabbit +@EnableCustomConfig +@EnableMyFeignClients +@ComponentScan(basePackages = {"com.muyu"}) +@SpringBootApplication +public class CloudVehicleEventApplication { + public static void main(String[] args) { + SpringApplication.run(CloudVehicleEventApplication.class, args); + + System.out.println("MyData 模块启动成功!"); + } + +} diff --git a/cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/config/RabbitmqConfig.java b/cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/config/RabbitmqConfig.java new file mode 100644 index 0000000..49c39a0 --- /dev/null +++ b/cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/config/RabbitmqConfig.java @@ -0,0 +1,100 @@ +package com.muyu.data.processing.config; + +import lombok.extern.log4j.Log4j2; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.amqp.core.*; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +/** + * @author Lenovo + * @ Tool:IntelliJ IDEA + * @ Author:CHX + * @ Date:2024-10-04-15:13 + * @ Version:1.0 + * @ Description:rabbitmq配置类 + */ +@Log4j2 +@Configuration +public class RabbitmqConfig { + // 日志 + private static final Logger logger = LoggerFactory.getLogger(RabbitmqConfig.class); + + /** + * 队列 + */ + public static final String QUEUE_INFORM_EMAIL = "queue_inform_email"; + /** + * 队列 + */ + public static final String QUEUE_INFORM_SMS = "queue_inform_sms"; + /** + * 交换机 + */ + public static final String EXCHANGE_TOPICS_INFORM = "exchange_topics_inform"; + /** + * 路由key + */ + public static final String ROUTINGKEY_EMAIL = "inform.#.email.#"; + /** + * 路由key + */ + public static final String ROUTINGKEY_SMS = "inform.#.sms.#"; + + /** + * 声明交换机,做持久化 + */ + @Bean(EXCHANGE_TOPICS_INFORM) + public Exchange exchangeTopicsInform() { + try { + Exchange exchange = ExchangeBuilder.topicExchange(EXCHANGE_TOPICS_INFORM).durable(true).build(); + log.info("创建的交换机为: {}", EXCHANGE_TOPICS_INFORM); + return exchange; + } catch (Exception e) { + log.error("创建该: {} 交换机失败", EXCHANGE_TOPICS_INFORM, e); + throw e; + } + } + + // 声明QUEUE_INFORM_EMAIL队列 + @Bean(QUEUE_INFORM_EMAIL) + public Queue queueInformEmail() { + try { + Queue queue = new Queue(QUEUE_INFORM_EMAIL); + log.info("创建的队列为: {}", QUEUE_INFORM_EMAIL); + return queue; + } catch (Exception e) { + log.error("创建该: {} 队列失败", QUEUE_INFORM_EMAIL, e); + throw e; + } + } + + // 声明QUEUE_INFORM_SMS队列 + @Bean(QUEUE_INFORM_SMS) + public Queue queueInformSms() { + try { + Queue queue = new Queue(QUEUE_INFORM_SMS); + log.info("创建的队列为: {}", QUEUE_INFORM_SMS); + return queue; + } catch (Exception e) { + log.error("创建该: {} 队列失败", QUEUE_INFORM_SMS, e); + throw e; + } + } + + //ROUTINGKEY_EMAIL队列绑定交换机,指定routingKey + @Bean + public Binding bindingQueueInformEmail(@Qualifier(QUEUE_INFORM_EMAIL) Queue queue, + @Qualifier(EXCHANGE_TOPICS_INFORM) Exchange exchange) { + return BindingBuilder.bind(queue).to(exchange).with(ROUTINGKEY_EMAIL).noargs(); + } + + //ROUTINGKEY_SMS队列绑定交换机,指定routingKey + @Bean + public Binding bindingRoutingKeySms(@Qualifier(QUEUE_INFORM_SMS) Queue queue, + @Qualifier(EXCHANGE_TOPICS_INFORM) Exchange exchange) { + return BindingBuilder.bind(queue).to(exchange).with(ROUTINGKEY_SMS).noargs(); + } +} diff --git a/cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/controller/DataProcessingController.java b/cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/controller/DataProcessingController.java new file mode 100644 index 0000000..b6e8c13 --- /dev/null +++ b/cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/controller/DataProcessingController.java @@ -0,0 +1,37 @@ +package com.muyu.data.processing.controller; + +import com.muyu.data.processing.config.RabbitmqConfig; +import com.muyu.data.processing.service.DataProcessingService; + +import javax.annotation.Resource; + +import org.springframework.amqp.core.Message; +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.web.bind.annotation.*; +import lombok.extern.slf4j.Slf4j; + +/** + * 数据处理控制层 + * + * @Author: 胡杨 + * @Name: DataProcessing + * @Description: 数据处理控制层 + * @CreatedDate: 2024/9/28 下午3:53 + * @FilePath: com.muyu.data.processing.controller + */ + +@Slf4j +@RestController +@RequestMapping("/DataProcessing") +public class DataProcessingController { + @Resource + private DataProcessingService service; + @Resource + private RabbitTemplate rabbitTemplate; + + @GetMapping("/goOnline") + public void goOnline(@RequestParam("vin") String vin) { + rabbitTemplate.convertAndSend(RabbitmqConfig.EXCHANGE_TOPICS_INFORM, "inform.email", vin); + log.info("发送消息成功:{}",vin); + } +} diff --git a/cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/domain/BasicData.java b/cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/domain/BasicData.java new file mode 100644 index 0000000..b4cae78 --- /dev/null +++ b/cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/domain/BasicData.java @@ -0,0 +1,30 @@ +package com.muyu.data.processing.domain; + +import lombok.*; + +import java.io.Serializable; + +/** + * 报文信息 时序实体类 + * + * @Author: 胡杨 + * @Name: DataProcessing + * @Description: 报文信息 时序实体类 + * @CreatedDate: 2024/9/28 下午3:48 + * @FilePath: com.muyu.data.processing.domain + */ + +@Data +@ToString +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class BasicData implements Serializable { + + private String key; + private String label; + private String value; + private String type; + +} + diff --git a/cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/domain/CarData.java b/cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/domain/CarData.java new file mode 100644 index 0000000..c2fdfb9 --- /dev/null +++ b/cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/domain/CarData.java @@ -0,0 +1,25 @@ +package com.muyu.data.processing.domain; + +import lombok.*; + +/** + * 车辆信息 + * + * @Author: 胡杨 + * @Name: CarData + * @Description: 车辆信息 + * @CreatedDate: 2024/10/2 下午2:34 + * @FilePath: com.muyu.data.processing.domain + */ + +@Data +@Builder +@ToString +@NoArgsConstructor +@AllArgsConstructor +public class CarData { + private String vin; + private long timestamp; + private String latitude; + private String longitude; +} diff --git a/cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/domain/IotDbData.java b/cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/domain/IotDbData.java new file mode 100644 index 0000000..7353356 --- /dev/null +++ b/cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/domain/IotDbData.java @@ -0,0 +1,35 @@ +package com.muyu.data.processing.domain; + +import com.muyu.common.core.web.domain.BaseEntity; +import lombok.*; +import lombok.experimental.SuperBuilder; + +import java.util.Date; + +/** + * 报文信息 时序实体类 + * + * @Author: 胡杨 + * @Name: DataProcessing + * @Description: 报文信息 时序实体类 + * @CreatedDate: 2024/9/28 下午3:48 + * @FilePath: com.muyu.data.processing.domain + */ + +@EqualsAndHashCode(callSuper = true) +@Data +@ToString +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +public class IotDbData extends BaseEntity { + private long timestamp; + + private String vin; + + private String latitude; + private String longitude; + + +} + diff --git a/cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/domain/Temporary2.java b/cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/domain/Temporary2.java new file mode 100644 index 0000000..81a7534 --- /dev/null +++ b/cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/domain/Temporary2.java @@ -0,0 +1,22 @@ +package com.muyu.data.processing.domain; + +import lombok.*; + +/** + * 临时类2 + * + * @Author: 胡杨 + * @Name: Temporary2 + * @Description: 临时类2 + * @CreatedDate: 2024/9/30 下午7:27 + * @FilePath: com.muyu.data.processing.domain + */ + +@Data +@ToString +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class Temporary2 { + private String test; +} diff --git a/cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/kafka/KafkaConsumerService.java b/cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/kafka/KafkaConsumerService.java new file mode 100644 index 0000000..ff1eaf5 --- /dev/null +++ b/cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/kafka/KafkaConsumerService.java @@ -0,0 +1,74 @@ +package com.muyu.data.processing.kafka; + + +import cn.hutool.core.thread.ThreadUtil; +import cn.hutool.json.JSONUtil; +import com.alibaba.nacos.shaded.com.google.common.collect.Lists; +import com.muyu.common.kafka.constants.KafkaConstants; +import com.muyu.data.processing.domain.BasicData; +import com.muyu.data.processing.service.DataProcessingService; +import com.muyu.data.processing.strategy.core.StartStrategy; +import jakarta.annotation.Resource; +import lombok.extern.slf4j.Slf4j; +import org.apache.kafka.clients.consumer.ConsumerRecord; +import org.apache.kafka.clients.consumer.ConsumerRecords; +import org.apache.kafka.clients.consumer.KafkaConsumer; +import org.springframework.beans.factory.InitializingBean; +import org.springframework.stereotype.Component; + +import java.time.Duration; +import java.util.Collection; +import java.util.HashMap; +import java.util.List; + +/** + * kafka消费者 + * @Author: 胡杨 + * @Name: KafkaConsumerService + * @Description: kafka消费者 + * @CreatedDate: 2024/9/27 上午9:27 + * @FilePath: com.muyu.data.processing.kafka + */ + +@Slf4j +@Component +public class KafkaConsumerService implements InitializingBean { + @Resource + private KafkaConsumer kafkaConsumer; + @Resource + private StartStrategy startStrategy; + + @Override + public void afterPropertiesSet() { + new Thread(() -> { + log.info("启动线程监听Topic: {}", KafkaConstants.KafkaTopic); + Collection topics = Lists.newArrayList(KafkaConstants.KafkaTopic); + kafkaConsumer.subscribe(topics); + while (true) { + try { + ThreadUtil.sleep(1000); + System.out.println("开始消费数据,等待中..."); + ConsumerRecords consumerRecords = kafkaConsumer.poll(Duration.ofMillis(1000)); + for (ConsumerRecord consumerRecord : consumerRecords) { + //1.从ConsumerRecord中获取消费数据 + String originalMsg = (String) consumerRecord.value(); + log.info("从Kafka中消费的原始数据: " + originalMsg); + //2.把消费数据转换为DTO对象 + List dataList = JSONUtil.toList(originalMsg, BasicData.class); + log.info("从Kafka中消费的实体数据: " + dataList); + // 执行策略 + startStrategy.applyStrategy(getDataMap(dataList)); + } + }catch (Exception e) { + log.error("kafka执行异常:" + e.getMessage()); + } + } + }).start(); + } + + private HashMap getDataMap(List dataList) { + HashMap basicDataHashMap = new HashMap<>(); + dataList.forEach(data -> basicDataHashMap.put(data.getKey(), data)); + return basicDataHashMap; + } +} diff --git a/cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/mapper/DataProcessingMapper.java b/cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/mapper/DataProcessingMapper.java new file mode 100644 index 0000000..eaea598 --- /dev/null +++ b/cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/mapper/DataProcessingMapper.java @@ -0,0 +1,26 @@ +package com.muyu.data.processing.mapper; + +import com.muyu.data.processing.domain.CarData; +import com.muyu.data.processing.domain.IotDbData; +import com.muyu.data.processing.domain.BasicData; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Repository; + +import java.util.List; + +/** + * 数据处理持久层 + * + * @Author: 胡杨 + * @Name: DataPeocessingMapper + * @Description: 数据处理持久层 + * @CreatedDate: 2024/9/28 下午3:47 + * @FilePath: com.muyu.data.processing.mapper + */ + +@Repository +@Mapper +public interface DataProcessingMapper{ + +} diff --git a/cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/rebbit/DownlineRabbitConsumer.java b/cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/rebbit/DownlineRabbitConsumer.java new file mode 100644 index 0000000..14bac30 --- /dev/null +++ b/cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/rebbit/DownlineRabbitConsumer.java @@ -0,0 +1,72 @@ +package com.muyu.data.processing.rebbit;//package com.muyu.data.processing.rebbit; +// +// +//import com.muyu.common.rabbit.constants.RabbitConstants; +//import com.rabbitmq.client.Channel; +//import jakarta.annotation.Resource; +//import lombok.Setter; +//import lombok.extern.slf4j.Slf4j; +//import org.apache.commons.lang3.ObjectUtils; +//import org.springframework.amqp.core.Message; +//import org.springframework.amqp.rabbit.annotation.Queue; +//import org.springframework.amqp.rabbit.annotation.RabbitListener; +//import org.springframework.cache.Cache; +//import org.springframework.cache.CacheManager; +//import org.springframework.data.redis.core.RedisTemplate; +//import org.springframework.stereotype.Component; +// +//import java.io.IOException; +// +///** +// * 下线事件监听 +// * @Author: 胡杨 +// * @Name: DownlineRabbitConsumer +// * @Description: 车辆下线监听器 +// * @CreatedDate: 2024/9/26 下午8:21 +// * @FilePath: com.muyu.data.processing.rebbit +// */ +//@Slf4j +//@Component +//@Setter +//public class DownlineRabbitConsumer { +// @Resource +// private RedisTemplate redisTemplate; +// @Resource +// private CacheManager cacheManager; +// +// @RabbitListener(queuesToDeclare = {@Queue(RabbitConstants.DOWNLINE_QUEUE)}) +// public void downline(String vin, Message message, Channel channel) { +// log.info("车辆 {} 下线, 配置信息准备中。。。",vin); +// try { +// // 重复性校验 +// Long add = redisTemplate.opsForSet().add(RabbitConstants.DOWNLINE_QUEUE, message.getMessageProperties().getMessageId()); +// if (add>0) { +// deleteCarCache(vin); +// log.info("车辆 {} 下线, 消息已确认。。。",vin); +// } else { +// log.info("车辆 {} 下线, 消息重复消费,已确认。。。",vin); +// } +// channel.basicAck(message.getMessageProperties().getDeliveryTag(), false); +// log.info("车辆 {} 下线, 配置信息已准备完毕。。。",vin); +// } catch (IOException e) { +// try { +// log.warn("车辆 {} 下线, 配置信息准备失败,返回队列,原因:{}", vin, e.getMessage()); +// channel.basicAck(message.getMessageProperties().getDeliveryTag(), true); +// } catch (IOException ex) { +// log.warn("车辆 {} 下线, 消息返回队列失败,原因:{}", vin, ex.getMessage()); +// } +// } +// } +// +// +// /** +// * 车辆下线 - 删除缓存 +// */ +// public void deleteCarCache(String vin) { +// Cache cache = cacheManager.getCache(vin); +// if (ObjectUtils.isNotEmpty(cache)){ +// cache.invalidate(); +// } +// log.info("车辆编码:{},本地缓存删除完成...", vin); +// } +//} diff --git a/cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/rebbit/GoOnlineRabbitConsumer.java b/cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/rebbit/GoOnlineRabbitConsumer.java new file mode 100644 index 0000000..f709139 --- /dev/null +++ b/cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/rebbit/GoOnlineRabbitConsumer.java @@ -0,0 +1,72 @@ +package com.muyu.data.processing.rebbit; + + +import com.muyu.common.caffeine.enums.CacheNameEnums; +import com.muyu.common.rabbit.constants.RabbitConstants; +import com.muyu.data.processing.config.RabbitmqConfig; +import com.rabbitmq.client.Channel; +import jakarta.annotation.Resource; +import lombok.Setter; +import lombok.extern.slf4j.Slf4j; +import org.springframework.amqp.core.Message; +import org.springframework.amqp.rabbit.annotation.Queue; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.cache.CacheManager; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.stereotype.Component; + +import java.io.IOException; + +/** + * 上线事件监听 + * @Author: 胡杨 + * @Name: GoOnlineRabbitConsumer + * @Description: 上线事件 + * @CreatedDate: 2024/9/26 下午7:38 + * @FilePath: com.muyu.data.processing.rebbit + */ +@Slf4j +@Component +public class GoOnlineRabbitConsumer { + @Resource + private RedisTemplate redisTemplate; + @Resource + private CacheManager cacheManager; + + @RabbitListener(queues = {RabbitmqConfig.QUEUE_INFORM_EMAIL}) + public void goOnline(String vin, Message message, Channel channel){ + log.info("车辆 {} 上线, 配置信息准备中。。。",vin); + try { + // 重复性校验 + Long add = redisTemplate.opsForSet().add(RabbitConstants.GO_ONLINE_QUEUE, message.getMessageProperties().getMessageId()); + if (add>0) { + addCarCache(vin); + log.info("车辆 {} 上线, 消息已确认。。。",vin); + } else { + log.info("车辆 {} 上线, 消息重复消费,已确认。。。",vin); + } + channel.basicAck(message.getMessageProperties().getDeliveryTag(), false); + log.info("车辆 {} 上线, 配置信息已准备完毕。。。",vin); + } catch (IOException e) { + try { + log.warn("车辆 {} 上线, 配置信息准备失败,返回队列,原因:{}", vin, e.getMessage()); + channel.basicAck(message.getMessageProperties().getDeliveryTag(), true); + } catch (IOException ex) { + log.warn("车辆 {} 上线, 消息返回队列失败,原因:{}", vin, ex.getMessage()); + } + } + } + + /** + * 车辆上线 - 新增缓存 + */ + public void addCarCache(String vin) { + // 从Redis中获取缓存信息 + for (String name : CacheNameEnums.getCodes()) { + String value = redisTemplate.opsForValue().get(name+":"+vin); + cacheManager.getCache(name).put(vin, value); + log.info("存储缓存, 缓存分区:[{}], 车辆编码:[{}], 存储值:[{}]", name, vin, value); + } + log.info("车辆编码:{},本地缓存完成...",vin); + } +} diff --git a/cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/service/DataProcessingService.java b/cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/service/DataProcessingService.java new file mode 100644 index 0000000..03cf4a0 --- /dev/null +++ b/cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/service/DataProcessingService.java @@ -0,0 +1,22 @@ +package com.muyu.data.processing.service; + + +import com.muyu.data.processing.domain.BasicData; +import com.muyu.data.processing.domain.CarData; + +import java.util.HashMap; +import java.util.List; + +/** + * 数据处理业务层 + * + * @Author: 胡杨 + * @Name: DataProcessing + * @Description: 数据处理业务层 + * @CreatedDate: 2024/9/28 下午3:52 + * @FilePath: com.muyu.data.processing.server + */ + +public interface DataProcessingService{ + +} diff --git a/cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/service/impl/DataProcessingServiceImpl.java b/cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/service/impl/DataProcessingServiceImpl.java new file mode 100644 index 0000000..67abfcb --- /dev/null +++ b/cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/service/impl/DataProcessingServiceImpl.java @@ -0,0 +1,37 @@ +package com.muyu.data.processing.service.impl; + + +import javax.annotation.Resource; + +import org.apache.iotdb.session.pool.SessionPool; +import org.springframework.cache.Cache; +import org.springframework.cache.CacheManager; +import org.springframework.stereotype.Service; +import lombok.extern.slf4j.Slf4j; +import com.muyu.data.processing.mapper.DataProcessingMapper; +import com.muyu.data.processing.service.DataProcessingService; + +/** + * 数据处理实现层 + * + * @Author: 胡杨 + * @Name: DataProcessing + * @Description: 数据处理实现层 + * @CreatedDate: 2024/9/28 下午3:52 + * @FilePath: com.muyu.data.processing.server.impl + */ + +@Slf4j +@Service +public class DataProcessingServiceImpl implements DataProcessingService { + @Resource + private DataProcessingMapper mapper; + @Resource + private SessionPool sessionPool; + @Resource + private CacheManager cacheManager; + + + + +} diff --git a/cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/strategy/StrategyHandler.java b/cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/strategy/StrategyHandler.java new file mode 100644 index 0000000..ee5f3b7 --- /dev/null +++ b/cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/strategy/StrategyHandler.java @@ -0,0 +1,24 @@ +package com.muyu.data.processing.strategy; + +import com.muyu.data.processing.strategy.core.EndStrategy; + +/** + * 策略控制者接口 + * @Author: 胡杨 + * @Name: StrategyHandler + * @Description: 策略控制者接口 + * @CreatedDate: 2024/9/28 上午9:35 + * @FilePath: com.muyu.data.processing.strategy + */ +public interface StrategyHandler { + + @SuppressWarnings("rawtypes") + StrategyHandler DEFAULT = param -> new EndStrategy(); + + /** + * 执行方法 + * @param t 入参 + * @return 返回结果 + */ + R apply(T t); +} diff --git a/cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/strategy/abstractStrategyRouter.java b/cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/strategy/abstractStrategyRouter.java new file mode 100644 index 0000000..0ce53d5 --- /dev/null +++ b/cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/strategy/abstractStrategyRouter.java @@ -0,0 +1,65 @@ +package com.muyu.data.processing.strategy; + +import com.github.yulichang.toolkit.SpringContentUtils; +import com.muyu.data.processing.utils.CacheUtils; +import jakarta.annotation.PostConstruct; +import lombok.extern.slf4j.Slf4j; +import org.springframework.cache.CacheManager; +import org.springframework.stereotype.Component; + +import java.util.Objects; +/** + * 抽象策略路由 + * @Author: 胡杨 + * @Name: abstractStrategyRouter + * @Description: 抽象策略路由 + * @CreatedDate: 2024/9/28 上午9:26 + * @FilePath: com.muyu.data.processing.strategy + */ +@Slf4j +@Component +public abstract class abstractStrategyRouter { + + protected static CacheUtils cacheUtils = new CacheUtils(); + + /** + * 策略映射器, 指定入参与出参以决定策略处理者 + * @param 策略入参 + * @param 策略出参 + */ + public interface StrategyMapper{ + // 通过入参获取对应策略处理方法,使用Map实现 + StrategyHandler getHandler(T param); + } + + /** + * 选择下级策略 + * @return + */ + protected abstract StrategyMapper registerStrategy(); + + /** + * 默认策略处理者 + */ + @SuppressWarnings("unchecked") + private StrategyHandler defaultStrategyHandler = StrategyHandler.DEFAULT; + + + /** + * 选择策略处理者 + * @param param 入参 + * @return 策略处理结果 + */ + public R applyStrategy(T param) { + StrategyMapper trStrategyMapper = registerStrategy(); + if (trStrategyMapper == null) { + return defaultStrategyHandler.apply(param); + } + final StrategyHandler strategyHandler = trStrategyMapper.getHandler(param); + if (strategyHandler != null) { + return strategyHandler.apply(param); + } + // 使用默认策略处理者 + return defaultStrategyHandler.apply(param); + } +} diff --git a/cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/strategy/branch/DataStorageProcessStrategy.java b/cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/strategy/branch/DataStorageProcessStrategy.java new file mode 100644 index 0000000..47112da --- /dev/null +++ b/cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/strategy/branch/DataStorageProcessStrategy.java @@ -0,0 +1,63 @@ +package com.muyu.data.processing.strategy.branch; + +import com.muyu.data.processing.domain.BasicData; +import java.util.HashMap; +import java.util.List; + +import com.muyu.data.processing.domain.Temporary2; +import com.muyu.data.processing.strategy.StrategyHandler; +import com.muyu.data.processing.strategy.abstractStrategyRouter; +import com.muyu.data.processing.strategy.core.EndStrategy; +import com.muyu.data.processing.strategy.leaves.DataStorageStrategy; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +/** + * 持久化数据处理 + * 数据持久化之前的数据调整 + * @Author: 胡杨 + * @Name: BasicStrategy + * @Description: 责任树 - 数据持久化数据处理 + * @CreatedDate: 2024/9/30 下午7:24 + * @FilePath: com.muyu.data.processing.strategy.branch + */ + +@Slf4j +@Component +public class DataStorageProcessStrategy extends abstractStrategyRouter, Temporary2> + implements StrategyHandler, Temporary2> { + // 必要参数 + private final static HashMap NECESSARY_PARAM = new HashMap<>(); + static { + NECESSARY_PARAM.put("VIN","VIN码"); + NECESSARY_PARAM.put("timestamp","时间戳"); + NECESSARY_PARAM.put("longitude","经度"); + NECESSARY_PARAM.put("latitude","纬度"); + } + + @Override + protected StrategyMapper, Temporary2> registerStrategy() { + return param-> { + // 判断是否存在问题 + if (param.containsKey("DataStorageProcessStrategy")) { + log.error("持久化流程错误,缺少必要参数: {}", param.get("DataStorageProcessStrategy").getKey()); + param.remove("DataStorageProcessStrategy"); + return new EndStrategy(); + } + log.info("持久化数据处理节点已通过。。。"); + return new DataStorageStrategy(); + }; + } + + @Override + public Temporary2 apply(HashMap basicDataMap) { + log.info("持久化数据处理节点开始处理。。。"); + // 判断是否缺少必要参数,如果有,记录 + NECESSARY_PARAM.keySet().forEach(key->{ + if (!basicDataMap.containsKey(key)) { + basicDataMap.put("DataStorageProcessStrategy", BasicData.builder().key(NECESSARY_PARAM.get(key)).build()); + } + }); + return applyStrategy(basicDataMap); + } +} diff --git a/cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/strategy/branch/FaultJudgmentStrategy.java b/cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/strategy/branch/FaultJudgmentStrategy.java new file mode 100644 index 0000000..5fb20a0 --- /dev/null +++ b/cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/strategy/branch/FaultJudgmentStrategy.java @@ -0,0 +1,38 @@ +package com.muyu.data.processing.strategy.branch; + +import com.muyu.data.processing.domain.BasicData; +import java.util.HashMap; +import java.util.List; +import com.muyu.data.processing.domain.Temporary2; +import com.muyu.data.processing.strategy.StrategyHandler; +import com.muyu.data.processing.strategy.abstractStrategyRouter; +import com.muyu.data.processing.strategy.leaves.DataStorageStrategy; +import com.muyu.data.processing.strategy.leaves.FaultAlarmStrategy; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +/** + * 故障数据判断 + * 判断是否故障 + * @Author: 胡杨 + * @Name: BasicStrategy + * @Description: 责任树 - 故障数据判断 + * @CreatedDate: 2024/9/30 下午7:24 + * @FilePath: com.muyu.data.processing.strategy.branch + */ + +@Slf4j +@Component +public class FaultJudgmentStrategy extends abstractStrategyRouter, Temporary2> + implements StrategyHandler, Temporary2> { + @Override + protected StrategyMapper, Temporary2> registerStrategy() { + log.info("故障判断节点已通过。。。"); + return param-> new FaultAlarmStrategy(); + } + + @Override + public Temporary2 apply(HashMap basicDataMap) { + return applyStrategy(basicDataMap); + } +} diff --git a/cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/strategy/branch/FaultProcessingStrategy.java b/cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/strategy/branch/FaultProcessingStrategy.java new file mode 100644 index 0000000..66f8dce --- /dev/null +++ b/cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/strategy/branch/FaultProcessingStrategy.java @@ -0,0 +1,37 @@ +package com.muyu.data.processing.strategy.branch; + +import com.muyu.data.processing.domain.BasicData; +import java.util.HashMap; +import java.util.List; +import com.muyu.data.processing.domain.Temporary2; +import com.muyu.data.processing.strategy.StrategyHandler; +import com.muyu.data.processing.strategy.abstractStrategyRouter; +import com.muyu.data.processing.strategy.leaves.DataStorageStrategy; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +/** + * 故障数据处理 + * 调整故障判断规则 + * @Author: 胡杨 + * @Name: FaultProcessingStrategy + * @Description: 故障参数处理 + * @CreatedDate: 2024/9/30 下午7:47 + * @FilePath: com.muyu.data.processing.strategy.branch + */ + +@Slf4j +@Component +public class FaultProcessingStrategy extends abstractStrategyRouter, Temporary2> + implements StrategyHandler, Temporary2> { + @Override + protected StrategyMapper, Temporary2> registerStrategy() { + log.info("故障数据处理节点已通过。。。"); + return param-> new FaultJudgmentStrategy(); + } + + @Override + public Temporary2 apply(HashMap basicDataMap) { + return applyStrategy(basicDataMap); + } +} diff --git a/cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/strategy/branch/FenceJudgmentStrategy.java b/cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/strategy/branch/FenceJudgmentStrategy.java new file mode 100644 index 0000000..a58f0ca --- /dev/null +++ b/cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/strategy/branch/FenceJudgmentStrategy.java @@ -0,0 +1,38 @@ +package com.muyu.data.processing.strategy.branch; + +import com.muyu.data.processing.domain.BasicData; +import java.util.HashMap; +import java.util.List; +import com.muyu.data.processing.domain.Temporary2; +import com.muyu.data.processing.strategy.StrategyHandler; +import com.muyu.data.processing.strategy.abstractStrategyRouter; +import com.muyu.data.processing.strategy.leaves.FaultAlarmStrategy; +import com.muyu.data.processing.strategy.leaves.FenceAlarmStrategy; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +/** + * 围栏数据判断 + * 判断是否围栏违规 + * @Author: 胡杨 + * @Name: BasicStrategy + * @Description: 责任树 - 围栏数据判断 + * @CreatedDate: 2024/9/30 下午7:24 + * @FilePath: com.muyu.data.processing.strategy.branch + */ + +@Slf4j +@Component +public class FenceJudgmentStrategy extends abstractStrategyRouter, Temporary2> + implements StrategyHandler, Temporary2> { + @Override + protected StrategyMapper, Temporary2> registerStrategy() { + log.info("围栏数据判断节点通过。。。"); + return param-> new FenceAlarmStrategy(); + } + + @Override + public Temporary2 apply(HashMap basicDataMap) { + return applyStrategy(basicDataMap); + } +} diff --git a/cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/strategy/branch/FenceProcessingStrategy.java b/cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/strategy/branch/FenceProcessingStrategy.java new file mode 100644 index 0000000..678ed6c --- /dev/null +++ b/cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/strategy/branch/FenceProcessingStrategy.java @@ -0,0 +1,36 @@ +package com.muyu.data.processing.strategy.branch; + +import com.muyu.data.processing.domain.BasicData; +import java.util.HashMap; +import java.util.List; +import com.muyu.data.processing.domain.Temporary2; +import com.muyu.data.processing.strategy.StrategyHandler; +import com.muyu.data.processing.strategy.abstractStrategyRouter; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +/** + * 围栏数据处理 + * 调整围栏判断规则 + * @Author: 胡杨 + * @Name: FaultProcessingStrategy + * @Description: 围栏参数处理 + * @CreatedDate: 2024/9/30 下午7:47 + * @FilePath: com.muyu.data.processing.strategy.branch + */ + +@Slf4j +@Component +public class FenceProcessingStrategy extends abstractStrategyRouter, Temporary2> + implements StrategyHandler, Temporary2> { + @Override + protected StrategyMapper, Temporary2> registerStrategy() { + log.info("围栏数据处理节点已通过。。。"); + return param-> new FenceJudgmentStrategy(); + } + + @Override + public Temporary2 apply(HashMap basicDataMap) { + return applyStrategy(basicDataMap); + } +} diff --git a/cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/strategy/branch/RealTimeJudgmentStrategy.java b/cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/strategy/branch/RealTimeJudgmentStrategy.java new file mode 100644 index 0000000..34c025e --- /dev/null +++ b/cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/strategy/branch/RealTimeJudgmentStrategy.java @@ -0,0 +1,38 @@ +package com.muyu.data.processing.strategy.branch; + +import com.muyu.data.processing.domain.BasicData; +import java.util.HashMap; +import java.util.List; +import com.muyu.data.processing.domain.Temporary2; +import com.muyu.data.processing.strategy.StrategyHandler; +import com.muyu.data.processing.strategy.abstractStrategyRouter; +import com.muyu.data.processing.strategy.leaves.RealTimeAlarmStrategy; +import com.muyu.data.processing.strategy.leaves.WarningAlarmStrategy; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +/** + * 实时数据判断 + * 判断实时数据情况 + * @Author: 胡杨 + * @Name: BasicStrategy + * @Description: 责任树 - 实时数据判断 + * @CreatedDate: 2024/9/30 下午7:24 + * @FilePath: com.muyu.data.processing.strategy.branch + */ + +@Slf4j +@Component +public class RealTimeJudgmentStrategy extends abstractStrategyRouter, Temporary2> + implements StrategyHandler, Temporary2> { + @Override + protected StrategyMapper, Temporary2> registerStrategy() { + log.info("实时数据判断节点已通过。。。"); + return param-> new RealTimeAlarmStrategy(); + } + + @Override + public Temporary2 apply(HashMap basicDataMap) { + return applyStrategy(basicDataMap); + } +} diff --git a/cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/strategy/branch/RealTimeProcessingStrategy.java b/cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/strategy/branch/RealTimeProcessingStrategy.java new file mode 100644 index 0000000..72a0d28 --- /dev/null +++ b/cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/strategy/branch/RealTimeProcessingStrategy.java @@ -0,0 +1,36 @@ +package com.muyu.data.processing.strategy.branch; + +import com.muyu.data.processing.domain.BasicData; +import java.util.HashMap; +import java.util.List; +import com.muyu.data.processing.domain.Temporary2; +import com.muyu.data.processing.strategy.StrategyHandler; +import com.muyu.data.processing.strategy.abstractStrategyRouter; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +/** + * 实时数据处理 + * 调整实时数据 + * @Author: 胡杨 + * @Name: FaultProcessingStrategy + * @Description: 实时数据理 + * @CreatedDate: 2024/9/30 下午7:47 + * @FilePath: com.muyu.data.processing.strategy.branch + */ + +@Slf4j +@Component +public class RealTimeProcessingStrategy extends abstractStrategyRouter, Temporary2> + implements StrategyHandler, Temporary2> { + @Override + protected StrategyMapper, Temporary2> registerStrategy() { + log.info("实时数据处理节点已通过。。。"); + return param-> new RealTimeJudgmentStrategy(); + } + + @Override + public Temporary2 apply(HashMap basicDataMap) { + return applyStrategy(basicDataMap); + } +} diff --git a/cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/strategy/branch/WarningJudgmentStrategy.java b/cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/strategy/branch/WarningJudgmentStrategy.java new file mode 100644 index 0000000..0299628 --- /dev/null +++ b/cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/strategy/branch/WarningJudgmentStrategy.java @@ -0,0 +1,38 @@ +package com.muyu.data.processing.strategy.branch; + +import com.muyu.data.processing.domain.BasicData; +import java.util.HashMap; +import java.util.List; +import com.muyu.data.processing.domain.Temporary2; +import com.muyu.data.processing.strategy.StrategyHandler; +import com.muyu.data.processing.strategy.abstractStrategyRouter; +import com.muyu.data.processing.strategy.leaves.FenceAlarmStrategy; +import com.muyu.data.processing.strategy.leaves.WarningAlarmStrategy; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +/** + * 预警数据判断 + * 判断预警策略 + * @Author: 胡杨 + * @Name: BasicStrategy + * @Description: 责任树 - 预警数据判断 + * @CreatedDate: 2024/9/30 下午7:24 + * @FilePath: com.muyu.data.processing.strategy.branch + */ + +@Slf4j +@Component +public class WarningJudgmentStrategy extends abstractStrategyRouter, Temporary2> + implements StrategyHandler, Temporary2> { + @Override + protected StrategyMapper, Temporary2> registerStrategy() { + log.info("预警数据判断节点已通过。。。"); + return param-> new WarningAlarmStrategy(); + } + + @Override + public Temporary2 apply(HashMap basicDataMap) { + return applyStrategy(basicDataMap); + } +} diff --git a/cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/strategy/branch/WarningProcessingStrategy.java b/cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/strategy/branch/WarningProcessingStrategy.java new file mode 100644 index 0000000..9fbcde1 --- /dev/null +++ b/cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/strategy/branch/WarningProcessingStrategy.java @@ -0,0 +1,36 @@ +package com.muyu.data.processing.strategy.branch; + +import com.muyu.data.processing.domain.BasicData; +import java.util.HashMap; +import java.util.List; +import com.muyu.data.processing.domain.Temporary2; +import com.muyu.data.processing.strategy.StrategyHandler; +import com.muyu.data.processing.strategy.abstractStrategyRouter; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +/** + * 预警数据处理 + * 调整预警使用策略 + * @Author: 胡杨 + * @Name: FaultProcessingStrategy + * @Description: 预警数据处理 + * @CreatedDate: 2024/9/30 下午7:47 + * @FilePath: com.muyu.data.processing.strategy.branch + */ + +@Slf4j +@Component +public class WarningProcessingStrategy extends abstractStrategyRouter, Temporary2> + implements StrategyHandler, Temporary2> { + @Override + protected StrategyMapper, Temporary2> registerStrategy() { + log.info("预警数据处理节点已通过。。。"); + return param-> new WarningJudgmentStrategy(); + } + + @Override + public Temporary2 apply(HashMap basicDataMap) { + return applyStrategy(basicDataMap); + } +} diff --git a/cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/strategy/core/BasicStrategy.java b/cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/strategy/core/BasicStrategy.java new file mode 100644 index 0000000..14dc02e --- /dev/null +++ b/cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/strategy/core/BasicStrategy.java @@ -0,0 +1,53 @@ +package com.muyu.data.processing.strategy.core; + +import com.github.yulichang.toolkit.SpringContentUtils; +import com.muyu.common.caffeine.enums.CacheNameEnums; +import com.muyu.common.core.utils.StringUtils; +import com.muyu.data.processing.domain.BasicData; +import java.util.HashMap; + +import com.muyu.data.processing.domain.Temporary2; +import com.muyu.data.processing.service.impl.DataProcessingServiceImpl; +import com.muyu.data.processing.strategy.StrategyHandler; +import com.muyu.data.processing.strategy.abstractStrategyRouter; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.ObjectUtils; +import org.springframework.cache.CacheManager; +import org.springframework.stereotype.Component; + +/** + * 基础校验节点 + * 负责基础校验 + * @Author: 胡杨 + * @Name: BasicStrategy + * @Description: 责任树 - 基础校验节点 + * @CreatedDate: 2024/9/30 下午7:24 + * @FilePath: com.muyu.data.processing.strategy.branch + */ + +@Slf4j +@Component +public class BasicStrategy extends abstractStrategyRouter, Temporary2> + implements StrategyHandler, Temporary2> { + + @Override + protected StrategyMapper, Temporary2> registerStrategy() { + log.info("基础校验节点已通过。。。"); + return param -> new RoutingStrategy(); + } + + @Override + public Temporary2 apply(HashMap basicDataMap) { + log.info("开始执行基础校验节点。。。"); + basicDataMap.put(CacheNameEnums.STORAGE.getCode(), null); + CacheNameEnums.getCodes().forEach(code-> { + // 通过VIN码获取所有事件的缓存信息 + Object cacheValue = cacheUtils.getCacheValue(code, basicDataMap.get("VIN").getKey()); + // 如果缓存信息不为空,则说明车辆需要处理该事件 + if (ObjectUtils.isNotEmpty(cacheValue)){ + basicDataMap.put(code, null); + } + }); + return applyStrategy(basicDataMap); + } +} diff --git a/cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/strategy/core/EndStrategy.java b/cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/strategy/core/EndStrategy.java new file mode 100644 index 0000000..275e393 --- /dev/null +++ b/cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/strategy/core/EndStrategy.java @@ -0,0 +1,29 @@ +package com.muyu.data.processing.strategy.core; + +import com.muyu.data.processing.domain.BasicData; +import java.util.HashMap; +import java.util.List; +import com.muyu.data.processing.domain.Temporary2; +import com.muyu.data.processing.strategy.StrategyHandler; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +/** + * 结束节点 + * + * @Author: 胡杨 + * @Name: EndStrategy + * @Description: 策略树 - 结束节点 + * @CreatedDate: 2024/9/30 下午7:13 + * @FilePath: com.muyu.data.processing.strategy.leaves + */ + +@Slf4j +@Component +public class EndStrategy implements StrategyHandler, Temporary2> { + @Override + public Temporary2 apply(HashMap basicDataMap) { + log.info("车辆VIN: {},已通过结束节点。。。", basicDataMap.get("VIN").getValue()); + return null; + } +} diff --git a/cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/strategy/core/RoutingStrategy.java b/cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/strategy/core/RoutingStrategy.java new file mode 100644 index 0000000..0d9a4c5 --- /dev/null +++ b/cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/strategy/core/RoutingStrategy.java @@ -0,0 +1,58 @@ +package com.muyu.data.processing.strategy.core; + +import com.muyu.common.caffeine.enums.CacheNameEnums; +import com.muyu.data.processing.domain.BasicData; +import java.util.HashMap;import java.util.List; +import com.muyu.data.processing.domain.Temporary2; +import com.muyu.data.processing.strategy.StrategyHandler; +import com.muyu.data.processing.strategy.abstractStrategyRouter; +import com.muyu.data.processing.strategy.branch.*; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +/** + * 路由节点 + * 根据条件重新导向对应节点 + * @Author: 胡杨 + * @Name: RoutingStrategy + * @Description: 路由节点 + * @CreatedDate: 2024/9/30 下午7:37 + * @FilePath: com.muyu.data.processing.strategy.branch + */ + +@Slf4j +@Component +public class RoutingStrategy extends abstractStrategyRouter, Temporary2> + implements StrategyHandler, Temporary2> { + + private final static HashMap, Temporary2>> map = new HashMap<>(); + static{ + map.put(CacheNameEnums.WARMING.getCode(), new WarningProcessingStrategy()); + map.put(CacheNameEnums.REALTIME.getCode(), new RealTimeProcessingStrategy()); + map.put(CacheNameEnums.FENCE.getCode(), new FenceProcessingStrategy()); + map.put(CacheNameEnums.FAULT.getCode(), new FaultProcessingStrategy()); + map.put(CacheNameEnums.STORAGE.getCode(), new DataStorageProcessStrategy()); + } + + @Override + protected StrategyMapper, Temporary2> registerStrategy() { + log.info("路由节点已通过。。。"); + return param -> { + // 编写路由规则 + for (String code : map.keySet()) { + if(param.containsKey(code)){ + param.remove(code); + return map.get(code); + } + } + // 默认返回结束节点 + return new EndStrategy(); + }; + }; + + + @Override + public Temporary2 apply(HashMap stringListHashMap) { + return applyStrategy(stringListHashMap); + } +} diff --git a/cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/strategy/core/StartStrategy.java b/cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/strategy/core/StartStrategy.java new file mode 100644 index 0000000..033d137 --- /dev/null +++ b/cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/strategy/core/StartStrategy.java @@ -0,0 +1,50 @@ +package com.muyu.data.processing.strategy.core; + + + +import com.muyu.data.processing.domain.Temporary2; +import com.muyu.data.processing.strategy.abstractStrategyRouter; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; +import com.muyu.data.processing.domain.BasicData; +import java.util.HashMap; +import java.util.List; + +/** + * 开始节点 + * + * @Author: 胡杨 + * @Name: StartStrategy + * @Description: 策略路由实现 + * @CreatedDate: 2024/9/28 上午10:39 + * @FilePath: com.muyu.data.processing.strategy.impl + * 开始节点 + * ↓ + * 基础校验节点 + * ↓ + * 路由节点 ← ← ← ← ← ← + * ↙ ↙ ↓ ↘ ↘ + * 数据处理节点 预警处理节点 故障处理节点 围栏处理节点 实时数据数据处理节点 ↑ + * ↓ ↓ ↓ ↓ ↓ + * 数据持久化处理节点 预警处理节点 故障处理节点 围栏处理节点 实时数据数据处理节点 ↑ + * ↓ ↓ ↓ ↓ ↓ + * ↓ 预警通知节点 故障通知节点 围栏通知节点 实时数据处理节点 ↑ + * ↓ ↘ ↓ ↙ ↙ + * ↓ ↓ ↑ + * → → → 路由节点 → → → → → → + * ↓ + * 结束节点 + */ + +@Slf4j +@Component +public class StartStrategy extends abstractStrategyRouter, Temporary2> { + @Override + protected StrategyMapper, Temporary2> registerStrategy() { + return param -> { + log.info("车辆VIN :{},开始数据处理...", param.get("VIN").getValue()); + return new BasicStrategy(); + }; + } + +} diff --git a/cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/strategy/leaves/DataStorageStrategy.java b/cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/strategy/leaves/DataStorageStrategy.java new file mode 100644 index 0000000..5067fdf --- /dev/null +++ b/cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/strategy/leaves/DataStorageStrategy.java @@ -0,0 +1,81 @@ +package com.muyu.data.processing.strategy.leaves; + +import com.muyu.common.iotdb.config.IotDBSessionConfig; +import com.muyu.data.processing.domain.BasicData; +import java.util.HashMap; + +import com.muyu.data.processing.domain.Temporary2; +import com.muyu.data.processing.strategy.StrategyHandler; +import com.muyu.data.processing.strategy.abstractStrategyRouter; +import com.muyu.data.processing.strategy.core.RoutingStrategy; +import lombok.extern.slf4j.Slf4j; +import org.apache.iotdb.rpc.IoTDBConnectionException; +import org.apache.iotdb.rpc.StatementExecutionException; +import org.springframework.stereotype.Component; + +/** + * 数据持久化 + * 车辆数据进行持久化 + * @Author: 胡杨 + * @Name: BasicStrategy + * @Description: 责任树 - 数据持久化 + * @CreatedDate: 2024/9/30 下午7:24 + * @FilePath: com.muyu.data.processing.strategy.branch + */ + +@Slf4j +@Component +public class DataStorageStrategy extends abstractStrategyRouter, Temporary2> + implements StrategyHandler, Temporary2> { + + @Override + protected StrategyMapper, Temporary2> registerStrategy() { + log.info("数据持久化分支已完成。。。"); + return param -> new RoutingStrategy(); + } + + @Override + public Temporary2 apply(HashMap basicDataMap) { + // 执行持久化方法 + addCarData(basicDataMap); + return applyStrategy(basicDataMap); + } + + private void addCarData(HashMap hashMap) { + StringBuilder sql = new StringBuilder("insert into root.one."); + sql.append(hashMap.get("firmCode").getValue()) + .append(".") + .append(hashMap.get("VIN").getValue()) + .append("("); + hashMap.remove("firmCode"); + hashMap.remove("VIN"); + StringBuilder keys = new StringBuilder(); + StringBuilder values = new StringBuilder(); + hashMap.keySet().forEach(key -> { + if (hashMap.get(key) != null) { + keys.append(key).append(","); + if ("String".equals(hashMap.get(key).getType())) { + values.append("'") + .append(hashMap.get(key).getValue()) + .append("'") + .append(","); + }else { + values.append(hashMap.get(key).getValue()) + .append(","); + } + } + }); + sql.append(keys.substring(0, keys.length() - 1)) + .append(") values (") + .append(values.substring(0, values.length() - 1)) + .append(")"); + try { + new IotDBSessionConfig().getSessionPool().executeNonQueryStatement(sql.toString()); + } catch (StatementExecutionException e) { + throw new RuntimeException(e); + } catch (IoTDBConnectionException e) { + throw new RuntimeException(e); + } + log.info("成功执行sql语句: [{}]", sql); + } +} diff --git a/cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/strategy/leaves/FaultAlarmStrategy.java b/cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/strategy/leaves/FaultAlarmStrategy.java new file mode 100644 index 0000000..7c60593 --- /dev/null +++ b/cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/strategy/leaves/FaultAlarmStrategy.java @@ -0,0 +1,37 @@ +package com.muyu.data.processing.strategy.leaves; + +import com.muyu.data.processing.domain.BasicData; +import java.util.HashMap; + +import com.muyu.data.processing.domain.Temporary2; +import com.muyu.data.processing.strategy.StrategyHandler; +import com.muyu.data.processing.strategy.abstractStrategyRouter; +import com.muyu.data.processing.strategy.core.RoutingStrategy; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +/** + * 故障报警 + * 故障数据记录并报警 + * @Author: 胡杨 + * @Name: BasicStrategy + * @Description: 责任树 - 故障报警 + * @CreatedDate: 2024/9/30 下午7:24 + * @FilePath: com.muyu.data.processing.strategy.branch + */ + +@Slf4j +@Component +public class FaultAlarmStrategy extends abstractStrategyRouter, Temporary2> + implements StrategyHandler, Temporary2> { + @Override + protected StrategyMapper, Temporary2> registerStrategy() { + log.info("故障报警分支已完成。。。"); + return param -> new RoutingStrategy(); + } + + @Override + public Temporary2 apply(HashMap basicDataMap) { + return applyStrategy(basicDataMap); + } +} diff --git a/cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/strategy/leaves/FenceAlarmStrategy.java b/cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/strategy/leaves/FenceAlarmStrategy.java new file mode 100644 index 0000000..adb5390 --- /dev/null +++ b/cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/strategy/leaves/FenceAlarmStrategy.java @@ -0,0 +1,37 @@ +package com.muyu.data.processing.strategy.leaves; + +import com.muyu.data.processing.domain.BasicData; +import java.util.HashMap; + +import com.muyu.data.processing.domain.Temporary2; +import com.muyu.data.processing.strategy.StrategyHandler; +import com.muyu.data.processing.strategy.abstractStrategyRouter; +import com.muyu.data.processing.strategy.core.RoutingStrategy; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +/** + * 围栏报警 + * 围栏数据记录并报警 + * @Author: 胡杨 + * @Name: BasicStrategy + * @Description: 责任树 - 围栏报警 + * @CreatedDate: 2024/9/30 下午7:24 + * @FilePath: com.muyu.data.processing.strategy.branch + */ + +@Slf4j +@Component +public class FenceAlarmStrategy extends abstractStrategyRouter, Temporary2> + implements StrategyHandler, Temporary2> { + @Override + protected StrategyMapper, Temporary2> registerStrategy() { + log.info("围栏报警分支已完成。。。"); + return param -> new RoutingStrategy(); + } + + @Override + public Temporary2 apply(HashMap basicDataMap) { + return applyStrategy(basicDataMap); + } +} diff --git a/cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/strategy/leaves/RealTimeAlarmStrategy.java b/cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/strategy/leaves/RealTimeAlarmStrategy.java new file mode 100644 index 0000000..2947306 --- /dev/null +++ b/cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/strategy/leaves/RealTimeAlarmStrategy.java @@ -0,0 +1,37 @@ +package com.muyu.data.processing.strategy.leaves; + +import com.muyu.data.processing.domain.BasicData; +import java.util.HashMap; + +import com.muyu.data.processing.domain.Temporary2; +import com.muyu.data.processing.strategy.StrategyHandler; +import com.muyu.data.processing.strategy.abstractStrategyRouter; +import com.muyu.data.processing.strategy.core.RoutingStrategy; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +/** + * 实时数据 + * 处理实时数据事件 + * @Author: 胡杨 + * @Name: BasicStrategy + * @Description: 责任树 - 实时数据 + * @CreatedDate: 2024/9/30 下午7:24 + * @FilePath: com.muyu.data.processing.strategy.branch + */ + +@Slf4j +@Component +public class RealTimeAlarmStrategy extends abstractStrategyRouter, Temporary2> + implements StrategyHandler, Temporary2> { + @Override + protected StrategyMapper, Temporary2> registerStrategy() { + log.info("实时数据处理分支已完成。。。"); + return param -> new RoutingStrategy(); + } + + @Override + public Temporary2 apply(HashMap basicDataMap) { + return applyStrategy(basicDataMap); + } +} diff --git a/cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/strategy/leaves/WarningAlarmStrategy.java b/cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/strategy/leaves/WarningAlarmStrategy.java new file mode 100644 index 0000000..b2af006 --- /dev/null +++ b/cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/strategy/leaves/WarningAlarmStrategy.java @@ -0,0 +1,37 @@ +package com.muyu.data.processing.strategy.leaves; + +import com.muyu.data.processing.domain.BasicData; +import java.util.HashMap; + +import com.muyu.data.processing.domain.Temporary2; +import com.muyu.data.processing.strategy.StrategyHandler; +import com.muyu.data.processing.strategy.abstractStrategyRouter; +import com.muyu.data.processing.strategy.core.RoutingStrategy; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +/** + * 预警报警 + * 预警数据记录并提示 + * @Author: 胡杨 + * @Name: BasicStrategy + * @Description: 责任树 - 预警提示 + * @CreatedDate: 2024/9/30 下午7:24 + * @FilePath: com.muyu.data.processing.strategy.branch + */ + +@Slf4j +@Component +public class WarningAlarmStrategy extends abstractStrategyRouter, Temporary2> + implements StrategyHandler, Temporary2> { + @Override + protected StrategyMapper, Temporary2> registerStrategy() { + log.info("预警报警分支已完成。。。"); + return param -> new RoutingStrategy(); + } + + @Override + public Temporary2 apply(HashMap basicDataMap) { + return applyStrategy(basicDataMap); + } +} diff --git a/cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/utils/CacheUtils.java b/cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/utils/CacheUtils.java new file mode 100644 index 0000000..a16af73 --- /dev/null +++ b/cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/utils/CacheUtils.java @@ -0,0 +1,79 @@ +package com.muyu.data.processing.utils; + +import com.github.yulichang.toolkit.SpringContentUtils; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.ObjectUtils; +import org.springframework.cache.Cache; +import org.springframework.cache.CacheManager; +import org.springframework.stereotype.Component; + +/** +* 缓存工具类 +* @Author: 胡杨 +* @Name: CacheUtils +* @Description: 缓存工具类 +* @CreatedDate: 2024/10/9 下午4:21 +* @FilePath: com.muyu.data.processing.utils +*/ + +@Slf4j +@Component +public class CacheUtils { + private static CacheManager cacheManager = SpringContentUtils.getBean(CacheManager.class); + + /** + * 获取缓存分区 + * @param cacheName 缓存分区名称 + * @return 缓存实例 + */ + public Cache getCache(String cacheName) { + Cache cache = cacheManager.getCache(cacheName); + if (cache == null){ + throw new RuntimeException("缓存分区: "+cacheName+" 不存在"); + } + return cache; + } + + /** + * 设置缓存值 + * @param cacheName 缓存分区名称 + * @param key 键 + * @param value 值 + */ + public void setCacheValue(String cacheName, String key, Object value) { + getCache(cacheName).put(key, value); + log.info("缓存存储成功:分区-{}, 键-{}, 值-{}", cacheName, key, value); + } + + + /** + * 判断缓存是否存在 + * @param cacheName 缓存分区名称 + * @param key 键 + * @return 结果 + */ + public Boolean hasKey(String cacheName, String key) { + return ObjectUtils.isNotEmpty(getCache(cacheName).get(key)); + } + + /** + * 获取缓存值(不限定类型) + * @param cacheName 缓存分区名称 + * @param key 键 + * @return 结果 + */ + public Object getCacheValue(String cacheName, String key) { + return getCache(cacheName).get(key); + } + + /** + * 获取缓存值(限定类型) + * @param cacheName 缓存分区名称 + * @param key 键 + * @param type 返回值类型 + * @return 结果 + */ + public T getCacheValue(String cacheName, String key, Class type) { + return getCache(cacheName).get(key, type); + } +} diff --git a/cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/utils/DataUtils.java b/cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/utils/DataUtils.java new file mode 100644 index 0000000..c6e96cf --- /dev/null +++ b/cloud-modules/cloud-modules-data-processing/src/main/java/com/muyu/data/processing/utils/DataUtils.java @@ -0,0 +1,28 @@ +package com.muyu.data.processing.utils; + +import org.springframework.stereotype.Component; + +/** + * 数据处理工具类 + * + * @Author: 胡杨 + * @Name: DataUtils + * @Description: 数据处理工具类 + * @CreatedDate: 2024/9/29 上午10:15 + * @FilePath: com.muyu.data.processing.utils + */ + +@Component +public class DataUtils { + + /** + * 类型转换 + * @param data 转换值 + * @param type 转换类型 + * @return 转换结果 + * @param 返回类型 + */ + public static T convert(Object data, Class type) { + return type.cast(data); + } +} diff --git a/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/resources/banner.txt b/cloud-modules/cloud-modules-data-processing/src/main/resources/banner.txt similarity index 100% rename from cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/resources/banner.txt rename to cloud-modules/cloud-modules-data-processing/src/main/resources/banner.txt diff --git a/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/resources/bootstrap.yml b/cloud-modules/cloud-modules-data-processing/src/main/resources/bootstrap.yml similarity index 80% rename from cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/resources/bootstrap.yml rename to cloud-modules/cloud-modules-data-processing/src/main/resources/bootstrap.yml index 335687b..4bbeb8f 100644 --- a/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/resources/bootstrap.yml +++ b/cloud-modules/cloud-modules-data-processing/src/main/resources/bootstrap.yml @@ -1,16 +1,23 @@ # Tomcat server: - port: 9702 + port: 9711 # nacos线上地址 nacos: - addr: 106.54.193.225:8848 + addr: 47.116.173.119:8848 user-name: nacos password: nacos - namespace: one + namespace: one-saas # SPRING_AMQP_DESERIALIZATION_TRUST_ALL=true spring.amqp.deserialization.trust.all # Spring spring: + iotdb: + ip: 47.116.173.119 + port: 6667 + user: root + password: root + fetchSize: 10000 + maxActive: 10 amqp: deserialization: trust: @@ -19,7 +26,7 @@ spring: allow-bean-definition-overriding: true application: # 应用名称 - name: cloud-breakdown + name: cloud-data-processing profiles: # 环境配置 active: dev @@ -55,6 +62,9 @@ spring: - application-xxl-config-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} # rabbit 配置文件 - application-rabbit-config-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} + # kafka 配置文件 + - application-kafka-config-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} + logging: level: - com.muyu.breakdown.mapper: DEBUG + com.muyu.system.mapper: DEBUG diff --git a/cloud-modules/cloud-modules-system-saas/src/main/resources/logback/dev.xml b/cloud-modules/cloud-modules-data-processing/src/main/resources/logback/dev.xml similarity index 97% rename from cloud-modules/cloud-modules-system-saas/src/main/resources/logback/dev.xml rename to cloud-modules/cloud-modules-data-processing/src/main/resources/logback/dev.xml index 44768a1..8af8bf1 100644 --- a/cloud-modules/cloud-modules-system-saas/src/main/resources/logback/dev.xml +++ b/cloud-modules/cloud-modules-data-processing/src/main/resources/logback/dev.xml @@ -1,7 +1,7 @@ - + diff --git a/cloud-modules/cloud-modules-system-saas/src/main/resources/logback/prod.xml b/cloud-modules/cloud-modules-data-processing/src/main/resources/logback/prod.xml similarity index 98% rename from cloud-modules/cloud-modules-system-saas/src/main/resources/logback/prod.xml rename to cloud-modules/cloud-modules-data-processing/src/main/resources/logback/prod.xml index 727021d..35744e3 100644 --- a/cloud-modules/cloud-modules-system-saas/src/main/resources/logback/prod.xml +++ b/cloud-modules/cloud-modules-data-processing/src/main/resources/logback/prod.xml @@ -1,7 +1,7 @@ - + diff --git a/cloud-modules/cloud-modules-system-saas/src/main/resources/logback/test.xml b/cloud-modules/cloud-modules-data-processing/src/main/resources/logback/test.xml similarity index 98% rename from cloud-modules/cloud-modules-system-saas/src/main/resources/logback/test.xml rename to cloud-modules/cloud-modules-data-processing/src/main/resources/logback/test.xml index 727021d..35744e3 100644 --- a/cloud-modules/cloud-modules-system-saas/src/main/resources/logback/test.xml +++ b/cloud-modules/cloud-modules-data-processing/src/main/resources/logback/test.xml @@ -1,7 +1,7 @@ - + diff --git a/cloud-modules/cloud-modules-file/src/main/java/com/muyu/file/CloudFileApplication.java b/cloud-modules/cloud-modules-file/src/main/java/com/muyu/file/CloudFileApplication.java index f823b51..8d26d5c 100644 --- a/cloud-modules/cloud-modules-file/src/main/java/com/muyu/file/CloudFileApplication.java +++ b/cloud-modules/cloud-modules-file/src/main/java/com/muyu/file/CloudFileApplication.java @@ -19,3 +19,4 @@ public class CloudFileApplication { } } + diff --git a/cloud-modules/cloud-modules-file/src/main/resources/bootstrap.yml b/cloud-modules/cloud-modules-file/src/main/resources/bootstrap.yml index 5571018..8d5782f 100644 --- a/cloud-modules/cloud-modules-file/src/main/resources/bootstrap.yml +++ b/cloud-modules/cloud-modules-file/src/main/resources/bootstrap.yml @@ -1,22 +1,14 @@ # Tomcat server: - port: 9301 - port: 9300 - - # nacos线上地址 nacos: - addr: 106.54.193.225:8848 + addr: 47.116.173.119:8848 user-name: nacos password: nacos - namespace: one-saas - namespace: one - - # Spring spring: application: @@ -31,18 +23,18 @@ spring: # 服务注册地址 server-addr: ${nacos.addr} # nacos用户名 - username: ${nacos.user-name} - # nacos密码 - password: ${nacos.password} +# username: ${nacos.user-name} +# # nacos密码 +# password: ${nacos.password} # 命名空间 namespace: ${nacos.namespace} config: # 服务注册地址 server-addr: ${nacos.addr} # nacos用户名 - username: ${nacos.user-name} - # nacos密码 - password: ${nacos.password} +# username: ${nacos.user-name} +# # nacos密码 +# password: ${nacos.password} # 命名空间 namespace: ${nacos.namespace} # 配置文件格式 diff --git a/cloud-modules/cloud-modules-gen/src/main/resources/bootstrap.yml b/cloud-modules/cloud-modules-gen/src/main/resources/bootstrap.yml index 47acae2..378292f 100644 --- a/cloud-modules/cloud-modules-gen/src/main/resources/bootstrap.yml +++ b/cloud-modules/cloud-modules-gen/src/main/resources/bootstrap.yml @@ -29,18 +29,18 @@ spring: # 服务注册地址 server-addr: ${nacos.addr} # nacos用户名 - username: ${nacos.user-name} - # nacos密码 - password: ${nacos.password} +# username: ${nacos.user-name} +# # nacos密码 +# password: ${nacos.password} # 命名空间 namespace: ${nacos.namespace} config: # 服务注册地址 server-addr: ${nacos.addr} # nacos用户名 - username: ${nacos.user-name} - # nacos密码 - password: ${nacos.password} +# username: ${nacos.user-name} +# # nacos密码 +# password: ${nacos.password} # 命名空间 namespace: ${nacos.namespace} # 配置文件格式 diff --git a/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-cache/pom.xml b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-cache/pom.xml new file mode 100644 index 0000000..d4204aa --- /dev/null +++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-cache/pom.xml @@ -0,0 +1,41 @@ + + + 4.0.0 + + com.muyu + cloud-modules-openbusiness + 3.6.3 + + + cloud-modules-openbusiness-cache + + + 17 + 17 + UTF-8 + + + + + + + com.muyu + cloud-common-cache + + + + + com.muyu + cloud-modules-openbusiness-common + + + + + com.muyu + cloud-modules-openbusiness-remote + 3.6.3 + + + \ No newline at end of file diff --git a/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-cache/src/main/java/com/muyu/openbusiness/VehicleCacheService.java b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-cache/src/main/java/com/muyu/openbusiness/VehicleCacheService.java new file mode 100644 index 0000000..6e119ad --- /dev/null +++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-cache/src/main/java/com/muyu/openbusiness/VehicleCacheService.java @@ -0,0 +1,34 @@ +package com.muyu.openbusiness; + +import com.muyu.common.cache.BasicCacheData; +import com.muyu.common.cache.abs.CacheAbs; +import com.muyu.openbusiness.domain.SysCar; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +@Component +public class VehicleCacheService extends CacheAbs { + + @Autowired + private BasicCacheData basicCacheData; + + @Override + public SysCar getData(String key) { + return basicCacheData.apply(key); + } + + @Override + public SysCar defaultValue() { + return SysCar.builder().build(); + } + + @Override + public String keyPre() { + return "car:info:"; + } + + @Override + public String decode(String redisKey) { + return redisKey.replace(keyPre(), ""); + } +} diff --git a/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-cache/src/main/java/com/muyu/openbusiness/apply/SysCarCacheRemoteData.java b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-cache/src/main/java/com/muyu/openbusiness/apply/SysCarCacheRemoteData.java new file mode 100644 index 0000000..0ffcaec --- /dev/null +++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-cache/src/main/java/com/muyu/openbusiness/apply/SysCarCacheRemoteData.java @@ -0,0 +1,23 @@ +package com.muyu.openbusiness.apply; + +import com.muyu.common.cache.BasicCacheData; +import com.muyu.openbusiness.domain.SysCar; +import com.muyu.openbusiness.remote.SysCarRemoteService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +/** + * 键和值转换 - 车辆数据 + */ +@Component +public class SysCarCacheRemoteData implements BasicCacheData { + + + @Autowired + private SysCarRemoteService sysCarRemoteService; + + @Override + public SysCar apply(String key) { + return sysCarRemoteService.findByVin(key).getData(); + } +} diff --git a/cloud-modules/cloud-modules-warn/cloud-warn-server/pom.xml b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-common/pom.xml similarity index 66% rename from cloud-modules/cloud-modules-warn/cloud-warn-server/pom.xml rename to cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-common/pom.xml index cb5da5d..231d3fc 100644 --- a/cloud-modules/cloud-modules-warn/cloud-warn-server/pom.xml +++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-common/pom.xml @@ -5,33 +5,30 @@ 4.0.0 com.muyu - cloud-modules-warn + cloud-modules-openbusiness 3.6.3 - cloud-warn-server + cloud-modules-openbusiness-common 17 17 UTF-8 + com.muyu - cloud-warn-common - 3.6.3 + cloud-common-core - - - - - + - com.github.yulichang - mybatis-plus-join-boot-starter - 1.4.11 + dom4j + dom4j + 1.6.1 + com.squareup.okhttp3 okhttp @@ -57,17 +54,10 @@ spring-boot-starter-web 3.3.2 - - org.dom4j - dom4j - 2.1.3 - - - com.alibaba.fastjson2 - fastjson2 - 2.0.43 + redis.clients + jedis + 4.2.2 - diff --git a/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-common/src/main/java/com/muyu/openbusiness/domain/Animal.java b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-common/src/main/java/com/muyu/openbusiness/domain/Animal.java new file mode 100644 index 0000000..01221a9 --- /dev/null +++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-common/src/main/java/com/muyu/openbusiness/domain/Animal.java @@ -0,0 +1,20 @@ +package com.muyu.openbusiness.domain; + +import com.muyu.common.core.annotation.Excel; +import lombok.*; + +@Setter +@Getter +@NoArgsConstructor +@AllArgsConstructor +@Data +public class Animal { + @Excel + private String aId; + @Excel + private String color; + @Excel + private String hobby; + @Excel + private String aName; +} diff --git a/cloud-modules/cloud-breakdown/cloud-breakdown-common/src/main/java/com/muyu/breakdown/domain/BreakDown.java b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-common/src/main/java/com/muyu/openbusiness/domain/BreakDown.java similarity index 96% rename from cloud-modules/cloud-breakdown/cloud-breakdown-common/src/main/java/com/muyu/breakdown/domain/BreakDown.java rename to cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-common/src/main/java/com/muyu/openbusiness/domain/BreakDown.java index 208c12b..ff972e8 100644 --- a/cloud-modules/cloud-breakdown/cloud-breakdown-common/src/main/java/com/muyu/breakdown/domain/BreakDown.java +++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-common/src/main/java/com/muyu/openbusiness/domain/BreakDown.java @@ -1,4 +1,5 @@ -package com.muyu.breakdown.domain; + +package com.muyu.openbusiness.domain; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; @@ -12,6 +13,8 @@ import lombok.NoArgsConstructor; import lombok.experimental.SuperBuilder; /** + * + * 故障实体类 * @author Lenovo * @ Tool:IntelliJ IDEA * @ Author:CHX diff --git a/cloud-modules/cloud-breakdown/cloud-breakdown-common/src/main/java/com/muyu/breakdown/domain/FaultLog.java b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-common/src/main/java/com/muyu/openbusiness/domain/FaultLog.java similarity index 89% rename from cloud-modules/cloud-breakdown/cloud-breakdown-common/src/main/java/com/muyu/breakdown/domain/FaultLog.java rename to cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-common/src/main/java/com/muyu/openbusiness/domain/FaultLog.java index 3dd3a01..6618e53 100644 --- a/cloud-modules/cloud-breakdown/cloud-breakdown-common/src/main/java/com/muyu/breakdown/domain/FaultLog.java +++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-common/src/main/java/com/muyu/openbusiness/domain/FaultLog.java @@ -1,16 +1,15 @@ -package com.muyu.breakdown.domain; +package com.muyu.openbusiness.domain; -import java.util.Date; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; import com.fasterxml.jackson.annotation.JsonFormat; import com.muyu.common.core.annotation.Excel; import com.muyu.common.core.web.domain.BaseEntity; import lombok.*; import lombok.experimental.SuperBuilder; -import org.apache.commons.lang3.builder.ToStringBuilder; -import org.apache.commons.lang3.builder.ToStringStyle; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; -import com.baomidou.mybatisplus.annotation.IdType; + +import java.util.Date; /** * 故障日志对象 fault_log diff --git a/cloud-modules/cloud-breakdown/cloud-breakdown-common/src/main/java/com/muyu/breakdown/domain/MessageMap.java b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-common/src/main/java/com/muyu/openbusiness/domain/MessageMap.java similarity index 91% rename from cloud-modules/cloud-breakdown/cloud-breakdown-common/src/main/java/com/muyu/breakdown/domain/MessageMap.java rename to cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-common/src/main/java/com/muyu/openbusiness/domain/MessageMap.java index c75401f..55bb011 100644 --- a/cloud-modules/cloud-breakdown/cloud-breakdown-common/src/main/java/com/muyu/breakdown/domain/MessageMap.java +++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-common/src/main/java/com/muyu/openbusiness/domain/MessageMap.java @@ -1,4 +1,4 @@ -package com.muyu.breakdown.domain; +package com.muyu.openbusiness.domain; import lombok.AllArgsConstructor; import lombok.Data; diff --git a/cloud-modules/cloud-breakdown/cloud-breakdown-common/src/main/java/com/muyu/breakdown/domain/Messages.java b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-common/src/main/java/com/muyu/openbusiness/domain/Messages.java similarity index 96% rename from cloud-modules/cloud-breakdown/cloud-breakdown-common/src/main/java/com/muyu/breakdown/domain/Messages.java rename to cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-common/src/main/java/com/muyu/openbusiness/domain/Messages.java index 4e430fb..d524fd0 100644 --- a/cloud-modules/cloud-breakdown/cloud-breakdown-common/src/main/java/com/muyu/breakdown/domain/Messages.java +++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-common/src/main/java/com/muyu/openbusiness/domain/Messages.java @@ -1,4 +1,4 @@ -package com.muyu.breakdown.domain; +package com.muyu.openbusiness.domain; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; diff --git a/cloud-modules/cloud-modules-carmanage/src/main/java/com/muyu/car/domain/SysCar.java b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-common/src/main/java/com/muyu/openbusiness/domain/SysCar.java similarity index 98% rename from cloud-modules/cloud-modules-carmanage/src/main/java/com/muyu/car/domain/SysCar.java rename to cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-common/src/main/java/com/muyu/openbusiness/domain/SysCar.java index d7d7efd..c6152d6 100644 --- a/cloud-modules/cloud-modules-carmanage/src/main/java/com/muyu/car/domain/SysCar.java +++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-common/src/main/java/com/muyu/openbusiness/domain/SysCar.java @@ -1,4 +1,4 @@ -package com.muyu.car.domain; +package com.muyu.openbusiness.domain; import java.util.Date; import com.fasterxml.jackson.annotation.JsonFormat; diff --git a/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-common/src/main/java/com/muyu/openbusiness/domain/SysCarMessage.java b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-common/src/main/java/com/muyu/openbusiness/domain/SysCarMessage.java new file mode 100644 index 0000000..7728066 --- /dev/null +++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-common/src/main/java/com/muyu/openbusiness/domain/SysCarMessage.java @@ -0,0 +1,68 @@ +package com.muyu.openbusiness.domain; + +import com.muyu.common.core.annotation.Excel; +import com.muyu.common.core.web.domain.BaseEntity; +import lombok.*; +import lombok.experimental.SuperBuilder; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.IdType; + +import java.io.Serializable; + +/** + * 车辆报文记录对象 sys_car_message + * + * @author muyu + * @date 2024-09-18 + */ + +@Data +@Setter +@Getter +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +@TableName("sys_car_message") +public class SysCarMessage implements Serializable { + private static final long serialVersionUID = 1L; + + /** 自增主键 */ + @TableId( type = IdType.AUTO) + private Long id; + + /** 车辆型号编码 */ + @Excel(name = "车辆型号编码") + private String modelCode; + + /** 车辆报文类型编码 */ + @Excel(name = "i") + private String messageTypeCode; + + /** 开始位下标 */ + @Excel(name = "开始位下标") + private String messageStartIndex; + + /** 结束位下标 */ + @Excel(name = "结束位下标") + private String messageEndIndex; + + /** 报文分类 */ + @Excel(name = "报文分类") + private String messageType; + + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("modelCode", getModelCode()) + .append("messageTypeCode", getMessageTypeCode()) + .append("messageStartIndex", getMessageStartIndex()) + .append("messageEndIndex", getMessageEndIndex()) + .append("messageType", getMessageType()) + .toString(); + } +} diff --git a/cloud-modules/cloud-modules-car/src/main/java/com/muyu/carrail/domain/SysCorpuscle.java b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-common/src/main/java/com/muyu/openbusiness/domain/SysCorpuscle.java similarity index 95% rename from cloud-modules/cloud-modules-car/src/main/java/com/muyu/carrail/domain/SysCorpuscle.java rename to cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-common/src/main/java/com/muyu/openbusiness/domain/SysCorpuscle.java index 2f85c6e..524ff71 100644 --- a/cloud-modules/cloud-modules-car/src/main/java/com/muyu/carrail/domain/SysCorpuscle.java +++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-common/src/main/java/com/muyu/openbusiness/domain/SysCorpuscle.java @@ -1,14 +1,13 @@ -package com.muyu.carrail.domain; +package com.muyu.openbusiness.domain; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; import com.muyu.common.core.annotation.Excel; -import com.muyu.common.core.web.domain.BaseEntity; import lombok.*; import lombok.experimental.SuperBuilder; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; -import com.baomidou.mybatisplus.annotation.IdType; /** * 电子围栏对象 sys_corpuscle_fence diff --git a/cloud-modules/cloud-modules-car/src/main/java/com/muyu/carrail/domain/SysFence.java b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-common/src/main/java/com/muyu/openbusiness/domain/SysFence.java similarity index 95% rename from cloud-modules/cloud-modules-car/src/main/java/com/muyu/carrail/domain/SysFence.java rename to cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-common/src/main/java/com/muyu/openbusiness/domain/SysFence.java index b7d068b..3ca12bc 100644 --- a/cloud-modules/cloud-modules-car/src/main/java/com/muyu/carrail/domain/SysFence.java +++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-common/src/main/java/com/muyu/openbusiness/domain/SysFence.java @@ -1,15 +1,13 @@ -package com.muyu.carrail.domain; +package com.muyu.openbusiness.domain; -import cn.hutool.core.date.DateTime; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; import com.muyu.common.core.annotation.Excel; -import com.muyu.common.core.web.domain.BaseEntity; import lombok.*; import lombok.experimental.SuperBuilder; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; -import com.baomidou.mybatisplus.annotation.IdType; import java.util.Date; diff --git a/cloud-modules/cloud-modules-carmanage/src/main/java/com/muyu/car/domain/SysMessageType.java b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-common/src/main/java/com/muyu/openbusiness/domain/SysMessageType.java similarity index 97% rename from cloud-modules/cloud-modules-carmanage/src/main/java/com/muyu/car/domain/SysMessageType.java rename to cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-common/src/main/java/com/muyu/openbusiness/domain/SysMessageType.java index c2f3e04..20c7303 100644 --- a/cloud-modules/cloud-modules-carmanage/src/main/java/com/muyu/car/domain/SysMessageType.java +++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-common/src/main/java/com/muyu/openbusiness/domain/SysMessageType.java @@ -1,4 +1,4 @@ -package com.muyu.car.domain; +package com.muyu.openbusiness.domain; import com.muyu.common.core.annotation.Excel; import com.muyu.common.core.web.domain.BaseEntity; @@ -18,8 +18,6 @@ import com.baomidou.mybatisplus.annotation.IdType; */ @Data -@Setter -@Getter @SuperBuilder @NoArgsConstructor @AllArgsConstructor diff --git a/cloud-modules/cloud-modules-carmanage/src/main/java/com/muyu/car/domain/VehicleMessage.java b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-common/src/main/java/com/muyu/openbusiness/domain/VehicleMessage.java similarity index 98% rename from cloud-modules/cloud-modules-carmanage/src/main/java/com/muyu/car/domain/VehicleMessage.java rename to cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-common/src/main/java/com/muyu/openbusiness/domain/VehicleMessage.java index f50e817..f7bf4e6 100644 --- a/cloud-modules/cloud-modules-carmanage/src/main/java/com/muyu/car/domain/VehicleMessage.java +++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-common/src/main/java/com/muyu/openbusiness/domain/VehicleMessage.java @@ -1,4 +1,4 @@ -package com.muyu.car.domain; +package com.muyu.openbusiness.domain; import com.muyu.common.core.web.domain.BaseEntity; import lombok.AllArgsConstructor; @@ -7,6 +7,9 @@ import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; import lombok.experimental.SuperBuilder; +/** + * 报文模板表 + */ @Data @SuperBuilder @NoArgsConstructor diff --git a/cloud-modules/cloud-modules-warn/cloud-warn-common/src/main/java/com/muyu/warning/domain/WarnLogs.java b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-common/src/main/java/com/muyu/openbusiness/domain/WarnLogs.java similarity index 98% rename from cloud-modules/cloud-modules-warn/cloud-warn-common/src/main/java/com/muyu/warning/domain/WarnLogs.java rename to cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-common/src/main/java/com/muyu/openbusiness/domain/WarnLogs.java index 43250f3..7aac49a 100644 --- a/cloud-modules/cloud-modules-warn/cloud-warn-common/src/main/java/com/muyu/warning/domain/WarnLogs.java +++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-common/src/main/java/com/muyu/openbusiness/domain/WarnLogs.java @@ -1,15 +1,16 @@ -package com.muyu.warning.domain; +package com.muyu.openbusiness.domain; -import java.util.Date; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; import com.fasterxml.jackson.annotation.JsonFormat; import com.muyu.common.core.annotation.Excel; import lombok.*; import lombok.experimental.SuperBuilder; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; -import com.baomidou.mybatisplus.annotation.IdType; + +import java.util.Date; /** * 预警日志对象 warn_logs diff --git a/cloud-modules/cloud-modules-warn/cloud-warn-common/src/main/java/com/muyu/warning/domain/WarnRule.java b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-common/src/main/java/com/muyu/openbusiness/domain/WarnRule.java similarity index 97% rename from cloud-modules/cloud-modules-warn/cloud-warn-common/src/main/java/com/muyu/warning/domain/WarnRule.java rename to cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-common/src/main/java/com/muyu/openbusiness/domain/WarnRule.java index 7e82a98..90935ee 100644 --- a/cloud-modules/cloud-modules-warn/cloud-warn-common/src/main/java/com/muyu/warning/domain/WarnRule.java +++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-common/src/main/java/com/muyu/openbusiness/domain/WarnRule.java @@ -1,13 +1,13 @@ -package com.muyu.warning.domain; +package com.muyu.openbusiness.domain; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; import com.muyu.common.core.annotation.Excel; import lombok.*; import lombok.experimental.SuperBuilder; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; -import com.baomidou.mybatisplus.annotation.IdType; /** * 预警规则对象 warn_rule diff --git a/cloud-modules/cloud-modules-warn/cloud-warn-common/src/main/java/com/muyu/warning/domain/WarnRuleDTO.java b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-common/src/main/java/com/muyu/openbusiness/domain/WarnRuleDTO.java similarity index 97% rename from cloud-modules/cloud-modules-warn/cloud-warn-common/src/main/java/com/muyu/warning/domain/WarnRuleDTO.java rename to cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-common/src/main/java/com/muyu/openbusiness/domain/WarnRuleDTO.java index 6a8d311..ab1ade1 100644 --- a/cloud-modules/cloud-modules-warn/cloud-warn-common/src/main/java/com/muyu/warning/domain/WarnRuleDTO.java +++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-common/src/main/java/com/muyu/openbusiness/domain/WarnRuleDTO.java @@ -1,4 +1,4 @@ -package com.muyu.warning.domain; +package com.muyu.openbusiness.domain; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; diff --git a/cloud-modules/cloud-modules-warn/cloud-warn-common/src/main/java/com/muyu/warning/domain/WarnStrategy.java b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-common/src/main/java/com/muyu/openbusiness/domain/WarnStrategy.java similarity index 97% rename from cloud-modules/cloud-modules-warn/cloud-warn-common/src/main/java/com/muyu/warning/domain/WarnStrategy.java rename to cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-common/src/main/java/com/muyu/openbusiness/domain/WarnStrategy.java index 481e6fe..cb242b0 100644 --- a/cloud-modules/cloud-modules-warn/cloud-warn-common/src/main/java/com/muyu/warning/domain/WarnStrategy.java +++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-common/src/main/java/com/muyu/openbusiness/domain/WarnStrategy.java @@ -1,13 +1,13 @@ -package com.muyu.warning.domain; +package com.muyu.openbusiness.domain; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; import com.muyu.common.core.annotation.Excel; import lombok.*; import lombok.experimental.SuperBuilder; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; -import com.baomidou.mybatisplus.annotation.IdType; /** * 预警策略对象 warn_strategy diff --git a/cloud-modules/cloud-modules-warn/cloud-warn-common/src/main/java/com/muyu/warning/wx/AccessToken.java b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-common/src/main/java/com/muyu/openbusiness/wx/AccessToken.java similarity index 89% rename from cloud-modules/cloud-modules-warn/cloud-warn-common/src/main/java/com/muyu/warning/wx/AccessToken.java rename to cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-common/src/main/java/com/muyu/openbusiness/wx/AccessToken.java index f844623..2b142d4 100644 --- a/cloud-modules/cloud-modules-warn/cloud-warn-common/src/main/java/com/muyu/warning/wx/AccessToken.java +++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-common/src/main/java/com/muyu/openbusiness/wx/AccessToken.java @@ -1,4 +1,4 @@ -package com.muyu.warning.wx; +package com.muyu.openbusiness.wx; import lombok.Data; diff --git a/cloud-modules/cloud-modules-warn/cloud-warn-common/src/main/java/com/muyu/warning/wx/Message.java b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-common/src/main/java/com/muyu/openbusiness/wx/Message.java similarity index 93% rename from cloud-modules/cloud-modules-warn/cloud-warn-common/src/main/java/com/muyu/warning/wx/Message.java rename to cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-common/src/main/java/com/muyu/openbusiness/wx/Message.java index f17130a..34e8035 100644 --- a/cloud-modules/cloud-modules-warn/cloud-warn-common/src/main/java/com/muyu/warning/wx/Message.java +++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-common/src/main/java/com/muyu/openbusiness/wx/Message.java @@ -1,4 +1,5 @@ -package com.muyu.warning.wx; +package com.muyu.openbusiness.wx; + import com.thoughtworks.xstream.annotations.XStreamAlias; import lombok.Data; diff --git a/cloud-modules/cloud-breakdown/cloud-breakdown-remote/pom.xml b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-remote/pom.xml similarity index 75% rename from cloud-modules/cloud-breakdown/cloud-breakdown-remote/pom.xml rename to cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-remote/pom.xml index c3b50cc..da9f398 100644 --- a/cloud-modules/cloud-breakdown/cloud-breakdown-remote/pom.xml +++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-remote/pom.xml @@ -5,23 +5,23 @@ 4.0.0 com.muyu - cloud-breakdown + cloud-modules-openbusiness 3.6.3 - cloud-breakdown-remote + cloud-modules-openbusiness-remote 17 17 UTF-8 - + + com.muyu - cloud-breakdown-common - 3.6.3 + cloud-modules-openbusiness-common - + \ No newline at end of file diff --git a/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-remote/src/main/java/com/muyu/openbusiness/remote/SysCarRemoteService.java b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-remote/src/main/java/com/muyu/openbusiness/remote/SysCarRemoteService.java new file mode 100644 index 0000000..f52e472 --- /dev/null +++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-remote/src/main/java/com/muyu/openbusiness/remote/SysCarRemoteService.java @@ -0,0 +1,14 @@ +package com.muyu.openbusiness.remote; + +import com.muyu.common.core.constant.ServiceNameConstants; +import com.muyu.common.core.domain.Result; +import com.muyu.openbusiness.domain.SysCar; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; + +@FeignClient(contextId = "sysCarRemoteService", value = ServiceNameConstants.CAR_SERVICE) +public interface SysCarRemoteService { + + @GetMapping("/car/findByVin") + public Result findByVin(String vin); +} diff --git a/cloud-modules/cloud-modules-warn/cloud-warn-common/pom.xml b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/pom.xml similarity index 65% rename from cloud-modules/cloud-modules-warn/cloud-warn-common/pom.xml rename to cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/pom.xml index 809ecc3..3805e06 100644 --- a/cloud-modules/cloud-modules-warn/cloud-warn-common/pom.xml +++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/pom.xml @@ -5,11 +5,11 @@ 4.0.0 com.muyu - cloud-modules-warn + cloud-modules-openbusiness 3.6.3 - cloud-warn-common + cloud-modules-openbusiness-server 17 @@ -19,7 +19,6 @@ - com.alibaba.cloud @@ -43,7 +42,15 @@ org.springframework.boot spring-boot-starter-actuator + + com.muyu + cloud-common-saas + + + com.muyu + cloud-common-system + com.mysql @@ -68,6 +75,11 @@ cloud-common-log + + com.muyu + cloud-common-redis + + com.muyu @@ -87,52 +99,55 @@ com.muyu - cloud-common-core + cloud-common-kafka + + + + org.bouncycastle + bcpkix-jdk15on + 1.70 + + + + com.muyu + cloud-modules-openbusiness-common + + + + com.muyu + cloud-modules-openbusiness-cache 3.6.3 + + com.muyu + cloud-modules-carmanage + 3.6.3 + compile + + + org.springframework.cloud + spring-cloud-starter-openfeign + - - com.squareup.okhttp3 - okhttp - 4.9.3 - - - com.thoughtworks.xstream - xstream - 1.4.20 - - - org.projectlombok - lombok - 1.18.34 - - - org.springframework.boot - spring-boot-starter - 3.3.2 - - - org.springframework.boot - spring-boot-starter-web - 3.3.2 - - - - org.dom4j - dom4j - 2.1.3 - - - com.alibaba.fastjson2 - fastjson2 - 2.0.43 - - - - - - + + + ${project.artifactId} + + + org.springframework.boot + spring-boot-maven-plugin + + + + repackage + + + + + + + diff --git a/cloud-modules/cloud-modules-system-saas/src/main/java/com/muyu/system/saas/CloudSystemSaasApplication.java b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/CloudOpenBusinessApplication.java similarity index 75% rename from cloud-modules/cloud-modules-system-saas/src/main/java/com/muyu/system/saas/CloudSystemSaasApplication.java rename to cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/CloudOpenBusinessApplication.java index 95d43df..c5d8137 100644 --- a/cloud-modules/cloud-modules-system-saas/src/main/java/com/muyu/system/saas/CloudSystemSaasApplication.java +++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/CloudOpenBusinessApplication.java @@ -1,4 +1,4 @@ -package com.muyu.system.saas; +package com.muyu.openbusiness; import com.alibaba.druid.spring.boot3.autoconfigure.DruidDataSourceAutoConfigure; import com.baomidou.dynamic.datasource.spring.boot.autoconfigure.DynamicDataSourceAutoConfiguration; @@ -7,14 +7,14 @@ import com.muyu.common.security.annotation.EnableMyFeignClients; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; +import org.springframework.cloud.openfeign.EnableFeignClients; /** - * @Author: 胡杨 - * @Name: CloudSystemSaas - * @Description: SaaS系统驱动器 - * @CreatedDate: 2024/9/22 上午10:05 - * @FilePath: com.muyu.system.saas + * 系统模块 + * + * @author muyu */ +//@EnableFeignClients @EnableCustomConfig @EnableMyFeignClients @SpringBootApplication( @@ -24,9 +24,9 @@ import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; DynamicDataSourceAutoConfiguration.class } ) -public class CloudSystemSaasApplication { +public class CloudOpenBusinessApplication { public static void main(String[] args) { - SpringApplication.run(CloudSystemSaasApplication.class, args); + SpringApplication.run(CloudOpenBusinessApplication.class, args); System.out.println("CloudSystemSaas 模块启动成功!"); } } diff --git a/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/cahce/apply/SysCarCacheRemoteData.java b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/cahce/apply/SysCarCacheRemoteData.java new file mode 100644 index 0000000..4a59452 --- /dev/null +++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/cahce/apply/SysCarCacheRemoteData.java @@ -0,0 +1,31 @@ +package com.muyu.openbusiness.cahce.apply;//package com.muyu.openbusiness.cahce.apply; +// +//import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +//import com.muyu.common.cache.BasicCacheData; +//import com.muyu.openbusiness.domain.SysCar; +//import com.muyu.openbusiness.remote.SysCarRemoteService; +//import com.muyu.openbusiness.service.impl.SysCarServiceImpl; +//import org.springframework.beans.factory.annotation.Autowired; +//import org.springframework.context.annotation.Primary; +//import org.springframework.stereotype.Component; +// +///** +// * 键和值转换 - 车辆数据 +// */ +//@Primary +//@Component +//public class SysCarCacheRemoteData implements BasicCacheData { +// +// +// @Autowired +// private SysCarServiceImpl sysCarService; +// +// @Override +// public SysCar apply(String key) { +// return sysCarService.getOne( +// new LambdaQueryWrapper<>(){{ +// eq(SysCar::getCarVin, key); +// }} +// ); +// } +//} diff --git a/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/config/MybatisPlusConfig.java b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/config/MybatisPlusConfig.java similarity index 68% rename from cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/config/MybatisPlusConfig.java rename to cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/config/MybatisPlusConfig.java index 5a1131d..d3e927a 100644 --- a/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/config/MybatisPlusConfig.java +++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/config/MybatisPlusConfig.java @@ -1,11 +1,4 @@ -package com.muyu.breakdown.config; - -import com.baomidou.mybatisplus.annotation.DbType; -import com.baomidou.mybatisplus.core.MybatisConfiguration; -import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor; -import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; +package com.muyu.openbusiness.config; /** * @ Tool:IntelliJ IDEA diff --git a/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/config/RabbitMQConfig.java b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/config/RabbitMQConfig.java similarity index 97% rename from cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/config/RabbitMQConfig.java rename to cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/config/RabbitMQConfig.java index a735a6e..a2519be 100644 --- a/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/config/RabbitMQConfig.java +++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/config/RabbitMQConfig.java @@ -1,4 +1,4 @@ -package com.muyu.breakdown.config; +package com.muyu.openbusiness.config; import org.springframework.amqp.core.Binding; import org.springframework.amqp.core.BindingBuilder; diff --git a/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/config/RabbitMQDirectConfig.java b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/config/RabbitMQDirectConfig.java similarity index 97% rename from cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/config/RabbitMQDirectConfig.java rename to cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/config/RabbitMQDirectConfig.java index e0b2f8b..d9ae65f 100644 --- a/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/config/RabbitMQDirectConfig.java +++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/config/RabbitMQDirectConfig.java @@ -1,4 +1,4 @@ -package com.muyu.breakdown.config; +package com.muyu.openbusiness.config; import org.springframework.amqp.core.*; import org.springframework.context.annotation.Bean; diff --git a/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/config/RabbitMQTopicConfig.java b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/config/RabbitMQTopicConfig.java similarity index 97% rename from cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/config/RabbitMQTopicConfig.java rename to cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/config/RabbitMQTopicConfig.java index 58630e5..95f79e9 100644 --- a/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/config/RabbitMQTopicConfig.java +++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/config/RabbitMQTopicConfig.java @@ -1,4 +1,4 @@ -package com.muyu.breakdown.config; +package com.muyu.openbusiness.config; import org.springframework.amqp.core.Binding; import org.springframework.amqp.core.BindingBuilder; diff --git a/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/config/SnowflakeIdWorker.java b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/config/SnowflakeIdWorker.java new file mode 100644 index 0000000..8525ea8 --- /dev/null +++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/config/SnowflakeIdWorker.java @@ -0,0 +1,108 @@ +package com.muyu.openbusiness.config; + +/** + * Description : + * Created by ZhangYi + * Date :2024/10/04 + */ +public class SnowflakeIdWorker{ + /** 开始时间截 (这个用自己业务系统上线的时间) */ + private final long twepoch = 1575365018000L; + + /** 机器id所占的位数 */ + private final long workerIdBits = 10L; + + /** 支持的最大机器id,结果是31 (这个移位算法可以很快的计算出几位二进制数所能表示的最大十进制数) */ + private final long maxWorkerId = -1L ^ (-1L << workerIdBits); + + /** 序列在id中占的位数 */ + private final long sequenceBits = 12L; + + /** 机器ID向左移12位 */ + private final long workerIdShift = sequenceBits; + + /** 时间截向左移22位(10+12) */ + private final long timestampLeftShift = sequenceBits + workerIdBits; + + /** 生成序列的掩码,这里为4095 (0b111111111111=0xfff=4095) */ + private final long sequenceMask = -1L ^ (-1L << sequenceBits); + + /** 工作机器ID(0~1024) */ + private long workerId; + + /** 毫秒内序列(0~4095) */ + private long sequence = 0L; + + /** 上次生成ID的时间截 */ + private long lastTimestamp = -1L; + + //==============================Constructors===================================== + /** + * 构造函数 + * @param workerId 工作ID (0~1024) + */ + public void SnowMaker(long workerId) { + if (workerId > maxWorkerId || workerId < 0) { + throw new IllegalArgumentException(String.format("workerId can't be greater than %d or less than 0", maxWorkerId)); + } + this.workerId = workerId; + } + + // ==============================Methods========================================== + /** + * 获得下一个ID (该方法是线程安全的) + * @return SnowflakeId + */ + public synchronized long nextId() { + long timestamp = timeGen(); + + //如果当前时间小于上一次ID生成的时间戳,说明系统时钟回退过这个时候应当抛出异常 + if (timestamp < lastTimestamp) { + throw new RuntimeException( + String.format("Clock moved backwards. Refusing to generate id for %d milliseconds", lastTimestamp - timestamp)); + } + + //如果是同一时间生成的,则进行毫秒内序列 + if (lastTimestamp == timestamp) { + sequence = (sequence + 1) & sequenceMask; + //毫秒内序列溢出 + if (sequence == 0) { + //阻塞到下一个毫秒,获得新的时间戳 + timestamp = tilNextMillis(lastTimestamp); + } + } + //时间戳改变,毫秒内序列重置 + else { + sequence = 0L; + } + + //上次生成ID的时间截 + lastTimestamp = timestamp; + + //移位并通过或运算拼到一起组成64位的ID + return ((timestamp - twepoch) << timestampLeftShift) // + | (workerId << workerIdShift) // + | sequence; + } + + /** + * 阻塞到下一个毫秒,直到获得新的时间戳 + * @param lastTimestamp 上次生成ID的时间截 + * @return 当前时间戳 + */ + protected long tilNextMillis(long lastTimestamp) { + long timestamp = timeGen(); + while (timestamp <= lastTimestamp) { + timestamp = timeGen(); + } + return timestamp; + } + + /** + * 返回以毫秒为单位的当前时间 + * @return 当前时间(毫秒) + */ + protected long timeGen() { + return System.currentTimeMillis(); + } +} diff --git a/cloud-modules/cloud-modules-carmanage/src/main/java/com/muyu/car/constant/RedisConstant.java b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/constant/RedisConstant.java similarity index 85% rename from cloud-modules/cloud-modules-carmanage/src/main/java/com/muyu/car/constant/RedisConstant.java rename to cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/constant/RedisConstant.java index 521fc56..6d1a167 100644 --- a/cloud-modules/cloud-modules-carmanage/src/main/java/com/muyu/car/constant/RedisConstant.java +++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/constant/RedisConstant.java @@ -1,4 +1,4 @@ -package com.muyu.car.constant; +package com.muyu.openbusiness.constant; public class RedisConstant { diff --git a/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/controller/BreakDownController.java b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/controller/BreakDownController.java similarity index 94% rename from cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/controller/BreakDownController.java rename to cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/controller/BreakDownController.java index 1e8dea0..4309399 100644 --- a/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/controller/BreakDownController.java +++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/controller/BreakDownController.java @@ -1,8 +1,9 @@ -package com.muyu.breakdown.controller; -import com.muyu.breakdown.domain.BreakDown; -import com.muyu.breakdown.domain.MessageMap; -import com.muyu.breakdown.service.BreakDownService; +package com.muyu.openbusiness.controller; + +import com.muyu.openbusiness.domain.BreakDown; +import com.muyu.openbusiness.domain.MessageMap; +import com.muyu.openbusiness.service.BreakDownService; import com.muyu.common.core.domain.Result; import com.muyu.common.core.utils.poi.ExcelUtil; import com.muyu.common.core.web.controller.BaseController; diff --git a/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/controller/FaultLogController.java b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/controller/FaultLogController.java similarity index 83% rename from cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/controller/FaultLogController.java rename to cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/controller/FaultLogController.java index d66c519..4c7b7ea 100644 --- a/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/controller/FaultLogController.java +++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/controller/FaultLogController.java @@ -1,27 +1,21 @@ -package com.muyu.breakdown.controller; -import java.util.Arrays; -import java.util.List; +package com.muyu.openbusiness.controller; -import com.muyu.breakdown.domain.FaultLog; -import com.muyu.breakdown.service.IFaultLogService; -import jakarta.servlet.http.HttpServletResponse; -import javax.annotation.Resource; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; -import com.muyu.common.security.annotation.RequiresPermissions; -import com.muyu.common.core.web.controller.BaseController; +import com.muyu.openbusiness.domain.FaultLog; +import com.muyu.openbusiness.service.IFaultLogService; import com.muyu.common.core.domain.Result; import com.muyu.common.core.utils.poi.ExcelUtil; -import com.muyu.common.security.utils.SecurityUtils; -import org.springframework.validation.annotation.Validated; +import com.muyu.common.core.web.controller.BaseController; import com.muyu.common.core.web.page.TableDataInfo; +import com.muyu.common.security.annotation.RequiresPermissions; +import com.muyu.common.security.utils.SecurityUtils; +import jakarta.servlet.http.HttpServletResponse; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.Arrays; +import java.util.List; /** * 故障日志Controller diff --git a/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/controller/RailController.java b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/controller/RailController.java new file mode 100644 index 0000000..5e88e4c --- /dev/null +++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/controller/RailController.java @@ -0,0 +1,4 @@ +package com.muyu.openbusiness.controller; + +public class RailController { +} diff --git a/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/controller/StationMessageController.java b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/controller/StationMessageController.java similarity index 72% rename from cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/controller/StationMessageController.java rename to cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/controller/StationMessageController.java index 2e2fdf9..5698517 100644 --- a/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/controller/StationMessageController.java +++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/controller/StationMessageController.java @@ -1,13 +1,15 @@ -package com.muyu.breakdown.controller; +package com.muyu.openbusiness.controller; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.muyu.breakdown.domain.Messages; -import com.muyu.breakdown.service.BreakDownService; -import com.muyu.breakdown.service.StationMessageService; +import com.muyu.openbusiness.domain.Messages; +import com.muyu.openbusiness.service.StationMessageService; import com.muyu.common.core.domain.Result; import com.muyu.common.core.web.controller.BaseController; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; import java.util.List; diff --git a/cloud-modules/cloud-modules-carmanage/src/main/java/com/muyu/car/controller/SysCarController.java b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/controller/SysCarController.java similarity index 83% rename from cloud-modules/cloud-modules-carmanage/src/main/java/com/muyu/car/controller/SysCarController.java rename to cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/controller/SysCarController.java index 189e777..bcc2ae2 100644 --- a/cloud-modules/cloud-modules-carmanage/src/main/java/com/muyu/car/controller/SysCarController.java +++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/controller/SysCarController.java @@ -1,4 +1,16 @@ -package com.muyu.car.controller; +package com.muyu.openbusiness.controller; + +import com.muyu.openbusiness.domain.SysCar; +import com.muyu.openbusiness.service.ISysCarService; +import com.muyu.common.core.domain.Result; +import com.muyu.common.core.utils.poi.ExcelUtil; +import com.muyu.common.core.web.controller.BaseController; +import com.muyu.common.core.web.page.TableDataInfo; +import com.muyu.common.security.annotation.RequiresPermissions; +import jakarta.servlet.http.HttpServletResponse; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; import java.time.Instant; import java.time.LocalDateTime; @@ -7,27 +19,6 @@ import java.time.ZonedDateTime; import java.util.Arrays; import java.util.Date; import java.util.List; -import jakarta.servlet.http.HttpServletResponse; -import javax.annotation.Resource; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; -import com.muyu.common.security.annotation.RequiresPermissions; -import com.muyu.car.domain.SysCar; -import com.muyu.car.service.ISysCarService; -import com.muyu.common.core.web.controller.BaseController; -import com.muyu.common.core.domain.Result; -import com.muyu.common.core.utils.poi.ExcelUtil; -import com.muyu.common.security.utils.SecurityUtils; -import org.springframework.validation.annotation.Validated; -import com.muyu.common.core.web.page.TableDataInfo; /** * 车辆基础信息Controller diff --git a/cloud-modules/cloud-modules-carmanage/src/main/java/com/muyu/car/controller/SysCarMessageController.java b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/controller/SysCarMessageController.java similarity index 83% rename from cloud-modules/cloud-modules-carmanage/src/main/java/com/muyu/car/controller/SysCarMessageController.java rename to cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/controller/SysCarMessageController.java index 9617880..e796a4a 100644 --- a/cloud-modules/cloud-modules-carmanage/src/main/java/com/muyu/car/controller/SysCarMessageController.java +++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/controller/SysCarMessageController.java @@ -1,36 +1,26 @@ -package com.muyu.car.controller; +package com.muyu.openbusiness.controller; +import com.muyu.common.system.domain.SysUser; +import com.muyu.openbusiness.domain.SysCarMessage; + +import com.muyu.openbusiness.service.ISysCarMessageService; +import com.muyu.common.core.domain.Result; +import com.muyu.common.core.utils.poi.ExcelUtil; +import com.muyu.common.core.web.controller.BaseController; +import com.muyu.common.security.annotation.RequiresPermissions; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.servlet.http.HttpSession; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutionException; -import com.muyu.car.domain.SysCarMessage; -import com.muyu.car.domain.SysMessageType; -import com.muyu.car.domain.VO.SysMessageVO; -import com.muyu.car.service.ISysCarMessageService; -import jakarta.servlet.http.HttpServletResponse; -import javax.annotation.Resource; - -import jakarta.servlet.http.HttpSession; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; -import com.muyu.common.security.annotation.RequiresPermissions; -import com.muyu.common.core.web.controller.BaseController; -import com.muyu.common.core.domain.Result; -import com.muyu.common.core.utils.poi.ExcelUtil; -import com.muyu.common.security.utils.SecurityUtils; -import org.springframework.validation.annotation.Validated; -import com.muyu.common.core.web.page.TableDataInfo; - /** * 车辆报文记录Controller * @@ -43,6 +33,8 @@ public class SysCarMessageController extends BaseController { @Resource private ISysCarMessageService sysCarMessageService; +// @Autowired +// private SystemFeign feign; @Autowired private HttpSession session; @@ -101,20 +93,13 @@ public class SysCarMessageController extends BaseController @GetMapping("/list") public Result> list(SysCarMessage sysCarMessage) { +// Result info = feign.getInfo(); +// SysUser sysUser = (SysUser) info.getData(); List list = sysCarMessageService.selectSysCarMessageList(sysCarMessage); session.setAttribute("list", list); return Result.success(list); } - @RequiresPermissions("message:message:dobList") - @GetMapping("/dobList") - public Result> dobList(SysMessageVO sysMessageVO) - { - List list = sysCarMessageService.dobList(sysMessageVO); - return Result.success(list); - } - - /** * 导出车辆报文记录列表 */ @@ -145,6 +130,7 @@ public class SysCarMessageController extends BaseController public Result add( @Validated @RequestBody SysCarMessage sysCarMessage) { + if (sysCarMessageService.checkIdUnique(sysCarMessage)) { return error("新增 车辆报文记录 '" + sysCarMessage + "'失败,车辆报文记录已存在"); } diff --git a/cloud-modules/cloud-modules-car/src/main/java/com/muyu/carrail/controller/SysCorpuscleController.java b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/controller/SysCorpuscleController.java similarity index 78% rename from cloud-modules/cloud-modules-car/src/main/java/com/muyu/carrail/controller/SysCorpuscleController.java rename to cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/controller/SysCorpuscleController.java index 15e083c..ec51f82 100644 --- a/cloud-modules/cloud-modules-car/src/main/java/com/muyu/carrail/controller/SysCorpuscleController.java +++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/controller/SysCorpuscleController.java @@ -1,22 +1,17 @@ -package com.muyu.carrail.controller; - -import java.util.Arrays; -import java.util.List; +package com.muyu.openbusiness.controller; +import com.muyu.openbusiness.domain.SysCorpuscle; +import com.muyu.openbusiness.service.ISysCorpuscleService; +import com.muyu.common.core.domain.Result; +import com.muyu.common.core.web.controller.BaseController; +import com.muyu.common.core.web.page.TableDataInfo; import com.muyu.common.security.annotation.RequiresPermissions; -import com.muyu.common.security.utils.SecurityUtils; -import jakarta.annotation.Resource; - import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; -import com.muyu.carrail.domain.SysCorpuscle; -import com.muyu.carrail.service.ISysCorpuscleService; -import com.muyu.common.core.web.controller.BaseController; -import com.muyu.common.core.domain.Result; - -import com.muyu.common.core.web.page.TableDataInfo; +import java.util.Arrays; +import java.util.List; /** * 电子围栏Controller @@ -26,8 +21,7 @@ import com.muyu.common.core.web.page.TableDataInfo; */ @RestController @RequestMapping("/carRail") -public class SysCorpuscleController extends BaseController -{ +public class SysCorpuscleController extends BaseController { @Autowired private ISysCorpuscleService sysCorpuscleService; @@ -36,8 +30,7 @@ public class SysCorpuscleController extends BaseController */ @RequiresPermissions("carRail:carRail:list") @GetMapping("/list") - public Result> list(SysCorpuscle sysCorpuscle) - { + public Result> list(SysCorpuscle sysCorpuscle) { startPage(); List list = sysCorpuscleService.selectSysCorpuscleList(sysCorpuscle); return getDataTable(list); @@ -46,8 +39,7 @@ public class SysCorpuscleController extends BaseController @RequiresPermissions("carRail:corpuscle:add") @PostMapping public Result add( - @Validated @RequestBody SysCorpuscle sysCorpuscle) - { + @Validated @RequestBody SysCorpuscle sysCorpuscle) { return toAjax(sysCorpuscleService.save(sysCorpuscle)); } @@ -58,21 +50,18 @@ public class SysCorpuscleController extends BaseController @RequiresPermissions("carRail:corpuscle:edit") @PutMapping public Result edit( - @Validated @RequestBody SysCorpuscle sysCorpuscle) - { + @Validated @RequestBody SysCorpuscle sysCorpuscle) { return toAjax(sysCorpuscleService.updateById(sysCorpuscle)); } - /** * 删除电子围栏 */ @RequiresPermissions("carRail:corpuscle:remove") @DeleteMapping("/{ids}") - public Result remove(@PathVariable("ids") Long[] ids) - { + public Result remove(@PathVariable("ids") Long[] ids) { sysCorpuscleService.removeBatchByIds(Arrays.asList(ids)); return success(); } diff --git a/cloud-modules/cloud-modules-car/src/main/java/com/muyu/carrail/controller/SysFenceController.java b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/controller/SysFenceController.java similarity index 80% rename from cloud-modules/cloud-modules-car/src/main/java/com/muyu/carrail/controller/SysFenceController.java rename to cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/controller/SysFenceController.java index a3ff506..31b7718 100644 --- a/cloud-modules/cloud-modules-car/src/main/java/com/muyu/carrail/controller/SysFenceController.java +++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/controller/SysFenceController.java @@ -1,26 +1,19 @@ -package com.muyu.carrail.controller; +package com.muyu.openbusiness.controller; -import java.util.Arrays; -import java.util.List; - -import com.muyu.carrail.domain.SysFence; -import com.muyu.carrail.service.ISysFenceService; -import jakarta.servlet.http.HttpServletResponse; -import javax.annotation.Resource; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; -import com.muyu.common.security.annotation.RequiresPermissions; -import com.muyu.common.core.web.controller.BaseController; +import com.muyu.openbusiness.domain.SysFence; import com.muyu.common.core.domain.Result; import com.muyu.common.core.utils.poi.ExcelUtil; -import org.springframework.validation.annotation.Validated; +import com.muyu.common.core.web.controller.BaseController; import com.muyu.common.core.web.page.TableDataInfo; +import com.muyu.common.security.annotation.RequiresPermissions; +import com.muyu.openbusiness.service.ISysFenceService; +import jakarta.servlet.http.HttpServletResponse; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.Arrays; +import java.util.List; /** * 围栏组Controller diff --git a/cloud-modules/cloud-modules-carmanage/src/main/java/com/muyu/car/controller/SysMessageTypeController.java b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/controller/SysMessageTypeController.java similarity index 80% rename from cloud-modules/cloud-modules-carmanage/src/main/java/com/muyu/car/controller/SysMessageTypeController.java rename to cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/controller/SysMessageTypeController.java index c93875a..95ad394 100644 --- a/cloud-modules/cloud-modules-carmanage/src/main/java/com/muyu/car/controller/SysMessageTypeController.java +++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/controller/SysMessageTypeController.java @@ -1,27 +1,18 @@ -package com.muyu.car.controller; +package com.muyu.openbusiness.controller; -import java.util.Arrays; -import java.util.List; - -import com.muyu.car.domain.SysMessageType; -import com.muyu.car.service.ISysMessageTypeService; -import jakarta.servlet.http.HttpServletResponse; -import javax.annotation.Resource; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; -import com.muyu.common.security.annotation.RequiresPermissions; -import com.muyu.common.core.web.controller.BaseController; +import com.muyu.openbusiness.domain.SysMessageType; +import com.muyu.openbusiness.service.ISysMessageTypeService; import com.muyu.common.core.domain.Result; import com.muyu.common.core.utils.poi.ExcelUtil; -import com.muyu.common.security.utils.SecurityUtils; +import com.muyu.common.core.web.controller.BaseController; +import com.muyu.common.security.annotation.RequiresPermissions; +import jakarta.servlet.http.HttpServletResponse; import org.springframework.validation.annotation.Validated; -import com.muyu.common.core.web.page.TableDataInfo; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.Arrays; +import java.util.List; /** * 车辆报文类型Controller @@ -31,8 +22,7 @@ import com.muyu.common.core.web.page.TableDataInfo; */ @RestController @RequestMapping("/messageType") -public class SysMessageTypeController extends BaseController -{ +public class SysMessageTypeController extends BaseController { @Resource private ISysMessageTypeService sysMessageTypeService; diff --git a/cloud-modules/cloud-modules-system-saas/src/main/java/com/muyu/system/saas/controller/SysUserController.java b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/controller/SysUserController.java similarity index 97% rename from cloud-modules/cloud-modules-system-saas/src/main/java/com/muyu/system/saas/controller/SysUserController.java rename to cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/controller/SysUserController.java index 412f2cf..f34422a 100644 --- a/cloud-modules/cloud-modules-system-saas/src/main/java/com/muyu/system/saas/controller/SysUserController.java +++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/controller/SysUserController.java @@ -1,4 +1,4 @@ -package com.muyu.system.saas.controller; +package com.muyu.openbusiness.controller; import com.muyu.cloud.common.many.datasource.holder.DynamicDataSourceHolder; import com.muyu.common.core.domain.Result; @@ -13,14 +13,14 @@ import com.muyu.common.security.utils.SecurityUtils; import com.muyu.common.system.domain.SysDept; import com.muyu.common.system.domain.SysUser; import com.muyu.common.system.remote.RemoteUserService; -import com.muyu.system.saas.service.SysUserService; - -import javax.annotation.Resource; +import com.muyu.openbusiness.service.SysUserService; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.ObjectUtils; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; -import lombok.extern.slf4j.Slf4j; + +import javax.annotation.Resource; /** @@ -101,4 +101,6 @@ public class SysUserController extends BaseController { userService.insertUserRole(user); return remoteUserService.addUser(user); } + + } diff --git a/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/controller/WarnLogsController.java b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/controller/WarnLogsController.java similarity index 82% rename from cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/controller/WarnLogsController.java rename to cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/controller/WarnLogsController.java index 3ce89ca..d855362 100644 --- a/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/controller/WarnLogsController.java +++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/controller/WarnLogsController.java @@ -1,25 +1,19 @@ -package com.muyu.warning.controller; +package com.muyu.openbusiness.controller; -import java.util.Arrays; -import java.util.List; -import jakarta.servlet.http.HttpServletResponse; -import javax.annotation.Resource; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; -import com.muyu.common.security.annotation.RequiresPermissions; -import com.muyu.warning.domain.WarnLogs; -import com.muyu.warning.service.IWarnLogsService; -import com.muyu.common.core.web.controller.BaseController; import com.muyu.common.core.domain.Result; import com.muyu.common.core.utils.poi.ExcelUtil; -import org.springframework.validation.annotation.Validated; +import com.muyu.common.core.web.controller.BaseController; import com.muyu.common.core.web.page.TableDataInfo; +import com.muyu.common.security.annotation.RequiresPermissions; +import com.muyu.openbusiness.domain.WarnLogs; +import com.muyu.openbusiness.service.IWarnLogsService; +import jakarta.servlet.http.HttpServletResponse; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.Arrays; +import java.util.List; /** * 预警日志Controller diff --git a/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/controller/WarnRuleController.java b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/controller/WarnRuleController.java similarity index 78% rename from cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/controller/WarnRuleController.java rename to cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/controller/WarnRuleController.java index f549518..eef03a2 100644 --- a/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/controller/WarnRuleController.java +++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/controller/WarnRuleController.java @@ -1,33 +1,20 @@ -package com.muyu.warning.controller; +package com.muyu.openbusiness.controller; -import java.util.Arrays; -import java.util.List; - -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.github.yulichang.query.MPJLambdaQueryWrapper; -import com.muyu.warning.domain.WarnRule; -import com.muyu.warning.domain.WarnRuleDTO; -import com.muyu.warning.domain.WarnStrategy; -import jakarta.servlet.http.HttpServletResponse; - -import javax.annotation.Resource; - -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; -import com.muyu.common.security.annotation.RequiresPermissions; -import com.muyu.warning.domain.WarnRule; -import com.muyu.warning.service.IWarnRuleService; -import com.muyu.common.core.web.controller.BaseController; import com.muyu.common.core.domain.Result; import com.muyu.common.core.utils.poi.ExcelUtil; -import org.springframework.validation.annotation.Validated; +import com.muyu.common.core.web.controller.BaseController; import com.muyu.common.core.web.page.TableDataInfo; +import com.muyu.common.security.annotation.RequiresPermissions; +import com.muyu.openbusiness.domain.WarnRule; +import com.muyu.openbusiness.domain.WarnRuleDTO; +import com.muyu.openbusiness.service.IWarnRuleService; +import jakarta.servlet.http.HttpServletResponse; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.Arrays; +import java.util.List; /** * 预警规则Controller diff --git a/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/controller/WarnRulesController.java b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/controller/WarnRulesController.java similarity index 85% rename from cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/controller/WarnRulesController.java rename to cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/controller/WarnRulesController.java index 8a87908..5bbae15 100644 --- a/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/controller/WarnRulesController.java +++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/controller/WarnRulesController.java @@ -1,10 +1,8 @@ -package com.muyu.warning.controller; +package com.muyu.openbusiness.controller; import com.muyu.common.core.domain.Result; -import com.muyu.warning.domain.WarnRule; -import com.muyu.warning.domain.WarnRuleDTO; -import com.muyu.warning.service.IWarRulesService; -import lombok.val; +import com.muyu.openbusiness.domain.WarnRuleDTO; +import com.muyu.openbusiness.service.IWarRulesService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; diff --git a/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/controller/WarnStrategyController.java b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/controller/WarnStrategyController.java similarity index 82% rename from cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/controller/WarnStrategyController.java rename to cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/controller/WarnStrategyController.java index 4f1b51f..01e38aa 100644 --- a/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/controller/WarnStrategyController.java +++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/controller/WarnStrategyController.java @@ -1,28 +1,19 @@ -package com.muyu.warning.controller; +package com.muyu.openbusiness.controller; -import java.util.Arrays; -import java.util.List; - -import jakarta.servlet.http.HttpServletResponse; - -import javax.annotation.Resource; - -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; -import com.muyu.common.security.annotation.RequiresPermissions; -import com.muyu.warning.domain.WarnStrategy; -import com.muyu.warning.service.IWarnStrategyService; -import com.muyu.common.core.web.controller.BaseController; import com.muyu.common.core.domain.Result; import com.muyu.common.core.utils.poi.ExcelUtil; -import org.springframework.validation.annotation.Validated; +import com.muyu.common.core.web.controller.BaseController; import com.muyu.common.core.web.page.TableDataInfo; +import com.muyu.common.security.annotation.RequiresPermissions; +import com.muyu.openbusiness.domain.WarnStrategy; +import com.muyu.openbusiness.service.IWarnStrategyService; +import jakarta.servlet.http.HttpServletResponse; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.Arrays; +import java.util.List; /** * 预警策略Controller diff --git a/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/controller/WxTestController.java b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/controller/WxTestController.java similarity index 95% rename from cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/controller/WxTestController.java rename to cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/controller/WxTestController.java index b512b94..2b38e67 100644 --- a/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/controller/WxTestController.java +++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/controller/WxTestController.java @@ -1,14 +1,16 @@ -package com.muyu.warning.controller; +package com.muyu.openbusiness.controller; -import com.muyu.warning.wx.Message; -import com.muyu.warning.message.Article; -import com.muyu.warning.message.NewMessage; -import com.muyu.warning.util.TokenUtil; +import com.muyu.openbusiness.message.Article; +import com.muyu.openbusiness.message.NewMessage; +import com.muyu.openbusiness.util.TokenUtil; +import com.muyu.openbusiness.wx.Message; + import com.thoughtworks.xstream.XStream; import io.micrometer.common.util.StringUtils; import jakarta.servlet.ServletInputStream; import jakarta.servlet.http.HttpServletRequest; + import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.Element; @@ -24,6 +26,7 @@ import java.security.NoSuchAlgorithmException; import java.util.*; /** + * 微信公众号 * @Author: Chen * @name:GetWxController */ diff --git a/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/mapper/BreakDownMapper.java b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/mapper/BreakDownMapper.java similarity index 79% rename from cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/mapper/BreakDownMapper.java rename to cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/mapper/BreakDownMapper.java index 8f93626..34a710f 100644 --- a/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/mapper/BreakDownMapper.java +++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/mapper/BreakDownMapper.java @@ -1,16 +1,16 @@ -package com.muyu.breakdown.mapper; +package com.muyu.openbusiness.mapper; import com.github.yulichang.base.MPJBaseMapper; -import com.muyu.breakdown.domain.BreakDown; +import com.muyu.openbusiness.domain.BreakDown; import org.apache.ibatis.annotations.Mapper; /** + * @author Lenovo * @ Tool:IntelliJ IDEA * @ Author:CHX * @ Date:2024-09-17-15:14 * @ Version:1.0 * @ Description:故障管理持久层 - * @author Lenovo */ @Mapper public interface BreakDownMapper extends MPJBaseMapper { diff --git a/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/mapper/FaultLogMapper.java b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/mapper/FaultLogMapper.java similarity index 71% rename from cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/mapper/FaultLogMapper.java rename to cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/mapper/FaultLogMapper.java index d5f1d7e..271fc22 100644 --- a/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/mapper/FaultLogMapper.java +++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/mapper/FaultLogMapper.java @@ -1,8 +1,8 @@ -package com.muyu.breakdown.mapper; +package com.muyu.openbusiness.mapper; -import java.util.List; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.muyu.breakdown.domain.FaultLog; + +import com.muyu.openbusiness.domain.FaultLog; import org.apache.ibatis.annotations.Mapper; /** diff --git a/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/mapper/StationMessageMapper.java b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/mapper/StationMessageMapper.java similarity index 57% rename from cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/mapper/StationMessageMapper.java rename to cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/mapper/StationMessageMapper.java index 450ebb4..89219de 100644 --- a/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/mapper/StationMessageMapper.java +++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/mapper/StationMessageMapper.java @@ -1,8 +1,7 @@ -package com.muyu.breakdown.mapper; +package com.muyu.openbusiness.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.github.yulichang.base.MPJBaseMapper; -import com.muyu.breakdown.domain.Messages; +import com.muyu.openbusiness.domain.Messages; import org.apache.ibatis.annotations.Mapper; /** @@ -14,5 +13,5 @@ import org.apache.ibatis.annotations.Mapper; * @author Lenovo */ @Mapper -public interface StationMessageMapper extends MPJBaseMapper { +public interface StationMessageMapper extends BaseMapper { } diff --git a/cloud-modules/cloud-modules-carmanage/src/main/java/com/muyu/car/mapper/SysCarMapper.java b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/mapper/SysCarMapper.java similarity index 73% rename from cloud-modules/cloud-modules-carmanage/src/main/java/com/muyu/car/mapper/SysCarMapper.java rename to cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/mapper/SysCarMapper.java index 1711c48..78b5bdf 100644 --- a/cloud-modules/cloud-modules-carmanage/src/main/java/com/muyu/car/mapper/SysCarMapper.java +++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/mapper/SysCarMapper.java @@ -1,8 +1,7 @@ -package com.muyu.car.mapper; +package com.muyu.openbusiness.mapper; -import java.util.List; -import com.muyu.car.domain.SysCar; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.muyu.openbusiness.domain.SysCar; import org.apache.ibatis.annotations.Mapper; /** @@ -11,6 +10,7 @@ import org.apache.ibatis.annotations.Mapper; * @author muyu * @date 2024-09-17 */ +@Mapper public interface SysCarMapper extends BaseMapper{ } diff --git a/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/mapper/SysCarMessageMapper.java b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/mapper/SysCarMessageMapper.java similarity index 52% rename from cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/mapper/SysCarMessageMapper.java rename to cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/mapper/SysCarMessageMapper.java index 5629f33..fcd3a4b 100644 --- a/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/mapper/SysCarMessageMapper.java +++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/mapper/SysCarMessageMapper.java @@ -1,7 +1,8 @@ -package com.muyu.breakdown.mapper; +package com.muyu.openbusiness.mapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.github.yulichang.base.MPJBaseMapper; -import com.muyu.breakdown.domain.SysCarMessage; +import com.muyu.openbusiness.domain.SysCarMessage; import org.apache.ibatis.annotations.Mapper; /** @@ -12,6 +13,7 @@ import org.apache.ibatis.annotations.Mapper; * @ Description: * @author Lenovo */ + @Mapper -public interface SysCarMessageMapper extends MPJBaseMapper { +public interface SysCarMessageMapper extends BaseMapper { } diff --git a/cloud-modules/cloud-modules-car/src/main/java/com/muyu/carrail/mapper/SysCorpuscleMapper.java b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/mapper/SysCorpuscleMapper.java similarity index 79% rename from cloud-modules/cloud-modules-car/src/main/java/com/muyu/carrail/mapper/SysCorpuscleMapper.java rename to cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/mapper/SysCorpuscleMapper.java index b2cb32e..ab2062e 100644 --- a/cloud-modules/cloud-modules-car/src/main/java/com/muyu/carrail/mapper/SysCorpuscleMapper.java +++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/mapper/SysCorpuscleMapper.java @@ -1,9 +1,13 @@ -package com.muyu.carrail.mapper; + + + +package com.muyu.openbusiness.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.muyu.openbusiness.domain.SysCorpuscle; +import org.apache.ibatis.annotations.Mapper; import java.util.List; -import com.muyu.carrail.domain.SysCorpuscle; -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import org.apache.ibatis.annotations.Mapper; /** * 电子围栏Mapper接口 @@ -11,7 +15,7 @@ import org.apache.ibatis.annotations.Mapper; * @author muyu * @date 2024-09-17 */ - +@Mapper public interface SysCorpuscleMapper extends BaseMapper{ List selectCarRail(SysCorpuscle sysCorpuscle); diff --git a/cloud-modules/cloud-modules-car/src/main/java/com/muyu/carrail/mapper/SysFenceMapper.java b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/mapper/SysFenceMapper.java similarity index 72% rename from cloud-modules/cloud-modules-car/src/main/java/com/muyu/carrail/mapper/SysFenceMapper.java rename to cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/mapper/SysFenceMapper.java index 725c176..43cdd56 100644 --- a/cloud-modules/cloud-modules-car/src/main/java/com/muyu/carrail/mapper/SysFenceMapper.java +++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/mapper/SysFenceMapper.java @@ -1,8 +1,8 @@ -package com.muyu.carrail.mapper; +package com.muyu.openbusiness.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.muyu.carrail.domain.SysFence; +import com.muyu.openbusiness.domain.SysFence; import org.apache.ibatis.annotations.Mapper; /** @@ -11,6 +11,7 @@ import org.apache.ibatis.annotations.Mapper; * @author muyu * @date 2024-09-17 */ +@Mapper public interface SysFenceMapper extends BaseMapper{ } diff --git a/cloud-modules/cloud-modules-carmanage/src/main/java/com/muyu/car/mapper/SysMessageTypeMapper.java b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/mapper/SysMessageTypeMapper.java similarity index 73% rename from cloud-modules/cloud-modules-carmanage/src/main/java/com/muyu/car/mapper/SysMessageTypeMapper.java rename to cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/mapper/SysMessageTypeMapper.java index 2fec6bb..8b23c58 100644 --- a/cloud-modules/cloud-modules-carmanage/src/main/java/com/muyu/car/mapper/SysMessageTypeMapper.java +++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/mapper/SysMessageTypeMapper.java @@ -1,9 +1,7 @@ -package com.muyu.car.mapper; - -import java.util.List; +package com.muyu.openbusiness.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.muyu.car.domain.SysMessageType; +import com.muyu.openbusiness.domain.SysMessageType; import org.apache.ibatis.annotations.Mapper; /** diff --git a/cloud-modules/cloud-modules-system-saas/src/main/java/com/muyu/system/saas/mapper/SysUserMapper.java b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/mapper/SysUserMapper.java similarity index 93% rename from cloud-modules/cloud-modules-system-saas/src/main/java/com/muyu/system/saas/mapper/SysUserMapper.java rename to cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/mapper/SysUserMapper.java index 62c3965..235d8d5 100644 --- a/cloud-modules/cloud-modules-system-saas/src/main/java/com/muyu/system/saas/mapper/SysUserMapper.java +++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/mapper/SysUserMapper.java @@ -1,10 +1,10 @@ -package com.muyu.system.saas.mapper; +package com.muyu.openbusiness.mapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.muyu.common.system.domain.SysUser; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Repository; -import com.baomidou.mybatisplus.core.mapper.BaseMapper; /** * @Author: 胡杨 diff --git a/cloud-modules/cloud-modules-system-saas/src/main/java/com/muyu/system/saas/mapper/SysUserPostMapper.java b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/mapper/SysUserPostMapper.java similarity index 96% rename from cloud-modules/cloud-modules-system-saas/src/main/java/com/muyu/system/saas/mapper/SysUserPostMapper.java rename to cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/mapper/SysUserPostMapper.java index 806f76d..f2a9e01 100644 --- a/cloud-modules/cloud-modules-system-saas/src/main/java/com/muyu/system/saas/mapper/SysUserPostMapper.java +++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/mapper/SysUserPostMapper.java @@ -1,4 +1,4 @@ -package com.muyu.system.saas.mapper; +package com.muyu.openbusiness.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.muyu.common.system.domain.SysUserPost; diff --git a/cloud-modules/cloud-modules-system-saas/src/main/java/com/muyu/system/saas/mapper/SysUserRoleMapper.java b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/mapper/SysUserRoleMapper.java similarity index 97% rename from cloud-modules/cloud-modules-system-saas/src/main/java/com/muyu/system/saas/mapper/SysUserRoleMapper.java rename to cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/mapper/SysUserRoleMapper.java index d5c8072..5b3aa11 100644 --- a/cloud-modules/cloud-modules-system-saas/src/main/java/com/muyu/system/saas/mapper/SysUserRoleMapper.java +++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/mapper/SysUserRoleMapper.java @@ -1,4 +1,4 @@ -package com.muyu.system.saas.mapper; +package com.muyu.openbusiness.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.muyu.common.system.domain.SysUserRole; diff --git a/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/mapper/WarnLogsMapper.java b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/mapper/WarnLogsMapper.java similarity index 74% rename from cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/mapper/WarnLogsMapper.java rename to cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/mapper/WarnLogsMapper.java index 166720f..5c2899f 100644 --- a/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/mapper/WarnLogsMapper.java +++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/mapper/WarnLogsMapper.java @@ -1,7 +1,7 @@ -package com.muyu.warning.mapper; +package com.muyu.openbusiness.mapper; -import com.muyu.warning.domain.WarnLogs; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.muyu.openbusiness.domain.WarnLogs; import org.apache.ibatis.annotations.Mapper; /** diff --git a/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/mapper/WarnRuleMapper.java b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/mapper/WarnRuleMapper.java similarity index 55% rename from cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/mapper/WarnRuleMapper.java rename to cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/mapper/WarnRuleMapper.java index e3d67d3..2e068fc 100644 --- a/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/mapper/WarnRuleMapper.java +++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/mapper/WarnRuleMapper.java @@ -1,10 +1,7 @@ -package com.muyu.warning.mapper; +package com.muyu.openbusiness.mapper; -import com.github.yulichang.base.MPJBaseMapper; -import com.muyu.warning.domain.WarnRule; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.muyu.warning.domain.WarnRule; -import com.muyu.warning.domain.WarnRuleDTO; +import com.muyu.openbusiness.domain.WarnRuleDTO; import org.apache.ibatis.annotations.Mapper; /** diff --git a/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/mapper/WarnRulesMapper.java b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/mapper/WarnRulesMapper.java similarity index 86% rename from cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/mapper/WarnRulesMapper.java rename to cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/mapper/WarnRulesMapper.java index 61a6d1a..9ae3362 100644 --- a/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/mapper/WarnRulesMapper.java +++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/mapper/WarnRulesMapper.java @@ -1,7 +1,7 @@ -package com.muyu.warning.mapper; +package com.muyu.openbusiness.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.muyu.warning.domain.WarnRuleDTO; +import com.muyu.openbusiness.domain.WarnRuleDTO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Select; diff --git a/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/mapper/WarnStrategyMapper.java b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/mapper/WarnStrategyMapper.java similarity index 74% rename from cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/mapper/WarnStrategyMapper.java rename to cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/mapper/WarnStrategyMapper.java index e9bd988..1d3e625 100644 --- a/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/mapper/WarnStrategyMapper.java +++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/mapper/WarnStrategyMapper.java @@ -1,7 +1,7 @@ -package com.muyu.warning.mapper; +package com.muyu.openbusiness.mapper; -import com.muyu.warning.domain.WarnStrategy; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.muyu.openbusiness.domain.WarnStrategy; import org.apache.ibatis.annotations.Mapper; /** diff --git a/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/message/Article.java b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/message/Article.java similarity index 93% rename from cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/message/Article.java rename to cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/message/Article.java index 9c195ce..1872201 100644 --- a/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/message/Article.java +++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/message/Article.java @@ -1,4 +1,4 @@ -package com.muyu.warning.message; +package com.muyu.openbusiness.message; import com.thoughtworks.xstream.annotations.XStreamAlias; import lombok.AllArgsConstructor; diff --git a/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/message/NewMessage.java b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/message/NewMessage.java similarity index 95% rename from cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/message/NewMessage.java rename to cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/message/NewMessage.java index a8b5dbf..5bac5bf 100644 --- a/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/message/NewMessage.java +++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/message/NewMessage.java @@ -1,4 +1,4 @@ -package com.muyu.warning.message; +package com.muyu.openbusiness.message; import com.thoughtworks.xstream.annotations.XStreamAlias; import lombok.AllArgsConstructor; diff --git a/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/service/BreakDownService.java b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/service/BreakDownService.java similarity index 87% rename from cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/service/BreakDownService.java rename to cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/service/BreakDownService.java index 325424c..aef625a 100644 --- a/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/service/BreakDownService.java +++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/service/BreakDownService.java @@ -1,9 +1,8 @@ -package com.muyu.breakdown.service; +package com.muyu.openbusiness.service; import com.baomidou.mybatisplus.extension.service.IService; -import com.muyu.breakdown.domain.BreakDown; -import com.muyu.breakdown.domain.MessageMap; - +import com.muyu.openbusiness.domain.BreakDown; +import com.muyu.openbusiness.domain.MessageMap; import java.util.List; import java.util.Map; diff --git a/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/service/IFaultLogService.java b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/service/IFaultLogService.java similarity index 89% rename from cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/service/IFaultLogService.java rename to cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/service/IFaultLogService.java index e6ef523..289b114 100644 --- a/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/service/IFaultLogService.java +++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/service/IFaultLogService.java @@ -1,8 +1,11 @@ -package com.muyu.breakdown.service; + + +package com.muyu.openbusiness.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.muyu.openbusiness.domain.FaultLog; import java.util.List; -import com.baomidou.mybatisplus.extension.service.IService; -import com.muyu.breakdown.domain.FaultLog; /** * 故障日志Service接口 diff --git a/cloud-modules/cloud-modules-carmanage/src/main/java/com/muyu/car/service/ISysCarMessageService.java b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/service/ISysCarMessageService.java similarity index 83% rename from cloud-modules/cloud-modules-carmanage/src/main/java/com/muyu/car/service/ISysCarMessageService.java rename to cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/service/ISysCarMessageService.java index 5c6c792..e520847 100644 --- a/cloud-modules/cloud-modules-carmanage/src/main/java/com/muyu/car/service/ISysCarMessageService.java +++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/service/ISysCarMessageService.java @@ -1,10 +1,9 @@ -package com.muyu.car.service; - -import java.util.List; +package com.muyu.openbusiness.service; import com.baomidou.mybatisplus.extension.service.IService; -import com.muyu.car.domain.SysCarMessage; -import com.muyu.car.domain.VO.SysMessageVO; +import com.muyu.openbusiness.domain.SysCarMessage; + +import java.util.List; /** * 车辆报文记录Service接口 @@ -13,8 +12,6 @@ import com.muyu.car.domain.VO.SysMessageVO; * @date 2024-09-18 */ public interface ISysCarMessageService extends IService { - - ListdobList(SysMessageVO sysMessageVO); /** * 精确查询车辆报文记录 * diff --git a/cloud-modules/cloud-modules-carmanage/src/main/java/com/muyu/car/service/ISysCarService.java b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/service/ISysCarService.java similarity index 90% rename from cloud-modules/cloud-modules-carmanage/src/main/java/com/muyu/car/service/ISysCarService.java rename to cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/service/ISysCarService.java index 3b010ff..c5f39cf 100644 --- a/cloud-modules/cloud-modules-carmanage/src/main/java/com/muyu/car/service/ISysCarService.java +++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/service/ISysCarService.java @@ -1,8 +1,9 @@ -package com.muyu.car.service; +package com.muyu.openbusiness.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.muyu.openbusiness.domain.SysCar; import java.util.List; -import com.muyu.car.domain.SysCar; -import com.baomidou.mybatisplus.extension.service.IService; /** * 车辆基础信息Service接口 diff --git a/cloud-modules/cloud-modules-car/src/main/java/com/muyu/carrail/service/ISysCorpuscleService.java b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/service/ISysCorpuscleService.java similarity index 84% rename from cloud-modules/cloud-modules-car/src/main/java/com/muyu/carrail/service/ISysCorpuscleService.java rename to cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/service/ISysCorpuscleService.java index 276b2d4..77215ad 100644 --- a/cloud-modules/cloud-modules-car/src/main/java/com/muyu/carrail/service/ISysCorpuscleService.java +++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/service/ISysCorpuscleService.java @@ -1,8 +1,9 @@ -package com.muyu.carrail.service; +package com.muyu.openbusiness.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.muyu.openbusiness.domain.SysCorpuscle; import java.util.List; -import com.muyu.carrail.domain.SysCorpuscle; -import com.baomidou.mybatisplus.extension.service.IService; /** * 电子围栏Service接口 diff --git a/cloud-modules/cloud-modules-car/src/main/java/com/muyu/carrail/service/ISysFenceService.java b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/service/ISysFenceService.java similarity index 89% rename from cloud-modules/cloud-modules-car/src/main/java/com/muyu/carrail/service/ISysFenceService.java rename to cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/service/ISysFenceService.java index 7ba33a8..626c197 100644 --- a/cloud-modules/cloud-modules-car/src/main/java/com/muyu/carrail/service/ISysFenceService.java +++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/service/ISysFenceService.java @@ -1,9 +1,9 @@ -package com.muyu.carrail.service; - -import java.util.List; +package com.muyu.openbusiness.service; import com.baomidou.mybatisplus.extension.service.IService; -import com.muyu.carrail.domain.SysFence; +import com.muyu.openbusiness.domain.SysFence; + +import java.util.List; /** * 围栏组Service接口 diff --git a/cloud-modules/cloud-modules-carmanage/src/main/java/com/muyu/car/service/ISysMessageTypeService.java b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/service/ISysMessageTypeService.java similarity index 90% rename from cloud-modules/cloud-modules-carmanage/src/main/java/com/muyu/car/service/ISysMessageTypeService.java rename to cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/service/ISysMessageTypeService.java index e744241..e7a7db9 100644 --- a/cloud-modules/cloud-modules-carmanage/src/main/java/com/muyu/car/service/ISysMessageTypeService.java +++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/service/ISysMessageTypeService.java @@ -1,9 +1,9 @@ -package com.muyu.car.service; - -import java.util.List; +package com.muyu.openbusiness.service; import com.baomidou.mybatisplus.extension.service.IService; -import com.muyu.car.domain.SysMessageType; +import com.muyu.openbusiness.domain.SysMessageType; + +import java.util.List; /** * 车辆报文类型Service接口 diff --git a/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/service/IWarRulesService.java b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/service/IWarRulesService.java similarity index 70% rename from cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/service/IWarRulesService.java rename to cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/service/IWarRulesService.java index 25f71e8..347d7b0 100644 --- a/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/service/IWarRulesService.java +++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/service/IWarRulesService.java @@ -1,8 +1,7 @@ -package com.muyu.warning.service; +package com.muyu.openbusiness.service; import com.baomidou.mybatisplus.extension.service.IService; -import com.muyu.warning.domain.WarnRule; -import com.muyu.warning.domain.WarnRuleDTO; +import com.muyu.openbusiness.domain.WarnRuleDTO; import java.util.List; diff --git a/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/service/IWarnLogsService.java b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/service/IWarnLogsService.java similarity index 89% rename from cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/service/IWarnLogsService.java rename to cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/service/IWarnLogsService.java index 1f61aa4..a0ba984 100644 --- a/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/service/IWarnLogsService.java +++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/service/IWarnLogsService.java @@ -1,8 +1,9 @@ -package com.muyu.warning.service; +package com.muyu.openbusiness.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.muyu.openbusiness.domain.WarnLogs; import java.util.List; -import com.muyu.warning.domain.WarnLogs; -import com.baomidou.mybatisplus.extension.service.IService; /** * 预警日志Service接口 diff --git a/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/service/IWarnRuleService.java b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/service/IWarnRuleService.java similarity index 85% rename from cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/service/IWarnRuleService.java rename to cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/service/IWarnRuleService.java index ef327d0..7be076b 100644 --- a/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/service/IWarnRuleService.java +++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/service/IWarnRuleService.java @@ -1,8 +1,7 @@ -package com.muyu.warning.service; +package com.muyu.openbusiness.service; import com.baomidou.mybatisplus.extension.service.IService; -import com.github.yulichang.base.MPJBaseService; -import com.muyu.warning.domain.WarnRuleDTO; +import com.muyu.openbusiness.domain.WarnRuleDTO; import java.util.List; diff --git a/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/service/IWarnStrategyService.java b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/service/IWarnStrategyService.java similarity index 89% rename from cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/service/IWarnStrategyService.java rename to cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/service/IWarnStrategyService.java index d3fec08..1307ee1 100644 --- a/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/service/IWarnStrategyService.java +++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/service/IWarnStrategyService.java @@ -1,8 +1,9 @@ -package com.muyu.warning.service; +package com.muyu.openbusiness.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.muyu.openbusiness.domain.WarnStrategy; import java.util.List; -import com.muyu.warning.domain.WarnStrategy; -import com.baomidou.mybatisplus.extension.service.IService; /** * 预警策略Service接口 diff --git a/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/service/StationMessageService.java b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/service/StationMessageService.java similarity index 80% rename from cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/service/StationMessageService.java rename to cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/service/StationMessageService.java index 5af194c..a8b68df 100644 --- a/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/service/StationMessageService.java +++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/service/StationMessageService.java @@ -1,7 +1,8 @@ -package com.muyu.breakdown.service; + +package com.muyu.openbusiness.service; import com.baomidou.mybatisplus.extension.service.IService; -import com.muyu.breakdown.domain.Messages; +import com.muyu.openbusiness.domain.Messages; import java.util.List; diff --git a/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/service/SysCarMessageService.java b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/service/SysCarMessageService.java new file mode 100644 index 0000000..7c13a21 --- /dev/null +++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/service/SysCarMessageService.java @@ -0,0 +1,15 @@ +package com.muyu.openbusiness.service;//package com.muyu.openbusiness.service; +// +//import com.baomidou.mybatisplus.extension.service.IService; +//import com.muyu.openbusiness.domain.SysCarMessage; +// +///** +// * @ Tool:IntelliJ IDEA +// * @ Author:CHX +// * @ Date:2024-09-20-15:42 +// * @ Version:1.0 +// * @ Description: +// * @author Lenovo +// */ +//public interface SysCarMessageService extends IService { +//} diff --git a/cloud-modules/cloud-modules-system-saas/src/main/java/com/muyu/system/saas/service/SysUserService.java b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/service/SysUserService.java similarity index 95% rename from cloud-modules/cloud-modules-system-saas/src/main/java/com/muyu/system/saas/service/SysUserService.java rename to cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/service/SysUserService.java index 4ee3d58..1eb66cf 100644 --- a/cloud-modules/cloud-modules-system-saas/src/main/java/com/muyu/system/saas/service/SysUserService.java +++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/service/SysUserService.java @@ -1,4 +1,4 @@ -package com.muyu.system.saas.service; +package com.muyu.openbusiness.service; import com.baomidou.mybatisplus.extension.service.IService; diff --git a/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/service/impl/BreakDownServiceImpl.java b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/service/impl/BreakDownServiceImpl.java similarity index 82% rename from cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/service/impl/BreakDownServiceImpl.java rename to cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/service/impl/BreakDownServiceImpl.java index 62c0085..78e2ac2 100644 --- a/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/service/impl/BreakDownServiceImpl.java +++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/service/impl/BreakDownServiceImpl.java @@ -1,22 +1,20 @@ -package com.muyu.breakdown.service.impl; +package com.muyu.openbusiness.service.impl; import cn.hutool.core.lang.Assert; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.muyu.breakdown.domain.BreakDown; -import com.muyu.breakdown.domain.MessageMap; -import com.muyu.breakdown.domain.SysCarMessage; -import com.muyu.breakdown.mapper.BreakDownMapper; -import com.muyu.breakdown.service.BreakDownService; -import com.muyu.breakdown.service.SysCarMessageService; + import com.muyu.common.core.utils.StringUtils; -import org.springframework.amqp.rabbit.annotation.RabbitListener; + +import com.muyu.openbusiness.domain.BreakDown; +import com.muyu.openbusiness.domain.MessageMap; +import com.muyu.openbusiness.mapper.BreakDownMapper; +import com.muyu.openbusiness.service.BreakDownService; +import com.muyu.openbusiness.service.ISysCarMessageService; import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import java.util.HashMap; import java.util.List; import java.util.Map; @@ -32,7 +30,7 @@ import java.util.Map; public class BreakDownServiceImpl extends ServiceImpl implements BreakDownService { @Autowired - private SysCarMessageService sysCarMessageService; + private ISysCarMessageService sysCarMessageService; @Autowired private RabbitTemplate rabbitTemplate; /** diff --git a/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/service/impl/FaultLogServiceImpl.java b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/service/impl/FaultLogServiceImpl.java similarity index 91% rename from cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/service/impl/FaultLogServiceImpl.java rename to cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/service/impl/FaultLogServiceImpl.java index 7124779..f92c0d7 100644 --- a/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/service/impl/FaultLogServiceImpl.java +++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/service/impl/FaultLogServiceImpl.java @@ -1,11 +1,11 @@ -package com.muyu.breakdown.service.impl; +package com.muyu.openbusiness.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.muyu.breakdown.domain.FaultLog; -import com.muyu.breakdown.mapper.FaultLogMapper; -import com.muyu.breakdown.service.IFaultLogService; import com.muyu.common.core.utils.StringUtils; +import com.muyu.openbusiness.domain.FaultLog; +import com.muyu.openbusiness.mapper.FaultLogMapper; +import com.muyu.openbusiness.service.IFaultLogService; import org.springframework.stereotype.Service; import org.springframework.util.Assert; diff --git a/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/service/impl/StationMessageServiceImpl.java b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/service/impl/StationMessageServiceImpl.java similarity index 72% rename from cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/service/impl/StationMessageServiceImpl.java rename to cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/service/impl/StationMessageServiceImpl.java index 462db1f..e9a13ec 100644 --- a/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/service/impl/StationMessageServiceImpl.java +++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/service/impl/StationMessageServiceImpl.java @@ -1,10 +1,11 @@ -package com.muyu.breakdown.service.impl; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; + +package com.muyu.openbusiness.service.impl; + import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.muyu.breakdown.domain.Messages; -import com.muyu.breakdown.mapper.StationMessageMapper; -import com.muyu.breakdown.service.StationMessageService; +import com.muyu.openbusiness.domain.Messages; +import com.muyu.openbusiness.mapper.StationMessageMapper; +import com.muyu.openbusiness.service.StationMessageService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; diff --git a/cloud-modules/cloud-modules-carmanage/src/main/java/com/muyu/car/service/impl/SysCarMessageServiceImpl.java b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/service/impl/SysCarMessageServiceImpl.java similarity index 76% rename from cloud-modules/cloud-modules-carmanage/src/main/java/com/muyu/car/service/impl/SysCarMessageServiceImpl.java rename to cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/service/impl/SysCarMessageServiceImpl.java index 30568a5..3bca86c 100644 --- a/cloud-modules/cloud-modules-carmanage/src/main/java/com/muyu/car/service/impl/SysCarMessageServiceImpl.java +++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/service/impl/SysCarMessageServiceImpl.java @@ -1,35 +1,34 @@ -package com.muyu.car.service.impl; +package com.muyu.openbusiness.service.impl; -import java.util.List; - -import com.muyu.car.domain.SysCarMessage; -import com.muyu.car.domain.VO.SysMessageVO; -import com.muyu.car.mapper.SysCarMessageMapper; -import com.muyu.car.service.ISysCarMessageService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.muyu.common.core.utils.StringUtils; +import com.muyu.openbusiness.config.SnowflakeIdWorker; +import com.muyu.openbusiness.domain.SysCarMessage; +import com.muyu.openbusiness.mapper.SysCarMessageMapper; +import com.muyu.openbusiness.service.ISysCarMessageService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.stereotype.Service; import org.springframework.util.Assert; +import java.util.List; + /** * 车辆报文记录Service业务层处理 * * @author muyu * @date 2024-09-18 */ + + + + @Service public class SysCarMessageServiceImpl extends ServiceImpl implements ISysCarMessageService { - @Autowired - private SysCarMessageMapper mapper; - @Override - public List dobList(SysMessageVO sysMessageVO) { - return mapper.dobList(sysMessageVO); - } /** * 精确查询车辆报文记录 @@ -37,12 +36,17 @@ public class SysCarMessageServiceImpl * @param id 车辆报文记录主键 * @return 车辆报文记录 */ + + @Autowired + RedisTemplate + redisTemplate; @Override public SysCarMessage selectSysCarMessageById(Long id) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); Assert.notNull(id, "id不可为空"); queryWrapper.eq(SysCarMessage::getId, id); + return this.getOne(queryWrapper); } @@ -63,6 +67,15 @@ public class SysCarMessageServiceImpl if (StringUtils.isNotEmpty(sysCarMessage.getMessageType())){ queryWrapper.eq(SysCarMessage::getMessageType, sysCarMessage.getMessageType()); } + + //生成一个时间唯一戳 + SnowflakeIdWorker snowMaker = new SnowflakeIdWorker(); + for (int i = 0; i < 100; i++) { + long id = snowMaker.nextId(); + System.out.println(id); + + } + redisTemplate.opsForValue().set("id",list(queryWrapper)); return this.list(queryWrapper); } diff --git a/cloud-modules/cloud-modules-carmanage/src/main/java/com/muyu/car/service/impl/SysCarServiceImpl.java b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/service/impl/SysCarServiceImpl.java similarity index 79% rename from cloud-modules/cloud-modules-carmanage/src/main/java/com/muyu/car/service/impl/SysCarServiceImpl.java rename to cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/service/impl/SysCarServiceImpl.java index 309faaf..472fe36 100644 --- a/cloud-modules/cloud-modules-carmanage/src/main/java/com/muyu/car/service/impl/SysCarServiceImpl.java +++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/service/impl/SysCarServiceImpl.java @@ -1,16 +1,19 @@ -package com.muyu.car.service.impl; +package com.muyu.openbusiness.service.impl; -import java.util.List; -import com.muyu.common.core.utils.DateUtils; -import org.springframework.stereotype.Service; -import com.muyu.car.mapper.SysCarMapper; -import com.muyu.car.domain.SysCar; -import com.muyu.car.service.ISysCarService; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.muyu.common.core.utils.StringUtils; +import com.muyu.openbusiness.config.SnowflakeIdWorker; +import com.muyu.openbusiness.domain.SysCar; +import com.muyu.openbusiness.mapper.SysCarMapper; +import com.muyu.openbusiness.service.ISysCarService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.stereotype.Service; import org.springframework.util.Assert; +import java.util.List; + /** * 车辆基础信息Service业务层处理 * @@ -28,6 +31,9 @@ public class SysCarServiceImpl * @param id 车辆基础信息主键 * @return 车辆基础信息 */ + + @Autowired + RedisTemplate redisTemplate; @Override public SysCar selectSysCarById(Long id) { @@ -72,6 +78,15 @@ public class SysCarServiceImpl if (StringUtils.isNotEmpty(sysCar.getState())){ queryWrapper.eq(SysCar::getState, sysCar.getState()); } + //生成一个时间唯一戳 + SnowflakeIdWorker snowMaker = new SnowflakeIdWorker(); + for (int i = 0; i < 100; i++) { + long id = snowMaker.nextId(); + System.out.println(id); + + } + redisTemplate.opsForValue().set("id",list(queryWrapper)); + return this.list(queryWrapper); } diff --git a/cloud-modules/cloud-modules-car/src/main/java/com/muyu/carrail/service/impl/SysCorpuscleServiceImpl.java b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/service/impl/SysCorpuscleServiceImpl.java similarity index 75% rename from cloud-modules/cloud-modules-car/src/main/java/com/muyu/carrail/service/impl/SysCorpuscleServiceImpl.java rename to cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/service/impl/SysCorpuscleServiceImpl.java index 61024fe..b892114 100644 --- a/cloud-modules/cloud-modules-car/src/main/java/com/muyu/carrail/service/impl/SysCorpuscleServiceImpl.java +++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/service/impl/SysCorpuscleServiceImpl.java @@ -1,15 +1,14 @@ -package com.muyu.carrail.service.impl; +package com.muyu.openbusiness.service.impl; -import java.util.List; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.muyu.openbusiness.domain.SysCorpuscle; +import com.muyu.openbusiness.mapper.SysCorpuscleMapper; +import com.muyu.openbusiness.service.ISysCorpuscleService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import com.muyu.carrail.mapper.SysCorpuscleMapper; -import com.muyu.carrail.domain.SysCorpuscle; -import com.muyu.carrail.service.ISysCorpuscleService; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import org.springframework.util.Assert; + +import java.util.List; /** * 电子围栏Service业务层处理 diff --git a/cloud-modules/cloud-modules-car/src/main/java/com/muyu/carrail/service/impl/SysFenceServiceImpl.java b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/service/impl/SysFenceServiceImpl.java similarity index 70% rename from cloud-modules/cloud-modules-car/src/main/java/com/muyu/carrail/service/impl/SysFenceServiceImpl.java rename to cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/service/impl/SysFenceServiceImpl.java index 5ebffcc..eddc4e0 100644 --- a/cloud-modules/cloud-modules-car/src/main/java/com/muyu/carrail/service/impl/SysFenceServiceImpl.java +++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/service/impl/SysFenceServiceImpl.java @@ -1,18 +1,18 @@ -package com.muyu.carrail.service.impl; - -import java.util.List; +package com.muyu.openbusiness.service.impl; import cn.hutool.core.lang.Assert; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.muyu.carrail.domain.SysCorpuscle; -import com.muyu.carrail.domain.SysFence; -import com.muyu.carrail.mapper.SysFenceMapper; -import com.muyu.carrail.service.ISysFenceService; - +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.muyu.openbusiness.config.SnowflakeIdWorker; +import com.muyu.openbusiness.domain.SysFence; +import com.muyu.openbusiness.mapper.SysFenceMapper; +import com.muyu.openbusiness.service.ISysFenceService; import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Service; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import java.util.List; @@ -27,7 +27,8 @@ public class SysFenceServiceImpl extends ServiceImpl implements ISysFenceService { - +@Autowired + RedisTemplate redisTemplate; @Override public SysFence selectSysFenceById(Long id) { @@ -52,6 +53,14 @@ public class SysFenceServiceImpl if (StringUtils.isNotEmpty(sysFence.getState())){ queryWrapper.eq(SysFence::getState, sysFence.getState()); } + //生成一个时间唯一戳 + SnowflakeIdWorker snowMaker = new SnowflakeIdWorker(); + for (int i = 0; i < 100; i++) { + long id = snowMaker.nextId(); + System.out.println(id); + + } + redisTemplate.opsForValue().set("id",list(queryWrapper)); return this.list(queryWrapper); } diff --git a/cloud-modules/cloud-modules-carmanage/src/main/java/com/muyu/car/service/impl/SysMessageTypeServiceImpl.java b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/service/impl/SysMessageTypeServiceImpl.java similarity index 74% rename from cloud-modules/cloud-modules-carmanage/src/main/java/com/muyu/car/service/impl/SysMessageTypeServiceImpl.java rename to cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/service/impl/SysMessageTypeServiceImpl.java index 4e428c8..1e4c316 100644 --- a/cloud-modules/cloud-modules-carmanage/src/main/java/com/muyu/car/service/impl/SysMessageTypeServiceImpl.java +++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/service/impl/SysMessageTypeServiceImpl.java @@ -1,16 +1,19 @@ -package com.muyu.car.service.impl; +package com.muyu.openbusiness.service.impl; -import java.util.List; - -import com.muyu.car.domain.SysMessageType; -import com.muyu.car.mapper.SysMessageTypeMapper; -import com.muyu.car.service.ISysMessageTypeService; -import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.muyu.common.core.utils.StringUtils; +import com.muyu.openbusiness.config.SnowflakeIdWorker; +import com.muyu.openbusiness.domain.SysMessageType; +import com.muyu.openbusiness.mapper.SysMessageTypeMapper; +import com.muyu.openbusiness.service.ISysMessageTypeService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.stereotype.Service; import org.springframework.util.Assert; +import java.util.List; + /** * 车辆报文类型Service业务层处理 * @@ -28,6 +31,9 @@ public class SysMessageTypeServiceImpl * @param id 车辆报文类型主键 * @return 车辆报文类型 */ + + @Autowired + RedisTemplate redisTemplate; @Override public SysMessageType selectSysMessageTypeByMessageCode(String messageCode) { @@ -54,6 +60,14 @@ public class SysMessageTypeServiceImpl if (StringUtils.isNotEmpty(sysMessageType.getMessageType())){ queryWrapper.eq(SysMessageType::getMessageType, sysMessageType.getMessageType()); } + //生成一个时间唯一戳 + SnowflakeIdWorker snowMaker = new SnowflakeIdWorker(); + for (int i = 0; i < 100; i++) { + long id = snowMaker.nextId(); + System.out.println(id); + } + redisTemplate.opsForValue().set("id",list(queryWrapper)); + return this.list(queryWrapper); } diff --git a/cloud-modules/cloud-modules-system-saas/src/main/java/com/muyu/system/saas/service/impl/SysUserServiceImpl.java b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/service/impl/SysUserServiceImpl.java similarity index 92% rename from cloud-modules/cloud-modules-system-saas/src/main/java/com/muyu/system/saas/service/impl/SysUserServiceImpl.java rename to cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/service/impl/SysUserServiceImpl.java index a53838a..e5ac185 100644 --- a/cloud-modules/cloud-modules-system-saas/src/main/java/com/muyu/system/saas/service/impl/SysUserServiceImpl.java +++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/service/impl/SysUserServiceImpl.java @@ -1,25 +1,23 @@ -package com.muyu.system.saas.service.impl; +package com.muyu.openbusiness.service.impl; -import javax.annotation.Resource; - import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.muyu.common.core.constant.UserConstants; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.muyu.common.core.utils.StringUtils; import com.muyu.common.system.domain.SysUser; import com.muyu.common.system.domain.SysUserPost; import com.muyu.common.system.domain.SysUserRole; import com.muyu.common.system.remote.RemoteUserService; -import com.muyu.system.saas.mapper.SysUserPostMapper; -import com.muyu.system.saas.mapper.SysUserRoleMapper; + +import com.muyu.openbusiness.mapper.SysUserMapper; +import com.muyu.openbusiness.mapper.SysUserPostMapper; +import com.muyu.openbusiness.mapper.SysUserRoleMapper; +import com.muyu.openbusiness.service.SysUserService; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.ObjectUtils; import org.springframework.stereotype.Service; -import lombok.extern.slf4j.Slf4j; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.muyu.system.saas.mapper.SysUserMapper; -import com.muyu.system.saas.service.SysUserService; -import org.springframework.transaction.annotation.Transactional; +import javax.annotation.Resource; import java.util.ArrayList; import java.util.List; diff --git a/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/service/impl/WarnLogsServiceImpl.java b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/service/impl/WarnLogsServiceImpl.java similarity index 93% rename from cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/service/impl/WarnLogsServiceImpl.java rename to cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/service/impl/WarnLogsServiceImpl.java index 2e25a7b..968253e 100644 --- a/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/service/impl/WarnLogsServiceImpl.java +++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/service/impl/WarnLogsServiceImpl.java @@ -1,15 +1,16 @@ -package com.muyu.warning.service.impl; +package com.muyu.openbusiness.service.impl; -import java.util.List; -import org.springframework.stereotype.Service; -import com.muyu.warning.mapper.WarnLogsMapper; -import com.muyu.warning.domain.WarnLogs; -import com.muyu.warning.service.IWarnLogsService; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.muyu.common.core.utils.StringUtils; +import com.muyu.openbusiness.domain.WarnLogs; +import com.muyu.openbusiness.mapper.WarnLogsMapper; +import com.muyu.openbusiness.service.IWarnLogsService; +import org.springframework.stereotype.Service; import org.springframework.util.Assert; +import java.util.List; + /** * 预警日志Service业务层处理 * diff --git a/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/service/impl/WarnRuleServiceImpl.java b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/service/impl/WarnRuleServiceImpl.java similarity index 92% rename from cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/service/impl/WarnRuleServiceImpl.java rename to cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/service/impl/WarnRuleServiceImpl.java index 4fa0aab..0956aa5 100644 --- a/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/service/impl/WarnRuleServiceImpl.java +++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/service/impl/WarnRuleServiceImpl.java @@ -1,13 +1,11 @@ -package com.muyu.warning.service.impl; +package com.muyu.openbusiness.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.github.yulichang.base.MPJBaseServiceImpl; import com.muyu.common.core.utils.StringUtils; -import com.muyu.warning.domain.WarnRuleDTO; -import com.muyu.warning.mapper.WarnRuleMapper; -import com.muyu.warning.service.IWarnRuleService; -import org.springframework.beans.factory.annotation.Autowired; +import com.muyu.openbusiness.domain.WarnRuleDTO; +import com.muyu.openbusiness.mapper.WarnRuleMapper; +import com.muyu.openbusiness.service.IWarnRuleService; import org.springframework.stereotype.Service; import org.springframework.util.Assert; diff --git a/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/service/impl/WarnRulesServiceImpl.java b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/service/impl/WarnRulesServiceImpl.java similarity index 80% rename from cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/service/impl/WarnRulesServiceImpl.java rename to cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/service/impl/WarnRulesServiceImpl.java index 54de66e..2811ae5 100644 --- a/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/service/impl/WarnRulesServiceImpl.java +++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/service/impl/WarnRulesServiceImpl.java @@ -1,12 +1,12 @@ -package com.muyu.warning.service.impl; +package com.muyu.openbusiness.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.github.yulichang.wrapper.MPJLambdaWrapper; -import com.muyu.warning.domain.WarnRule; -import com.muyu.warning.domain.WarnRuleDTO; -import com.muyu.warning.domain.WarnStrategy; -import com.muyu.warning.mapper.WarnRulesMapper; -import com.muyu.warning.service.IWarRulesService; +import com.muyu.openbusiness.domain.WarnRule; +import com.muyu.openbusiness.domain.WarnRuleDTO; +import com.muyu.openbusiness.domain.WarnStrategy; +import com.muyu.openbusiness.mapper.WarnRulesMapper; +import com.muyu.openbusiness.service.IWarRulesService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; diff --git a/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/service/impl/WarnStrategyServiceImpl.java b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/service/impl/WarnStrategyServiceImpl.java similarity index 91% rename from cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/service/impl/WarnStrategyServiceImpl.java rename to cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/service/impl/WarnStrategyServiceImpl.java index 505a01e..4798fed 100644 --- a/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/service/impl/WarnStrategyServiceImpl.java +++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/service/impl/WarnStrategyServiceImpl.java @@ -1,15 +1,16 @@ -package com.muyu.warning.service.impl; +package com.muyu.openbusiness.service.impl; -import java.util.List; -import org.springframework.stereotype.Service; -import com.muyu.warning.mapper.WarnStrategyMapper; -import com.muyu.warning.domain.WarnStrategy; -import com.muyu.warning.service.IWarnStrategyService; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.muyu.common.core.utils.StringUtils; +import com.muyu.openbusiness.domain.WarnStrategy; +import com.muyu.openbusiness.mapper.WarnStrategyMapper; +import com.muyu.openbusiness.service.IWarnStrategyService; +import org.springframework.stereotype.Service; import org.springframework.util.Assert; +import java.util.List; + /** * 预警策略Service业务层处理 * diff --git a/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/util/OkHttpUtils.java b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/util/OkHttpUtils.java similarity index 96% rename from cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/util/OkHttpUtils.java rename to cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/util/OkHttpUtils.java index fc33154..c2cd45e 100644 --- a/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/util/OkHttpUtils.java +++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/util/OkHttpUtils.java @@ -1,4 +1,4 @@ -package com.muyu.warning.util; +package com.muyu.openbusiness.util; import okhttp3.*; diff --git a/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/util/TokenUtil.java b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/util/TokenUtil.java similarity index 93% rename from cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/util/TokenUtil.java rename to cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/util/TokenUtil.java index 5587e4b..658bd5a 100644 --- a/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/util/TokenUtil.java +++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/util/TokenUtil.java @@ -1,7 +1,7 @@ -package com.muyu.warning.util; +package com.muyu.openbusiness.util; import com.alibaba.fastjson2.JSON; -import com.muyu.warning.wx.AccessToken; +import com.muyu.openbusiness.wx.AccessToken; import org.springframework.stereotype.Component; /** diff --git a/cloud-modules/cloud-modules-carmanage/src/main/resources/banner.txt b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/resources/banner.txt similarity index 100% rename from cloud-modules/cloud-modules-carmanage/src/main/resources/banner.txt rename to cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/resources/banner.txt diff --git a/cloud-modules/cloud-modules-carmanage/src/main/resources/bootstrap.yml b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/resources/bootstrap.yml similarity index 60% rename from cloud-modules/cloud-modules-carmanage/src/main/resources/bootstrap.yml rename to cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/resources/bootstrap.yml index 6048e61..f6b9c8b 100644 --- a/cloud-modules/cloud-modules-carmanage/src/main/resources/bootstrap.yml +++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/resources/bootstrap.yml @@ -1,13 +1,13 @@ # Tomcat server: - port: 10010 + port: 10011 # nacos线上地址 nacos: - addr: 49.235.136.60:8848 + addr: 47.116.173.119:8848 user-name: nacos password: nacos - namespace: wyh + namespace: one-saas # SPRING_AMQP_DESERIALIZATION_TRUST_ALL=true spring.amqp.deserialization.trust.all # Spring spring: @@ -28,19 +28,19 @@ spring: discovery: # 服务注册地址 server-addr: ${nacos.addr} -# # nacos用户名 -# username: ${nacos.user-name} -# # nacos密码 -# password: ${nacos.password} + # # nacos用户名 + # username: ${nacos.user-name} + # # nacos密码 + # password: ${nacos.password} # 命名空间 namespace: ${nacos.namespace} config: # 服务注册地址 server-addr: ${nacos.addr} -# # nacos用户名 -# username: ${nacos.user-name} -# # nacos密码 -# password: ${nacos.password} + # # nacos用户名 + # username: ${nacos.user-name} + # # nacos密码 + # password: ${nacos.password} # 命名空间 namespace: ${nacos.namespace} # 配置文件格式 @@ -58,4 +58,20 @@ spring: logging: level: com.muyu.system.mapper: DEBUG - +#mqtt: +# host:tcp://172.0.0.1:1883 +# userName: root +# passWord: 11 +### MQTT## +mqtt: + host: tcp://192.168.10.198:1883 + userName: root + passWord: 123456 + qos: 1 + clientId: ClientId_local #ClientId_local必须唯一 比如你已经定了叫ABC 那你就一直叫ABC 其他地方就不要使用ABC了 + timeout: 10 + keepalive: 20 + topic1: A/pick/warn/# #符号是代表整个warn下面的全部子主题 没有理解的话 可以百度仔细理解一下 + topic2: A/cmd/resp + topic3: ABCF + topic4: ABCH diff --git a/cloud-modules/cloud-modules-carmanage/src/main/resources/logback/dev.xml b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/resources/logback/dev.xml similarity index 100% rename from cloud-modules/cloud-modules-carmanage/src/main/resources/logback/dev.xml rename to cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/resources/logback/dev.xml diff --git a/cloud-modules/cloud-modules-carmanage/src/main/resources/logback/prod.xml b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/resources/logback/prod.xml similarity index 100% rename from cloud-modules/cloud-modules-carmanage/src/main/resources/logback/prod.xml rename to cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/resources/logback/prod.xml diff --git a/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/resources/logback/test.xml b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/resources/logback/test.xml similarity index 98% rename from cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/resources/logback/test.xml rename to cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/resources/logback/test.xml index 1193d09..2cd69e4 100644 --- a/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/resources/logback/test.xml +++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/resources/logback/test.xml @@ -1,7 +1,7 @@ - + @@ -43,7 +43,7 @@ 60 - + ERROR diff --git a/cloud-modules/cloud-modules-carmanage/src/main/resources/mapper/car/SysCarMapper.xml b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/resources/mapper/openbusiness/SysCarMapper.xml similarity index 98% rename from cloud-modules/cloud-modules-carmanage/src/main/resources/mapper/car/SysCarMapper.xml rename to cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/resources/mapper/openbusiness/SysCarMapper.xml index 5113cd6..da56aa0 100644 --- a/cloud-modules/cloud-modules-carmanage/src/main/resources/mapper/car/SysCarMapper.xml +++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/resources/mapper/openbusiness/SysCarMapper.xml @@ -2,7 +2,7 @@ - + diff --git a/cloud-modules/cloud-modules-carmanage/src/main/resources/mapper/car/SysCarMessageMapper.xml b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/resources/mapper/openbusiness/SysCarMessageMapper.xml similarity index 82% rename from cloud-modules/cloud-modules-carmanage/src/main/resources/mapper/car/SysCarMessageMapper.xml rename to cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/resources/mapper/openbusiness/SysCarMessageMapper.xml index 3b10785..a9d0164 100644 --- a/cloud-modules/cloud-modules-carmanage/src/main/resources/mapper/car/SysCarMessageMapper.xml +++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/resources/mapper/openbusiness/SysCarMessageMapper.xml @@ -2,7 +2,7 @@ - + @@ -27,17 +27,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where id = #{id} - insert into sys_car_message diff --git a/cloud-modules/cloud-modules-car/src/main/resources/mapper/carrail/SysFenceMapper.xml b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/resources/mapper/openbusiness/SysFenceMapper.xml similarity index 88% rename from cloud-modules/cloud-modules-car/src/main/resources/mapper/carrail/SysFenceMapper.xml rename to cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/resources/mapper/openbusiness/SysFenceMapper.xml index 26be2dc..241fdef 100644 --- a/cloud-modules/cloud-modules-car/src/main/resources/mapper/carrail/SysFenceMapper.xml +++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/resources/mapper/openbusiness/SysFenceMapper.xml @@ -2,9 +2,9 @@ - + - + @@ -22,7 +22,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select id, group_code, group_name, group_type, state, create_by, create_time, update_by, update_time, remark from sys_fence_group - diff --git a/cloud-modules/cloud-modules-carmanage/src/main/resources/mapper/car/SysMessageTypeMapper.xml b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/resources/mapper/openbusiness/SysMessageTypeMapper.xml similarity index 97% rename from cloud-modules/cloud-modules-carmanage/src/main/resources/mapper/car/SysMessageTypeMapper.xml rename to cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/resources/mapper/openbusiness/SysMessageTypeMapper.xml index 3d1d939..b03df06 100644 --- a/cloud-modules/cloud-modules-carmanage/src/main/resources/mapper/car/SysMessageTypeMapper.xml +++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/resources/mapper/openbusiness/SysMessageTypeMapper.xml @@ -2,7 +2,7 @@ - + diff --git a/cloud-modules/cloud-modules-system-saas/src/main/resources/mapper/saas/SysUserMapper.xml b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/resources/mapper/openbusiness/SysUserMapper.xml similarity index 98% rename from cloud-modules/cloud-modules-system-saas/src/main/resources/mapper/saas/SysUserMapper.xml rename to cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/resources/mapper/openbusiness/SysUserMapper.xml index 4a480ae..7bbe181 100644 --- a/cloud-modules/cloud-modules-system-saas/src/main/resources/mapper/saas/SysUserMapper.xml +++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/resources/mapper/openbusiness/SysUserMapper.xml @@ -2,7 +2,7 @@ - + diff --git a/cloud-modules/cloud-modules-system-saas/src/main/resources/mapper/saas/SysUserPostMapper.xml b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/resources/mapper/openbusiness/SysUserPostMapper.xml similarity index 94% rename from cloud-modules/cloud-modules-system-saas/src/main/resources/mapper/saas/SysUserPostMapper.xml rename to cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/resources/mapper/openbusiness/SysUserPostMapper.xml index f6bf547..b81edfe 100644 --- a/cloud-modules/cloud-modules-system-saas/src/main/resources/mapper/saas/SysUserPostMapper.xml +++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/resources/mapper/openbusiness/SysUserPostMapper.xml @@ -2,7 +2,7 @@ - + diff --git a/cloud-modules/cloud-modules-system-saas/src/main/resources/mapper/saas/SysUserRoleMapper.xml b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/resources/mapper/openbusiness/SysUserRoleMapper.xml similarity index 96% rename from cloud-modules/cloud-modules-system-saas/src/main/resources/mapper/saas/SysUserRoleMapper.xml rename to cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/resources/mapper/openbusiness/SysUserRoleMapper.xml index b352741..69d20fb 100644 --- a/cloud-modules/cloud-modules-system-saas/src/main/resources/mapper/saas/SysUserRoleMapper.xml +++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/resources/mapper/openbusiness/SysUserRoleMapper.xml @@ -2,7 +2,7 @@ - + diff --git a/cloud-modules/cloud-modules-car/src/main/resources/mapper/carrail/SyscarRailMapper.xml b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/resources/mapper/openbusiness/SyscarRailMapper.xml similarity index 74% rename from cloud-modules/cloud-modules-car/src/main/resources/mapper/carrail/SyscarRailMapper.xml rename to cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/resources/mapper/openbusiness/SyscarRailMapper.xml index c9f9205..752c3cd 100644 --- a/cloud-modules/cloud-modules-car/src/main/resources/mapper/carrail/SyscarRailMapper.xml +++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/resources/mapper/openbusiness/SyscarRailMapper.xml @@ -3,14 +3,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - + insert into sys_corpuscle_fence(fence_code,fence_name,fence_type,fence_position,state) values(#{fenceCode},#{fenceName},#{fenceType},#{fencePosition},#{state}) - select * from sys_corpuscle_fence diff --git a/cloud-modules/cloud-modules-warn/pom.xml b/cloud-modules/cloud-modules-openbusiness/pom.xml similarity index 66% rename from cloud-modules/cloud-modules-warn/pom.xml rename to cloud-modules/cloud-modules-openbusiness/pom.xml index 7e15d11..ae92460 100644 --- a/cloud-modules/cloud-modules-warn/pom.xml +++ b/cloud-modules/cloud-modules-openbusiness/pom.xml @@ -8,14 +8,16 @@ cloud-modules 3.6.3 - - cloud-modules-warn + + cloud-modules-openbusiness企业运营 + + cloud-modules-openbusiness pom - cloud-warn-common - cloud-warn-client - cloud-warn-remote - cloud-warn-server + cloud-modules-openbusiness-server + cloud-modules-openbusiness-common + cloud-modules-openbusiness-cache + cloud-modules-openbusiness-remote @@ -23,4 +25,5 @@ 17 UTF-8 + diff --git a/cloud-modules/cloud-modules-system-saas/pom.xml b/cloud-modules/cloud-modules-parsing/pom.xml similarity index 75% rename from cloud-modules/cloud-modules-system-saas/pom.xml rename to cloud-modules/cloud-modules-parsing/pom.xml index b9983d0..d10ebc2 100644 --- a/cloud-modules/cloud-modules-system-saas/pom.xml +++ b/cloud-modules/cloud-modules-parsing/pom.xml @@ -9,25 +9,16 @@ 3.6.3 - cloud-modules-system-saas - + cloud-modules-parsing + + cloud-modules-parsing 协议解析模块 + 17 17 UTF-8 - - - com.muyu - cloud-common-saas - - - - com.muyu - cloud-common-system - - com.alibaba.cloud @@ -82,6 +73,39 @@ cloud-common-api-doc + + + com.muyu + cloud-common-xxl + + + + com.muyu + cloud-common-rabbit + + + + org.bouncycastle + bcpkix-jdk15on + 1.70 + + + + com.muyu + cloud-common-kafka + + + + org.eclipse.paho + org.eclipse.paho.client.mqttv3 + 1.2.2 + + + + com.muyu + cloud-modules-car-gateway + 3.6.3 + @@ -100,5 +124,4 @@ - diff --git a/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/WarnApplication.java b/cloud-modules/cloud-modules-parsing/src/main/java/com/muyu/parsing/CloudVehicleMessageParsingApplication.java similarity index 66% rename from cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/WarnApplication.java rename to cloud-modules/cloud-modules-parsing/src/main/java/com/muyu/parsing/CloudVehicleMessageParsingApplication.java index 6e3ebeb..d678f01 100644 --- a/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/WarnApplication.java +++ b/cloud-modules/cloud-modules-parsing/src/main/java/com/muyu/parsing/CloudVehicleMessageParsingApplication.java @@ -1,4 +1,4 @@ -package com.muyu.warning; +package com.muyu.parsing; import com.muyu.common.security.annotation.EnableCustomConfig; import com.muyu.common.security.annotation.EnableMyFeignClients; @@ -6,16 +6,17 @@ import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; /** - * @Author Chen - * @name:WxApplication - * @Date:2024/9/16 20:39 + * 协议解析模块 + * + * @author muyu */ @EnableCustomConfig //@EnableCustomSwagger2 @EnableMyFeignClients @SpringBootApplication -public class WarnApplication { +public class CloudVehicleMessageParsingApplication { public static void main(String[] args) { - SpringApplication.run(WarnApplication.class); + SpringApplication.run(CloudVehicleMessageParsingApplication.class, args); } + } diff --git a/cloud-modules/cloud-modules-parsing/src/main/java/com/muyu/parsing/consumer/FormMessageConsumer.java b/cloud-modules/cloud-modules-parsing/src/main/java/com/muyu/parsing/consumer/FormMessageConsumer.java new file mode 100644 index 0000000..a188c25 --- /dev/null +++ b/cloud-modules/cloud-modules-parsing/src/main/java/com/muyu/parsing/consumer/FormMessageConsumer.java @@ -0,0 +1,131 @@ +package com.muyu.parsing.consumer; + +import com.muyu.cargateway.domain.properties.MqttProperties; +import com.muyu.common.kafka.constants.KafkaConstants; +import com.muyu.parsing.domain.KafKaData; +import com.muyu.parsing.domain.SysCarMessage; +import com.muyu.parsing.manager.TaskManager; +import com.muyu.parsing.service.impl.SysCarMessageServiceImpl; +import com.rabbitmq.client.Channel; +import jakarta.annotation.Resource; +import lombok.extern.slf4j.Slf4j; +import org.apache.kafka.clients.producer.KafkaProducer; +import org.apache.kafka.clients.producer.ProducerRecord; +import org.eclipse.paho.client.mqttv3.*; +import org.springframework.amqp.core.Message; +import org.springframework.amqp.rabbit.annotation.Queue; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.stereotype.Component; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; + +/** + * @ClassName FormMessageConsumer + * @Description 描述 + * @Author Chen + * @Date 2024/10/9 15:55 + */ +@Component +@Slf4j +public class FormMessageConsumer { + @Resource + private RedisTemplate redisTemplate; + + @Resource + private KafkaProducer kafkaProducer; + @Resource + private SysCarMessageServiceImpl sysCarMessageService; + private final static String FORM_QUEUE = "queue_inform_sms"; + + @RabbitListener(queuesToDeclare = {@Queue(FORM_QUEUE)}) + public void downline(MqttProperties mqttProperties, Message message, Channel channel) { + log.info("基础信息 {} 。。。", mqttProperties); + try { + // 第三个参数为空,默认持久化策略 + MqttClient sampleClient = new MqttClient(mqttProperties.getBroker(), mqttProperties.getClientId()); + MqttConnectOptions connOpts = new MqttConnectOptions(); + //用户名 + connOpts.setUserName(mqttProperties.getUserName()); + //密码 + connOpts.setPassword(mqttProperties.getPassword().toCharArray()); + connOpts.setCleanSession(true); + System.out.println("Connecting to broker: " + mqttProperties.getBroker()); + sampleClient.connect(connOpts); + sampleClient.subscribe(mqttProperties.getTopic(), 0); + sampleClient.setCallback(new MqttCallback() { + // 连接丢失 + @Override + public void connectionLost(Throwable throwable) { + log.error("连接丢失:{}", throwable.getMessage()); + } + + // 连接成功 + @Override + public void messageArrived(String s, MqttMessage mqttMessage) { + TaskManager manager = new TaskManager(10); + manager.execute(() -> processMessage(mqttMessage)); + } + + // 接收信息 + @Override + public void deliveryComplete(IMqttDeliveryToken iMqttDeliveryToken) { + log.info("接收消息:{}", iMqttDeliveryToken); + } + }); + channel.basicAck(message.getMessageProperties().getDeliveryTag(), false); + } catch (MqttException | IOException me) { +// System.out.println("reason " + me.getReasonCode()); + System.out.println("msg " + me.getMessage()); + System.out.println("loc " + me.getLocalizedMessage()); + System.out.println("cause " + me.getCause()); + System.out.println("excep " + me); + me.printStackTrace(); + throw new RuntimeException(me); + } + } + + + private void processMessage(MqttMessage mqttMessage) { + String string = new String(mqttMessage.getPayload()); + log.info(string); + List list = sysCarMessageService.selectSysCarMessageLists(1); + List kafKaDataList = new ArrayList<>(); + String[] test = string.split(" "); + for (SysCarMessage carMessage : list) { + int start = Integer.parseInt(carMessage.getMessageStartIndex()) - 1; + int end = Integer.parseInt(carMessage.getMessageEndIndex()); + StringBuilder hexBuilder = new StringBuilder(); + for (int i = start; i < end; i++) { + hexBuilder.append(test[i]); + } + String hex = hexBuilder.toString(); + char[] result = new char[hex.length() / 2]; + for (int x = 0; x < hex.length(); x += 2) { + int high = Character.digit(hex.charAt(x), 16); + int low = Character.digit(hex.charAt(x + 1), 16); + result[x / 2] = (char) ((high << 4) + low); + } + String value = new String(result); + kafKaDataList.add(KafKaData.builder() + .key(carMessage.getMessageTypeCode()) + .label(carMessage.getMessageTypeCode()) + .value(value) + .type(carMessage.getMessageType()) + .build()); + } + kafKaDataList.add(KafKaData.builder() + .key("firmCode") + .label("企业编码") + .value("firm01") + .type("String") + .build()); + + String jsonString = com.alibaba.fastjson.JSONObject.toJSONString(kafKaDataList); + ProducerRecord producerRecord = new ProducerRecord<>(KafkaConstants.KafkaTopic, jsonString); + kafkaProducer.send(producerRecord); + log.info("kafka投产:{}", jsonString); + } +} diff --git a/cloud-modules/cloud-modules-parsing/src/main/java/com/muyu/parsing/controller/SysCarMessageController.java b/cloud-modules/cloud-modules-parsing/src/main/java/com/muyu/parsing/controller/SysCarMessageController.java new file mode 100644 index 0000000..32b038c --- /dev/null +++ b/cloud-modules/cloud-modules-parsing/src/main/java/com/muyu/parsing/controller/SysCarMessageController.java @@ -0,0 +1,182 @@ +package com.muyu.parsing.controller; + +import com.alibaba.fastjson2.JSONObject; +import com.muyu.common.core.domain.Result; +import com.muyu.common.core.utils.poi.ExcelUtil; +import com.muyu.common.core.web.controller.BaseController; +import com.muyu.common.kafka.constants.KafkaConstants; +import com.muyu.common.security.annotation.RequiresPermissions; +import com.muyu.parsing.domain.KafKaData; +import com.muyu.parsing.domain.SysCarMessage; +import com.muyu.parsing.domain.resp.SysMessageResp; +import com.muyu.parsing.service.ISysCarMessageService; +import jakarta.servlet.http.HttpServletResponse; +import lombok.extern.slf4j.Slf4j; +import org.apache.kafka.clients.producer.KafkaProducer; +import org.apache.kafka.clients.producer.ProducerConfig; +import org.apache.kafka.clients.producer.ProducerRecord; +import org.apache.kafka.common.serialization.StringSerializer; +import org.eclipse.paho.client.mqttv3.*; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.*; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.ExecutionException; + +/** + * 车辆报文记录Controller + * + * @author muyu + * @date 2024-09-18 + */ +@Slf4j +@RestController +@RequestMapping("/messageInfo") +public class SysCarMessageController extends BaseController { + @Resource + private ISysCarMessageService sysCarMessageService; + @Resource + private KafkaProducer kafkaProducer; + static String TEST = "56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56"; + +// @Autowired +// private KafkaTemplate kafkaTemplate; + + + /** + * 查询车辆报文记录列表 + */ +// @RequiresPermissions("message:message:list") + @Transactional + @GetMapping("/list") + public Result> list(SysCarMessage sysCarMessage) throws ExecutionException, InterruptedException { + + List list = sysCarMessageService.selectSysCarMessageList(sysCarMessage); + if (list == null || list.isEmpty()) { + return Result.error(); //为空返回错误信息 + } + List kafKaDataList = new ArrayList<>(); + String[] test = TEST.split(" "); + String[] results = new String[list.size()]; +// HashMap> futures = new HashMap<>(); + for (SysCarMessage carMessage : list) { + int start = Integer.parseInt(carMessage.getMessageStartIndex()) - 1; + int end = Integer.parseInt(carMessage.getMessageEndIndex()); + StringBuilder hexBuilder = new StringBuilder(); + for (int i = start; i < end; i++) { + hexBuilder.append(test[i]); + } + String hex = hexBuilder.toString(); + char[] result = new char[hex.length() / 2]; + for (int x = 0; x < hex.length(); x += 2) { + int high = Character.digit(hex.charAt(x), 16); + int low = Character.digit(hex.charAt(x + 1), 16); + result[x / 2] = (char) ((high << 4) + low); + } + String value = new String(result); + kafKaDataList.add(KafKaData.builder() + .key(carMessage.getMessageTypeCode()) + .label(carMessage.getMessageTypeCode()) + .value(value) + .type("String") + .build()); + } + +// String jsonString = """ +// [{ +// "key": "vin", +// "label": "VIN码", +// "type": "String", +// "value": "vin131413534474" +// },{ +// "key": "timestamp", +// "label": "时间戳", +// "type": "String", +// "value": "1727525252127" +// },{ +// "key": "latitude", +// "label": "纬度", +// "type": "String", +// "value": "66.898" +// },{ +// "key": "longitude", +// "label": "经度", +// "type": "String", +// "value": "99.124" +// }]"""; + String jsonString = JSONObject.toJSONString(kafKaDataList); + ProducerRecord producerRecord = new ProducerRecord<>(KafkaConstants.KafkaTopic, jsonString); + kafkaProducer.send(producerRecord); + log.info("消息发送成功:{}", jsonString); + return Result.success(list); + } + + + @RequiresPermissions("message:message:dobList") + @GetMapping("/dobList") + public Result> dobList(SysMessageResp sysMessageResp) { + List list = sysCarMessageService.dobList(sysMessageResp); + return Result.success(list); + } + + + /** + * 导出车辆报文记录列表 + */ + @RequiresPermissions("message:message:export") + @PostMapping("/export") + public void export(HttpServletResponse response, SysCarMessage sysCarMessage) { + List list = sysCarMessageService.selectSysCarMessageList(sysCarMessage); + ExcelUtil util = new ExcelUtil(SysCarMessage.class); + util.exportExcel(response, list, "车辆报文记录数据"); + } + + /** + * 获取车辆报文记录详细信息 + */ + @RequiresPermissions("message:message:query") + @GetMapping(value = "/{id}") + public Result> getInfo(@PathVariable("id") Long id) { + return success(sysCarMessageService.selectSysCarMessageById(id)); + } + + /** + * 新增车辆报文记录 + */ + @RequiresPermissions("message:message:add") + @PostMapping + public Result add( + @Validated @RequestBody SysCarMessage sysCarMessage) { + if (sysCarMessageService.checkIdUnique(sysCarMessage)) { + return error("新增 车辆报文记录 '" + sysCarMessage + "'失败,车辆报文记录已存在"); + } + return toAjax(sysCarMessageService.save(sysCarMessage)); + } + + /** + * 修改车辆报文记录 + */ + @RequiresPermissions("message:message:edit") + @PutMapping + public Result edit( + @Validated @RequestBody SysCarMessage sysCarMessage) { + if (!sysCarMessageService.checkIdUnique(sysCarMessage)) { + return error("修改 车辆报文记录 '" + sysCarMessage + "'失败,车辆报文记录不存在"); + } + return toAjax(sysCarMessageService.updateById(sysCarMessage)); + } + + /** + * 删除车辆报文记录 + */ + @RequiresPermissions("message:message:remove") + @DeleteMapping("/{ids}") + public Result remove(@PathVariable("ids") Long[] ids) { + sysCarMessageService.removeBatchByIds(Arrays.asList(ids)); + return success(); + } + +} diff --git a/cloud-modules/cloud-modules-parsing/src/main/java/com/muyu/parsing/domain/KafKaData.java b/cloud-modules/cloud-modules-parsing/src/main/java/com/muyu/parsing/domain/KafKaData.java new file mode 100644 index 0000000..c188170 --- /dev/null +++ b/cloud-modules/cloud-modules-parsing/src/main/java/com/muyu/parsing/domain/KafKaData.java @@ -0,0 +1,26 @@ +package com.muyu.parsing.domain; + +import lombok.*; + +import java.io.Serializable; + +/** + * 报文消息 ktlv + * + * @ClassName KafKaData + * @Description 描述 + * @Author Chen + * @Date 2024/9/28 20:41 + */ + +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +@ToString// +public class KafKaData implements Serializable { + private String key; + private String value; + private String type; + private String label; +} diff --git a/cloud-modules/cloud-modules-carmanage/src/main/java/com/muyu/car/domain/SysCarMessage.java b/cloud-modules/cloud-modules-parsing/src/main/java/com/muyu/parsing/domain/SysCarMessage.java similarity index 93% rename from cloud-modules/cloud-modules-carmanage/src/main/java/com/muyu/car/domain/SysCarMessage.java rename to cloud-modules/cloud-modules-parsing/src/main/java/com/muyu/parsing/domain/SysCarMessage.java index 0f045c9..8683e7b 100644 --- a/cloud-modules/cloud-modules-carmanage/src/main/java/com/muyu/car/domain/SysCarMessage.java +++ b/cloud-modules/cloud-modules-parsing/src/main/java/com/muyu/parsing/domain/SysCarMessage.java @@ -1,14 +1,15 @@ -package com.muyu.car.domain; +package com.muyu.parsing.domain; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; import com.muyu.common.core.annotation.Excel; -import com.muyu.common.core.web.domain.BaseEntity; import lombok.*; import lombok.experimental.SuperBuilder; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; -import com.baomidou.mybatisplus.annotation.IdType; + +import java.io.Serializable; /** * 车辆报文记录对象 sys_car_message @@ -24,7 +25,7 @@ import com.baomidou.mybatisplus.annotation.IdType; @NoArgsConstructor @AllArgsConstructor @TableName("sys_car_message") -public class SysCarMessage { +public class SysCarMessage implements Serializable { private static final long serialVersionUID = 1L; /** 自增主键 */ diff --git a/cloud-modules/cloud-modules-carmanage/src/main/java/com/muyu/car/domain/VO/SysMessageVO.java b/cloud-modules/cloud-modules-parsing/src/main/java/com/muyu/parsing/domain/resp/SysMessageResp.java similarity index 75% rename from cloud-modules/cloud-modules-carmanage/src/main/java/com/muyu/car/domain/VO/SysMessageVO.java rename to cloud-modules/cloud-modules-parsing/src/main/java/com/muyu/parsing/domain/resp/SysMessageResp.java index ea7c14a..b218863 100644 --- a/cloud-modules/cloud-modules-carmanage/src/main/java/com/muyu/car/domain/VO/SysMessageVO.java +++ b/cloud-modules/cloud-modules-parsing/src/main/java/com/muyu/parsing/domain/resp/SysMessageResp.java @@ -1,7 +1,6 @@ -package com.muyu.car.domain.VO; +package com.muyu.parsing.domain.resp; -import com.muyu.common.core.annotation.Excel; -import lombok.*; +import lombok.Data; /** * 车辆报文类型对象 sys_message_type @@ -11,16 +10,13 @@ import lombok.*; */ @Data -public class SysMessageVO { +public class SysMessageResp { private static final long serialVersionUID = 1L; - private Long id; - private String modelCode; private String messageTypeCode; private String messageStartIndex; private String messageEndIndex; private String messageType; - private String messageName; } diff --git a/cloud-modules/cloud-modules-parsing/src/main/java/com/muyu/parsing/manager/TaskManager.java b/cloud-modules/cloud-modules-parsing/src/main/java/com/muyu/parsing/manager/TaskManager.java new file mode 100644 index 0000000..b895ce6 --- /dev/null +++ b/cloud-modules/cloud-modules-parsing/src/main/java/com/muyu/parsing/manager/TaskManager.java @@ -0,0 +1,24 @@ +package com.muyu.parsing.manager; + +import java.util.concurrent.Executors; +import java.util.concurrent.ExecutorService; + +/** + * 线程配置 + */ +public final class TaskManager { + private final ExecutorService executorService; + + public TaskManager(int threadPoolSize) { + this.executorService = Executors.newFixedThreadPool(threadPoolSize); + } + + public void execute(Runnable task) { + executorService.submit(task); + } + + // 关闭线程池 + public void shutdown() { + executorService.shutdown(); + } +} diff --git a/cloud-modules/cloud-modules-parsing/src/main/java/com/muyu/parsing/manager/TaskManagers.java b/cloud-modules/cloud-modules-parsing/src/main/java/com/muyu/parsing/manager/TaskManagers.java new file mode 100644 index 0000000..08fb605 --- /dev/null +++ b/cloud-modules/cloud-modules-parsing/src/main/java/com/muyu/parsing/manager/TaskManagers.java @@ -0,0 +1,189 @@ +//package com.muyu.parsing.manager; +// +///** +// * @Author: 胡杨 +// * @Name: TaskManager +// * @Description: 任务管理器 +// * @CreatedDate: 2024/9/4 下午7:44 +// * @FilePath: com.muyu.quest.manager +// */ +// +// +//import lombok.extern.slf4j.Slf4j; +// +//import java.util.Collections; +//import java.util.LinkedList; +//import java.util.List; +// +//import static java.lang.Thread.sleep; +// +///** +// * 基础线程配置 +// */ +//@Slf4j +//public final class TaskManagers { +// // 线程池中默认线程的个数为5 +// private static int workerNum = 8; +// // 工作线程 +//// private final WorkThread[] workThrads; +// // 未处理的任务 +// private static volatile int finishedTask = 0; +//// +//// // 任务队列 +//// private final List taskQueue = new LinkedList(); +//// private static TaskManager taskManager; +//// +//// private long startTime; +//// private long endTime; +//// +//// // 创建具有默认线程个数的线程池 +//// private TaskManager() { +//// this(8); +//// } +//// +//// // 创建线程池,workerNum为线程池中工作线程的个数 +//// private TaskManager(int workerNum) { +//// taskManager.workerNum = workerNum; +//// workThrads = new WorkThread[workerNum]; +//// for (int i = 0; i < workerNum; i++) { +//// workThrads[i] = new WorkThread(); +//// workThrads[i].start();// 开启线程池中的线程 +//// } +//// startTime = System.currentTimeMillis(); +//// } +//// +//// // 单态模式,获得一个默认线程个数的线程池 +//// public static TaskManager getTaskManager() { +//// return getTaskManager(TaskManager.workerNum); +//// } +//// +//// // 单态模式,获得一个指定线程个数的线程池,workerNum(>0)为线程池中工作线程的个数 +//// // workerNum<=0创建默认的工作线程个数 +//// public static TaskManager getTaskManager(int workerNum1) { +//// if (workerNum1 <= 0) { +//// workerNum1 = TaskManager.workerNum; +//// } +//// if (taskManager == null) { +//// taskManager = new TaskManager(workerNum1); +//// } +//// return taskManager; +//// } +//// +//// // 把任务加入任务队列 +//// public void execute(List task) { +//// execute(task.toArray(new Runnable[0])); +//// } +//// +//// // 把任务加入任务队列 +//// public void execute(Runnable... task) { +//// synchronized (taskQueue) { +//// Collections.addAll(taskQueue, task); +//// taskQueue.notify(); +//// } +//// } +//// +//// +//// // 销毁线程池,该方法保证在所有任务都完成的情况下才销毁所有线程,否则等待任务完成才销毁 +//// public void destroy() { +//// while (!getIsRunning()) {// 如果还有任务没执行完成,就先睡会吧 +//// try { +//// sleep(500); +//// } catch (InterruptedException e) { +//// e.printStackTrace(); +//// } +//// } +//// // 工作线程停止工作,且置为null +//// for (int i = 0; i < workerNum; i++) { +//// workThrads[i].stopWorker(); +//// workThrads[i] = null; +//// } +//// taskManager = null; +//// taskQueue.clear();// 清空任务队列 +//// } +//// +//// // 任务完成后,统计线程池的运行情况 +//// public void closed() { +//// while (!getIsRunning()) {// 如果还有任务没执行完成,就先睡会吧 +//// try { +//// sleep(500); +//// } catch (InterruptedException e) { +//// e.printStackTrace(); +//// } +//// } +//// log.info("任务完成,线程状态: {}", this.toString()); +//// taskManager = null; +//// } +//// +//// // 返回工作线程的个数 +//// public int getWorkThreadNumber() { +//// return workerNum; +//// } +//// +//// // 返回已完成任务的个数,这里的已完成是只出了任务队列的任务个数,可能该任务并没有实际执行完成 +//// public int getFinishedTasknumber() { +//// return finishedTask; +//// } +//// +//// // 返回任务队列的长度,即还没处理的任务个数 +//// public int getWaitTasknumber() { +//// return taskQueue.size(); +//// } +//// +//// /** +//// * 返回线程池当前状态 +//// * +//// * @return 如果还在工作返回false,否则返回true +//// */ +//// public Boolean getIsRunning() { +//// return taskQueue.isEmpty() || (taskManager.getWaitTasknumber() == 0 && taskManager.getWorkThreadNumber() == 0); +//// } +//// +//// // 覆盖toString方法,返回线程池信息:工作线程个数和已完成任务个数 +//// @Override +//// public String toString() { +//// endTime = System.currentTimeMillis(); +//// return "工作任务数:" + workerNum + ",已完成任务数:" +//// + finishedTask + ",等待任务数:" + getWaitTasknumber() +//// + "线程池作时长:" + (endTime - startTime) + "ms"; +//// } +//// +//// /** +//// * 内部类,工作线程 +//// */ +//// private class WorkThread extends Thread { +//// // 该工作线程是否有效,用于结束该工作线程 +//// private boolean isRunning = true; +//// +//// /* +//// * 关键所在,如果任务队列不空,则取出任务执行,若任务队列空,则等待 +//// */ +//// @Override +//// public void run() { +//// Runnable r = null; +//// while (isRunning) {// 若线程无效则自然结束run方法,该线程就没用了 +//// synchronized (taskQueue) { +//// while (isRunning && taskQueue.isEmpty()) {// 队列为空 +//// try { +//// taskQueue.wait(50); +//// } catch (InterruptedException e) { +//// e.printStackTrace(); +//// } +//// } +//// if (!taskQueue.isEmpty()) { +//// r = taskQueue.remove(0);// 取出任务 +//// } +//// } +//// if (r != null) { +//// r.run();// 执行任务 +//// } +//// finishedTask++; +//// r = null; +//// } +//// } +//// +//// // 停止工作,让该线程自然执行完run方法,自然结束 +//// public void stopWorker() { +//// isRunning = false; +//// } +//// } +//} diff --git a/cloud-modules/cloud-modules-carmanage/src/main/java/com/muyu/car/mapper/SysCarMessageMapper.java b/cloud-modules/cloud-modules-parsing/src/main/java/com/muyu/parsing/mapper/SysCarMessageMapper.java similarity index 59% rename from cloud-modules/cloud-modules-carmanage/src/main/java/com/muyu/car/mapper/SysCarMessageMapper.java rename to cloud-modules/cloud-modules-parsing/src/main/java/com/muyu/parsing/mapper/SysCarMessageMapper.java index b41073c..df2e16a 100644 --- a/cloud-modules/cloud-modules-carmanage/src/main/java/com/muyu/car/mapper/SysCarMessageMapper.java +++ b/cloud-modules/cloud-modules-parsing/src/main/java/com/muyu/parsing/mapper/SysCarMessageMapper.java @@ -1,12 +1,13 @@ -package com.muyu.car.mapper; - -import java.util.List; +package com.muyu.parsing.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.muyu.car.domain.SysCarMessage; -import com.muyu.car.domain.VO.SysMessageVO; + +import com.muyu.parsing.domain.SysCarMessage; +import com.muyu.parsing.domain.resp.SysMessageResp; import org.apache.ibatis.annotations.Mapper; +import java.util.List; + /** * 车辆报文记录Mapper接口 * @@ -15,5 +16,5 @@ import org.apache.ibatis.annotations.Mapper; */ @Mapper public interface SysCarMessageMapper extends BaseMapper{ - ListdobList(SysMessageVO sysMessageVO); + ListdobList(SysMessageResp sysMessageResp); } diff --git a/cloud-modules/cloud-modules-parsing/src/main/java/com/muyu/parsing/mqtt/MqttTest.java b/cloud-modules/cloud-modules-parsing/src/main/java/com/muyu/parsing/mqtt/MqttTest.java new file mode 100644 index 0000000..43dd7d8 --- /dev/null +++ b/cloud-modules/cloud-modules-parsing/src/main/java/com/muyu/parsing/mqtt/MqttTest.java @@ -0,0 +1,127 @@ +package com.muyu.parsing.mqtt; + +import com.alibaba.fastjson2.JSONObject; +import com.muyu.common.kafka.constants.KafkaConstants; +import com.muyu.parsing.domain.KafKaData; +import com.muyu.parsing.domain.SysCarMessage; +import com.muyu.parsing.service.impl.SysCarMessageServiceImpl; +import lombok.extern.slf4j.Slf4j; +import org.apache.kafka.clients.producer.KafkaProducer; +import org.apache.kafka.clients.producer.ProducerRecord; +import org.eclipse.paho.client.mqttv3.*; +import org.springframework.stereotype.Component; + +import javax.annotation.PostConstruct; +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.List; + + +/** + * mqtt + * + * @ClassName MqttTest + * @Description 描述 + * @Author Chen + * @Date 2024/9/28 23:49 + */ +@Slf4j +@Component +public class MqttTest { + private static final Integer ID = 1; + private static final Integer CODE = 1; + + @Resource + private KafkaProducer kafkaProducer; + @Resource + private SysCarMessageServiceImpl sysCarMessageService; + + @PostConstruct + public void Test() { + String topic = "vehicle"; + String content = "Message from MqttPublishSample"; + int qos = 2; + String broker = "tcp://106.15.136.7:1883"; + String clientId = "JavaSample"; + + try { + // 第三个参数为空,默认持久化策略 + MqttClient sampleClient = new MqttClient(broker, clientId); + MqttConnectOptions connOpts = new MqttConnectOptions(); + connOpts.setCleanSession(true); + System.out.println("Connecting to broker: " + broker); + sampleClient.connect(connOpts); + sampleClient.subscribe(topic, 0); + sampleClient.setCallback(new MqttCallback() { + // 连接丢失 + @Override + public void connectionLost(Throwable throwable) { + + } + + // 连接成功 + @Override + public void messageArrived(String s, MqttMessage mqttMessage) throws Exception { + List list = sysCarMessageService.selectSysCarMessageLists(ID); + String string = new String(mqttMessage.getPayload()); + log.info(new String(mqttMessage.getPayload())); + List kafKaDataList = new ArrayList<>(); + String[] test = string.split(" "); +// String[] results = new String[list.size()]; + for (SysCarMessage carMessage : list) { + int start = Integer.parseInt(carMessage.getMessageStartIndex()) - 1; + int end = Integer.parseInt(carMessage.getMessageEndIndex()); + StringBuilder hexBuilder = new StringBuilder(); + for (int i = start; i < end; i++) { + hexBuilder.append(test[i]); + } + String hex = hexBuilder.toString(); + char[] result = new char[hex.length() / 2]; + for (int x = 0; x < hex.length(); x += 2) { + int high = Character.digit(hex.charAt(x), 16); + int low = Character.digit(hex.charAt(x + 1), 16); + result[x / 2] = (char) ((high << 4) + low); + } + String value = new String(result); + kafKaDataList.add(KafKaData.builder() + .key(carMessage.getMessageTypeCode()) + .label(carMessage.getMessageTypeCode()) + .value(value) + .type(carMessage.getMessageType()) + .build()); + } + kafKaDataList.add(KafKaData.builder() + .key("firmCode") + .label("企业编码") + .value("firm01") + .type("String") + .build()); + String jsonString = JSONObject.toJSONString(kafKaDataList); + + ProducerRecord producerRecord = new ProducerRecord<>(KafkaConstants.KafkaTopic, jsonString); + kafkaProducer.send(producerRecord); + log.info("kafka投产:{}", jsonString); +// HashMap stringStringHashMap = new HashMap<>(); +// kafKaDataList.forEach(data -> stringStringHashMap.put(data.getKey(), data.getValue())); +// jsonString = JSONObject.toJSONString(stringStringHashMap); +// System.out.println(jsonString); + } + + + // 接收信息 + @Override + public void deliveryComplete(IMqttDeliveryToken iMqttDeliveryToken) { + + } + + }); + } catch (MqttException me) { + System.out.println("reason " + me.getReasonCode()); + System.out.println("msg " + me.getMessage()); + System.out.println("loc " + me.getLocalizedMessage()); + System.out.println("cause " + me.getCause()); + System.out.println("excep " + me); + me.printStackTrace(); + } + } +} diff --git a/cloud-modules/cloud-modules-parsing/src/main/java/com/muyu/parsing/service/ISysCarMessageService.java b/cloud-modules/cloud-modules-parsing/src/main/java/com/muyu/parsing/service/ISysCarMessageService.java new file mode 100644 index 0000000..66338af --- /dev/null +++ b/cloud-modules/cloud-modules-parsing/src/main/java/com/muyu/parsing/service/ISysCarMessageService.java @@ -0,0 +1,44 @@ +package com.muyu.parsing.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.muyu.parsing.domain.SysCarMessage; +import com.muyu.parsing.domain.resp.SysMessageResp; + + +import java.util.List; + +/** + * 车辆报文记录Service接口 + * + * @author muyu + * @date 2024-09-18 + */ +public interface ISysCarMessageService extends IService { + + ListdobList(SysMessageResp sysMessageResp); + /** + * 精确查询车辆报文记录 + * + * @param id 车辆报文记录主键 + * @return 车辆报文记录 + */ + public SysCarMessage selectSysCarMessageById(Long id); + + /** + * 查询车辆报文记录列表 + * + * @param sysCarMessage 车辆报文记录 + * @return 车辆报文记录集合 + */ + public List selectSysCarMessageList(SysCarMessage sysCarMessage); + + /** + * 判断 车辆报文记录 id是否唯一 + * @param sysCarMessage 车辆报文记录 + * @return 结果 + */ + Boolean checkIdUnique(SysCarMessage sysCarMessage); + +// Boolean checkById(SysCarMessage sysCarMessage); + +} diff --git a/cloud-modules/cloud-modules-parsing/src/main/java/com/muyu/parsing/service/impl/SysCarMessageServiceImpl.java b/cloud-modules/cloud-modules-parsing/src/main/java/com/muyu/parsing/service/impl/SysCarMessageServiceImpl.java new file mode 100644 index 0000000..2b7bdc8 --- /dev/null +++ b/cloud-modules/cloud-modules-parsing/src/main/java/com/muyu/parsing/service/impl/SysCarMessageServiceImpl.java @@ -0,0 +1,97 @@ +package com.muyu.parsing.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; + +import com.muyu.common.core.utils.StringUtils; +import com.muyu.parsing.domain.SysCarMessage; +import com.muyu.parsing.domain.resp.SysMessageResp; +import com.muyu.parsing.mapper.SysCarMessageMapper; +import com.muyu.parsing.service.ISysCarMessageService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.Assert; + +import java.util.List; + +/** + * 车辆报文记录Service业务层处理 + * + * @author muyu + * @date 2024-09-18 + */ +@Service +public class SysCarMessageServiceImpl + extends ServiceImpl + implements ISysCarMessageService { + @Autowired + private SysCarMessageMapper mapper; + + @Override + public List dobList(SysMessageResp sysMessageResp) { + return mapper.dobList(sysMessageResp); + } + + /** + * 精确查询车辆报文记录 + * + * @param id 车辆报文记录主键 + * @return 车辆报文记录 + */ + @Override + public SysCarMessage selectSysCarMessageById(Long id) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + Assert.notNull(id, "id不可为空"); + queryWrapper.eq(SysCarMessage::getId, id); + return this.getOne(queryWrapper); + } + + + /** + * 查询车辆报文记录列表 + * + * @param sysCarMessage 车辆报文记录 + * @return 车辆报文记录 + */ + @Override + public List selectSysCarMessageList(SysCarMessage sysCarMessage) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + if (StringUtils.isNotEmpty(sysCarMessage.getModelCode())) { + queryWrapper.eq(SysCarMessage::getModelCode, sysCarMessage.getModelCode()); + } + if (StringUtils.isNotEmpty(sysCarMessage.getMessageType())) { + queryWrapper.eq(SysCarMessage::getMessageType, sysCarMessage.getMessageType()); + } + return this.list(queryWrapper); + } + + /** + * 唯一 判断 + * + * @param sysCarMessage 车辆报文记录 + * @return 车辆报文记录 + */ + @Override + public Boolean checkIdUnique(SysCarMessage sysCarMessage) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(SysCarMessage::getId, sysCarMessage.getId()); + return this.count(queryWrapper) > 0; + } + + public List selectSysCarMessageLists(int id) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(SysCarMessage::getModelCode, id); +// queryWrapper.eq(SysCarMessage::getMessageType, modelCode); + return this.list(queryWrapper); + } +// +// @Override +// public Boolean checkById(SysMessageType sysMessageType) { +// LambdaQueryWrapper sysCarMessageLambdaQueryWrapper = new LambdaQueryWrapper<>(); +// sysCarMessageLambdaQueryWrapper.eq(SysCarMessage::getMessageType, sysMessageType); +//// sysCarMessageLambdaQueryWrapper.eq(SysCarMessage::getMessageType, sysMessageType); +// sysCarMessageLambdaQueryWrapper.eq(SysCarMessage::get, sysMessageType); +//// return this.count(sysCarMessageLambdaQueryWrapper) > 0; +// } + +} diff --git a/cloud-modules/cloud-modules-parsing/src/main/java/com/muyu/parsing/test/MqttTest.java b/cloud-modules/cloud-modules-parsing/src/main/java/com/muyu/parsing/test/MqttTest.java new file mode 100644 index 0000000..92325f5 --- /dev/null +++ b/cloud-modules/cloud-modules-parsing/src/main/java/com/muyu/parsing/test/MqttTest.java @@ -0,0 +1,71 @@ +//package com.muyu.parsing.test; +// +//import com.alibaba.fastjson.JSONObject; +//import com.muyu.common.kafka.constants.KafkaConstants; +//import com.muyu.parsing.domain.KafKaData; +//import com.muyu.parsing.domain.SysCarMessage; +//import com.muyu.parsing.manager.TaskManager; +//import com.muyu.parsing.service.impl.SysCarMessageServiceImpl; +//import org.apache.kafka.clients.producer.KafkaProducer; +//import org.apache.kafka.clients.producer.ProducerRecord; +//import org.eclipse.paho.client.mqttv3.*; +//import org.slf4j.Logger; +//import org.slf4j.LoggerFactory; +//import org.springframework.stereotype.Component; +// +//import javax.annotation.PostConstruct; +//import javax.annotation.Resource; +//import java.util.ArrayList; +//import java.util.List; +// +//@Component +//public class MqttTest { +// private static final Logger log = LoggerFactory.getLogger(MqttTest.class); +// +// private static final Integer ID = 1; +// private static final String TOPIC = "vehicle"; +// private static final String BROKER = "tcp://106.15.136.7:1883"; +// +// @Resource +// private KafkaProducer kafkaProducer; +// @Resource +// private SysCarMessageServiceImpl sysCarMessageService; +// @Resource +// private TaskManager taskManager; // 注入 TaskManager +// +// @PostConstruct +// public void init() { +// String clientId = "JavaSample"; +// String userName = ""; +// String password = ""; +// +// try { +// MqttClient sampleClient = new MqttClient(BROKER, clientId); +// MqttConnectOptions connOpts = new MqttConnectOptions(); +// connOpts.setCleanSession(true); +// System.out.println("Connecting to broker: " + BROKER); +// sampleClient.connect(connOpts); +// sampleClient.subscribe(TOPIC, 0); +// sampleClient.setCallback(new MqttCallback() { +// @Override +// public void connectionLost(Throwable throwable) { +// // 处理连接丢失 +// } +// +// @Override +// public void messageArrived(String topic, MqttMessage mqttMessage) throws Exception { +// taskManager.execute(() -> processMessage(mqttMessage)); +// } +// +// @Override +// public void deliveryComplete(IMqttDeliveryToken iMqttDeliveryToken) { +// // 处理消息发送完成 +// } +// }); +// } catch (MqttException me) { +// me.printStackTrace(); +// } +// } +// +// +//} diff --git a/cloud-modules/cloud-modules-system-saas/src/main/resources/banner.txt b/cloud-modules/cloud-modules-parsing/src/main/resources/banner.txt similarity index 100% rename from cloud-modules/cloud-modules-system-saas/src/main/resources/banner.txt rename to cloud-modules/cloud-modules-parsing/src/main/resources/banner.txt diff --git a/cloud-modules/cloud-modules-system-saas/src/main/resources/bootstrap.yml b/cloud-modules/cloud-modules-parsing/src/main/resources/bootstrap.yml similarity index 56% rename from cloud-modules/cloud-modules-system-saas/src/main/resources/bootstrap.yml rename to cloud-modules/cloud-modules-parsing/src/main/resources/bootstrap.yml index 220dec5..46e12fc 100644 --- a/cloud-modules/cloud-modules-system-saas/src/main/resources/bootstrap.yml +++ b/cloud-modules/cloud-modules-parsing/src/main/resources/bootstrap.yml @@ -1,6 +1,6 @@ # Tomcat server: - port: 9704 + port: 10010 # nacos线上地址 nacos: @@ -19,7 +19,7 @@ spring: allow-bean-definition-overriding: true application: # 应用名称 - name: cloud-system-saas + name: cloud-parsing profiles: # 环境配置 active: dev @@ -28,19 +28,19 @@ spring: discovery: # 服务注册地址 server-addr: ${nacos.addr} - # nacos用户名 - username: ${nacos.user-name} - # nacos密码 - password: ${nacos.password} + # # nacos用户名 + # username: ${nacos.user-name} + # # nacos密码 + # password: ${nacos.password} # 命名空间 namespace: ${nacos.namespace} config: # 服务注册地址 server-addr: ${nacos.addr} - # nacos用户名 - username: ${nacos.user-name} - # nacos密码 - password: ${nacos.password} + # # nacos用户名 + # username: ${nacos.user-name} + # # nacos密码 + # password: ${nacos.password} # 命名空间 namespace: ${nacos.namespace} # 配置文件格式 @@ -53,7 +53,25 @@ spring: - application-config-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} # xxl-job 配置文件 - application-xxl-config-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} - + # rabbit 配置文件 + - application-rabbit-config-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} logging: level: com.muyu.system.mapper: DEBUG +#mqtt: +# host:tcp://172.0.0.1:1883 +# userName: root +# passWord: 11 +### MQTT## +mqtt: + host: tcp://192.168.10.198:1883 + userName: root + passWord: 123456 + qos: 1 + clientId: ClientId_local #ClientId_local必须唯一 比如你已经定了叫ABC 那你就一直叫ABC 其他地方就不要使用ABC了 + timeout: 10 + keepalive: 20 + topic1: A/pick/warn/# #符号是代表整个warn下面的全部子主题 没有理解的话 可以百度仔细理解一下 + topic2: A/cmd/resp + topic3: ABCF + topic4: ABCH diff --git a/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/resources/logback/dev.xml b/cloud-modules/cloud-modules-parsing/src/main/resources/logback/dev.xml similarity index 98% rename from cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/resources/logback/dev.xml rename to cloud-modules/cloud-modules-parsing/src/main/resources/logback/dev.xml index 8b99495..d1b5629 100644 --- a/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/resources/logback/dev.xml +++ b/cloud-modules/cloud-modules-parsing/src/main/resources/logback/dev.xml @@ -1,7 +1,7 @@ - + diff --git a/cloud-modules/cloud-modules-carmanage/src/main/resources/logback/test.xml b/cloud-modules/cloud-modules-parsing/src/main/resources/logback/prod.xml similarity index 100% rename from cloud-modules/cloud-modules-carmanage/src/main/resources/logback/test.xml rename to cloud-modules/cloud-modules-parsing/src/main/resources/logback/prod.xml diff --git a/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/resources/logback/test.xml b/cloud-modules/cloud-modules-parsing/src/main/resources/logback/test.xml similarity index 98% rename from cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/resources/logback/test.xml rename to cloud-modules/cloud-modules-parsing/src/main/resources/logback/test.xml index 0fe8654..76a0d8f 100644 --- a/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/resources/logback/test.xml +++ b/cloud-modules/cloud-modules-parsing/src/main/resources/logback/test.xml @@ -1,7 +1,7 @@ - + diff --git a/cloud-modules/cloud-modules-rail/pom.xml b/cloud-modules/cloud-modules-rail/pom.xml deleted file mode 100644 index 2353a2c..0000000 --- a/cloud-modules/cloud-modules-rail/pom.xml +++ /dev/null @@ -1,91 +0,0 @@ - - - - cloud-modules - com.muyu - 3.6.3 - - 4.0.0 - - cloud-modules-rail - - - 17 - 17 - - - - - - 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-core - - - - com.muyu - cloud-common-api-doc - - - - - - - ${project.artifactId} - - - org.springframework.boot - spring-boot-maven-plugin - - - - repackage - - - - - - - diff --git a/cloud-modules/cloud-modules-rail/src/main/java/com/zhangyi/rail/CloudRailApplication.java b/cloud-modules/cloud-modules-rail/src/main/java/com/zhangyi/rail/CloudRailApplication.java deleted file mode 100644 index f490e2a..0000000 --- a/cloud-modules/cloud-modules-rail/src/main/java/com/zhangyi/rail/CloudRailApplication.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.zhangyi.rail; - -public class CloudRailApplication { - public static void main(String[] args) { - - } -} diff --git a/cloud-modules/cloud-modules-rail/src/main/java/com/zhangyi/rail/controller/RailController.java b/cloud-modules/cloud-modules-rail/src/main/java/com/zhangyi/rail/controller/RailController.java deleted file mode 100644 index be833e0..0000000 --- a/cloud-modules/cloud-modules-rail/src/main/java/com/zhangyi/rail/controller/RailController.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.zhangyi.rail.controller; - -public class RailController { -} diff --git a/cloud-modules/cloud-modules-rail/src/main/java/com/zhangyi/rail/domain/SysFenceRail.java b/cloud-modules/cloud-modules-rail/src/main/java/com/zhangyi/rail/domain/SysFenceRail.java deleted file mode 100644 index dc11dbd..0000000 --- a/cloud-modules/cloud-modules-rail/src/main/java/com/zhangyi/rail/domain/SysFenceRail.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.zhangyi.rail.domain; - -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; -import com.muyu.common.core.annotation.Excel; -import lombok.*; -import lombok.experimental.SuperBuilder; - -@Data -@Setter -@Getter -@SuperBuilder -@NoArgsConstructor -@AllArgsConstructor -@TableName("sys_corpuscle_fence") -public class SysFenceRail { -private static final long seriaversionUID =1L; -/** 自增主键 */ -@TableId(type = IdType.AUTO) - private Long id; - -/** 围栏编码 */ -@Excel(name="围栏编码") - private String fenceCode; - /**围栏名称**/ - @Excel(name = "围栏名称") - private String fenceName; - - /**围栏类型**/ - @Excel(name = "围栏类型") - private Long fenceType; - - - - - -} diff --git a/cloud-modules/cloud-modules-system/pom.xml b/cloud-modules/cloud-modules-system/pom.xml index b362f24..0eb3e23 100644 --- a/cloud-modules/cloud-modules-system/pom.xml +++ b/cloud-modules/cloud-modules-system/pom.xml @@ -17,6 +17,11 @@ + + com.alibaba + druid-spring-boot-starter + 1.2.20 + diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/CloudSystemApplication.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/CloudSystemApplication.java index ecf18c3..2dcb59a 100644 --- a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/CloudSystemApplication.java +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/CloudSystemApplication.java @@ -17,13 +17,6 @@ import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; //@EnableCustomSwagger2 @EnableMyFeignClients @SpringBootApplication -//@SpringBootApplication( -// exclude = { -// DataSourceAutoConfiguration.class, -// DruidDataSourceAutoConfigure.class, -// DynamicDataSourceAutoConfiguration.class -// } -//) public class CloudSystemApplication { public static void main (String[] args) { SpringApplication.run(CloudSystemApplication.class, args); diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysDeptController.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysDeptController.java index aad1892..5a21d9d 100644 --- a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysDeptController.java +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysDeptController.java @@ -72,8 +72,10 @@ public class SysDeptController extends BaseController { return error("新增部门'" + dept.getDeptName() + "'失败,部门名称已存在"); } dept.setCreateBy(SecurityUtils.getUsername()); - SysDept sysDept = deptService.selectDeptById(dept.getParentId()); - dept.setFirmCode(sysDept.getFirmCode()); + if (StringUtils.isEmpty(dept.getFirmCode())){ + SysDept sysDept = deptService.selectDeptById(dept.getParentId()); + dept.setFirmCode(sysDept.getFirmCode()); + } return toAjax(deptService.insertDept(dept)); } diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysFirmController.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysFirmController.java index e5fa720..ef6b67b 100644 --- a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysFirmController.java +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysFirmController.java @@ -1,20 +1,40 @@ package com.muyu.system.controller; -import com.muyu.system.service.ISysFirmService; import com.muyu.common.core.domain.Result; +import com.muyu.common.core.utils.StringUtils; import com.muyu.common.core.utils.poi.ExcelUtil; import com.muyu.common.core.web.controller.BaseController; import com.muyu.common.core.web.page.TableDataInfo; import com.muyu.common.security.annotation.RequiresPermissions; import com.muyu.common.security.utils.SecurityUtils; +import com.muyu.common.system.domain.SysDept; +import com.muyu.common.system.domain.SysEnt; +import com.muyu.common.system.domain.SysRole; +import com.muyu.common.system.domain.SysUser; import com.muyu.system.domain.SysFirm; +import com.muyu.system.domain.SysMenu; +import com.muyu.system.domain.req.SysFirmReq; +import com.muyu.system.service.ISysFirmService; +import com.muyu.system.service.SysEntService; +import com.muyu.system.service.impl.SysConfigServiceImpl; import jakarta.servlet.http.HttpServletResponse; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.core.io.ClassPathResource; +import org.springframework.core.io.support.EncodedResource; +import org.springframework.jdbc.datasource.init.ScriptUtils; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.SQLException; +import java.sql.Statement; import java.util.Arrays; import java.util.List; +import java.util.Objects; +import java.util.regex.Matcher; +import java.util.regex.Pattern; /** * 企业基础信息Controller @@ -28,8 +48,22 @@ public class SysFirmController extends BaseController { @Resource private ISysFirmService sysFirmService; + @Resource + private SysEntService sysEntService; + @Resource + private SysRoleController sysRoleController; + @Resource + private SysMenuController sysMenuController; + @Resource + private SysUserController sysUserController; + @Resource + private SysDeptController sysDeptController; + private static final String FIRM_CREDIT_CODE = "^[0-9A-HJ-NPQRTUWXY]{2}\\d{6}[0-9A-HJ-NPQRTUWXY]{10}$"; + @Autowired + private SysConfigServiceImpl sysConfigServiceImpl; + /** * 查询企业基础信息列表 */ @@ -69,16 +103,108 @@ public class SysFirmController extends BaseController */ @RequiresPermissions("firm:firmInfo:add") @PostMapping - public Result add( - @Validated @RequestBody SysFirm sysFirm) - { + public Result add(@Validated @RequestBody SysFirmReq sysFirm) { + String firmName = sysFirm.getFirmName(); + String firmCode = sysFirm.getFirmCode(); + String firmCreditCode = sysFirm.getFirmCreditCode(); + + // 验证企业基础信息是否为空 + if (StringUtils.isAllBlank(firmName, firmCode, firmCreditCode)) { + return error("新增 企业基础信息 '" + sysFirm + "'失败,企业基础信息信息为空"); + } + + // 检查企业基础信息是否已存在 if (sysFirmService.checkIdUnique(sysFirm)) { return error("新增 企业基础信息 '" + sysFirm + "'失败,企业基础信息已存在"); } + + // 验证统一社会信用代码格式 + if (!isValidFirmCreditCode(firmCreditCode)) { + return error("新增 企业基础信息 '" + sysFirm + "'失败,统一社会信用代码格式不正确"); + } + + //添加部门 + SysDept sysDept = new SysDept(); + sysDept.setFirmCode(firmCode); + sysDept.setParentId(100L); + sysDept.setDeptName(firmName); + sysDept.setAncestors("0,100"); + sysDept.setOrderNum(3); + sysDept.setStatus("0"); + sysDept.setDelFlag("0"); + + sysDeptController.add(sysDept); + + // 设置创建者和状态 sysFirm.setCreateBy(SecurityUtils.getUsername()); + + //添加用户与用户角色 + SysUser sysUser = new SysUser(); + sysUser.setFirmCode(firmCode); + sysUser.setUserName(sysFirm.getFirmCode()+"-admin"); + sysUser.setNickName(sysFirm.getFirmName()+"管理员"); + sysUser.setPassword(sysConfigServiceImpl.selectConfigByKey("sys.user.initPassword")); + sysUser.setDeptId(sysDept.getDeptId()); + sysUser.setRoleIds(new Long[]{119L}); + sysUserController.add(sysUser); + + // 创建数据库和表 + try { + createDatabaseAndTables(firmCode); + } catch (SQLException e) { + return error("数据库操作失败: " + e.getMessage()); + } + + // 保存企业信息 + SysEnt sysEnt = new SysEnt(); + sysEnt.setUserName("root"); + sysEnt.setPassword("bawei2112A"); + sysEnt.setEntCode(firmCode); + sysEnt.setDbName(firmCode); + sysEnt.setIp("47.116.173.119"); + sysEnt.setPort(3306); + sysEntService.save(sysEnt); + + sysFirm.setMemberId(1L); + return toAjax(sysFirmService.save(sysFirm)); } + // + private boolean isValidFirmCreditCode(String firmCreditCode) { + Pattern pattern = Pattern.compile(FIRM_CREDIT_CODE); + Matcher matcher = pattern.matcher(firmCreditCode); + return matcher.matches(); + } + + private void createDatabaseAndTables(String firmCode) throws SQLException { + String url = "jdbc:mysql://47.116.173.119:3306/?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8"; + try (Connection connection = DriverManager.getConnection(url, "root", "bawei2112A"); + Statement statement = connection.createStatement()) { + + // 创建数据库 + statement.executeUpdate("CREATE DATABASE IF NOT EXISTS " + firmCode); + } + + // 切换到新的数据库连接 + Connection connection = null; + try { + url = "jdbc:mysql://47.116.173.119:3306/" + firmCode + "?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8"; + String user = "root"; + String pwd = "bawei2112A"; + String driverClassName = "com.mysql.cj.jdbc.Driver"; + Class.forName(driverClassName); + connection = DriverManager.getConnection(url, user, pwd); + } catch (ClassNotFoundException e) { + throw new RuntimeException(e); + } + ClassPathResource rc = new ClassPathResource("static/saas_operation.sql"); + EncodedResource er = new EncodedResource(rc, "utf-8"); + ScriptUtils.executeSqlScript(connection, er); + + } + + /** * 修改企业基础信息 */ @@ -98,10 +224,11 @@ public class SysFirmController extends BaseController * 删除企业基础信息 */ @RequiresPermissions("firm:firmInfo:remove") - @DeleteMapping("/{ids}") + @DeleteMapping("/{ids}") public Result remove(@PathVariable("ids") Long[] ids) { sysFirmService.removeBatchByIds(Arrays.asList(ids)); return success(); } + } diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysMemberController.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysMemberController.java new file mode 100644 index 0000000..2bd5c2c --- /dev/null +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysMemberController.java @@ -0,0 +1,28 @@ +package com.muyu.system.controller; + +import com.muyu.common.core.domain.Result; +import com.muyu.common.system.domain.SysMember; +import com.muyu.system.service.SysMemberService; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import java.util.List; +/* +会员等级 + */ +@RestController +@RequestMapping("/member") +public class SysMemberController { + @Resource + private SysMemberService service; + + /** + * 查询会员等级列表 + */ + @GetMapping("/list") + private Result> selectList(SysMember member) { + return Result.success(service.selectSysMemberList(member)); + } +} diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysMenuController.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysMenuController.java index 2149ace..063ca65 100644 --- a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysMenuController.java +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysMenuController.java @@ -33,7 +33,7 @@ public class SysMenuController extends BaseController { */ @RequiresPermissions("system:menu:list") @GetMapping("/list") - public Result list (SysMenu menu) { + public Result> list (SysMenu menu) { Long userId = SecurityUtils.getUserId(); List menus = menuService.selectMenuList(menu, userId); return success(menus); diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/SysFirm.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/SysFirm.java index bc5698b..204f886 100644 --- a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/SysFirm.java +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/SysFirm.java @@ -51,6 +51,9 @@ public class SysFirm extends BaseEntity{ @Excel(name = "启用状态(1.开业 2.停业 3.休业)") private String state; + @Excel(name = "会员等级") + private Long memberId; + @Override @@ -67,6 +70,7 @@ public class SysFirm extends BaseEntity{ .append("updateBy", getUpdateBy()) .append("updateTime", getUpdateTime()) .append("remark", getRemark()) + .append("memberId", getMemberId()) .toString(); } } diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/req/SysFirmReq.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/req/SysFirmReq.java new file mode 100644 index 0000000..0912f00 --- /dev/null +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/req/SysFirmReq.java @@ -0,0 +1,30 @@ +package com.muyu.system.domain.req; + +import com.muyu.common.core.annotation.Excel; +import com.muyu.system.domain.SysFirm; +import jakarta.validation.constraints.NotBlank; +import lombok.*; +import lombok.experimental.SuperBuilder; + +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +public class SysFirmReq extends SysFirm { + + /** + * 用户账号 + */ + @Excel(name = "登录名称") + private String userName; + + /** 统一社会信用代码 */ + @NotBlank(message = "统一社会信用代码不可为空") + private String firmCreditCode; + /** + * 密码 + */ + private String password; + + +} diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/mapper/SysMemberMapper.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/mapper/SysMemberMapper.java new file mode 100644 index 0000000..965670d --- /dev/null +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/mapper/SysMemberMapper.java @@ -0,0 +1,7 @@ +package com.muyu.system.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.muyu.common.system.domain.SysMember; + +public interface SysMemberMapper extends BaseMapper { +} diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/rabbit/RabbitTest.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/rabbit/RabbitTest.java index 21ae678..fda7ea0 100644 --- a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/rabbit/RabbitTest.java +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/rabbit/RabbitTest.java @@ -1,4 +1,4 @@ -//package com.muyu.system.rabbit; +package com.muyu.system.rabbit;//package com.muyu.system.rabbit; // //import com.alibaba.fastjson2.JSONObject; //import com.muyu.system.domain.SysConfig; diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/SysMemberService.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/SysMemberService.java new file mode 100644 index 0000000..2c52ddb --- /dev/null +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/SysMemberService.java @@ -0,0 +1,10 @@ +package com.muyu.system.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.muyu.common.system.domain.SysMember; + +import java.util.List; + +public interface SysMemberService extends IService { + public List selectSysMemberList(SysMember sysMember); +} diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/SysMenuService.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/SysMenuService.java index 29bfb07..2c4ab14 100644 --- a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/SysMenuService.java +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/SysMenuService.java @@ -33,6 +33,7 @@ public interface SysMenuService extends IService { */ public List selectMenuList (SysMenu menu, Long userId); + /** * 根据用户ID查询权限 * diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/impl/SysConfigServiceImpl.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/impl/SysConfigServiceImpl.java index fbfbe6c..14fe3bb 100644 --- a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/impl/SysConfigServiceImpl.java +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/impl/SysConfigServiceImpl.java @@ -49,6 +49,7 @@ public class SysConfigServiceImpl extends ServiceImpl selectSysFirmList(SysFirm sysFirm) { - return sysFirmMapper.selectSysFirmList(sysFirm); + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(StringUtil.isNotEmpty(sysFirm.getFirmCreditCode()), + SysFirm::getFirmCreditCode, sysFirm.getFirmCreditCode()); + queryWrapper.eq(StringUtil.isNotEmpty(sysFirm.getFirmCode()), + SysFirm::getFirmCode, sysFirm.getFirmCode()); + queryWrapper.like(StringUtil.isNotEmpty(sysFirm.getFirmName()), + SysFirm::getFirmName, sysFirm.getFirmName()); + List sysFirmList = sysFirmMapper.selectSysFirmList(sysFirm); + return sysFirmList; } /** @@ -60,7 +70,11 @@ public class SysFirmServiceImpl @Override public Boolean checkIdUnique(SysFirm sysFirm) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.eq(SysFirm::getId, sysFirm.getId()); + queryWrapper.eq(SysFirm::getFirmCreditCode, sysFirm.getFirmCreditCode()) + .or() + .eq(SysFirm::getFirmCode, sysFirm.getFirmCode()) + .or() + .eq(SysFirm::getFirmName, sysFirm.getFirmName()); return this.count(queryWrapper) > 0; } diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/impl/SysMemberServiceImpl.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/impl/SysMemberServiceImpl.java new file mode 100644 index 0000000..a43ec93 --- /dev/null +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/impl/SysMemberServiceImpl.java @@ -0,0 +1,27 @@ +package com.muyu.system.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.muyu.common.core.utils.StringUtils; +import com.muyu.common.system.domain.SysMember; +import com.muyu.system.mapper.SysMemberMapper; +import com.muyu.system.service.SysMemberService; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +public class SysMemberServiceImpl extends + ServiceImpl + implements SysMemberService { + + + @Override + public List selectSysMemberList(SysMember sysMember) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + if(sysMember.getMemberId()!=null){ + queryWrapper.eq(SysMember::getMemberId, sysMember.getMemberId()); + } + return this.list(queryWrapper); + } +} diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/impl/SysMenuServiceImpl.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/impl/SysMenuServiceImpl.java index 0a17000..f796cb2 100644 --- a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/impl/SysMenuServiceImpl.java +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/impl/SysMenuServiceImpl.java @@ -1,5 +1,6 @@ package com.muyu.system.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.muyu.common.core.constant.Constants; import com.muyu.common.core.constant.UserConstants; @@ -71,6 +72,7 @@ public class SysMenuServiceImpl extends ServiceImpl impl return menuList; } + /** * 根据用户ID查询权限 * diff --git a/cloud-modules/cloud-modules-system/src/main/resources/bootstrap.yml b/cloud-modules/cloud-modules-system/src/main/resources/bootstrap.yml index 2db1105..f660b9f 100644 --- a/cloud-modules/cloud-modules-system/src/main/resources/bootstrap.yml +++ b/cloud-modules/cloud-modules-system/src/main/resources/bootstrap.yml @@ -29,18 +29,18 @@ spring: # 服务注册地址 server-addr: ${nacos.addr} # nacos用户名 - username: ${nacos.user-name} - # nacos密码 - password: ${nacos.password} +# username: ${nacos.user-name} +# # nacos密码 +# password: ${nacos.password} # 命名空间 namespace: ${nacos.namespace} config: # 服务注册地址 server-addr: ${nacos.addr} # nacos用户名 - username: ${nacos.user-name} - # nacos密码 - password: ${nacos.password} +# username: ${nacos.user-name} +# # nacos密码 +# password: ${nacos.password} # 命名空间 namespace: ${nacos.namespace} # 配置文件格式 diff --git a/cloud-modules/cloud-modules-system/src/main/resources/mapper/system/SysDeptMapper.xml b/cloud-modules/cloud-modules-system/src/main/resources/mapper/system/SysDeptMapper.xml index f110ef9..3c02e7b 100644 --- a/cloud-modules/cloud-modules-system/src/main/resources/mapper/system/SysDeptMapper.xml +++ b/cloud-modules/cloud-modules-system/src/main/resources/mapper/system/SysDeptMapper.xml @@ -182,7 +182,7 @@ update sys_dept - set firm_code = CONCAT(firm_code,'_',#{deptId}) + set firm_code = CONCAT(firm_code) where dept_id = #{deptId} diff --git a/cloud-modules/cloud-modules-system/src/main/resources/static/saas_operation.sql b/cloud-modules/cloud-modules-system/src/main/resources/static/saas_operation.sql new file mode 100644 index 0000000..542944d --- /dev/null +++ b/cloud-modules/cloud-modules-system/src/main/resources/static/saas_operation.sql @@ -0,0 +1,294 @@ +/* + Navicat Premium Data Transfer + + Source Server : 47.116.173.119 + Source Server Type : MySQL + Source Server Version : 80401 + Source Host : 47.116.173.119:3306 + Source Schema : saas_operation + + Target Server Type : MySQL + Target Server Version : 80401 + File Encoding : 65001 + + Date: 30/09/2024 10:21:52 +*/ + +SET NAMES utf8mb4; +SET FOREIGN_KEY_CHECKS = 0; + +-- ---------------------------- +-- Table structure for sys_car +-- ---------------------------- +DROP TABLE IF EXISTS `sys_car`; +CREATE TABLE `sys_car` ( + `id` int NOT NULL AUTO_INCREMENT COMMENT '自增主键', + `car_vin` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '车辆VIN码', + `car_plate` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '车辆车牌号', + `car_brand` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '车辆品牌', + `car_model` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '车辆型号', + `car_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '车辆车型(如客车,卡车,公交车等)', + `car_last_join_time` datetime NULL DEFAULT NULL COMMENT '最后一次连线时间', + `car_last_offline_time` datetime NULL DEFAULT NULL COMMENT '最后一次离线时间', + `state` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '2' COMMENT '启用状态(1.在线 2.离线 3.已断开 4.待连接 5.维修中', + `create_by` int NULL DEFAULT NULL COMMENT '创建人', + `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', + `update_by` int NULL DEFAULT NULL COMMENT '更新人', + `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', + `remark` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '备注', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 5 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '车辆基础信息表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for sys_car_details +-- ---------------------------- +DROP TABLE IF EXISTS `sys_car_details`; +CREATE TABLE `sys_car_details` ( + `id` int NOT NULL COMMENT '车辆ID', + `car_vin` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '车辆VIN码', + `car_motor_manufacturer` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '车辆电机厂商', + `car_motor_model` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '电机型号', + `car_battery_manufacturer` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '车辆电池厂商', + `car_battery_model` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '电池型号', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '车辆详细信息表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for sys_car_fault +-- ---------------------------- +DROP TABLE IF EXISTS `sys_car_fault`; +CREATE TABLE `sys_car_fault` ( + `id` int NOT NULL AUTO_INCREMENT COMMENT '自增主键', + `fault_code` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '车辆故障编码', + `fault_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '车辆故障类型', + `fault_label` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '车辆故障标签', + `fault_bit` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '车辆故障位', + `fault_value` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '车辆故障值', + `fault_warn` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '故障等级', + `fault_status` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '报警状态(Y.是,N.否)', + `create_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '创建人', + `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', + `update_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '更新人', + `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', + `remark` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '备注', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 5 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '车辆故障表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for sys_car_message +-- ---------------------------- +DROP TABLE IF EXISTS `sys_car_message`; +CREATE TABLE `sys_car_message` ( + `id` int NOT NULL AUTO_INCREMENT COMMENT '自增主键', + `model_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '车辆型号编码', + `message_type_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '车辆报文类型编码', + `message_start_index` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '开始位下标', + `message_end_index` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '结束位下标', + `message_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '报文分类', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 61 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '车辆报文记录表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for sys_corpuscle_fence +-- ---------------------------- +DROP TABLE IF EXISTS `sys_corpuscle_fence`; +CREATE TABLE `sys_corpuscle_fence` ( + `id` int NOT NULL AUTO_INCREMENT COMMENT '自增主键', + `fence_code` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '围栏编码', + `fence_name` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '围栏名称', + `fence_type` int NOT NULL DEFAULT 1 COMMENT '围栏类型(1.驶入 2.驶出)', + `fence_position` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '围栏位置', + `state` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT '1' COMMENT '启用状态(1.启用 2.停用)', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '电子围栏表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for sys_ent +-- ---------------------------- +DROP TABLE IF EXISTS `sys_ent`; +CREATE TABLE `sys_ent` ( + `id` int NOT NULL AUTO_INCREMENT COMMENT 'ID', + `ent_code` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '企业编码', + `ip` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '企业数据库IP', + `port` int NULL DEFAULT NULL COMMENT '数据库端口', + `db_name` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '连接数据库名称', + `user_name` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '用户名', + `password` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '密码', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '企业数据库信息记录表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for sys_fence_group +-- ---------------------------- +DROP TABLE IF EXISTS `sys_fence_group`; +CREATE TABLE `sys_fence_group` ( + `id` int NOT NULL AUTO_INCREMENT COMMENT '自增主键', + `group_code` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '围栏组编码', + `group_name` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '围栏组名称', + `group_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '围栏组类型', + `state` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '启用状态', + `create_by` int NULL DEFAULT NULL COMMENT '创建人', + `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', + `update_by` int NULL DEFAULT NULL COMMENT '更新人', + `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', + `remark` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '备注', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '围栏组表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for sys_fence_group_mid +-- ---------------------------- +DROP TABLE IF EXISTS `sys_fence_group_mid`; +CREATE TABLE `sys_fence_group_mid` ( + `group_id` int NOT NULL COMMENT '围栏组id', + `fence_id` int NOT NULL COMMENT '围栏id', + `new_time` datetime NULL DEFAULT NULL COMMENT '创建时间', + PRIMARY KEY (`group_id`, `fence_id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '围栏组连接表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for sys_firm +-- ---------------------------- +DROP TABLE IF EXISTS `sys_firm`; +CREATE TABLE `sys_firm` ( + `id` int NOT NULL AUTO_INCREMENT COMMENT '自增主键', + `firm_credit_code` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '统一社会信用代码', + `firm_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '企业编码', + `firm_name` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '企业名称', + `firm_logs` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '企业logs', + `state` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '1' COMMENT '启用状态(1.开业 2.停业 3.休业)', + `create_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '创建人', + `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', + `update_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '更新人', + `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', + `remark` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '备注', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '企业基础信息表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for sys_message_type +-- ---------------------------- +DROP TABLE IF EXISTS `sys_message_type`; +CREATE TABLE `sys_message_type` ( + `id` int NOT NULL AUTO_INCREMENT COMMENT '自增主键', + `message_code` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '报文编码', + `message_name` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '报文名称', + `message_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '报文分类', + `message_class` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '报文字段类型', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 47 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '车辆报文类型表' ROW_FORMAT = Dynamic; +-- ---------------------------- +-- Records of sys_message_type +-- ---------------------------- +INSERT INTO `sys_message_type` VALUES (1, 'vin', 'VIN码', 'identification', 'String'); +INSERT INTO `sys_message_type` VALUES (2, 'timestamp', '时间戳', 'identification', 'String'); +INSERT INTO `sys_message_type` VALUES (3, 'longitude', '经度', 'identification', 'String'); +INSERT INTO `sys_message_type` VALUES (4, 'latitude', '纬度', 'identification', 'String'); +INSERT INTO `sys_message_type` VALUES (5, 'speed', '车速', 'identification', 'String'); +INSERT INTO `sys_message_type` VALUES (6, 'TM', '总里程', 'information', 'String'); +INSERT INTO `sys_message_type` VALUES (7, 'TV', '总电压', 'information', 'String'); +INSERT INTO `sys_message_type` VALUES (8, 'CC', '总电流', 'information', 'String'); +INSERT INTO `sys_message_type` VALUES (9, 'IR', '绝缘电阻', 'information', 'String'); +INSERT INTO `sys_message_type` VALUES (10, 'GP', '档位', 'information', 'String'); +INSERT INTO `sys_message_type` VALUES (11, 'APTV', '加速踏板行程值', 'information', 'String'); +INSERT INTO `sys_message_type` VALUES (12, 'BPTV', '制动踏板行程值', 'information', 'String'); +INSERT INTO `sys_message_type` VALUES (13, 'SFC', '燃料消耗率', 'information', 'String'); +INSERT INTO `sys_message_type` VALUES (14, 'MCT', '电机控制器温度', 'information', 'String'); +INSERT INTO `sys_message_type` VALUES (15, 'MS', '电机转速', 'information', 'String'); +INSERT INTO `sys_message_type` VALUES (16, 'MTO', '电机转矩', 'information', 'String'); +INSERT INTO `sys_message_type` VALUES (17, 'MTE', '电机温度', 'information', 'String'); +INSERT INTO `sys_message_type` VALUES (18, 'MV', '电机电压', 'information', 'String'); +INSERT INTO `sys_message_type` VALUES (19, 'MC', '电机电流', 'information', 'String'); +INSERT INTO `sys_message_type` VALUES (20, 'PBRSOC', '动力电池剩余电量SOC', 'information', 'String'); +INSERT INTO `sys_message_type` VALUES (21, 'MACSFP', '当前状态允许的最大反馈功率', 'information', 'String'); +INSERT INTO `sys_message_type` VALUES (22, 'CSATMDP', '当前状态允许最大放电功率', 'information', 'String'); +INSERT INTO `sys_message_type` VALUES (23, 'BMS', 'BMS自检计数器', 'information', 'String'); +INSERT INTO `sys_message_type` VALUES (24, 'CADC', '动力电池充放电电流', 'information', 'String'); +INSERT INTO `sys_message_type` VALUES (25, 'PBLETVV3', '动力电池负载端总电压V3', 'information', 'String'); +INSERT INTO `sys_message_type` VALUES (26, 'SMV', '单次最大电压', 'information', 'String'); +INSERT INTO `sys_message_type` VALUES (27, 'MVOAB', '单体电池最低电压', 'information', 'String'); +INSERT INTO `sys_message_type` VALUES (28, 'MAXBT', '单体电池最高温度', 'information', 'String'); +INSERT INTO `sys_message_type` VALUES (29, 'MINBT', '单体电池最低温度', 'information', 'String'); +INSERT INTO `sys_message_type` VALUES (30, 'PBAC', '动力电池可用容量', 'information', 'String'); +INSERT INTO `sys_message_type` VALUES (31, 'VS', '车辆状态', 'status', 'String'); +INSERT INTO `sys_message_type` VALUES (32, 'CS', '充电状态', 'status', 'String'); +INSERT INTO `sys_message_type` VALUES (33, 'RS', '运行状态', 'status', 'String'); +INSERT INTO `sys_message_type` VALUES (34, 'SOC', 'SOC', 'status', 'String'); +INSERT INTO `sys_message_type` VALUES (35, 'RESDWC', '可充电储能装置工作状态', 'status', 'String'); +INSERT INTO `sys_message_type` VALUES (36, 'EAS', 'EAS', 'status', 'String'); +INSERT INTO `sys_message_type` VALUES (37, 'PTC', 'PTC', 'status', 'String'); +INSERT INTO `sys_message_type` VALUES (38, 'EPS', 'EPS', 'status', 'String'); +INSERT INTO `sys_message_type` VALUES (39, 'ABS', 'ABS', 'status', 'String'); +INSERT INTO `sys_message_type` VALUES (40, 'MCU', 'MCU', 'status', 'String'); +INSERT INTO `sys_message_type` VALUES (41, 'PBHS', '动力电池加热状态', 'status', 'String'); +INSERT INTO `sys_message_type` VALUES (42, 'PBCS', '动力电池当前状态', 'status', 'String'); +INSERT INTO `sys_message_type` VALUES (43, 'PBIS', '动力电池保温状态', 'status', 'String'); +INSERT INTO `sys_message_type` VALUES (44, 'DCDC', 'DCDC', 'status', 'String'); +INSERT INTO `sys_message_type` VALUES (45, 'CHG', 'CHG', 'status', 'String'); +INSERT INTO `sys_message_type` VALUES (46, 'CHB', '校验位', NULL, 'String'); +INSERT INTO `sys_message_type` VALUES (47, 'CUB', '截止位', NULL, 'String'); + +SET FOREIGN_KEY_CHECKS = 1; + +-- ---------------------------- +-- Table structure for warn_logs +-- ---------------------------- +DROP TABLE IF EXISTS `warn_logs`; +CREATE TABLE `warn_logs` ( + `id` int NOT NULL AUTO_INCREMENT COMMENT '预警日志id', + `vin` varchar(58) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '车辆vin码', + `warn_rule_id` int NULL DEFAULT NULL COMMENT '规则id', + `start_time` datetime NULL DEFAULT NULL COMMENT '开始时间', + `end_time` datetime NULL DEFAULT NULL COMMENT '结束时间', + `max_value` int NULL DEFAULT NULL COMMENT '最大值', + `min_value` int NULL DEFAULT NULL COMMENT '最小值', + `avg_value` int NULL DEFAULT NULL COMMENT '平均值', + `median_value` int NULL DEFAULT NULL COMMENT '中位数', + `status` int NULL DEFAULT NULL COMMENT '是否发送预警', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = DYNAMIC; + +-- ---------------------------- +-- Table structure for warn_rule +-- ---------------------------- +DROP TABLE IF EXISTS `warn_rule`; +CREATE TABLE `warn_rule` ( + `id` int NOT NULL AUTO_INCREMENT COMMENT '规则id', + `rule_name` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '规则名称', + `strategy_id` int NULL DEFAULT NULL COMMENT '策略id', + `msg_type_id` int NULL DEFAULT NULL COMMENT '报文数据类型id', + `slide_time` int NULL DEFAULT NULL COMMENT '滑窗时间', + `slide_frequency` int NULL DEFAULT NULL COMMENT '滑窗频率', + `max_value` int NULL DEFAULT NULL COMMENT '最大值', + `min_value` int NULL DEFAULT NULL COMMENT '最小值', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = DYNAMIC; + +-- ---------------------------- +-- Table structure for warn_slide_config +-- ---------------------------- +DROP TABLE IF EXISTS `warn_slide_config`; +CREATE TABLE `warn_slide_config` ( + `id` int NOT NULL COMMENT '滑窗id', + `vin` varchar(38) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '车辆vin码', + `slide_time` int NULL DEFAULT NULL COMMENT '滑动时间', + `created_by` int NULL DEFAULT NULL COMMENT '创建人', + `created_time` datetime NULL DEFAULT NULL COMMENT '创建时间', + `updated_by` int NULL DEFAULT NULL COMMENT '更新人', + `updated_time` datetime NULL DEFAULT NULL COMMENT '更新时间', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = DYNAMIC; + +-- ---------------------------- +-- Table structure for warn_strategy +-- ---------------------------- +DROP TABLE IF EXISTS `warn_strategy`; +CREATE TABLE `warn_strategy` ( + `id` int NOT NULL AUTO_INCREMENT COMMENT '策略id', + `car_type_id` int NULL DEFAULT NULL COMMENT '车辆类型id', + `strategy_name` varchar(38) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '策略名称', + `msg_id` int NULL DEFAULT NULL COMMENT '报文模版id', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = DYNAMIC; + +SET FOREIGN_KEY_CHECKS = 1; diff --git a/cloud-modules/cloud-modules-warn/cloud-warn-client/pom.xml b/cloud-modules/cloud-modules-warn/cloud-warn-client/pom.xml deleted file mode 100644 index 47ec49c..0000000 --- a/cloud-modules/cloud-modules-warn/cloud-warn-client/pom.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - 4.0.0 - - com.muyu - cloud-modules-warn - 3.6.3 - - - cloud-warn-client - - - 17 - 17 - UTF-8 - - - diff --git a/cloud-modules/cloud-modules-warn/cloud-warn-remote/pom.xml b/cloud-modules/cloud-modules-warn/cloud-warn-remote/pom.xml deleted file mode 100644 index dfaa873..0000000 --- a/cloud-modules/cloud-modules-warn/cloud-warn-remote/pom.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - 4.0.0 - - com.muyu - cloud-modules-warn - 3.6.3 - - - cloud-warn-remote - - - 17 - 17 - UTF-8 - - - diff --git a/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/resources/banner.txt b/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/resources/banner.txt deleted file mode 100644 index 0dd5eee..0000000 --- a/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/resources/banner.txt +++ /dev/null @@ -1,2 +0,0 @@ -Spring Boot Version: ${spring-boot.version} -Spring Application Name: ${spring.application.name} diff --git a/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/resources/bootstrap.yml b/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/resources/bootstrap.yml deleted file mode 100644 index a12bfd9..0000000 --- a/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/resources/bootstrap.yml +++ /dev/null @@ -1,48 +0,0 @@ -# Tomcat -server: - port: 10003 - -# nacos线上地址 -nacos: - addr: 47.116.173.119:8848 - user-name: nacos - password: nacos - namespace: one - -# Spring -spring: - main: - allow-bean-definition-overriding: true - application: - # 应用名称 - name: cloud-warn - profiles: - # 环境配置 - active: dev - cloud: - nacos: - discovery: - # 服务注册地址 - server-addr: ${nacos.addr} - # 命名空间 - namespace: ${nacos.namespace} - config: - # 服务注册地址 - server-addr: ${nacos.addr} - # 命名空间 - namespace: ${nacos.namespace} - # 配置文件格式 - file-extension: yml - # 共享配置 - shared-configs: - # 系统共享配置 - - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} - # 系统环境Config共享配置 - - application-config-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} - # xxl-job 配置文件 - - application-xxl-config-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} - # engine配置 - - engine-config-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} -logging: - level: - com.muyu.system.mapper: DEBUG diff --git a/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/resources/logback/prod.xml b/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/resources/logback/prod.xml deleted file mode 100644 index 0fe8654..0000000 --- a/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/resources/logback/prod.xml +++ /dev/null @@ -1,81 +0,0 @@ - - - - - - - - - - - - ${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/cloud-warn-server/src/main/resources/mapper/platform/WarnLogsMapper.xml b/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/resources/mapper/platform/WarnLogsMapper.xml deleted file mode 100644 index 6d23e91..0000000 --- a/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/resources/mapper/platform/WarnLogsMapper.xml +++ /dev/null @@ -1,96 +0,0 @@ - - - - - - - - - - - - - - - - - - - select id, vin, warn_rule_id, start_time, end_time, max_value, min_value, avg_value, median_value, status from warn_logs - - - - - - - - insert into warn_logs - - vin, - warn_rule_id, - start_time, - end_time, - max_value, - min_value, - avg_value, - median_value, - status, - - - #{vin}, - #{warnRuleId}, - #{startTime}, - #{endTime}, - #{maxValue}, - #{minValue}, - #{avgValue}, - #{medianValue}, - #{status}, - - - - - update warn_logs - - vin = #{vin}, - warn_rule_id = #{warnRuleId}, - start_time = #{startTime}, - end_time = #{endTime}, - max_value = #{maxValue}, - min_value = #{minValue}, - avg_value = #{avgValue}, - median_value = #{medianValue}, - status = #{status}, - - where id = #{id} - - - - delete from warn_logs where id = #{id} - - - - delete from warn_logs where id in - - #{id} - - - diff --git a/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/resources/mapper/platform/WarnRuleMapper.xml b/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/resources/mapper/platform/WarnRuleMapper.xml deleted file mode 100644 index 290906f..0000000 --- a/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/resources/mapper/platform/WarnRuleMapper.xml +++ /dev/null @@ -1,86 +0,0 @@ - - - - - - - - - - - - - - - - - select id, rule_name, strategy_id, msg_type_id, slide_time, slide_frequency, max_value, min_value from warn_rule - - - - - - - - insert into warn_rule - - rule_name, - strategy_id, - msg_type_id, - slide_time, - slide_frequency, - max_value, - min_value, - - - #{ruleName}, - #{strategyId}, - #{msgTypeId}, - #{slideTime}, - #{slideFrequency}, - #{maxValue}, - #{minValue}, - - - - - update warn_rule - - rule_name = #{ruleName}, - strategy_id = #{strategyId}, - msg_type_id = #{msgTypeId}, - slide_time = #{slideTime}, - slide_frequency = #{slideFrequency}, - max_value = #{maxValue}, - min_value = #{minValue}, - - where id = #{id} - - - - delete from warn_rule where id = #{id} - - - - delete from warn_rule where id in - - #{id} - - - diff --git a/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/resources/mapper/platform/WarnRulesMapper.xml b/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/resources/mapper/platform/WarnRulesMapper.xml deleted file mode 100644 index a9ef466..0000000 --- a/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/resources/mapper/platform/WarnRulesMapper.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - diff --git a/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/resources/mapper/platform/WarnStrategyMapper.xml b/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/resources/mapper/platform/WarnStrategyMapper.xml deleted file mode 100644 index 6959c4a..0000000 --- a/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/resources/mapper/platform/WarnStrategyMapper.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - - - - - - - - select id, car_type_id, strategy_name, msg_id from warn_strategy - - - - - - - - insert into warn_strategy - - car_type_id, - strategy_name, - msg_id, - - - #{carTypeId}, - #{strategyName}, - #{msgId}, - - - - - update warn_strategy - - car_type_id = #{carTypeId}, - strategy_name = #{strategyName}, - msg_id = #{msgId}, - - where id = #{id} - - - - delete from warn_strategy where id = #{id} - - - - delete from warn_strategy where id in - - #{id} - - - diff --git a/cloud-modules/pom.xml b/cloud-modules/pom.xml index a4d02f4..20a7f40 100644 --- a/cloud-modules/pom.xml +++ b/cloud-modules/pom.xml @@ -12,12 +12,9 @@ cloud-modules-system cloud-modules-gen cloud-modules-file - cloud-modules-system-saas - cloud-breakdown - cloud-modules-car - cloud-modules-rail - cloud-modules-warn - cloud-modules-carmanage + cloud-modules-openbusiness + cloud-modules-data-processing + cloud-modules-parsing cloud-modules-car-gateway diff --git a/cloud-visual/cloud-visual-monitor/src/main/resources/bootstrap.yml b/cloud-visual/cloud-visual-monitor/src/main/resources/bootstrap.yml index e4f4780..77375f9 100644 --- a/cloud-visual/cloud-visual-monitor/src/main/resources/bootstrap.yml +++ b/cloud-visual/cloud-visual-monitor/src/main/resources/bootstrap.yml @@ -1,18 +1,14 @@ # Tomcat server: - port: 9100 + port: 9101 # nacos线上地址 nacos: - addr: 106.54.193.225:8848 + addr: 47.116.173.119:8848 user-name: nacos password: nacos - namespace: one-saas - namespace: one - - # Spring spring: application: @@ -27,18 +23,18 @@ spring: # 服务注册地址 server-addr: ${nacos.addr} # nacos用户名 - username: ${nacos.user-name} - # nacos密码 - password: ${nacos.password} +# username: ${nacos.user-name} +# # nacos密码 +# password: ${nacos.password} # 命名空间 namespace: ${nacos.namespace} config: # 服务注册地址 server-addr: ${nacos.addr} # nacos用户名 - username: ${nacos.user-name} - # nacos密码 - password: ${nacos.password} +# username: ${nacos.user-name} +# # nacos密码 +# password: ${nacos.password} # 命名空间 namespace: ${nacos.namespace} # 配置文件格式 diff --git a/init-file/cloud-seata.sql b/init-file/cloud-seata.sql deleted file mode 100644 index 30fb7fa..0000000 --- a/init-file/cloud-seata.sql +++ /dev/null @@ -1,118 +0,0 @@ -/* - Navicat Premium Data Transfer - - Source Server : MySQL80-local - Source Server Type : MySQL - Source Server Version : 80401 (8.4.1) - Source Host : 10.100.1.2:3306 - Source Schema : cloud-seata - - Target Server Type : MySQL - Target Server Version : 80401 (8.4.1) - File Encoding : 65001 - - Date: 17/07/2024 09:02:12 -*/ - -SET NAMES utf8mb4; -SET FOREIGN_KEY_CHECKS = 0; - --- ---------------------------- --- Table structure for branch_table --- ---------------------------- -DROP TABLE IF EXISTS `branch_table`; -CREATE TABLE `branch_table` ( - `branch_id` bigint NOT NULL, - `xid` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL, - `transaction_id` bigint DEFAULT NULL, - `resource_group_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL, - `resource_id` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL, - `branch_type` varchar(8) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL, - `status` tinyint DEFAULT NULL, - `client_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL, - `application_data` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL, - `gmt_create` datetime(6) DEFAULT NULL, - `gmt_modified` datetime(6) DEFAULT NULL, - PRIMARY KEY (`branch_id`) USING BTREE, - KEY `idx_xid` (`xid`) USING BTREE -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ROW_FORMAT=DYNAMIC; - --- ---------------------------- --- Records of branch_table --- ---------------------------- -BEGIN; -COMMIT; - --- ---------------------------- --- Table structure for global_table --- ---------------------------- -DROP TABLE IF EXISTS `global_table`; -CREATE TABLE `global_table` ( - `xid` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL, - `transaction_id` bigint DEFAULT NULL, - `status` tinyint NOT NULL, - `application_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL, - `transaction_service_group` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL, - `transaction_name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL, - `timeout` int DEFAULT NULL, - `begin_time` bigint DEFAULT NULL, - `application_data` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL, - `gmt_create` datetime DEFAULT NULL, - `gmt_modified` datetime DEFAULT NULL, - PRIMARY KEY (`xid`) USING BTREE, - KEY `idx_gmt_modified_status` (`gmt_modified`,`status`) USING BTREE, - KEY `idx_transaction_id` (`transaction_id`) USING BTREE -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ROW_FORMAT=DYNAMIC; - --- ---------------------------- --- Records of global_table --- ---------------------------- -BEGIN; -COMMIT; - --- ---------------------------- --- Table structure for lock_table --- ---------------------------- -DROP TABLE IF EXISTS `lock_table`; -CREATE TABLE `lock_table` ( - `row_key` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL, - `xid` varchar(96) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL, - `transaction_id` bigint DEFAULT NULL, - `branch_id` bigint NOT NULL, - `resource_id` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL, - `table_name` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL, - `pk` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL, - `gmt_create` datetime DEFAULT NULL, - `gmt_modified` datetime DEFAULT NULL, - PRIMARY KEY (`row_key`) USING BTREE, - KEY `idx_branch_id` (`branch_id`) USING BTREE -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ROW_FORMAT=DYNAMIC; - --- ---------------------------- --- Records of lock_table --- ---------------------------- -BEGIN; -COMMIT; - --- ---------------------------- --- Table structure for undo_log --- ---------------------------- -DROP TABLE IF EXISTS `undo_log`; -CREATE TABLE `undo_log` ( - `branch_id` bigint NOT NULL COMMENT 'branch transaction id', - `xid` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT 'global transaction id', - `context` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT 'undo_log context,such as serialization', - `rollback_info` longblob NOT NULL COMMENT 'rollback info', - `log_status` int NOT NULL COMMENT '0:normal status,1:defense status', - `log_created` datetime(6) NOT NULL COMMENT 'create datetime', - `log_modified` datetime(6) NOT NULL COMMENT 'modify datetime', - UNIQUE KEY `ux_undo_log` (`xid`,`branch_id`) USING BTREE -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ROW_FORMAT=DYNAMIC COMMENT='AT transaction mode undo table'; - --- ---------------------------- --- Records of undo_log --- ---------------------------- -BEGIN; -COMMIT; - -SET FOREIGN_KEY_CHECKS = 1; diff --git a/init-file/nacos_config.zip b/init-file/nacos_config.zip deleted file mode 100644 index a3e3c5b9282f2172bad73f29f79dc9eb14d55135..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7550 zcmbVx1yocE)Gplu!VrSM(A|sz(mex6r*sMojC3R22ugRy5F#OsN`oMc3J3@i(w!3j zaQ}Co=)Kpq-rKXzTIZ~p_08Vr?D+O~R25Ot07zI^SV$;ohq_2Nj23Y&BP%DVrKD*r zudbq{%5D1O3Dm~i)Wrtoz-eLW#^q@bwSVyeg33$izx@LcfP>yv@~Jh#7qvBca%1D3 zKzgTzI{Sj`PRUoTR&PQ;XB4J!aUsmKx|#D*puX?^K4WTh{lhikA#zF{EQ{cg#PXmH zhbZ0*ToTAYD$gxUMqC#EWUk&9KkAamx(Tne`sE{H{l9jiG4HUne*;C&S~0!I;>8uP z@$W3ar3XtUYu&QpYBzdPL2=c1iRV#CCtDKU2;SiS|ul0TrEk=VjYI*XkQ}Da+Uj8 ze|^~7#%0CPgLD{H@U$|Ws0B3j?I`+lZdXUo+N$rV$J+*Pqc<&_mEtuR0^^?#wj~Vp z=|QIt9iMe|gX+7FiHAAiKkkrk;nygoHf>oK!DOKX9@%27v9FMLXXY9=iaUfgz#&;d zK%owHG1&NhRYgoJuGvN|ePkpgR}>^9)&G1@EPs4Z<}e2<8|%NH7du3`kE3ou9VsyS ze1V8Pgf7nC$ic=EZe-=es+$LVi^XDU1$DrlXCfs_ULh;gWqq=wO-i;5T*tuGB{vy^ zL7^rX%Soigq^rw}%S9-h{X^W6{KO1s2=_3t0J@1_J%lrfh~vNArT>S!=1`cc1*f&C zi>14%=iiP{pSDeI+I#1M_G%x@3GHXX1~Z&P)1%4tMFQg@(U0C@ z@v351UeG1v8FY@stRQ>z8@HA}QhF~%`gEe!WN<72PHRWCD+^EnE%bSVtE&-QuWD-*9(OP%DNg0MQGN3*-?8--Xk^D#mNX1vaCC6IzXQaaxAy43Jlt2ZLh1;!X070@OhuRGCN%-u~!SyI%F1ND+_% z(bnLJwF|Va^ImhWH*?4eG-ByL)z8mRz`y1Ud3-=7E!BeeLJ=$xBE~_~* z7ku8GhOsdig~>#I%)~4Q`)J5W%sejPC{rlAY*E{%Hsh;xn&GN5r&Uj|6p$81j={NQ z`0_zi@oU$hQop%sZaZ$Z61n`t<&;8<=i8r*uWP3;vv^`1QRdc|f2tkef7FhttIOlR z3x}PH<^6zS{errx0+<7gHiCmA3ujI3A}k7&lJj$nNDPF4bX5sD%R=4*7RhM){5_te zb}lUJo#z1<^hy*s$^I&3Aio8>Q`R+a*XwOb5u zaJt}qg|exPi6+kirEDB+ZzsTW;*wL+Z42Wb>FePTvnp_KaSd@ps?>P|`0nw7P$QU^ zR+1%NGZZaaEw{Z+wrWqs!C_2g6q4vLa^d!^hHcddwW>6eifvCFmFMoBZbS^7CG9&Q z{}l-(>TaheB8sd(MnZ@9_Sa$ezfH;6)7iz+{_j9swG8bj>Ek!X?(FnGkNoM27G4H<=e4Z46^KJ=CtGyj8Y+nLDBtNjD(2NaAMGE%M znZCdeXZ;UdU5d%cFB=L_7i&z2e2XxoQcObCjK-h@ z=3L5~kNd>fpKaBZGFpcJ{uTUg-u5a}Kkgfn|^S*H=LP_v)Jl zx;WrARg`A3Y>Yp|CUXsvtCV>nh%7mhUfd_?1XMPM=wRK(%2#Yti(g*xP*(j^NEp{Y z@}7~KrLm&{Iizaiu}{V6;L;2$snSduq&o)>m0>w~Rj-LGU`=8j|Lx4HL<4qUTE7^| z!=dSzLT6C_{;HVP-s+I)*{;pe2FC;84`Nw>SK+oCRlRk@A@sSn$UUoNjgxp5i?XP` zVcu;o>nR;DXKf#*?J5F}BhW80);_J1Z3z|o9G~~G&eeOpvn2X>fV3|^$3RhshHHW4 zS??^F%tm2iX@?TiupHC5VURhE%BZ7u<|Y%lyxPR)qqq!!PGNfFB)zS5k?VoG{m%bsK$AnEaIx`L@d{0*68ctk|g-= zM_UqHWuSn5vt8Yd5)x~~DP?%zDSCGCX=6vt>x@m*Cq?WsF6-`6%AL+v z19v8J(gjYQyD`zn;SmiPP6~!b-5nv9_c&OSblahQAa=Q3*|G68`(Rhk?TNUzufLo8 z&X$~r_o<@S5zzbc``AuwWV!@yML+N<>J!X8YBSrWH$iLr`-h(Ewv?m3Q>*@I=jaXb z_Pspj*})^Qj**>}jf?byVzSA2_to7;N{OwWQFwzWgcL%`lb8l()qKFZT<6FAIMX1e zkAlsfm7=6q1lJuUOw-_%Uz<^WV6GLEz&f;>J<)m{OvJ&l1bo};Ol_m+u2UF4KZxTa=A zWb=#nV3zk*4^|Gc<2m$cGtrD;fs08I(kt4aHC!agI_X1V|GPy4X!(?mqpBlTfoLgs zv}|57z{0YW&(e=yOe*21-6g_ZrMTy~7p|oHa#87ISeoh8D{Bw*vo=sUiFub%b@XZq zU|)J6O@i@5idoTEK4se7W`0by4Ho-G!CL0W0ep+CSgiU7RJhYD9SY&y<#!o|&B9yu zEYoi=X7SoDaZK|QrWQM7zsjj@hKK9K_1$P}9|jHw?&Ct7zKX#3&&5J6Ra2RDTe zEIoP9vx3OHoG>T(B`Ry4^RO2|O;BoR$Z#*++^Z@~D)Et#HEKK*nY`{Kmh33o!`vF? z_s1cykl5Jbo{7p* z)+U@9JsAwL68Z^%a|(N=+cfjYNKeV7VS=sM6?0`)ulmA?44*-dlvrYhP)p>ZO#mE4 zRasOrYE9TF8eNlG?h9-dTXVv6A|WGyjitu@gOTGSG1FeBloV8uP~ws4_JZdAl8g8K zP+XgC96M#@QH31V8XQ(0HO}5~kc+o=q0> z>yU!(bCsdFKk|7ybLBPlz+u;kaSgDM0nz96nA_P}n|Z%xEv( z z-p%HGI`h%z_D90VSM5g;asJ_ut4P&>LY$HA06UC2;qtiXC{U+%ELM`!fNX83c4mj| z^TkHsS9h7fXA-qo{2AJj#8|iI!EpemY;+59ynHe2y1RY5&TUc_>ACsAn@8ON%nw}W zOPwO8f_Fu1H&=8^`f3c?jUd>uIr%d9w}{LGB2aeeK+422%sQ}pl*EKSxa{9Y(3%Lp z-CoL*_OJz%P(RJ&|Hu>X=3ajRz-|X7iOjRQ7`<5&^_-eH(7(0JS)n=k%z3p#KeqJ6 z1-Vwmvln@>B#9G4rED~hs8;v;mttXFZtAl}2{qsL4vIv?om1HOJO){kfbKk=QJ7^) z`*Z}MEi^JBZ2}d`C#%?le1!c`^rEdJ`=@i+{Gu0zS+lFF-o8R0UlpubMy02x`mJCB)_A-*HMcQhxMT=k$FE z;M+p1iAR526M_HHIjwAVejcwT*LfbG>%S!)As_m z*v=-pO5zjOa5k&lB+tDugTG2`@H}+M|3Dx!Lx37mKVgK{+w)DG)nyAS`CX`SHI_Y+ zjOFtq@?^2$VR-p%^4xsbbs0KtE_}O0+$mqg{rqp@%kYnT>1^rXV&h;5<@{xtjaptp ztlG9%=qM0bc-Lv6Y#$t=jRR>cOe}1QC}g|?5msP(v9Guf@gFV1!02sXm5pEp8iw`; z3Z*utGCo5`2ac($j}a+4LsSRYxL6?^VC71*_mnwP&vn!jvcDyyJ=aZ2HAZ_8+WQej z%W=UK=4j~%w&l_$qolxl$Xr~!Z0cG$^3}yb+mA?lg@Pd5*|X6M`8v##VJf5RHNEGL zDZ~DcF#k6?ds7F*o^I-5>I`#rGXI%98bfx7mHo|1C3#7)iQj>|m+opV{C03ccR_Bl zQBgB@U+>0%Fn_vzLSR@V#`qUanGtm~$+*C;jBCc`_dNEDcRn~&D+hW{9sADtY;PW0 zeG1115YLFK7%4sV`%oAXPcIYDQ|n7x!2H^=H%1;?vvxu+5L2D=YhBvB=DGqKEFhgW z>9{0UKlFXb_>2ba{-};rZEn%9H6e*Wi5Mn7GZwO>ieL_0jn;xC*^p_9g>)Pc#K;q5Oh+TtD4>xPC_>J)c@pRA;pIOF#*v&|)zTf5|J+E)Y9WcL{~n zQ(98OafZ`?_5>Jh#M`4paWw{#*aXu8Bk~hv-o#miIiljUZcH@5J+0UMx*I2}LSG=W zbRdQF@kMDH9Z0(79{SU4e+D~n@}%`+MF@? z26=(}WWjRE(sKT$@oWAk^T3v(smKQf)=D{<>V4{6Vz`%oCFra*>q7-Za^nAS9CG|4 zL2qi59v+Bt{6+rq)l`O2=m2I`bfOiKkeT0?S|rLA<|$y8R+ly9_!H^l^+q$6myVi< z;T@SgvBShe#mDYucy6tbiDdO|-*~ifyH)R$dl8@D8}Ca#To13~^$h22U%2M@h4=aW zZ7Srq%_!^ECSO4E#U>WzO0f^G7-55wtI`@oepLl@wc?jvLU3vK{ZMOq6>i}#G!N}^ z4stZ^%hPxO0r;zaLoZ5IsikOP6USHa_rSZsuPp^PB*kG5*Otd6Xo{%z39ST%*P7h; z_@EwggI;mThCB5ee6Cb=)0$UdwSdR9gwg9xqdfBFXMWL#KzA!GmC28opSN~dY6n>` zq{^PBJRroW2#N1|GRodU)D`S*Y3a5NF3iiCIE-;sVQ3K3u?T2;v8FU(B=Yp^8-FoC zyCwt#c10q&#mcdU7Nq-*v-=9Gr==gB#XvNKQf6wMc2yW@t0rn^Bmf3qh>04-7a!sr zUn((uq^nA%Zi$c!MCK)m^)!2YW_JfW)(wT18PrQcdhyDMQCRB(Jg{pe$BL>cqxUX8 z-^yUzP#ak)3nMgoN6Yr?+~{gQ+t?=&Fz+V#&>z0d2WE;H61WKQ`Di1mcm$#=mK2pY zIf%!v$h6anD@iyytvWteu!ZGh7t(-O-qw_s9@d4ju25wi9wmJjyNan>1r@moqJP{P z8BFQ#a|=`T+uWxY&oC992~wYSaL}XgqMCkbltV2ui}G4*Un<7O&snpbw&;v{_7b2H zS(NoH<8;`6Y9YU^FI_IZVAGVhr#a9LPR4~Sgu}Js#cQu1X5W75pXrj@(qld63bJ|L z$ysVZYEV!4V4B-p)Jwl}4pUI(;hU5w+;;lgCj=*x6bbm@d|9v~XmRDdHs*K#9B|!0 z)9PtXG(`1zvcCbXa_1+R%CCM6c*%E2MB>(X$+h;p`o}Sk=&L95w?}K$%%yK}RpT-R z&WOmiN9JVapL|hrdlsQ?k%oUNJvyKpMzZo|2YCsv@rtD2@p+**@Xg*-*dm07!kC~j zo)XO4()411`&&hf<2!+vqL|wKth)y=BtS})Yy$n(gSj!aXWDzm=)o8v$O^>YGdRw6 zvAPO=$S>yX==wv*Xy?dwVqC>L#aCVqIlVi&-LFK2_r=bX_ijz{7b+a+*Yuf zQOFgVj|F0v`;7jlDS8W0y#?^u?L34SJ2S<-%bGMf>0fEk)NViM zPc^b*=nGjc{V<)L7xa(>`jNYb`-zWrTrOIu&kO7)4wx9uyqOP!zmF-W9>cYXbf15K zvNW4) z_&p+xS>sQu;;$z&t!^-gn5tia#Z3`I%fb{d_%1t$&7V(>3?N{~bW*hrIuUb?U ze}%iLwqL&j_-SwiclmF)UpwOOs5f=UYo-3D=_0!Euc*IJoxdsM?|?UzMBq;}#90C& zIsOgsrkMFV+D$d@SNG@zW&Hn)WRTBIi@8%kJtyTQAB%FVD z@P=~nJJ?NP|0`G`qIUi*+8cY|?_f8XE%2vXh_hjWe+Rp{8T^iRlR#dx;h%Q*_U~x_ z&W(RZygBi&iRVv4CHfulk2Lgm;G50pnlSvd0>JOUH|y@7^x=2po7H~Z%zl~~`ERXF WRS_MLPe@3&u0M$8@aWF<)&BswN@a@x diff --git a/init-file/saas_operation.sql b/init-file/saas_operation.sql new file mode 100644 index 0000000..97438ae --- /dev/null +++ b/init-file/saas_operation.sql @@ -0,0 +1,242 @@ +/* + Navicat Premium Data Transfer + + Source Server : 47.116.173.119 + Source Server Type : MySQL + Source Server Version : 80401 + Source Host : 47.116.173.119:3306 + Source Schema : saas_operation + + Target Server Type : MySQL + Target Server Version : 80401 + File Encoding : 65001 + + Date: 30/09/2024 10:21:52 +*/ + +SET NAMES utf8mb4; +SET FOREIGN_KEY_CHECKS = 0; + +-- ---------------------------- +-- Table structure for sys_car +-- ---------------------------- +DROP TABLE IF EXISTS `sys_car`; +CREATE TABLE `sys_car` ( + `id` int NOT NULL AUTO_INCREMENT COMMENT '自增主键', + `car_vin` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '车辆VIN码', + `car_plate` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '车辆车牌号', + `car_brand` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '车辆品牌', + `car_model` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '车辆型号', + `car_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '车辆车型(如客车,卡车,公交车等)', + `car_last_join_time` datetime NULL DEFAULT NULL COMMENT '最后一次连线时间', + `car_last_offline_time` datetime NULL DEFAULT NULL COMMENT '最后一次离线时间', + `state` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '2' COMMENT '启用状态(1.在线 2.离线 3.已断开 4.待连接 5.维修中', + `create_by` int NULL DEFAULT NULL COMMENT '创建人', + `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', + `update_by` int NULL DEFAULT NULL COMMENT '更新人', + `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', + `remark` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '备注', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 5 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '车辆基础信息表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for sys_car_details +-- ---------------------------- +DROP TABLE IF EXISTS `sys_car_details`; +CREATE TABLE `sys_car_details` ( + `id` int NOT NULL COMMENT '车辆ID', + `car_vin` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '车辆VIN码', + `car_motor_manufacturer` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '车辆电机厂商', + `car_motor_model` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '电机型号', + `car_battery_manufacturer` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '车辆电池厂商', + `car_battery_model` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '电池型号', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '车辆详细信息表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for sys_car_fault +-- ---------------------------- +DROP TABLE IF EXISTS `sys_car_fault`; +CREATE TABLE `sys_car_fault` ( + `id` int NOT NULL AUTO_INCREMENT COMMENT '自增主键', + `fault_code` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '车辆故障编码', + `fault_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '车辆故障类型', + `fault_label` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '车辆故障标签', + `fault_bit` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '车辆故障位', + `fault_value` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '车辆故障值', + `fault_warn` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '故障等级', + `fault_status` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '报警状态(Y.是,N.否)', + `create_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '创建人', + `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', + `update_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '更新人', + `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', + `remark` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '备注', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 5 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '车辆故障表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for sys_car_message +-- ---------------------------- +DROP TABLE IF EXISTS `sys_car_message`; +CREATE TABLE `sys_car_message` ( + `id` int NOT NULL AUTO_INCREMENT COMMENT '自增主键', + `model_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '车辆型号编码', + `message_type_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '车辆报文类型编码', + `message_start_index` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '开始位下标', + `message_end_index` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '结束位下标', + `message_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '报文分类', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 61 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '车辆报文记录表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for sys_corpuscle_fence +-- ---------------------------- +DROP TABLE IF EXISTS `sys_corpuscle_fence`; +CREATE TABLE `sys_corpuscle_fence` ( + `id` int NOT NULL AUTO_INCREMENT COMMENT '自增主键', + `fence_code` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '围栏编码', + `fence_name` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '围栏名称', + `fence_type` int NOT NULL DEFAULT 1 COMMENT '围栏类型(1.驶入 2.驶出)', + `fence_position` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '围栏位置', + `state` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT '1' COMMENT '启用状态(1.启用 2.停用)', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '电子围栏表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for sys_ent +-- ---------------------------- +DROP TABLE IF EXISTS `sys_ent`; +CREATE TABLE `sys_ent` ( + `id` int NOT NULL AUTO_INCREMENT COMMENT 'ID', + `ent_code` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '企业编码', + `ip` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '企业数据库IP', + `port` int NULL DEFAULT NULL COMMENT '数据库端口', + `db_name` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '连接数据库名称', + `user_name` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '用户名', + `password` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '密码', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '企业数据库信息记录表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for sys_fence_group +-- ---------------------------- +DROP TABLE IF EXISTS `sys_fence_group`; +CREATE TABLE `sys_fence_group` ( + `id` int NOT NULL AUTO_INCREMENT COMMENT '自增主键', + `group_code` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '围栏组编码', + `group_name` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '围栏组名称', + `group_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '围栏组类型', + `state` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '启用状态', + `create_by` int NULL DEFAULT NULL COMMENT '创建人', + `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', + `update_by` int NULL DEFAULT NULL COMMENT '更新人', + `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', + `remark` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '备注', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '围栏组表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for sys_fence_group_mid +-- ---------------------------- +DROP TABLE IF EXISTS `sys_fence_group_mid`; +CREATE TABLE `sys_fence_group_mid` ( + `group_id` int NOT NULL COMMENT '围栏组id', + `fence_id` int NOT NULL COMMENT '围栏id', + `new_time` datetime NULL DEFAULT NULL COMMENT '创建时间', + PRIMARY KEY (`group_id`, `fence_id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '围栏组连接表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for sys_firm +-- ---------------------------- +DROP TABLE IF EXISTS `sys_firm`; +CREATE TABLE `sys_firm` ( + `id` int NOT NULL AUTO_INCREMENT COMMENT '自增主键', + `firm_credit_code` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '统一社会信用代码', + `firm_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '企业编码', + `firm_name` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '企业名称', + `firm_logs` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '企业logs', + `state` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '1' COMMENT '启用状态(1.开业 2.停业 3.休业)', + `create_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '创建人', + `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', + `update_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '更新人', + `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', + `remark` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '备注', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '企业基础信息表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for sys_message_type +-- ---------------------------- +DROP TABLE IF EXISTS `sys_message_type`; +CREATE TABLE `sys_message_type` ( + `id` int NOT NULL AUTO_INCREMENT COMMENT '自增主键', + `message_code` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '报文编码', + `message_name` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '报文名称', + `message_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '报文分类', + `message_class` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '报文字段类型', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 47 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '车辆报文类型表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for warn_logs +-- ---------------------------- +DROP TABLE IF EXISTS `warn_logs`; +CREATE TABLE `warn_logs` ( + `id` int NOT NULL AUTO_INCREMENT COMMENT '预警日志id', + `vin` varchar(58) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '车辆vin码', + `warn_rule_id` int NULL DEFAULT NULL COMMENT '规则id', + `start_time` datetime NULL DEFAULT NULL COMMENT '开始时间', + `end_time` datetime NULL DEFAULT NULL COMMENT '结束时间', + `max_value` int NULL DEFAULT NULL COMMENT '最大值', + `min_value` int NULL DEFAULT NULL COMMENT '最小值', + `avg_value` int NULL DEFAULT NULL COMMENT '平均值', + `median_value` int NULL DEFAULT NULL COMMENT '中位数', + `status` int NULL DEFAULT NULL COMMENT '是否发送预警', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = DYNAMIC; + +-- ---------------------------- +-- Table structure for warn_rule +-- ---------------------------- +DROP TABLE IF EXISTS `warn_rule`; +CREATE TABLE `warn_rule` ( + `id` int NOT NULL AUTO_INCREMENT COMMENT '规则id', + `rule_name` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '规则名称', + `strategy_id` int NULL DEFAULT NULL COMMENT '策略id', + `msg_type_id` int NULL DEFAULT NULL COMMENT '报文数据类型id', + `slide_time` int NULL DEFAULT NULL COMMENT '滑窗时间', + `slide_frequency` int NULL DEFAULT NULL COMMENT '滑窗频率', + `max_value` int NULL DEFAULT NULL COMMENT '最大值', + `min_value` int NULL DEFAULT NULL COMMENT '最小值', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = DYNAMIC; + +-- ---------------------------- +-- Table structure for warn_slide_config +-- ---------------------------- +DROP TABLE IF EXISTS `warn_slide_config`; +CREATE TABLE `warn_slide_config` ( + `id` int NOT NULL COMMENT '滑窗id', + `vin` varchar(38) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '车辆vin码', + `slide_time` int NULL DEFAULT NULL COMMENT '滑动时间', + `created_by` int NULL DEFAULT NULL COMMENT '创建人', + `created_time` datetime NULL DEFAULT NULL COMMENT '创建时间', + `updated_by` int NULL DEFAULT NULL COMMENT '更新人', + `updated_time` datetime NULL DEFAULT NULL COMMENT '更新时间', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = DYNAMIC; + +-- ---------------------------- +-- Table structure for warn_strategy +-- ---------------------------- +DROP TABLE IF EXISTS `warn_strategy`; +CREATE TABLE `warn_strategy` ( + `id` int NOT NULL AUTO_INCREMENT COMMENT '策略id', + `car_type_id` int NULL DEFAULT NULL COMMENT '车辆类型id', + `strategy_name` varchar(38) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '策略名称', + `msg_id` int NULL DEFAULT NULL COMMENT '报文模版id', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = DYNAMIC; + +SET FOREIGN_KEY_CHECKS = 1; diff --git a/init-file/xxl-init.sql b/init-file/xxl-init.sql deleted file mode 100644 index f7e9974..0000000 --- a/init-file/xxl-init.sql +++ /dev/null @@ -1,122 +0,0 @@ -# -# XXL-JOB v2.4.2-SNAPSHOT -# Copyright (c) 2015-present, xuxueli. - -CREATE database if NOT EXISTS `xxl_job` default character set utf8mb4; -use `xxl_job`; - -SET NAMES utf8mb4; - -CREATE TABLE `xxl_job_info` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `job_group` int(11) NOT NULL COMMENT '执行器主键ID', - `job_desc` varchar(255) NOT NULL, - `add_time` datetime DEFAULT NULL, - `update_time` datetime DEFAULT NULL, - `author` varchar(64) DEFAULT NULL COMMENT '作者', - `alarm_email` varchar(255) DEFAULT NULL COMMENT '报警邮件', - `schedule_type` varchar(50) NOT NULL DEFAULT 'NONE' COMMENT '调度类型', - `schedule_conf` varchar(128) DEFAULT NULL COMMENT '调度配置,值含义取决于调度类型', - `misfire_strategy` varchar(50) NOT NULL DEFAULT 'DO_NOTHING' COMMENT '调度过期策略', - `executor_route_strategy` varchar(50) DEFAULT NULL COMMENT '执行器路由策略', - `executor_handler` varchar(255) DEFAULT NULL COMMENT '执行器任务handler', - `executor_param` varchar(512) DEFAULT NULL COMMENT '执行器任务参数', - `executor_block_strategy` varchar(50) DEFAULT NULL COMMENT '阻塞处理策略', - `executor_timeout` int(11) NOT NULL DEFAULT '0' COMMENT '任务执行超时时间,单位秒', - `executor_fail_retry_count` int(11) NOT NULL DEFAULT '0' COMMENT '失败重试次数', - `glue_type` varchar(50) NOT NULL COMMENT 'GLUE类型', - `glue_source` mediumtext COMMENT 'GLUE源代码', - `glue_remark` varchar(128) DEFAULT NULL COMMENT 'GLUE备注', - `glue_updatetime` datetime DEFAULT NULL COMMENT 'GLUE更新时间', - `child_jobid` varchar(255) DEFAULT NULL COMMENT '子任务ID,多个逗号分隔', - `trigger_status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '调度状态:0-停止,1-运行', - `trigger_last_time` bigint(13) NOT NULL DEFAULT '0' COMMENT '上次调度时间', - `trigger_next_time` bigint(13) NOT NULL DEFAULT '0' COMMENT '下次调度时间', - PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - -CREATE TABLE `xxl_job_log` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT, - `job_group` int(11) NOT NULL COMMENT '执行器主键ID', - `job_id` int(11) NOT NULL COMMENT '任务,主键ID', - `executor_address` varchar(255) DEFAULT NULL COMMENT '执行器地址,本次执行的地址', - `executor_handler` varchar(255) DEFAULT NULL COMMENT '执行器任务handler', - `executor_param` varchar(512) DEFAULT NULL COMMENT '执行器任务参数', - `executor_sharding_param` varchar(20) DEFAULT NULL COMMENT '执行器任务分片参数,格式如 1/2', - `executor_fail_retry_count` int(11) NOT NULL DEFAULT '0' COMMENT '失败重试次数', - `trigger_time` datetime DEFAULT NULL COMMENT '调度-时间', - `trigger_code` int(11) NOT NULL COMMENT '调度-结果', - `trigger_msg` text COMMENT '调度-日志', - `handle_time` datetime DEFAULT NULL COMMENT '执行-时间', - `handle_code` int(11) NOT NULL COMMENT '执行-状态', - `handle_msg` text COMMENT '执行-日志', - `alarm_status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '告警状态:0-默认、1-无需告警、2-告警成功、3-告警失败', - PRIMARY KEY (`id`), - KEY `I_trigger_time` (`trigger_time`), - KEY `I_handle_code` (`handle_code`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - -CREATE TABLE `xxl_job_log_report` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `trigger_day` datetime DEFAULT NULL COMMENT '调度-时间', - `running_count` int(11) NOT NULL DEFAULT '0' COMMENT '运行中-日志数量', - `suc_count` int(11) NOT NULL DEFAULT '0' COMMENT '执行成功-日志数量', - `fail_count` int(11) NOT NULL DEFAULT '0' COMMENT '执行失败-日志数量', - `update_time` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - UNIQUE KEY `i_trigger_day` (`trigger_day`) USING BTREE -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - -CREATE TABLE `xxl_job_logglue` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `job_id` int(11) NOT NULL COMMENT '任务,主键ID', - `glue_type` varchar(50) DEFAULT NULL COMMENT 'GLUE类型', - `glue_source` mediumtext COMMENT 'GLUE源代码', - `glue_remark` varchar(128) NOT NULL COMMENT 'GLUE备注', - `add_time` datetime DEFAULT NULL, - `update_time` datetime DEFAULT NULL, - PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - -CREATE TABLE `xxl_job_registry` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `registry_group` varchar(50) NOT NULL, - `registry_key` varchar(255) NOT NULL, - `registry_value` varchar(255) NOT NULL, - `update_time` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `i_g_k_v` (`registry_group`,`registry_key`,`registry_value`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - -CREATE TABLE `xxl_job_group` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `app_name` varchar(64) NOT NULL COMMENT '执行器AppName', - `title` varchar(12) NOT NULL COMMENT '执行器名称', - `address_type` tinyint(4) NOT NULL DEFAULT '0' COMMENT '执行器地址类型:0=自动注册、1=手动录入', - `address_list` text COMMENT '执行器地址列表,多地址逗号分隔', - `update_time` datetime DEFAULT NULL, - PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - -CREATE TABLE `xxl_job_user` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `username` varchar(50) NOT NULL COMMENT '账号', - `password` varchar(50) NOT NULL COMMENT '密码', - `role` tinyint(4) NOT NULL COMMENT '角色:0-普通用户、1-管理员', - `permission` varchar(255) DEFAULT NULL COMMENT '权限:执行器ID列表,多个逗号分割', - PRIMARY KEY (`id`), - UNIQUE KEY `i_username` (`username`) USING BTREE -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - -CREATE TABLE `xxl_job_lock` ( - `lock_name` varchar(50) NOT NULL COMMENT '锁名称', - PRIMARY KEY (`lock_name`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - -INSERT INTO `xxl_job_group`(`id`, `app_name`, `title`, `address_type`, `address_list`, `update_time`) VALUES (1, 'xxl-job-executor-sample', '示例执行器', 0, NULL, '2018-11-03 22:21:31' ); -INSERT INTO `xxl_job_info`(`id`, `job_group`, `job_desc`, `add_time`, `update_time`, `author`, `alarm_email`, `schedule_type`, `schedule_conf`, `misfire_strategy`, `executor_route_strategy`, `executor_handler`, `executor_param`, `executor_block_strategy`, `executor_timeout`, `executor_fail_retry_count`, `glue_type`, `glue_source`, `glue_remark`, `glue_updatetime`, `child_jobid`) VALUES (1, 1, '测试任务1', '2018-11-03 22:21:31', '2018-11-03 22:21:31', 'XXL', '', 'CRON', '0 0 0 * * ? *', 'DO_NOTHING', 'FIRST', 'demoJobHandler', '', 'SERIAL_EXECUTION', 0, 0, 'BEAN', '', 'GLUE代码初始化', '2018-11-03 22:21:31', ''); -INSERT INTO `xxl_job_user`(`id`, `username`, `password`, `role`, `permission`) VALUES (1, 'admin', 'e10adc3949ba59abbe56e057f20f883e', 1, NULL); -INSERT INTO `xxl_job_lock` ( `lock_name`) VALUES ( 'schedule_lock'); - -commit; - diff --git a/pom.xml b/pom.xml index addb590..b556173 100644 --- a/pom.xml +++ b/pom.xml @@ -278,6 +278,38 @@ cloud-common-saas ${muyu.version} + + + com.muyu + cloud-common-caffeine + ${muyu.version} + + + + com.muyu + cloud-common-kafka + ${muyu.version} + + + + com.muyu + cloud-modules-data-processing + ${muyu.version} + + + + + com.muyu + cloud-common-cache + ${muyu.version} + + + + + com.muyu + cloud-modules-openbusiness-common + ${muyu.version} +