优化车辆上线时的故障码缓存逻辑

- 修改CarOnlineConsumer类,实现车辆上线时从VehicleCacheFaultCodeAddService获取故障码缓存并存入本地缓存
- 新增IdentifyingFailuresListener类,用于监听ES保存事件,根据车辆VIN查询并处理故障码
- 调整IotDBController类,注释掉未使用的批量插入记录方法
- 更新相关依赖配置,引入cloud-modules-enterprise-cache等依赖
dev.carData
张腾 2024-10-08 11:54:54 +08:00
parent fe70b7d3c1
commit c42adb48cc
10 changed files with 93 additions and 24 deletions

View File

@ -29,3 +29,4 @@
</dependency> </dependency>
</dependencies> </dependencies>
</project> </project>

View File

@ -58,12 +58,6 @@
<groupId>com.muyu</groupId> <groupId>com.muyu</groupId>
<artifactId>cloud-common-api-doc</artifactId> <artifactId>cloud-common-api-doc</artifactId>
</dependency> </dependency>
<!-- 接口模块 -->
<dependency>
<groupId>com.muyu</groupId>
<artifactId>cloud-electronic-common</artifactId>
<version>3.6.3</version>
</dependency>
<dependency> <dependency>
<groupId>com.github.pagehelper</groupId> <groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId> <artifactId>pagehelper</artifactId>

View File

@ -86,12 +86,6 @@
<artifactId>cloud-common-core</artifactId> <artifactId>cloud-common-core</artifactId>
</dependency> </dependency>
<dependency>
<groupId>com.muyu</groupId>
<artifactId>cloud-modules-car</artifactId>
<version>3.6.3</version>
</dependency>
<dependency> <dependency>
<groupId>com.aliyun</groupId> <groupId>com.aliyun</groupId>
<artifactId>ecs20140526</artifactId> <artifactId>ecs20140526</artifactId>

View File

@ -19,7 +19,10 @@
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties> </properties>
<dependencies> <dependencies>
<dependency>
<groupId>com.muyu</groupId>
<artifactId>cloud-modules-enterprise-cache</artifactId>
</dependency>
<!-- SpringCloud Alibaba Nacos --> <!-- SpringCloud Alibaba Nacos -->
<dependency> <dependency>
<groupId>com.alibaba.cloud</groupId> <groupId>com.alibaba.cloud</groupId>

View File

@ -1,6 +1,10 @@
package com.muyu.carData.consumer; package com.muyu.carData.consumer;
import com.muyu.carData.util.CacheUtil; import com.muyu.carData.util.CacheUtil;
import com.muyu.domain.FaultCodeCache;
import com.muyu.enterprise.cache.car.VehicleCacheCarInformationAddService;
import com.muyu.enterprise.cache.car.VehicleCacheCarInformationFenceRespService;
import com.muyu.enterprise.cache.faultCode.VehicleCacheFaultCodeAddService;
import lombok.extern.log4j.Log4j2; import lombok.extern.log4j.Log4j2;
import org.springframework.amqp.rabbit.annotation.Exchange; import org.springframework.amqp.rabbit.annotation.Exchange;
import org.springframework.amqp.rabbit.annotation.Queue; import org.springframework.amqp.rabbit.annotation.Queue;
@ -23,11 +27,20 @@ public class CarOnlineConsumer {
@Autowired @Autowired
private CacheUtil cacheUtil; private CacheUtil cacheUtil;
@Autowired
private VehicleCacheFaultCodeAddService vehicleCacheCarInformationAddService;
@RabbitListener(bindings = @QueueBinding( @RabbitListener(bindings = @QueueBinding(
value = @Queue(value = "CAR_ONLINE",durable = "true"), value = @Queue(value = "CAR_ONLINE",durable = "true"),
exchange = @Exchange(value = "ONLINE_EXCHANGE",type = "fanout") exchange = @Exchange(value = "ONLINE_EXCHANGE",type = "fanout")
)) ))
public void online(String vin){ public void online(String vin){
log.info("车辆vin:{},已上线,开始消费",vin); log.info("车辆vin:{},已上线,开始消费",vin);
FaultCodeCache faultCodeCache = vehicleCacheCarInformationAddService
.get(vehicleCacheCarInformationAddService.keyPre()+vin);
cacheUtil.put(vin,faultCodeCache);
} }
} }

View File

