diff --git a/logs/vehicle.log.2024-06-18.1.gz b/logs/vehicle.log.2024-06-18.1.gz new file mode 100644 index 0000000..ddb7dcb Binary files /dev/null and b/logs/vehicle.log.2024-06-18.1.gz differ diff --git a/logs/vehicle.log.2024-06-19.0.gz b/logs/vehicle.log.2024-06-19.0.gz new file mode 100644 index 0000000..3782c4c Binary files /dev/null and b/logs/vehicle.log.2024-06-19.0.gz differ diff --git a/logs/vehicle.log.2024-06-19.1.gz b/logs/vehicle.log.2024-06-19.1.gz new file mode 100644 index 0000000..2507c51 Binary files /dev/null and b/logs/vehicle.log.2024-06-19.1.gz differ diff --git a/logs/vehicle.log.2024-06-19.10.gz b/logs/vehicle.log.2024-06-19.10.gz new file mode 100644 index 0000000..913a581 Binary files /dev/null and b/logs/vehicle.log.2024-06-19.10.gz differ diff --git a/logs/vehicle.log.2024-06-19.2.gz b/logs/vehicle.log.2024-06-19.2.gz new file mode 100644 index 0000000..6037aef Binary files /dev/null and b/logs/vehicle.log.2024-06-19.2.gz differ diff --git a/logs/vehicle.log.2024-06-19.3.gz b/logs/vehicle.log.2024-06-19.3.gz new file mode 100644 index 0000000..ba6e2cf Binary files /dev/null and b/logs/vehicle.log.2024-06-19.3.gz differ diff --git a/logs/vehicle.log.2024-06-19.4.gz b/logs/vehicle.log.2024-06-19.4.gz new file mode 100644 index 0000000..fa8d1c9 Binary files /dev/null and b/logs/vehicle.log.2024-06-19.4.gz differ diff --git a/logs/vehicle.log.2024-06-19.5.gz b/logs/vehicle.log.2024-06-19.5.gz new file mode 100644 index 0000000..0b639a3 Binary files /dev/null and b/logs/vehicle.log.2024-06-19.5.gz differ diff --git a/logs/vehicle.log.2024-06-19.6.gz b/logs/vehicle.log.2024-06-19.6.gz new file mode 100644 index 0000000..0117ad9 Binary files /dev/null and b/logs/vehicle.log.2024-06-19.6.gz differ diff --git a/logs/vehicle.log.2024-06-19.7.gz b/logs/vehicle.log.2024-06-19.7.gz new file mode 100644 index 0000000..e802d34 Binary files /dev/null and b/logs/vehicle.log.2024-06-19.7.gz differ diff --git a/logs/vehicle.log.2024-06-19.8.gz b/logs/vehicle.log.2024-06-19.8.gz new file mode 100644 index 0000000..393d758 Binary files /dev/null and b/logs/vehicle.log.2024-06-19.8.gz differ diff --git a/logs/vehicle.log.2024-06-19.9.gz b/logs/vehicle.log.2024-06-19.9.gz new file mode 100644 index 0000000..fb7bb66 Binary files /dev/null and b/logs/vehicle.log.2024-06-19.9.gz differ diff --git a/logs/vehicle.log.2024-06-20.0.gz b/logs/vehicle.log.2024-06-20.0.gz new file mode 100644 index 0000000..fcd4f42 Binary files /dev/null and b/logs/vehicle.log.2024-06-20.0.gz differ diff --git a/logs/vehicle.log.2024-06-20.1.gz b/logs/vehicle.log.2024-06-20.1.gz new file mode 100644 index 0000000..8ede73f Binary files /dev/null and b/logs/vehicle.log.2024-06-20.1.gz differ diff --git a/logs/vehicle.log.2024-06-20.2.gz b/logs/vehicle.log.2024-06-20.2.gz new file mode 100644 index 0000000..cdd3da0 Binary files /dev/null and b/logs/vehicle.log.2024-06-20.2.gz differ diff --git a/logs/vehicle.log.2024-06-20.3.gz b/logs/vehicle.log.2024-06-20.3.gz new file mode 100644 index 0000000..19b8e61 Binary files /dev/null and b/logs/vehicle.log.2024-06-20.3.gz differ diff --git a/logs/vehicle.log.2024-06-20.4.gz b/logs/vehicle.log.2024-06-20.4.gz new file mode 100644 index 0000000..b3c17b7 Binary files /dev/null and b/logs/vehicle.log.2024-06-20.4.gz differ diff --git a/src/main/java/com/muyu/errorAlarm/controller/ErrorAlarmController.java b/src/main/java/com/muyu/errorAlarm/controller/ErrorAlarmController.java new file mode 100644 index 0000000..d245fa2 --- /dev/null +++ b/src/main/java/com/muyu/errorAlarm/controller/ErrorAlarmController.java @@ -0,0 +1,20 @@ +package com.muyu.errorAlarm.controller; + +import com.muyu.errorAlarm.service.ErrorAlarmService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * ErrorAlarmController + * + * @author Yangle + * Date 2024/6/20 11:25 + */ +@RestController +public class ErrorAlarmController { + @Autowired + private ErrorAlarmService errorAlarmService; + + +} diff --git a/src/main/java/com/muyu/errorAlarm/service/ErrorAlarmService.java b/src/main/java/com/muyu/errorAlarm/service/ErrorAlarmService.java new file mode 100644 index 0000000..6edda7e --- /dev/null +++ b/src/main/java/com/muyu/errorAlarm/service/ErrorAlarmService.java @@ -0,0 +1,10 @@ +package com.muyu.errorAlarm.service; + +/** + * errorAlarmService + * + * @author Yangle + * Date 2024/6/20 11:26 + */ +public interface ErrorAlarmService { +} diff --git a/src/main/java/com/muyu/errorAlarm/service/impl/ErrorAlarmServiceImpl.java b/src/main/java/com/muyu/errorAlarm/service/impl/ErrorAlarmServiceImpl.java new file mode 100644 index 0000000..92d4f18 --- /dev/null +++ b/src/main/java/com/muyu/errorAlarm/service/impl/ErrorAlarmServiceImpl.java @@ -0,0 +1,15 @@ +package com.muyu.errorAlarm.service.impl; + +import com.muyu.errorAlarm.service.ErrorAlarmService; +import org.springframework.stereotype.Service; + +/** + * ErrorAlarmServiceImpl + * + * @author Yangle + * Date 2024/6/20 11:26 + */ +@Service +public class ErrorAlarmServiceImpl implements ErrorAlarmService { + +} \ No newline at end of file diff --git a/src/main/java/com/muyu/event/EventRunner.java b/src/main/java/com/muyu/event/EventRunner.java new file mode 100644 index 0000000..0b6f7fa --- /dev/null +++ b/src/main/java/com/muyu/event/EventRunner.java @@ -0,0 +1,32 @@ +package com.muyu.event; + +import com.muyu.event.common.VehicleEvent; +import com.muyu.event.service.EventService; +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import javax.annotation.PostConstruct; +import java.util.List; + +/** + * 事件启动 EventRunner + * + * @author Yangle + * Date 2024/6/20 16:47 + */ + +@Component +public class EventRunner implements Runnable { + @Autowired + private EventService eventService; + @PostConstruct + public void run() { + List vehicleEvents = eventService.selectVehicleEvent(); + vehicleEvents.forEach( + vehicleEvent -> { + eventService.selectEvent(vehicleEvent); + } + ); + } +} diff --git a/src/main/java/com/muyu/event/KafkaRunner.java b/src/main/java/com/muyu/event/KafkaRunner.java new file mode 100644 index 0000000..f646f67 --- /dev/null +++ b/src/main/java/com/muyu/event/KafkaRunner.java @@ -0,0 +1,31 @@ +//package com.muyu.event; +// +//import com.muyu.kafka.SimpleKafkaConsumer; +//import lombok.extern.log4j.Log4j2; +//import org.checkerframework.checker.units.qual.C; +//import org.springframework.boot.ApplicationArguments; +//import org.springframework.boot.ApplicationRunner; +//import org.springframework.stereotype.Component; +// +///** +// * kafka消费者启动类 KafkaRunner +// * +// * @author Yangle +// * Date 2024/6/20 21:42 +// */ +//@Component +//@Log4j2 +//public class KafkaRunner implements ApplicationRunner { +// +// @Override +// public void run(ApplicationArguments args) throws Exception { +// try { +// log.info("项目启动,开始动态启动kafka消费者"); +// +// }catch (Exception e){ +// log.error("启动kafka消费者失败,异常信息:{}",e); +// } +// +// } +// +//} diff --git a/src/main/java/com/muyu/event/util/KafkaConsumer.java b/src/main/java/com/muyu/event/util/KafkaConsumer.java new file mode 100644 index 0000000..334ed30 --- /dev/null +++ b/src/main/java/com/muyu/event/util/KafkaConsumer.java @@ -0,0 +1,145 @@ +//package com.muyu.event.util; +// +//import com.muyu.iotDB.config.IotDBSessionConfig; +//import com.muyu.iotDB.service.IotDbServer; +//import lombok.extern.slf4j.Slf4j; +//import org.springframework.beans.factory.annotation.Autowired; +//import org.springframework.cache.CacheManager; +//import org.springframework.data.redis.core.RedisTemplate; +//import org.springframework.stereotype.Service; +// +//import javax.annotation.PostConstruct; +//import javax.annotation.Resource; +//import java.util.LinkedHashMap; +// +//@Slf4j +//@Service +//public class KafkaConsumer { +// LinkedHashMap eventStrategyLinkedHashMap = new LinkedHashMap<>(); +// @Autowired +// private CacheManager cacheManager; +// +// @Autowired +// private CarEventService carEventService; +// +// @Autowired +// private RedisTemplate redisTemplate; +// @Resource +// private IotDbServer iotDbServer; +// @Resource +// private IotDBSessionConfig iotDBSessionConfig; +// +// @PostConstruct +// public void initStrategyMap(){ +// eventStrategyLinkedHashMap.put("ELECTRONIC_FENCE",EventStrategy.ELECTRONIC_FENCE); +// eventStrategyLinkedHashMap.put("FAULT_ALARM",EventStrategy.FAULT_ALARM); +// eventStrategyLinkedHashMap.put("INDEX_WARNING",EventStrategy.INDEX_WARNING); +// eventStrategyLinkedHashMap.put("REAL_TIME_DATA",EventStrategy.REAL_TIME_DATA); +// } +// @KafkaListener(topics = "topichyc", groupId = "firstGroup", containerFactory = "kafkaListenerContainerFactory", +// errorHandler = "myKafkaListenerErrorHandler") +// public void consume(List> consumerRecords, Acknowledgment acknowledgment) { +// try { +// //策略map集合 +//// LinkedHashMap stringStrategyLinkedHashMap = new LinkedHashMap<>(); +//// stringStrategyLinkedHashMap.put("存储数据", Strategy.STORE_DATA); +//// stringStrategyLinkedHashMap.put("实时数据",Strategy.REAL_TIME_DATA); +// +// log.info("拉取到的记录数是:{}",consumerRecords.size()); +// for (ConsumerRecord consumerRecord : consumerRecords) { +// String value = (String) consumerRecord.value(); +// +// VehicleData vehicleData = JSONObject.parseObject(value, VehicleData.class); +// log.error("消费者0得到的数据:{},所在分区:{}",vehicleData.toString(),consumerRecord.partition()); +// +// iotDbServer.insertData(vehicleData); +// //得到小车绑定信息 +// String carEventByVin = this.getCarEventByVin(vehicleData.getVin()); +// //解析绑定的信息 +// String[] eventArr = carEventByVin.split(","); +// for (String eventString : eventArr) { +// //处理事件 +// eventStrategyLinkedHashMap.get(eventString).exe(cacheManager,redisTemplate,vehicleData); +// } +// } +// //解析得到VIN +// +// +// +//// String dataMessage = value.toString(); +//// JSONObject jsonObject = JSON.parseObject(dataMessage); +//// //根据VIN得到该小车拥有的事件 +//// String vin = jsonObject.get("vin").toString(); +//// List eventList = getEvent(vin); +//// //循环事件集合,并执行响应的事件 +//// for (String event : eventList) { +//// stringStrategyLinkedHashMap.get(event).exe(redisTemplate,dataMessage); +//// } +// +// } catch (ServerException e) { +// log.error("添加iotDb异常"); +// throw new RuntimeException(e); +// } catch (IoTDBConnectionException e) { +// throw new RuntimeException(e); +// } catch (StatementExecutionException e) { +// throw new RuntimeException(e); +// } finally { +// acknowledgment.acknowledge(); +// } +// } +// +// public List getEvent(String vin){ +// ArrayList strings = new ArrayList<>(); +// +// strings.add("存储数据"); +// int nextInt = new Random().nextInt(100); +// if (nextInt % 2 ==0){ +// strings.add("实时数据"); +// } +// return strings; +// } +// +// public String getCarEventByVin(String vin){ +// +// +// // 先从本地缓存获取 +// Cache cache = cacheManager.getCache("carEvent"); +// Cache.ValueWrapper valueWrapper = cache.get(vin); +// if (valueWrapper != null) { +// return valueWrapper.get().toString(); +// } +// +// // 从 Redis 获取 +// +// String carEventString = redisTemplate.opsForValue().get(vin); +// if (carEventString != null) { +// // 将数据同步到本地缓存 +// cache.put(vin, carEventString); +// return carEventString; +// } +// +// // 从 MySQL 获取 +// CacheCarEvent cacheCarEvent = carEventService.getCarEvent(vin); +// if (cacheCarEvent != null) { +// // 将数据存入 Redis 和本地缓存 +// redisTemplate.opsForValue().set(vin, cacheCarEvent.getEventValue()); +// cache.put(vin, cacheCarEvent.getEventValue()); +// } +// +// return cacheCarEvent.getEventValue(); +// +// } +// +// public void updateValueWithoutChangingTTL(String key, String newValue) { +// // 获取当前的过期时间 +// Long currentTTL = redisTemplate.getExpire(key, TimeUnit.SECONDS); +// +// // 更新键的值 +// redisTemplate.opsForList().rightPush( key,newValue); +// +// // 重新设置过期时间 +// if (currentTTL != null && currentTTL > 0) { +// redisTemplate.expire(key, currentTTL, TimeUnit.SECONDS); +// } +// } +//}