From ff31f5abc9166e42d6d2c783c6dff6a439f5b986 Mon Sep 17 00:00:00 2001 From: LQS <2506203757@qq.com> Date: Tue, 8 Oct 2024 16:51:31 +0800 Subject: [PATCH 1/3] =?UTF-8?q?feat():=E8=A7=A3=E6=9E=90=E6=A8=A1=E5=9D=97?= =?UTF-8?q?=E8=BF=9C=E8=B0=83=E6=B3=A8=E5=85=A5=E4=BD=BF=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/muyu/analysis/parsing/MQTT/ParsingMQTT.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/cloud-modules/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/MQTT/ParsingMQTT.java b/cloud-modules/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/MQTT/ParsingMQTT.java index f6d51ca..80d1806 100644 --- a/cloud-modules/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/MQTT/ParsingMQTT.java +++ b/cloud-modules/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/MQTT/ParsingMQTT.java @@ -15,7 +15,6 @@ import lombok.extern.log4j.Log4j2; import org.apache.kafka.clients.producer.KafkaProducer; import org.apache.kafka.clients.producer.ProducerRecord; import org.eclipse.paho.client.mqttv3.*; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Component; @@ -59,7 +58,7 @@ public class ParsingMQTT { MqttClient sampleClient = new MqttClient(MQTTConnect.BROKER, MQTTConnect.CLIENT_ID); MqttConnectOptions connOpts = new MqttConnectOptions(); connOpts.setCleanSession(true); - log.info("Connecting to MQTTConnect.BROKER: {}", MQTTConnect.BROKER); + log.info("连接中MQTTConnect.BROKER: {}", MQTTConnect.BROKER); sampleClient.connect(connOpts); sampleClient.subscribe(MQTTConnect.TOPIC, 0); sampleClient.setCallback(new MqttCallback() { @@ -78,7 +77,7 @@ public class ParsingMQTT { ProducerRecord producerRecord = new ProducerRecord<>(KafkaConstants.MESSAGE_PARSING, entries.toString() ); kafkaProducer.send(producerRecord); - log.info("解析之后的数据"+entries); + log.info("解析之后的数据:"+entries); } From f0f6cf006fe9ba90bf6eab7405db70580a20e875 Mon Sep 17 00:00:00 2001 From: LQS <2506203757@qq.com> Date: Wed, 9 Oct 2024 16:19:28 +0800 Subject: [PATCH 2/3] =?UTF-8?q?feat():=E4=BF=AE=E6=94=B9=E7=BC=93=E5=AD=98?= =?UTF-8?q?=E5=AE=9E=E7=8E=B0=E7=B1=BB=E7=BB=93=E6=9E=84=EF=BC=8C=20?= =?UTF-8?q?=E6=89=8B=E5=8A=A8=E6=B5=8B=E8=AF=95=E6=B7=BB=E5=8A=A0redis?= =?UTF-8?q?=E7=BC=93=E5=AD=98=E6=95=B0=E6=8D=AE=EF=BC=88=20CarMessageValue?= =?UTF-8?q?CacheService=E6=8A=A5=E6=96=87=E6=95=B0=E6=8D=AE=3D=E3=80=8Bkey?= =?UTF-8?q?(=E6=8A=A5=E6=96=87=E6=A8=A1=E7=89=88id=EF=BC=88templateId?= =?UTF-8?q?=EF=BC=89)=EF=BC=8Cvalue(=E6=9F=A5=E8=AF=A2=E5=88=B0=E7=9A=84?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E9=9B=86=E5=90=88List);=20CarVehicleCacheSer?= =?UTF-8?q?vice=E8=BD=A6=E8=BE=86=E4=BF=A1=E6=81=AF=3D=E3=80=8Bkey(Vehicle?= =?UTF-8?q?Vin=E8=BD=A6=E8=BE=86VIN=E7=A0=81)=EF=BC=8Cvalue(Vehicle?= =?UTF-8?q?=E8=BD=A6=E8=BE=86=E5=AE=9E=E4=BD=93=E7=B1=BB=E6=95=B0=E6=8D=AE?= =?UTF-8?q?);=20CarVehicleTypeCacheService=E8=BD=A6=E8=BE=86=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B=3D=E3=80=8Bkey(VehicleTypeId=E8=BD=A6=E8=BE=86?= =?UTF-8?q?=E7=B1=BB=E5=9E=8BID)=EF=BC=8Cvalue(=E6=9F=A5=E8=AF=A2=E5=88=B0?= =?UTF-8?q?=E7=9A=84=E9=9B=86=E5=90=88List)=20=EF=BC=89=E3=80=82=20?= =?UTF-8?q?=E4=B9=8B=E5=90=8E=E8=BF=9E=E6=8E=A5MQTT=E6=8E=A5=E6=94=B6?= =?UTF-8?q?=E5=88=B0=E8=BD=A6=E8=BE=86=E6=A8=A1=E6=8B=9F=E4=BC=A0=E8=BF=87?= =?UTF-8?q?=E6=9D=A5=E7=9A=84=E6=95=B0=E6=8D=AE--=E3=80=8B=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2redis--=E3=80=8B=E8=A7=A3=E6=9E=90=E6=95=B0=E6=8D=AE--?= =?UTF-8?q?=E3=80=8B=E4=BC=A0=E9=80=92kafka?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- JavaSample-tcp1061513671883/.lck | 0 cloud-common/cloud-common-cache/pom.xml | 2 +- .../common/cache/config/CacheAbsBasic.java | 35 ++- .../muyu/common/cache/config/CacheBasic.java | 3 +- .../common/cache/config/PrimaryKeyBasic.java | 22 +- .../cloud-modules-enterprise-cache/pom.xml | 7 +- .../cache/CarManageCacheService.java | 28 --- .../cache/CarMessageCacheService.java | 30 --- .../cache/CarMessageValueCacheService.java | 43 ++++ .../cache/CarTemplateCacheService.java | 29 --- .../cache/CarVehicleCacheService.java | 32 +++ .../cache/CarVehicleTypeCacheService.java | 37 ++++ ...ot.autoconfigure.AutoConfiguration.imports | 6 +- .../remote/RemoteMessageValueService.java | 1 + ...ot.autoconfigure.AutoConfiguration.imports | 2 +- .../controller/CarManageController.java | 28 ++- .../controller/CarMessageController.java | 9 +- .../car/MessageValueController.java | 14 +- .../controller/car/VehicleController.java | 9 +- .../controller/car/VehicleTypeController.java | 13 +- .../enterprise/mapper/CarManageMapper.java | 9 +- .../enterprise/service/CarManageService.java | 8 + .../service/impl/CarManageServiceImpl.java | 24 ++- .../carImpl/MessageTemplateServiceImpl.java | 3 +- .../impl/carImpl/MessageValueServiceImpl.java | 4 + .../impl/carImpl/VehicleServiceImpl.java | 3 +- .../impl/carImpl/VehicleTypeServiceImpl.java | 3 +- .../resources/mapper/car/CarManageMapper.xml | 1 + .../process/consumer/GoOnlineConsumer.java | 4 +- .../cloud-modules-protocol-analysis/pom.xml | 17 +- .../analysis/ProtocolAnalysisApplication.java | 1 + .../analysis/parsing/MQTT/AnalysisMQTT.java | 200 ++++++++++++++++++ .../analysis/parsing/MQTT/ParsingMQTT.java | 52 +++-- .../com/muyu/analysis/parsing/MQTT/Test2.java | 86 -------- 34 files changed, 514 insertions(+), 251 deletions(-) create mode 100644 JavaSample-tcp1061513671883/.lck delete mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-cache/src/main/java/com/muyu/enterprise/cache/CarManageCacheService.java delete mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-cache/src/main/java/com/muyu/enterprise/cache/CarMessageCacheService.java create mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-cache/src/main/java/com/muyu/enterprise/cache/CarMessageValueCacheService.java delete mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-cache/src/main/java/com/muyu/enterprise/cache/CarTemplateCacheService.java create mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-cache/src/main/java/com/muyu/enterprise/cache/CarVehicleCacheService.java create mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-cache/src/main/java/com/muyu/enterprise/cache/CarVehicleTypeCacheService.java create mode 100644 cloud-modules/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/MQTT/AnalysisMQTT.java delete mode 100644 cloud-modules/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/MQTT/Test2.java diff --git a/JavaSample-tcp1061513671883/.lck b/JavaSample-tcp1061513671883/.lck new file mode 100644 index 0000000..e69de29 diff --git a/cloud-common/cloud-common-cache/pom.xml b/cloud-common/cloud-common-cache/pom.xml index 7166c7a..3682a5f 100644 --- a/cloud-common/cloud-common-cache/pom.xml +++ b/cloud-common/cloud-common-cache/pom.xml @@ -12,7 +12,7 @@ cloud-common-cache - cloud-common-cache redis缓存架构 + cloud-common-cache 缓存基准模块 diff --git a/cloud-common/cloud-common-cache/src/main/java/com/muyu/common/cache/config/CacheAbsBasic.java b/cloud-common/cloud-common-cache/src/main/java/com/muyu/common/cache/config/CacheAbsBasic.java index 165845e..be3ea6b 100644 --- a/cloud-common/cloud-common-cache/src/main/java/com/muyu/common/cache/config/CacheAbsBasic.java +++ b/cloud-common/cloud-common-cache/src/main/java/com/muyu/common/cache/config/CacheAbsBasic.java @@ -12,6 +12,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import javax.annotation.Resource; +import java.util.concurrent.TimeUnit; public abstract class CacheAbsBasic implements CacheBasic { @@ -21,16 +22,44 @@ public abstract class CacheAbsBasic implements CacheBasic { @Override public void put(K key, V value) { - redisService.setCacheObject(encode(key),value); + + try { + redisService.setCacheObject(encode(key), value,30L, TimeUnit.MINUTES); + } catch (Exception e) { + throw new RuntimeException("运行时异常,异常信息为:{}"+e.getMessage()); + } } @Override public V get(K key) { - return redisService.getCacheObject(encode(key)); + + try { + return redisService.getCacheObject(encode(key)); + } catch (Exception e) { + throw new RuntimeException("运行时异常,异常信息为:{}"+e.getMessage()); + } } @Override public void remove(K key) { - redisService.deleteObject(encode(key)); + + try { + redisService.deleteObject(encode(key)); + } catch (Exception e) { + throw new RuntimeException("运行时异常,异常信息为:{}"+e.getMessage()); + } } + + @Override + public boolean hashKey(K key){ + Boolean b = false; + + try { + b = redisService.hasKey(encode(key)); + } catch (Exception e) { + throw new RuntimeException("运行时异常,异常信息为:{}"+e.getMessage()); + } + return b; + } + } diff --git a/cloud-common/cloud-common-cache/src/main/java/com/muyu/common/cache/config/CacheBasic.java b/cloud-common/cloud-common-cache/src/main/java/com/muyu/common/cache/config/CacheBasic.java index 7ce9015..0b2dac0 100644 --- a/cloud-common/cloud-common-cache/src/main/java/com/muyu/common/cache/config/CacheBasic.java +++ b/cloud-common/cloud-common-cache/src/main/java/com/muyu/common/cache/config/CacheBasic.java @@ -12,11 +12,12 @@ import java.awt.image.Kernel; public interface CacheBasic extends PrimaryKeyBasic{ - void put(K key,V value); + void put(K key, V value); V get(K key); void remove(K key); + boolean hashKey(K key); } diff --git a/cloud-common/cloud-common-cache/src/main/java/com/muyu/common/cache/config/PrimaryKeyBasic.java b/cloud-common/cloud-common-cache/src/main/java/com/muyu/common/cache/config/PrimaryKeyBasic.java index 88e822f..2e0cad9 100644 --- a/cloud-common/cloud-common-cache/src/main/java/com/muyu/common/cache/config/PrimaryKeyBasic.java +++ b/cloud-common/cloud-common-cache/src/main/java/com/muyu/common/cache/config/PrimaryKeyBasic.java @@ -9,26 +9,28 @@ package com.muyu.common.cache.config; */ public interface PrimaryKeyBasic { /** - * key 前缀 + * 主键前缀 + * @return */ public String keyPre(); /** - * 编码 - * @param key 缓存键 - * @return 装修键 + * 主键编码 + * @param key 缓存建 + * @return 装修建 */ - public default String encode(K key){ + public default String encode(K key){ return keyPre() + key.toString(); } /** - * 解码 Key - * @param key 解码后的key - * @return + * 主键解码 + * @param key 缓存建 + * @return 装修建 */ - public K decode(String key); - + public default K decode(String key) { + return (K) key.substring(keyPre().length()); + } diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-cache/pom.xml b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-cache/pom.xml index 4139ff8..07275bf 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-cache/pom.xml +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-cache/pom.xml @@ -18,17 +18,16 @@ - cloud-modules-enterprise-cache redis 缓存平台 + cloud-modules-enterprise-cache redis 缓存基准服务 - + com.muyu cloud-common-cache - - + com.muyu cloud-modules-enterprise-common diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-cache/src/main/java/com/muyu/enterprise/cache/CarManageCacheService.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-cache/src/main/java/com/muyu/enterprise/cache/CarManageCacheService.java deleted file mode 100644 index 38dcf9c..0000000 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-cache/src/main/java/com/muyu/enterprise/cache/CarManageCacheService.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.muyu.enterprise.cache; - -import com.muyu.common.cache.config.CacheAbsBasic; -import com.muyu.enterprise.domain.CarManage; - -/** - * redis报文业务层 - * @ClassName CarManageCacheService - * @Description CarManageCacheService:类的描述 - * @Date 2024/10/3 15:22 - * @author MingWei.Zong - */ - -public class CarManageCacheService extends CacheAbsBasic { - @Override - public String keyPre() { - return "carManage:info:"; - } - - - - @Override - public String decode(String key) { - return key.replace("carManage:info:",""); - } - - -} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-cache/src/main/java/com/muyu/enterprise/cache/CarMessageCacheService.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-cache/src/main/java/com/muyu/enterprise/cache/CarMessageCacheService.java deleted file mode 100644 index 8610fc8..0000000 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-cache/src/main/java/com/muyu/enterprise/cache/CarMessageCacheService.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.muyu.enterprise.cache; - -import com.muyu.common.cache.config.CacheAbsBasic; -import com.muyu.enterprise.domain.CarMessage; - -/** - * redis车辆管理业务层 - * @ClassName CarMessageCacheService - * @Description CarMessageCacheService:类的描述 - * @Date 2024/9/30 11:42 - * @author MingWei.Zong - */ -public class CarMessageCacheService extends CacheAbsBasic { - @Override - public String keyPre() { - return "carMessage:info:"; - } - -// @Override -// public String encode(String key) { -// return super.encode(key); -// } - - @Override - public String decode(String key) { - return key.replace("carMessage:info:",""); - } - - -} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-cache/src/main/java/com/muyu/enterprise/cache/CarMessageValueCacheService.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-cache/src/main/java/com/muyu/enterprise/cache/CarMessageValueCacheService.java new file mode 100644 index 0000000..89f1f24 --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-cache/src/main/java/com/muyu/enterprise/cache/CarMessageValueCacheService.java @@ -0,0 +1,43 @@ +package com.muyu.enterprise.cache; + +import com.muyu.common.cache.config.CacheAbsBasic; +import com.muyu.enterprise.domain.CarCompany; +import com.muyu.enterprise.domain.CarTemplate; +import com.muyu.enterprise.domain.car.MessageValue; +import com.muyu.enterprise.domain.resp.car.MessageValueListResp; + +import java.util.List; + +/** + * 报文类型缓存---实现类 + * + * + * @ClassName CarTemplateCacheService + * @Description CarTemplateCacheService:类的描述 + * @Date 2024/10/3 15:22 + * @author MingWei.Zong + */ + +public class CarMessageValueCacheService extends CacheAbsBasic> { + /** + * 前缀 + * @return + */ + @Override + public String keyPre() + { + return "messageValue:info"; + } + + @Override + public String encode(String key) + { + return super.encode(key); + } + @Override + public String decode(String key) + { + return key.replace("messageValue:info:",""); + } + +} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-cache/src/main/java/com/muyu/enterprise/cache/CarTemplateCacheService.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-cache/src/main/java/com/muyu/enterprise/cache/CarTemplateCacheService.java deleted file mode 100644 index 0008c7c..0000000 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-cache/src/main/java/com/muyu/enterprise/cache/CarTemplateCacheService.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.muyu.enterprise.cache; - -import com.muyu.common.cache.config.CacheAbsBasic; -import com.muyu.enterprise.domain.CarCompany; -import com.muyu.enterprise.domain.CarTemplate; - -/** - * redis报文模版业务层 - * @ClassName CarTemplateCacheService - * @Description CarTemplateCacheService:类的描述 - * @Date 2024/10/3 15:22 - * @author MingWei.Zong - */ - -public class CarTemplateCacheService extends CacheAbsBasic { - @Override - public String keyPre() { - return "carTemplate:info:"; - } - - - - @Override - public String decode(String key) { - return key.replace("carTemplate:info:",""); - } - - -} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-cache/src/main/java/com/muyu/enterprise/cache/CarVehicleCacheService.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-cache/src/main/java/com/muyu/enterprise/cache/CarVehicleCacheService.java new file mode 100644 index 0000000..1fc2aaf --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-cache/src/main/java/com/muyu/enterprise/cache/CarVehicleCacheService.java @@ -0,0 +1,32 @@ +package com.muyu.enterprise.cache; + +import com.muyu.common.cache.config.CacheAbsBasic; +import com.muyu.enterprise.domain.car.Vehicle; + +/** + * 车辆管理---实现类 + * + * + * @ClassName CarMessageCacheService + * @Description CarMessageCacheService:类的描述 + * @Date 2024/9/30 11:42 + * @author MingWei.Zong + */ +public class CarVehicleCacheService extends CacheAbsBasic { + @Override + public String keyPre(){ + return "sysCar:info"; + } + + @Override + public String encode(String key){ + return super.encode(key); + } + + @Override + public String decode(String key){ + return super.decode(key); + } + + +} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-cache/src/main/java/com/muyu/enterprise/cache/CarVehicleTypeCacheService.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-cache/src/main/java/com/muyu/enterprise/cache/CarVehicleTypeCacheService.java new file mode 100644 index 0000000..c94b505 --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-cache/src/main/java/com/muyu/enterprise/cache/CarVehicleTypeCacheService.java @@ -0,0 +1,37 @@ +package com.muyu.enterprise.cache; + +import com.muyu.common.cache.config.CacheAbsBasic; +import com.muyu.enterprise.domain.CarManage; +import com.muyu.enterprise.domain.car.VehicleType; + +/** + * 车辆类型的缓存---实现类 + * + * + * @ClassName CarManageCacheService + * @Description CarManageCacheService:类的描述 + * @Date 2024/10/3 15:22 + * @author MingWei.Zong + */ + +public class CarVehicleTypeCacheService extends CacheAbsBasic { + @Override + public String keyPre() + { + return "sysCarType:info"; + } + + @Override + public String encode(String key) + { + return super.encode(key); + } + + @Override + public String decode(String key) + { + return super.decode(key); + } + + +} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-cache/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-cache/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports index 7c16588..2f099e6 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-cache/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-cache/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -1,7 +1,7 @@ com.muyu.enterprise.cache.CarCompanyCacheService com.muyu.enterprise.cache.CarFaultCacheService -com.muyu.enterprise.cache.CarManageCacheService -com.muyu.enterprise.cache.CarMessageCacheService -com.muyu.enterprise.cache.CarTemplateCacheService +com.muyu.enterprise.cache.CarVehicleTypeCacheService +com.muyu.enterprise.cache.CarVehicleCacheService +com.muyu.enterprise.cache.CarMessageValueCacheService com.muyu.enterprise.cache.CarWarnCacheService com.muyu.enterprise.cache.ElectronicFenceCacheService diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-remote/src/main/java/com/muyu/enterprise/remote/RemoteMessageValueService.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-remote/src/main/java/com/muyu/enterprise/remote/RemoteMessageValueService.java index fcef0f4..cf50df0 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-remote/src/main/java/com/muyu/enterprise/remote/RemoteMessageValueService.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-remote/src/main/java/com/muyu/enterprise/remote/RemoteMessageValueService.java @@ -12,6 +12,7 @@ import java.util.List; /** * 报文数据服务 + * * @Author:李庆帅 * @Package:com.muyu.analysis.parsing.feign * @Project:cloud-server diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-remote/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-remote/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports index 497f58a..4a9fba4 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-remote/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-remote/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -1,2 +1,2 @@ -com.muyu.enterprise.remote.factory.RemoteVehicleServiceFactory com.muyu.enterprise.remote.factory.RemoteMessageValueServiceFactory +com.muyu.enterprise.remote.factory.RemoteVehicleServiceFactory diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/CarManageController.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/CarManageController.java index 6921566..023427e 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/CarManageController.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/CarManageController.java @@ -3,8 +3,10 @@ package com.muyu.enterprise.controller; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.util.RandomUtil; import com.muyu.common.core.utils.StringUtils; -import com.muyu.enterprise.cache.CarManageCacheService; +import com.muyu.common.core.utils.poi.ExcelUtil; +import com.muyu.enterprise.cache.CarVehicleTypeCacheService; import com.muyu.enterprise.domain.CarManage; +import com.muyu.enterprise.domain.car.Vehicle; import com.muyu.enterprise.domain.dto.CarDTO; import com.muyu.enterprise.domain.vo.CarVO; import com.muyu.enterprise.service.CarCompanyService; @@ -15,6 +17,7 @@ import com.muyu.common.core.web.page.TableDataInfo; import com.muyu.common.security.utils.SecurityUtils; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletResponse; import lombok.RequiredArgsConstructor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -35,7 +38,7 @@ import java.util.List; @Tag(name = "CarManageController", description = "车辆管理") public class CarManageController extends BaseController { - private final CarManageCacheService carManageCacheService; + private final CarVehicleTypeCacheService carManageCacheService; private final CarCompanyService sysCarCompanyService; @@ -116,6 +119,27 @@ public class CarManageController extends BaseController { sysCarService.removeBatchByIds(ids); return Result.success("车辆删除成功"); } + /** + * 导出所有车辆数据 + * @param response 请求对象 + */ + @PostMapping("/export") + public void export(HttpServletResponse response) { + List list = sysCarService.list(); + ExcelUtil util = new ExcelUtil<>(CarManage.class); + util.exportExcel(response, list, "车辆数据"); + } + /** + * 通过车辆vin码查询模板id + * @param carManageVin 请求对象 + * @return 返回结果 + */ + @GetMapping("/findByCarManageVin/{carManageVin}") + @Operation(description = "通过车辆vin码查询模板id") + public Result findByCarManageVin(@PathVariable("vehicleVin") String carManageVin) { + Long byCarManageVin = sysCarService.findByCarManageVin(carManageVin); + return Result.success(byCarManageVin); + } } diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/CarMessageController.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/CarMessageController.java index f75f471..494ae99 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/CarMessageController.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/CarMessageController.java @@ -3,9 +3,10 @@ package com.muyu.enterprise.controller; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.muyu.common.core.domain.Result; import com.muyu.common.core.web.controller.BaseController; -import com.muyu.enterprise.cache.CarManageCacheService; -import com.muyu.enterprise.cache.CarMessageCacheService; +import com.muyu.enterprise.cache.CarVehicleTypeCacheService; +import com.muyu.enterprise.cache.CarVehicleCacheService; import com.muyu.enterprise.domain.CarMessage; +import com.muyu.enterprise.domain.car.Vehicle; import com.muyu.enterprise.service.CarMessageService; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; @@ -28,7 +29,7 @@ import java.util.List; @Tag(name = "报文",description = "报文模块") public class CarMessageController extends BaseController { - private final CarMessageCacheService carMessageCacheService; + private final CarVehicleCacheService carMessageCacheService; private final CarMessageService sysCarMessageService; @Autowired private CarMessageService carMessageService; @@ -70,7 +71,7 @@ public class CarMessageController extends BaseController { public Result insertMessage(@RequestBody CarMessage carMessage){ sysCarMessageService.save(carMessage); //报文 redis - carMessageCacheService.put(carMessage.getMessageType(),new CarMessage()); + carMessageCacheService.put(carMessage.getMessageType(),new Vehicle()); return Result.success("添加成功"); } /** diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/car/MessageValueController.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/car/MessageValueController.java index e739722..8c83d17 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/car/MessageValueController.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/car/MessageValueController.java @@ -4,6 +4,7 @@ package com.muyu.enterprise.controller.car; import cn.hutool.json.JSONObject; import com.muyu.common.core.domain.Result; import com.muyu.common.core.web.controller.BaseController; +import com.muyu.enterprise.cache.CarMessageValueCacheService; import com.muyu.enterprise.domain.car.MessageValue; import com.muyu.enterprise.domain.req.car.MessageValueAddReq; import com.muyu.enterprise.domain.req.car.MessageValueReq; @@ -37,18 +38,22 @@ public class MessageValueController extends BaseController @Autowired private MessageValueService messageValueService; + @Autowired + private CarMessageValueCacheService carMessageValueCacheService; + /** - * 报文数据列表查询 + * 报文数据条件查询 * @param messageValueReq 请求对象 * @return 返回结果 */ @RequestMapping(value = "/list", method = RequestMethod.POST) - @Operation(summary = "报文数据列表", description = "根据报文类别, 报文模版筛选报文数据") + @Operation(summary = "报文数据条件查询", description = "根据报文类别, 报文模版筛选报文数据") public Result> findAll(@RequestBody MessageValueReq messageValueReq) { List list = messageValueService.findAll(messageValueReq); return Result.success(list); } + /** * 提供预警和故障使用 * @return 返回结果 @@ -111,6 +116,11 @@ public class MessageValueController extends BaseController @Operation(summary = "根据报文模版id查询报文数据", description = "根据报文模版id查询报文数据") public Result> findByTemplateId(@PathVariable("templateId") Long templateId){ List list = messageValueService.findByTemplateId(templateId); + //存入缓存中com.muyu.enterprise.cache.CarMessageValueCacheService + carMessageValueCacheService.put( + String.valueOf( + templateId + ), list); return Result.success(list); } diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/car/VehicleController.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/car/VehicleController.java index cd14fc5..7469f5b 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/car/VehicleController.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/car/VehicleController.java @@ -7,6 +7,7 @@ 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.log.annotation.Log; +import com.muyu.enterprise.cache.CarVehicleCacheService; import com.muyu.enterprise.domain.car.Vehicle; import com.muyu.enterprise.domain.req.car.VehicleAddReq; import com.muyu.enterprise.domain.req.car.VehicleManageReq; @@ -41,6 +42,9 @@ public class VehicleController extends BaseController @Autowired private VehicleService vehicleService; + @Autowired + private CarVehicleCacheService carVehicleCacheService; + /** * 查询车辆管理列表 * @param vehicleManageReq 请求对象 @@ -74,7 +78,10 @@ public class VehicleController extends BaseController @GetMapping("/{vehicleId}") @Operation(summary = "通过id查询车辆信息", description = "通过id查询车辆信息") public Result findById(@PathVariable("vehicleId") Long vehicleId) { - return Result.success(vehicleService.getById(vehicleId)); + Vehicle byId = vehicleService.getById(vehicleId); + //存入缓存中com.muyu.enterprise.cache.carVehicleCacheService + carVehicleCacheService.put(String.valueOf(byId.getVehicleVin()), byId); + return Result.success(byId); } /** diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/car/VehicleTypeController.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/car/VehicleTypeController.java index 54cc6eb..7da445f 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/car/VehicleTypeController.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/car/VehicleTypeController.java @@ -3,6 +3,7 @@ package com.muyu.enterprise.controller.car; import com.muyu.common.core.domain.Result; import com.muyu.common.core.web.controller.BaseController; +import com.muyu.enterprise.cache.CarVehicleTypeCacheService; import com.muyu.enterprise.domain.car.VehicleType; import com.muyu.enterprise.service.car.VehicleTypeService; import io.swagger.v3.oas.annotations.Operation; @@ -33,14 +34,22 @@ public class VehicleTypeController extends BaseController @Autowired private VehicleTypeService vehicleTypeService; + @Autowired + private CarVehicleTypeCacheService carVehicleTypeCacheService; + /** * 车辆类型查询 * @return 返回结果 */ - @RequestMapping(path = "/", method = RequestMethod.POST) + @RequestMapping(value = "/findAll", method = RequestMethod.POST) @Operation(summary = "车辆类型列表",description = "车辆类型列表") public Result> findAll(){ - return Result.success(vehicleTypeService.list()); + List list = vehicleTypeService.list(); + for (VehicleType vehicleType : list) { + //存入缓存中com.muyu.enterprise.cache.CarVehicleTypeCacheService + carVehicleTypeCacheService.put(String.valueOf(vehicleType.getVehicleTypeId()),vehicleType); + } + return Result.success(); } diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/CarManageMapper.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/CarManageMapper.java index 5117d62..051930d 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/CarManageMapper.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/CarManageMapper.java @@ -9,6 +9,7 @@ import com.muyu.enterprise.domain.dto.CarDTO; import com.muyu.enterprise.domain.vo.CarVO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; import java.util.List; @@ -21,5 +22,11 @@ import java.util.List; */ @Mapper public interface CarManageMapper extends MPJBaseMapper { - + /** + * 通过车辆vin码查询模板id + * @param carManageVin 请求对象 + * @return 返回结果 + */ + @Select("SELECT t.template_id FROM car_manage v LEFT JOIN car_type t ON v.car_type_id = t.car_type_id WHERE v.car_vin = #{carManageVin}") + Long findByCarManageVin(String carManageVin); } diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/CarManageService.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/CarManageService.java index c04c6fd..ad90333 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/CarManageService.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/CarManageService.java @@ -34,4 +34,12 @@ public interface CarManageService extends IService { * @return */ void insertCar(CarManage carVO); + /** + * 通过车辆vin码查询模板id + * @param carManageVin 请求对象 + * @return 返回结果 + */ + Long findByCarManageVin(String carManageVin); + + } diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/CarManageServiceImpl.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/CarManageServiceImpl.java index 72f550c..f3c8931 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/CarManageServiceImpl.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/CarManageServiceImpl.java @@ -3,20 +3,17 @@ package com.muyu.enterprise.service.impl; import cn.hutool.core.bean.BeanUtil; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.github.yulichang.wrapper.MPJLambdaWrapper; -import com.muyu.common.core.domain.Result; -import com.muyu.common.core.utils.StringUtils; -import com.muyu.enterprise.cache.CarManageCacheService; -import com.muyu.enterprise.controller.CarCompanyController; +import com.muyu.enterprise.cache.CarVehicleCacheService; import com.muyu.enterprise.domain.CarCompany; import com.muyu.enterprise.domain.CarConfig; import com.muyu.enterprise.domain.CarManage; +import com.muyu.enterprise.domain.car.Vehicle; import com.muyu.enterprise.domain.dto.CarDTO; import com.muyu.enterprise.domain.vo.CarVO; import com.muyu.enterprise.mapper.CarManageMapper; import com.muyu.enterprise.service.CarCompanyService; import com.muyu.enterprise.service.CarConfigService; import com.muyu.enterprise.service.CarManageService; -import com.muyu.common.redis.service.RedisService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -40,7 +37,7 @@ public class CarManageServiceImpl extends ServiceImpl redisTemplate; + @Autowired + private CarMessageValueCacheService carMessageValueCacheService; public MessageValueServiceImpl(MessageValueMapper messageValueMapper) { diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/carImpl/VehicleServiceImpl.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/carImpl/VehicleServiceImpl.java index 5ebd293..280258c 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/carImpl/VehicleServiceImpl.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/carImpl/VehicleServiceImpl.java @@ -16,12 +16,13 @@ import org.springframework.stereotype.Service; import java.util.List; /** + * 车辆管理业务实现层 * @Author:李庆帅 * @Package:com.muyu.car.service.impl * @Project:cloud-server * @name:VehicleServiceImpl * @Date:2024/9/26 22:35 - * @Description: 车辆管理业务层 + * @Description: */ @Log4j2 @Service diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/carImpl/VehicleTypeServiceImpl.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/carImpl/VehicleTypeServiceImpl.java index 6d024cf..79fad94 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/carImpl/VehicleTypeServiceImpl.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/carImpl/VehicleTypeServiceImpl.java @@ -8,12 +8,13 @@ import lombok.extern.log4j.Log4j2; import org.springframework.stereotype.Service; /** + * 车辆类型业务实现层 * @Author:李庆帅 * @Package:com.muyu.car.service.impl * @Project:cloud-server * @name:VehicleTypeServiceImpl * @Date:2024/9/26 22:36 - * @Description: 车辆类型实现层 + * @Description: */ @Log4j2 @Service diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/resources/mapper/car/CarManageMapper.xml b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/resources/mapper/car/CarManageMapper.xml index 2626ceb..2157943 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/resources/mapper/car/CarManageMapper.xml +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/resources/mapper/car/CarManageMapper.xml @@ -5,4 +5,5 @@ + diff --git a/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/consumer/GoOnlineConsumer.java b/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/consumer/GoOnlineConsumer.java index ff0e571..7b823cd 100644 --- a/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/consumer/GoOnlineConsumer.java +++ b/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/consumer/GoOnlineConsumer.java @@ -1,7 +1,7 @@ package com.muyu.event.process.consumer; import com.muyu.enterprise.cache.CarFaultCacheService; -import com.muyu.enterprise.cache.CarManageCacheService; +import com.muyu.enterprise.cache.CarVehicleTypeCacheService; import com.muyu.enterprise.cache.CarWarnCacheService; import com.muyu.enterprise.cache.ElectronicFenceCacheService; import com.muyu.event.process.constant.CacheHandlerConstants; @@ -35,7 +35,7 @@ public class GoOnlineConsumer { /** * 车辆管理缓存服务 */ - private final CarManageCacheService carManageCacheService; + private final CarVehicleTypeCacheService carManageCacheService; /** * 车辆故障缓存服务 diff --git a/cloud-modules/cloud-modules-protocol-analysis/pom.xml b/cloud-modules/cloud-modules-protocol-analysis/pom.xml index c294bb2..b46dbe9 100644 --- a/cloud-modules/cloud-modules-protocol-analysis/pom.xml +++ b/cloud-modules/cloud-modules-protocol-analysis/pom.xml @@ -22,8 +22,6 @@ - - com.alibaba.cloud @@ -89,41 +87,56 @@ com.muyu cloud-modules-enterprise-common + com.github.yulichang mybatis-plus-join + com.muyu cloud-common-core + com.muyu cloud-common-kafka + com.muyu cloud-common-mqtt + org.springframework.boot spring-boot-starter-cache + com.github.ben-manes.caffeine caffeine + com.muyu cloud-modules-enterprise-remote + + + + com.muyu + cloud-modules-enterprise-cache + + + diff --git a/cloud-modules/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/ProtocolAnalysisApplication.java b/cloud-modules/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/ProtocolAnalysisApplication.java index 8477033..6d08b71 100644 --- a/cloud-modules/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/ProtocolAnalysisApplication.java +++ b/cloud-modules/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/ProtocolAnalysisApplication.java @@ -4,6 +4,7 @@ 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; +import org.springframework.cloud.openfeign.EnableFeignClients; /** * 协议解析启动类 diff --git a/cloud-modules/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/MQTT/AnalysisMQTT.java b/cloud-modules/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/MQTT/AnalysisMQTT.java new file mode 100644 index 0000000..71cced2 --- /dev/null +++ b/cloud-modules/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/MQTT/AnalysisMQTT.java @@ -0,0 +1,200 @@ +//package com.muyu.analysis.parsing.mqtt; +// +//import com.muyu.common.mqtt.MQTTConnect; +//import com.muyu.enterprise.cache.CarMessageValueCacheService; +//import com.muyu.enterprise.cache.CarVehicleCacheService; +//import com.muyu.enterprise.cache.CarVehicleTypeCacheService; +//import com.muyu.enterprise.domain.car.MessageValue; +//import com.muyu.enterprise.domain.car.Vehicle; +//import com.muyu.enterprise.domain.car.VehicleType; +//import com.muyu.enterprise.domain.resp.car.MessageValueListResp; +//import com.muyu.enterprise.remote.RemoteMessageValueService; +//import com.muyu.enterprise.remote.RemoteVehicleService; +//import jakarta.annotation.PostConstruct; +//import jakarta.annotation.Resource; +//import cn.hutool.json.JSONObject; +//import lombok.extern.log4j.Log4j2; +//import org.apache.kafka.clients.producer.KafkaProducer; +//import org.apache.kafka.clients.producer.ProducerRecord; +//import org.eclipse.paho.client.mqttv3.*; +//import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence; +//import org.springframework.data.redis.core.RedisTemplate; +//import org.springframework.stereotype.Component; +// +//import java.util.List; +// +///** +// * 协议解析处理数据发送传送到队列 +// * @Author:李庆帅 +// * @Package:com.muyu.analysis.parsing.mqtt +// * @Project:cloud-server +// * @name:AnalysisMQTT +// * @Date:2024/10/8 20:52 +// */ +//@Log4j2 +//@Component +//public class AnalysisMQTT { +// +// private final static String topic = "sysCar_vin_topic"; +// +// @Resource +// private RedisTemplate redisTemplate; +// +// @Resource +// private KafkaProducer kafkaProducer; +// +// @Resource +// private RemoteVehicleService remoteVehicleService; +// +// @Resource +// private RemoteMessageValueService remoteMessageValueService; +// +// //车辆信息 +// @Resource +// private CarVehicleCacheService vehicleCacheService; +// +// //车辆类型信息 +// @Resource +// private CarVehicleTypeCacheService vehicleTypeCacheService; +// +// //报文模版信息 +// @Resource +// private CarMessageValueCacheService allMessageValueCacheService; +// +// +// // MQTT主题 +// private static final String TOPIC = "vehicle"; +// // MQTT Broker地址 +// private static final String BROKER = "tcp://106.15.136.7:1883"; +// // MQTT客户端ID +// private static final String CLIENT_ID = "JavaSample"; +// // MQTT客户端 +// private MqttClient mqttClient; +// +// /** +// * MQTT连接选项 +// */ +// public AnalysisMQTT(CarVehicleCacheService vehicleCacheService, CarVehicleTypeCacheService vehicleTypeCacheService, CarMessageValueCacheService allMessageValueCacheService) { +// this.vehicleCacheService = vehicleCacheService; +// this.vehicleTypeCacheService = vehicleTypeCacheService; +// this.allMessageValueCacheService = allMessageValueCacheService; +// } +// +// /** +// * 初始化MQTT连接 +// */ +// @PostConstruct +// public void init() { +// connectToMqttBroker(); +// } +// +// /** +// * 连接MQTT Broker +// */ +// private void connectToMqttBroker() { +// try { +// mqttClient = new MqttClient(BROKER, CLIENT_ID, new MemoryPersistence()); +// MqttConnectOptions connOpts = new MqttConnectOptions(); +// connOpts.setCleanSession(true); +// log.info("连接到协议: " + BROKER); +// mqttClient.connect(connOpts); +// mqttClient.subscribe(TOPIC, 0); +// mqttClient.setCallback(new MqttCallbackHandler()); +// } catch (MqttException me) { +// log.error("连接MQTT Broker失败: [{}]", me.getMessage()); +// } +// } +// +// /** +// * MQTT回调处理器 +// */ +// private class MqttCallbackHandler implements MqttCallback { +// +// // 连接丢失 +// @Override +// public void connectionLost(Throwable throwable) { +// log.error("连接丢失: [{}]", throwable.getMessage()); +// } +// +// // 连接成功 +// @Override +// public void messageArrived(String s, MqttMessage mqttMessage) throws Exception { +// handleMqttMessage(mqttMessage); +// } +// +// +// // 接收信息 +// @Override +// public void deliveryComplete(IMqttDeliveryToken iMqttDeliveryToken) { +// +// } +// } +// +// /** +// * 处理MQTT消息 +// * +// * @param mqttMessage +// */ +// private void handleMqttMessage(MqttMessage mqttMessage) { +// // 解析MQTT消息 +// String messageStr = new String(mqttMessage.getPayload()); +// log.info("接收到MQTT消息: " + messageStr); +// // 解析协议 +// JSONObject parseMessage = parseProtocol(messageStr); +// // 发送Kafka消息 +// sendKafkaMessage(parseMessage); +// } +// +// /** +// * 解析协议 +// * +// * @param messageStr +// * @return +// */ +// private JSONObject parseProtocol(String messageStr) { +// String[] hexArray = messageStr.split(" "); +// // 遍历十六进制数据转换为字符 +// StringBuilder stringBuilder = new StringBuilder(); +// for (String hex : hexArray) { +// int decimal = Integer.parseInt(hex, 16); +// stringBuilder.append((char) decimal); +// } +// // 取出车辆VIN码 +// String vehicleVin = stringBuilder.substring(1, 18); +// log.info("车辆VIN码: {}", vehicleVin); +// // 根据车辆VIN码查询车辆信息 +// Vehicle vehicle = vehicleCacheService.get(vehicleVin); +// VehicleType vehicleType = vehicleTypeCacheService.get(String.valueOf(vehicle.getVehicleTypeId())); +// Long templateId = vehicleType.getMessageTemplateId(); +// List templateList = allMessageValueCacheService.get(String.valueOf(templateId)); +// // 判断报文模板列表不为空 +// if (templateList.isEmpty()) { +// throw new RuntimeException("报文模版为空"); +// } +// // 存储报文模版解析后的数据 +// JSONObject jsonObject = new JSONObject(); +// for (MessageValueListResp messageValue : templateList) { +// // 起始位下标 +// Integer startIndex = messageValue.getMessageStartIndex() - 1; +// // 结束位下标 +// Integer endIndex = messageValue.getMessageEndIndex(); +// // 根据报文模版截取数据 +// String value = stringBuilder.substring(startIndex, endIndex); +// // 存入数据 +// jsonObject.put(messageValue.getMessageLabel(), value); +// } +// return jsonObject; +// } +// +// /** +// * 发送Kafka消息 +// * @param parseMessage +// */ +// private void sendKafkaMessage(JSONObject parseMessage) { +// ProducerRecord producerRecord = new ProducerRecord<>("zeshi", parseMessage.toString()); +// kafkaProducer.send(producerRecord); +// log.info("发送Kafka消息: " + parseMessage); +// } +// +// +//} diff --git a/cloud-modules/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/MQTT/ParsingMQTT.java b/cloud-modules/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/MQTT/ParsingMQTT.java index 80d1806..770eba1 100644 --- a/cloud-modules/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/MQTT/ParsingMQTT.java +++ b/cloud-modules/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/MQTT/ParsingMQTT.java @@ -4,6 +4,11 @@ import com.muyu.common.core.constant.KafkaConstants; import com.muyu.common.core.constant.RedisConstants; import com.muyu.common.core.domain.Result; import com.muyu.common.mqtt.MQTTConnect; +import com.muyu.enterprise.cache.CarMessageValueCacheService; +import com.muyu.enterprise.cache.CarVehicleCacheService; +import com.muyu.enterprise.cache.CarVehicleTypeCacheService; +import com.muyu.enterprise.domain.car.Vehicle; +import com.muyu.enterprise.domain.car.VehicleType; import com.muyu.enterprise.domain.resp.car.MessageValueListResp; import com.muyu.enterprise.remote.RemoteMessageValueService; import com.muyu.enterprise.remote.RemoteVehicleService; @@ -32,6 +37,9 @@ import java.util.List; @Component public class ParsingMQTT { + private final static String topic = "sysCar_vin_topic"; + + @Resource private RedisTemplate redisTemplate; @@ -44,6 +52,18 @@ public class ParsingMQTT { @Resource private RemoteMessageValueService remoteMessageValueService; + //车辆信息 + @Resource + private CarVehicleCacheService vehicleCacheService; + + //车辆类型信息 + @Resource + private CarVehicleTypeCacheService vehicleTypeCacheService; + + //报文模版信息 + @Resource + private CarMessageValueCacheService allMessageValueCacheService; + /** * 协议解析 */ @@ -99,33 +119,11 @@ public class ParsingMQTT { String vehicleVin = result.substring(1, 18); log.info("车辆VIN码: " + vehicleVin); //根据车辆VIN码查询报文模板ID - Result byVehicleVin = remoteVehicleService.findByVehicleVin(vehicleVin); - Long templateId = byVehicleVin.getData(); - List templateList; - //从redis缓存中获取报文模板数据 - try { - String redisKey = RedisConstants.MESSAGE_TEMPLATE + templateId; - if (redisTemplate.hasKey(redisKey)) { - List list = redisTemplate.opsForList().range(redisKey, 0, -1); - templateList = list.stream() - .map(obj -> JSON.parseObject(obj.toString(), MessageValueListResp.class)) - .toList(); - log.info("Redis缓存查询成功"); - } else { - Result> byTemplateId = remoteMessageValueService.findByTemplateId(templateId); - templateList = byTemplateId.getData(); - templateList.forEach( - listResp -> - redisTemplate.opsForList().rightPush( - redisKey, JSON.toJSONString(listResp) - ) - ); - log.info("数据库查询成功:"+byTemplateId); - } - } catch (Exception e) { - log.info("获取报文模板失败"); - throw new RuntimeException("获取报文模板失败"); - } + // 根据车辆VIN码查询车辆信息 + Vehicle vehicle = vehicleCacheService.get(vehicleVin); + VehicleType vehicleType = vehicleTypeCacheService.get(String.valueOf(vehicle.getVehicleTypeId())); + Long templateId = vehicleType.getMessageTemplateId(); + List templateList = allMessageValueCacheService.get(String.valueOf(templateId)); //判断报文模板列表不为空 if (templateList.isEmpty()) { log.info("报文模版为空"); diff --git a/cloud-modules/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/MQTT/Test2.java b/cloud-modules/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/MQTT/Test2.java deleted file mode 100644 index 9ed2037..0000000 --- a/cloud-modules/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/MQTT/Test2.java +++ /dev/null @@ -1,86 +0,0 @@ -package com.muyu.analysis.parsing.mqtt; - -import com.alibaba.fastjson2.JSONObject; -import lombok.extern.log4j.Log4j2; -import org.w3c.dom.stylesheets.LinkStyle; - -import java.util.ArrayList; -import java.util.List; -import java.util.concurrent.Executors; -import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.TimeUnit; - -/** - * @Author:李庆帅 - * @Package:com.muyu.analysis.parsing.mqtt - * @Project:cloud-server - * @name:Test2 - * @Date:2024/10/6 20:36 - */ -@Log4j2 -public class Test2 -{ - private static final int DURATION_SECONDS = 5; - private static List receivedStrings = new ArrayList<>(); - private static ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1); - private static int elapsedSeconds = 0; - private static String file = "elapsed" ; - - public static void main(String[] args){ - //定义一个任务,每秒执行一次 - Runnable task = new Runnable() { - @Override - public void run() { - JSONObject stringFromSource = getStringFromSource(); - receivedStrings.add(stringFromSource); - System.out.println("Received:"+stringFromSource); - //清理超过的数据 - cleanUpOIdStrings(); - //检查超速条件 - checkForSpeeding(); - } - }; - //每个1秒执行一次任务 - scheduler.scheduleAtFixedRate(task,0,1, TimeUnit.SECONDS); - } - //模拟从某个源获取字符串的方法 - private static JSONObject getStringFromSource(){ - JSONObject jsonObject = new JSONObject(); - jsonObject.put("message","Hello World"); - jsonObject.put("time",System.currentTimeMillis()); - jsonObject.put("elapsed",elapsedSeconds); - return jsonObject; - } - - //清理超过60秒的数据 - private static void cleanUpOIdStrings(){ - long currentTime = System.currentTimeMillis(); - receivedStrings.removeIf(jsonObject ->currentTime-jsonObject.getLong("time")>TimeUnit.SECONDS.toMicros(DURATION_SECONDS)); - } - - //检查是否有超速情况 - private static void checkForSpeeding() - { - if(receivedStrings.size() < 2)return;//如果数据不足,直接返回 - - JSONObject jsonObject = new JSONObject(); - jsonObject.put("message","你好"); - jsonObject.put("time",System.currentTimeMillis()); - jsonObject.put("elapsed",10); - - for (int i = 0; i < receivedStrings.size(); i++) { - JSONObject current = receivedStrings.get(i); - JSONObject next = receivedStrings.get(i + 1); - - Short currentElapsed = current.getShort(file); - Short nextElapsed = next.getShort(file); - receivedStrings.add(jsonObject); - //检查条件,如果相差大于12,则记录错误 - if (nextElapsed - currentElapsed > 12) { - System.out.println("出错啦!出错啦!车子超速啦!!!"); - } - } - } - - -} From 0d48eb2e341fe51f146d69c279bcf31f6e86e8c0 Mon Sep 17 00:00:00 2001 From: LQS <2506203757@qq.com> Date: Thu, 10 Oct 2024 12:28:38 +0800 Subject: [PATCH 3/3] =?UTF-8?q?feat():=E8=A7=A3=E6=9E=90=E6=A8=A1=E5=9D=97?= =?UTF-8?q?=E7=9A=84=E6=97=A5=E5=BF=97=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- JavaSample-tcp1061513671883/.lck | 0 .../analysis/parsing/MQTT/AnalysisMQTT.java | 200 ------------------ 2 files changed, 200 deletions(-) delete mode 100644 JavaSample-tcp1061513671883/.lck delete mode 100644 cloud-modules/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/MQTT/AnalysisMQTT.java diff --git a/JavaSample-tcp1061513671883/.lck b/JavaSample-tcp1061513671883/.lck deleted file mode 100644 index e69de29..0000000 diff --git a/cloud-modules/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/MQTT/AnalysisMQTT.java b/cloud-modules/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/MQTT/AnalysisMQTT.java deleted file mode 100644 index 71cced2..0000000 --- a/cloud-modules/cloud-modules-protocol-analysis/src/main/java/com/muyu/analysis/parsing/MQTT/AnalysisMQTT.java +++ /dev/null @@ -1,200 +0,0 @@ -//package com.muyu.analysis.parsing.mqtt; -// -//import com.muyu.common.mqtt.MQTTConnect; -//import com.muyu.enterprise.cache.CarMessageValueCacheService; -//import com.muyu.enterprise.cache.CarVehicleCacheService; -//import com.muyu.enterprise.cache.CarVehicleTypeCacheService; -//import com.muyu.enterprise.domain.car.MessageValue; -//import com.muyu.enterprise.domain.car.Vehicle; -//import com.muyu.enterprise.domain.car.VehicleType; -//import com.muyu.enterprise.domain.resp.car.MessageValueListResp; -//import com.muyu.enterprise.remote.RemoteMessageValueService; -//import com.muyu.enterprise.remote.RemoteVehicleService; -//import jakarta.annotation.PostConstruct; -//import jakarta.annotation.Resource; -//import cn.hutool.json.JSONObject; -//import lombok.extern.log4j.Log4j2; -//import org.apache.kafka.clients.producer.KafkaProducer; -//import org.apache.kafka.clients.producer.ProducerRecord; -//import org.eclipse.paho.client.mqttv3.*; -//import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence; -//import org.springframework.data.redis.core.RedisTemplate; -//import org.springframework.stereotype.Component; -// -//import java.util.List; -// -///** -// * 协议解析处理数据发送传送到队列 -// * @Author:李庆帅 -// * @Package:com.muyu.analysis.parsing.mqtt -// * @Project:cloud-server -// * @name:AnalysisMQTT -// * @Date:2024/10/8 20:52 -// */ -//@Log4j2 -//@Component -//public class AnalysisMQTT { -// -// private final static String topic = "sysCar_vin_topic"; -// -// @Resource -// private RedisTemplate redisTemplate; -// -// @Resource -// private KafkaProducer kafkaProducer; -// -// @Resource -// private RemoteVehicleService remoteVehicleService; -// -// @Resource -// private RemoteMessageValueService remoteMessageValueService; -// -// //车辆信息 -// @Resource -// private CarVehicleCacheService vehicleCacheService; -// -// //车辆类型信息 -// @Resource -// private CarVehicleTypeCacheService vehicleTypeCacheService; -// -// //报文模版信息 -// @Resource -// private CarMessageValueCacheService allMessageValueCacheService; -// -// -// // MQTT主题 -// private static final String TOPIC = "vehicle"; -// // MQTT Broker地址 -// private static final String BROKER = "tcp://106.15.136.7:1883"; -// // MQTT客户端ID -// private static final String CLIENT_ID = "JavaSample"; -// // MQTT客户端 -// private MqttClient mqttClient; -// -// /** -// * MQTT连接选项 -// */ -// public AnalysisMQTT(CarVehicleCacheService vehicleCacheService, CarVehicleTypeCacheService vehicleTypeCacheService, CarMessageValueCacheService allMessageValueCacheService) { -// this.vehicleCacheService = vehicleCacheService; -// this.vehicleTypeCacheService = vehicleTypeCacheService; -// this.allMessageValueCacheService = allMessageValueCacheService; -// } -// -// /** -// * 初始化MQTT连接 -// */ -// @PostConstruct -// public void init() { -// connectToMqttBroker(); -// } -// -// /** -// * 连接MQTT Broker -// */ -// private void connectToMqttBroker() { -// try { -// mqttClient = new MqttClient(BROKER, CLIENT_ID, new MemoryPersistence()); -// MqttConnectOptions connOpts = new MqttConnectOptions(); -// connOpts.setCleanSession(true); -// log.info("连接到协议: " + BROKER); -// mqttClient.connect(connOpts); -// mqttClient.subscribe(TOPIC, 0); -// mqttClient.setCallback(new MqttCallbackHandler()); -// } catch (MqttException me) { -// log.error("连接MQTT Broker失败: [{}]", me.getMessage()); -// } -// } -// -// /** -// * MQTT回调处理器 -// */ -// private class MqttCallbackHandler implements MqttCallback { -// -// // 连接丢失 -// @Override -// public void connectionLost(Throwable throwable) { -// log.error("连接丢失: [{}]", throwable.getMessage()); -// } -// -// // 连接成功 -// @Override -// public void messageArrived(String s, MqttMessage mqttMessage) throws Exception { -// handleMqttMessage(mqttMessage); -// } -// -// -// // 接收信息 -// @Override -// public void deliveryComplete(IMqttDeliveryToken iMqttDeliveryToken) { -// -// } -// } -// -// /** -// * 处理MQTT消息 -// * -// * @param mqttMessage -// */ -// private void handleMqttMessage(MqttMessage mqttMessage) { -// // 解析MQTT消息 -// String messageStr = new String(mqttMessage.getPayload()); -// log.info("接收到MQTT消息: " + messageStr); -// // 解析协议 -// JSONObject parseMessage = parseProtocol(messageStr); -// // 发送Kafka消息 -// sendKafkaMessage(parseMessage); -// } -// -// /** -// * 解析协议 -// * -// * @param messageStr -// * @return -// */ -// private JSONObject parseProtocol(String messageStr) { -// String[] hexArray = messageStr.split(" "); -// // 遍历十六进制数据转换为字符 -// StringBuilder stringBuilder = new StringBuilder(); -// for (String hex : hexArray) { -// int decimal = Integer.parseInt(hex, 16); -// stringBuilder.append((char) decimal); -// } -// // 取出车辆VIN码 -// String vehicleVin = stringBuilder.substring(1, 18); -// log.info("车辆VIN码: {}", vehicleVin); -// // 根据车辆VIN码查询车辆信息 -// Vehicle vehicle = vehicleCacheService.get(vehicleVin); -// VehicleType vehicleType = vehicleTypeCacheService.get(String.valueOf(vehicle.getVehicleTypeId())); -// Long templateId = vehicleType.getMessageTemplateId(); -// List templateList = allMessageValueCacheService.get(String.valueOf(templateId)); -// // 判断报文模板列表不为空 -// if (templateList.isEmpty()) { -// throw new RuntimeException("报文模版为空"); -// } -// // 存储报文模版解析后的数据 -// JSONObject jsonObject = new JSONObject(); -// for (MessageValueListResp messageValue : templateList) { -// // 起始位下标 -// Integer startIndex = messageValue.getMessageStartIndex() - 1; -// // 结束位下标 -// Integer endIndex = messageValue.getMessageEndIndex(); -// // 根据报文模版截取数据 -// String value = stringBuilder.substring(startIndex, endIndex); -// // 存入数据 -// jsonObject.put(messageValue.getMessageLabel(), value); -// } -// return jsonObject; -// } -// -// /** -// * 发送Kafka消息 -// * @param parseMessage -// */ -// private void sendKafkaMessage(JSONObject parseMessage) { -// ProducerRecord producerRecord = new ProducerRecord<>("zeshi", parseMessage.toString()); -// kafkaProducer.send(producerRecord); -// log.info("发送Kafka消息: " + parseMessage); -// } -// -// -//}