@ -1,3 +1,4 @@
/*
package com.muyu.carData.controller; package com.muyu.carData.controller;
import com.muyu.carData.config.lotdbconfig.IotDBSessionConfig; import com.muyu.carData.config.lotdbconfig.IotDBSessionConfig;
@ -17,13 +18,15 @@ import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
*/
/** /**
* @Author * @Author
* @Packagecom.muyu.carData.testcontroller * @Packagecom.muyu.carData.testcontroller
* @Projectcloud-server-8 * @Projectcloud-server-8
* @nameIotDBController * @nameIotDBController
* @Date2024/9/28 23:58 * @Date2024/9/28 23:58
*/ *//*
@RequestMapping("/iotdb") @RequestMapping("/iotdb")
@RestController @RestController
@Log4j2 @Log4j2
@ -33,14 +36,16 @@ public class IotDBController {
@Autowired @Autowired
private IotDBSessionConfig iotDBSessionConfig; private IotDBSessionConfig iotDBSessionConfig;
/** */
/**
* *
* @param insertSize * @param insertSize
* @param count * @param count
* @return * @return
* @throws IoTDBConnectionException * @throws IoTDBConnectionException
* @throws StatementExecutionException * @throws StatementExecutionException
*/ *//*
@GetMapping("/insertData/{insertSize}/{count}") @GetMapping("/insertData/{insertSize}/{count}")
public String insert(@PathVariable(name = "insertSize") int insertSize,@PathVariable(name = "count") int count) throws IoTDBConnectionException, StatementExecutionException { public String insert(@PathVariable(name = "insertSize") int insertSize,@PathVariable(name = "count") int count) throws IoTDBConnectionException, StatementExecutionException {
Session session = iotDBSessionConfig.iotSession(); Session session = iotDBSessionConfig.iotSession();
@ -82,7 +87,7 @@ public class IotDBController {
} }
/* @GetMapping("/batchInsertRecords/{num}") @GetMapping("/batchInsertRecords/{num}")
public String batchInsertRecords(@PathVariable Integer num){ public String batchInsertRecords(@PathVariable Integer num){
String deviceId = "root.yang"; String deviceId = "root.yang";
@ -109,5 +114,6 @@ public class IotDBController {
for (int i = 0; i < num; i++) { for (int i = 0; i < num; i++) {
deviceIds.add() deviceIds.add()
} }
}*/ }
} }
*/

View File

@ -0,0 +1,45 @@
package com.muyu.carData.listener;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.muyu.carData.event.EsSaveEvent;
import com.muyu.carData.event.EventListener;
import com.muyu.carData.util.CacheUtil;
import com.muyu.domain.FaultCodeCache;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
/**
* @Author
* @Packagecom.muyu.carData.listener
* @Projectcloud-server-8
* @nameIdentifyingFailuresListener
* @Date2024/10/8 11:22
*/
@Component
@Slf4j
public class IdentifyingFailuresListener implements EventListener {
@Autowired
private CacheUtil cacheUtil;
@Override
public void onEvent(EsSaveEvent event) {
log.info("规则预警事件开始...");
JSONObject data = event.getData();
String vin = (String) data.get("vin");
String str = cacheUtil.get(vin).toString();
FaultCodeCache faultCodeCache = JSON.parseObject(str, FaultCodeCache.class);
faultCodeCache.getFaultCode().forEach(faultCode -> {
});
log.info("规则预警事件结束...");
}
@Override
public void onApplicationEvent(EsSaveEvent event) {
onEvent(event);
}
}

View File

@ -20,16 +20,16 @@
</properties> </properties>
<dependencies> <dependencies>
<dependency>
<groupId>com.muyu</groupId>
<artifactId>cloud-common-cache</artifactId>
<version>3.6.3</version>
</dependency>
<dependency> <dependency>
<groupId>com.muyu</groupId> <groupId>com.muyu</groupId>
<artifactId>cloud-modules-enterprise-common</artifactId> <artifactId>cloud-modules-enterprise-common</artifactId>
<version>1.0.0</version> <version>1.0.0</version>
</dependency> </dependency>
<dependency>
<groupId>com.muyu</groupId>
<artifactId>cloud-common-cache</artifactId>
</dependency>
<dependency> <dependency>
<groupId>com.muyu</groupId> <groupId>com.muyu</groupId>
<artifactId>cloud-auth</artifactId> <artifactId>cloud-auth</artifactId>

View File

@ -107,7 +107,6 @@
<dependency> <dependency>
<groupId>com.muyu</groupId> <groupId>com.muyu</groupId>
<artifactId>cloud-modules-enterprise-cache</artifactId> <artifactId>cloud-modules-enterprise-cache</artifactId>
<version>3.6.3</version>
</dependency> </dependency>
</dependencies> </dependencies>
<build> <build>

14
pom.xml
View File

@ -43,6 +43,8 @@
<knife4j-openapi3.version>4.1.0</knife4j-openapi3.version> <knife4j-openapi3.version>4.1.0</knife4j-openapi3.version>
<xxl-job-core.version>2.4.1</xxl-job-core.version> <xxl-job-core.version>2.4.1</xxl-job-core.version>
<kafka.version>3.6.3</kafka.version> <kafka.version>3.6.3</kafka.version>
<enterprise.version>3.6.3</enterprise.version>
<common.cache>3.6.3</common.cache>
</properties> </properties>
<!-- 依赖声明 --> <!-- 依赖声明 -->
@ -110,6 +112,12 @@
<version>${javax.annotation.version}</version> <version>${javax.annotation.version}</version>
</dependency> </dependency>
<dependency>
<groupId>com.muyu</groupId>
<artifactId>cloud-common-cache</artifactId>
<version>${common.cache}</version>
</dependency>
<dependency> <dependency>
<groupId>cn.hutool</groupId> <groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId> <artifactId>hutool-all</artifactId>
@ -149,6 +157,12 @@
<version>${commons.io.version}</version> <version>${commons.io.version}</version>
</dependency> </dependency>
<dependency>
<groupId>com.muyu</groupId>
<artifactId>cloud-modules-enterprise-cache</artifactId>
<version>${enterprise.version}</version>
</dependency>
<!-- excel工具 --> <!-- excel工具 -->
<dependency> <dependency>
<groupId>org.apache.poi</groupId> <groupId>org.apache.poi</groupId>