diff --git a/cloud-auth/src/main/resources/bootstrap.yml b/cloud-auth/src/main/resources/bootstrap.yml index 06ac746..83a37f2 100644 --- a/cloud-auth/src/main/resources/bootstrap.yml +++ b/cloud-auth/src/main/resources/bootstrap.yml @@ -4,10 +4,10 @@ server: # nacos线上地址 nacos: - addr: 123.57.152.124:8848 + addr: 127.0.0.1:8848 user-name: nacos password: nacos - namespace: yan1 + namespace: wx # Spring spring: application: diff --git a/cloud-common/cloud-common-cache/pom.xml b/cloud-common/cloud-common-cache/pom.xml new file mode 100644 index 0000000..09d679b --- /dev/null +++ b/cloud-common/cloud-common-cache/pom.xml @@ -0,0 +1,37 @@ + + + 4.0.0 + + com.muyu + cloud-common + 3.6.3 + + + + cloud-common-cache 缓存基准 + + + cloud-common-cache + + + 23 + 23 + UTF-8 + + + + + + com.muyu + cloud-common-redis + + + com.muyu + enterpise-common + ${muyu.version} + + + + diff --git a/cloud-common/cloud-common-cache/src/main/java/com/muyu/common/cache/CacheAbsBasic.java b/cloud-common/cloud-common-cache/src/main/java/com/muyu/common/cache/CacheAbsBasic.java new file mode 100644 index 0000000..a0513c9 --- /dev/null +++ b/cloud-common/cloud-common-cache/src/main/java/com/muyu/common/cache/CacheAbsBasic.java @@ -0,0 +1,62 @@ +package com.muyu.common.cache; + +import com.muyu.common.redis.service.RedisService; +import org.springframework.beans.factory.annotation.Autowired; + +import java.util.concurrent.TimeUnit; + +/** + * 抽象缓存层 + * * @className: CacheAbsBasic ️✈️ + * * @author: Yang 鹏 🦅 + * * @date: 2024/9/29 16:08 ⏰ + * * @Version: 1.0 + * * @description: + */ +public abstract class CacheAbsBasic implements CacheBasic{ + + @Autowired + private RedisService redisService; + + @Override + public void put(K key, V value) { + + try { + redisService.setCacheObject(encode(key), value); + } catch (Exception e) { + throw new RuntimeException("运行时异常,异常信息为:{}"+e.getMessage()); + } + } + + @Override + public V get(K key) { + + try { + return redisService.getCacheObject(encode(key)); + } catch (Exception e) { + throw new RuntimeException("运行时异常,异常信息为:{}"+e.getMessage()); + } + } + + @Override + public void remove(K 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/CacheBasic.java b/cloud-common/cloud-common-cache/src/main/java/com/muyu/common/cache/CacheBasic.java new file mode 100644 index 0000000..8b2ffb3 --- /dev/null +++ b/cloud-common/cloud-common-cache/src/main/java/com/muyu/common/cache/CacheBasic.java @@ -0,0 +1,24 @@ +package com.muyu.common.cache; + +import org.springframework.data.redis.core.TimeoutUtils; + +import java.util.Date; +import java.util.concurrent.TimeUnit; + +/** + * 缓存基础 + * * @className: CacheBasic ️✈️ + * * @author: Yang 鹏 🦅 + * * @date: 2024/9/29 16:08 ⏰ + * * @Version: 1.0 + * * @description: + */ +public interface CacheBasic extends PrimaryKeyBasic { + 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/PrimaryKeyBasic.java b/cloud-common/cloud-common-cache/src/main/java/com/muyu/common/cache/PrimaryKeyBasic.java new file mode 100644 index 0000000..0cc8f95 --- /dev/null +++ b/cloud-common/cloud-common-cache/src/main/java/com/muyu/common/cache/PrimaryKeyBasic.java @@ -0,0 +1,37 @@ +package com.muyu.common.cache; + + +/** + * 主键基础 + * * @className: PrimaryKeyBasic ️✈️ + * * @author: Yang 鹏 🦅 + * * @date: 2024/9/29 16:08 ⏰ + * * @Version: 1.0 + * * @description: + */ +public interface PrimaryKeyBasic { + + /** + * 主键前缀 + * @return + */ + public String keyPre(); + + /** + * 主键编码 + * @param key 缓存建 + * @return 装修建 + */ + public default String encode(K key){ + return keyPre() + key.toString(); + } + + /** + * 主键解码 + * @param key 缓存建 + * @return 装修建 + */ + public default K decode(String key) { + return (K) key.substring(keyPre().length()); + } +} diff --git a/cloud-common/cloud-common-cache/src/main/java/com/muyu/common/domain/InformationData.java b/cloud-common/cloud-common-cache/src/main/java/com/muyu/common/domain/InformationData.java new file mode 100644 index 0000000..208749b --- /dev/null +++ b/cloud-common/cloud-common-cache/src/main/java/com/muyu/common/domain/InformationData.java @@ -0,0 +1,46 @@ +package com.muyu.common.domain; + +import com.muyu.common.system.domain.SysDept; +import com.muyu.domain.SysCar; +import com.muyu.domain.WarnLogs; +import com.muyu.domain.resp.FaultConditionTotalListResp; +import com.muyu.domain.resp.FenceGroupResp; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +import java.util.List; + +/** + * @Author WangXin + * @Data 2024/9/30 + * @Description 消息数据对象 + * @Version 1.0.0 + */ +@Data +@SuperBuilder +@AllArgsConstructor +@NoArgsConstructor +public class InformationData { + /** + * 车辆基本信息 + */ + private SysCar sysCar; + /** + * 公司信息 + */ + private SysDept sysDept; + /** + * 车辆电子绑定电子围栏信息 + */ + private FenceGroupResp fenceGroupResp; + /** + * 故障规则数据总数列表 + */ + private FaultConditionTotalListResp faultConditionTotalListResp; + /** + * 预警日志对象 + */ + private List warnLogsList; +} diff --git a/cloud-common/cloud-common-caffeine/pom.xml b/cloud-common/cloud-common-caffeine/pom.xml new file mode 100644 index 0000000..88f2273 --- /dev/null +++ b/cloud-common/cloud-common-caffeine/pom.xml @@ -0,0 +1,37 @@ + + + 4.0.0 + + com.muyu + cloud-common + 3.6.3 + + + cloud-common-caffeine + + + cloud-common-caffeine 本地缓存服务 + + + + 17 + 17 + UTF-8 + + + + + + com.github.ben-manes.caffeine + caffeine + + + + com.muyu + cloud-common-redis + + + + 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..aa9af65 --- /dev/null +++ b/cloud-common/cloud-common-caffeine/src/main/java/com/muyu/common/caffeine/bean/CaffeineManager.java @@ -0,0 +1,44 @@ +package com.muyu.common.caffeine.bean; + +import com.github.benmanes.caffeine.cache.Caffeine; +import com.muyu.common.caffeine.enums.CacheNameEnums; +import lombok.extern.slf4j.Slf4j; +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.stereotype.Component; + +import java.util.List; + +/** + * Caffeine管理器 + * @Author: WangXin + * @Name: CaffeineCacheConfig + * @Description: Caffeine管理器 + */ + +@Slf4j +@Component +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..f2600df --- /dev/null +++ b/cloud-common/cloud-common-caffeine/src/main/java/com/muyu/common/caffeine/constents/CaffeineContent.java @@ -0,0 +1,15 @@ +package com.muyu.common.caffeine.constents; + +/** + * Caffeine常量 + * @Author: WangXin + * @Name: CaffeineContent + * @Description: Caffeine常量 + */ + +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..175e167 --- /dev/null +++ b/cloud-common/cloud-common-caffeine/src/main/java/com/muyu/common/caffeine/enums/CacheNameEnums.java @@ -0,0 +1,66 @@ +package com.muyu.common.caffeine.enums; + +import lombok.Getter; + +import java.util.Arrays; +import java.util.List; + +/** + * 缓存分区枚举 + * + * @Author: WangXin + * @Name: CacheNameEnums + * @Description: 缓存分区枚举 + */ + +@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/java/com/muyu/common/caffeine/utils/CaffeineCacheUtils.java b/cloud-common/cloud-common-caffeine/src/main/java/com/muyu/common/caffeine/utils/CaffeineCacheUtils.java new file mode 100644 index 0000000..fd02366 --- /dev/null +++ b/cloud-common/cloud-common-caffeine/src/main/java/com/muyu/common/caffeine/utils/CaffeineCacheUtils.java @@ -0,0 +1,89 @@ +package com.muyu.common.caffeine.utils; + + +import com.muyu.common.caffeine.enums.CacheNameEnums; +import jakarta.annotation.Resource; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.ObjectUtils; +import org.apache.commons.lang3.StringUtils; +import org.springframework.cache.CacheManager; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.stereotype.Component; + +/** + * Caffeine缓存工具 + * @Author: WangXin + * @Name: CaffeineUtils + * @Description: 缓存工具类 + * @CreatedDate: 2024/9/26 下午2:53 + * @FilePath: com.muyu.common.caffeine + */ +@Slf4j +@Component +public class CaffeineCacheUtils { + @Resource + private CacheManager cacheManager; + @Resource + private RedisTemplate redisTemplate; + + + /** + * 车辆上线 - 新增缓存 + */ + 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); + } + + /** + * 车辆下线 - 删除缓存 + */ + public void deleteCarCache(String cacheName) { + if (!hasCarVinCache(cacheName,null)) { + log.warn("车辆编码:{},本地缓存不存在该车辆信息...", cacheName); + return; + } + cacheManager.getCache(cacheName).invalidate(); + log.info("车辆编码:{},本地缓存删除完成...", cacheName); + } + + /** + * 获取车辆信息缓存 + */ + public Object getCarCache(String cacheName, String key) { + if (!hasCarVinCache(cacheName, key)){ + log.warn("车辆编码:{},本地缓存不存在该车辆信息...",cacheName); + return null; + } + return cacheManager.getCache(cacheName).get(key).get(); + } + + /** + * 获取车辆信息缓存 + */ + public T getCarCache(String cacheName, String key, Class type) { + if (!hasCarVinCache(cacheName,key)){ + log.warn("车辆编码:{},本地缓存不存在该车辆信息...",cacheName); + return null; + } + return cacheManager.getCache(cacheName).get(key, type); + } + + /** + * 判断缓存存在与否 + */ + public Boolean hasCarVinCache(String cacheName,String key) { + boolean notEmpty = ObjectUtils.isNotEmpty(cacheManager.getCache(cacheName)); + if (notEmpty && StringUtils.isNotEmpty(key)){ + return ObjectUtils.isNotEmpty(cacheManager.getCache(cacheName).get(key).get()); + } + return notEmpty; + + } + +} 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..0b7acd4 --- /dev/null +++ b/cloud-common/cloud-common-caffeine/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -0,0 +1,2 @@ +com.muyu.common.caffeine.utils.CaffeineCacheUtils +com.muyu.common.caffeine.bean.CaffeineManager 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 bb59b70..c2a492f 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 @@ -20,4 +20,10 @@ public class ServiceNameConstants { * 文件服务的serviceid */ public static final String FILE_SERVICE = "cloud-file"; + + /** + * 车辆服务的serviceid + */ + public static final String ENTERPRISE_SERVICE = "cloud-saas"; + } diff --git a/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/domain/Result.java b/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/domain/Result.java index 70faa40..78453ac 100644 --- a/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/domain/Result.java +++ b/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/domain/Result.java @@ -3,9 +3,9 @@ package com.muyu.common.core.domain; import com.muyu.common.core.constant.Constants; import com.muyu.common.core.constant.HttpStatus; import lombok.AllArgsConstructor; -import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; import java.io.Serializable; @@ -15,7 +15,7 @@ import java.io.Serializable; * @author muyu */ @Data -@Builder +@SuperBuilder @NoArgsConstructor @AllArgsConstructor public class Result implements Serializable { @@ -33,6 +33,7 @@ public class Result implements Serializable { public static final int WARN = HttpStatus.WARN; private static final long serialVersionUID = 1L; + private int code; private String msg; @@ -96,8 +97,8 @@ public class Result implements Serializable { private static Result restResult (T data, int code, String msg) { return Result.builder() .code(code) - .data(data) .msg(msg) + .data(data) .build(); } diff --git a/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/exception/ServiceException.java b/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/exception/ServiceException.java index 5039bc0..11bb283 100644 --- a/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/exception/ServiceException.java +++ b/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/exception/ServiceException.java @@ -5,7 +5,7 @@ package com.muyu.common.core.exception; * * @author muyu */ -public final class ServiceException extends RuntimeException { +public class ServiceException extends RuntimeException { private static final long serialVersionUID = 1L; /** diff --git a/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/web/controller/BaseController.java b/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/web/controller/BaseController.java index 3789a82..3d83a00 100644 --- a/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/web/controller/BaseController.java +++ b/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/web/controller/BaseController.java @@ -1,9 +1,11 @@ package com.muyu.common.core.web.controller; import com.github.pagehelper.PageInfo; + import com.muyu.common.core.utils.DateUtils; import com.muyu.common.core.utils.PageUtils; import com.muyu.common.core.domain.Result; +import com.muyu.common.core.web.domain.BaseEntity; import com.muyu.common.core.web.page.TableDataInfo; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -19,7 +21,7 @@ import java.util.List; * * @author muyu */ -public class BaseController { +public class BaseController { protected final Logger logger = LoggerFactory.getLogger(this.getClass()); /** diff --git a/cloud-common/cloud-common-iotdb/pom.xml b/cloud-common/cloud-common-iotdb/pom.xml new file mode 100644 index 0000000..32ef405 --- /dev/null +++ b/cloud-common/cloud-common-iotdb/pom.xml @@ -0,0 +1,39 @@ + + + 4.0.0 + + com.muyu + cloud-common + 3.6.3 + + + cloud-common-iotdb + + + cloud-common-iotdb 时序性数据存储服务 + + + + 17 + 17 + UTF-8 + + + + + org.apache.iotdb + iotdb-session + + + com.alibaba.fastjson2 + fastjson2 + + + org.projectlombok + lombok + + + + 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..2c298f4 --- /dev/null +++ b/cloud-common/cloud-common-iotdb/src/main/java/com/muyu/common/iotdb/config/IotDBSessionConfig.java @@ -0,0 +1,180 @@ + +package com.muyu.common.iotdb.config; + +import com.alibaba.fastjson2.JSONObject; +import lombok.extern.log4j.Log4j2; +import org.apache.iotdb.isession.SessionDataSet; +import org.apache.iotdb.isession.pool.SessionDataSetWrapper; +import org.apache.iotdb.rpc.IoTDBConnectionException; +import org.apache.iotdb.rpc.StatementExecutionException; +import org.apache.iotdb.session.pool.SessionPool; +import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType; +import org.apache.iotdb.tsfile.read.common.Field; +import org.apache.iotdb.tsfile.read.common.RowRecord; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.stereotype.Component; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.muyu.common.iotdb.constant.IotdbConstant.ROOT_DATA_DATAJSON; +import static com.muyu.common.iotdb.constant.IotdbConstant.SELECT_ROOT_DATA_DATAJSON_DATASOURCE; + +/** + * @Author WangXin + * @Data 2024/9/30 + * @Description IotDBSessionConfig配置类 + * @Version 1.0.0 + */ +@Log4j2 +@Component +@Configuration +public class IotDBSessionConfig { + + @Value("${spring.iotdb.username:root}") + private String username; + + @Value("${spring.iotdb.password:root}") + private String password; + + @Value("${spring.iotdb.ip:127.0.0.1}") + private String ip; + + @Value("${spring.iotdb.port:6667}") + private int port; + + @Value("${spring.iotdb.maxSize:10}") + private int maxSize; + + private static SessionPool sessionPool; + + /** + * 获取IotDBSession对象 + * @return iotDBSession对象 + */ + public SessionPool getSessionPool() { + if (sessionPool == null) { + sessionPool = new SessionPool(ip, port, username, password, maxSize); + } + return sessionPool; + } + + /** + * 添加数据 + * @param deviceId + * @param time + * @param measurements + * @param value + */ + public void insertRecord(SessionPool sessionPool,String deviceId, + long time, List measurements,List dataTypeList, JSONObject value) { + try { + log.info("iotdb数据入库:device_id:[{}], measurements:[{}], values:[{}]", deviceId, measurements, value); + sessionPool.insertRecord(deviceId, time, measurements,dataTypeList,new Object[]{value.toJSONString()}); + } catch (Exception e) { + log.error("IotDBSession insertRecord失败: deviceId={}, time={}, measurements={}, values={}, error={}", + deviceId, time, measurements, value, e.getMessage()); + } + } + + public void JSONObject(JSONObject value){ + + } + + /** + * sql查数据 + * @param sessionPool + * @param sql + * @return + */ + public SessionDataSet selectRecord(SessionPool sessionPool,String sql) { + log.info("iotdb数据查询:sql:[{}]",sql); + SessionDataSetWrapper sessionDataSetWrapper = null; + try { + log.info("iotdb SQL查询:sql:[{}]", sql); + sessionDataSetWrapper = sessionPool.executeQueryStatement(sql); + return sessionDataSetWrapper.getSessionDataSet(); + } catch (Exception e) { + log.error("IotDBSession executeQueryStatement失败:sql:[{}],error={}", sql, e.getMessage()); + throw new RuntimeException(e); + } + } + + + public JSONObject getJsonFindByTime(SessionPool sessionPool,String fieldName,String deviceId,Long timestamp) { + String sql = String.format("SELECT %s FROM %s WHERE time = %d", fieldName, deviceId, timestamp); + SessionDataSet sessionDataSet = selectRecord(sessionPool, sql); + try { + while (sessionDataSet.hasNext()){ + RowRecord next = sessionDataSet.next(); + for (Field field : next.getFields()) { + String stringValue = field.getStringValue(); + } + } + } catch (StatementExecutionException e) { + throw new RuntimeException(e); + } catch (IoTDBConnectionException e) { + throw new RuntimeException(e); + } + return null; + } + + + + public static void main(String[] args) { + SessionPool sessionPool = new SessionPool("127.0.0.1", 6667, "root", "root", 10); + + + String jsonValue = """ + { + "name": "张三", + "age": 28, + "email": "zhangsan@example.com", + "isStudent": false, + "hobbies": ["阅读", "旅行", "编程"], + "address": { + "street": "长安街100号", + "city": "北京", + "postalCode": "100000" + } + } + """; + JSONObject value = JSONObject.parseObject(jsonValue); + + IotDBSessionConfig iotDBSessionConfig = new IotDBSessionConfig(); + + List measurements = List.of("datasource"); + List datatypeList = List.of(TSDataType.TEXT); + iotDBSessionConfig.insertRecord(sessionPool,ROOT_DATA_DATAJSON,System.currentTimeMillis(),measurements,datatypeList,value); + + SessionDataSet sessionDataSet = iotDBSessionConfig.selectRecord(sessionPool,SELECT_ROOT_DATA_DATAJSON_DATASOURCE); + + HashMap> longMapHashMap = new HashMap<>(); + + try { + while (sessionDataSet.hasNext()){ + RowRecord next = sessionDataSet.next(); + long timestamp = next.getTimestamp(); + Map fieldMap = new HashMap<>(); + for (Field field : next.getFields()) { + TSDataType dataType = field.getDataType(); + String stringValue = field.getStringValue(); + fieldMap.put(dataType.name(), stringValue); + } + longMapHashMap.put(timestamp, fieldMap); + } + } catch (StatementExecutionException e) { + throw new RuntimeException(e); + } catch (IoTDBConnectionException e) { + throw new RuntimeException(e); + } + log.info("数据为:{}", JSONObject.toJSONString(longMapHashMap)); + } + +} + + diff --git a/cloud-common/cloud-common-iotdb/src/main/java/com/muyu/common/iotdb/constant/IotdbConstant.java b/cloud-common/cloud-common-iotdb/src/main/java/com/muyu/common/iotdb/constant/IotdbConstant.java new file mode 100644 index 0000000..1a81766 --- /dev/null +++ b/cloud-common/cloud-common-iotdb/src/main/java/com/muyu/common/iotdb/constant/IotdbConstant.java @@ -0,0 +1,14 @@ +package com.muyu.common.iotdb.constant; + +/** + * @Author WangXin + * @Data 2024/9/30 + * @Description iotdb数据库常量 + * @Version 1.0.0 + */ +public interface IotdbConstant { + + String ROOT_DATA_DATAJSON = "root.car.data.datajson"; + + String SELECT_ROOT_DATA_DATAJSON_DATASOURCE = "select * from root.car.data.datajson"; +} diff --git a/cloud-common/cloud-common-iotdb/src/main/java/com/muyu/common/iotdb/domain/InsertDataDTO.java b/cloud-common/cloud-common-iotdb/src/main/java/com/muyu/common/iotdb/domain/InsertDataDTO.java new file mode 100644 index 0000000..47ceee9 --- /dev/null +++ b/cloud-common/cloud-common-iotdb/src/main/java/com/muyu/common/iotdb/domain/InsertDataDTO.java @@ -0,0 +1,40 @@ +package com.muyu.common.iotdb.domain; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.ArrayList; +import java.util.List; + +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class InsertDataDTO { + private Float temperature; + private String hardware; + private Boolean status; + + public InsertDataDTO buildOne() { + InsertDataDTO insertDataDTO = new InsertDataDTO(); + insertDataDTO.setHardware("ss"); + insertDataDTO.setStatus(true); + insertDataDTO.setTemperature(12.0F); + return insertDataDTO; + } + + public List buildList() { + List insertDataDTOS = new ArrayList<>(); + int buildNum = 10; + for (int i = 0; i < buildNum; i++) { + InsertDataDTO insertDataDTO = new InsertDataDTO(); + insertDataDTO.setHardware(i % 2 == 0 ? "pp" + i : null); + insertDataDTO.setStatus(i % 2 == 0); + insertDataDTO.setTemperature(12.0F + i); + insertDataDTOS.add(insertDataDTO); + } + return insertDataDTOS; + } +} diff --git a/cloud-common/cloud-common-iotdb/src/main/java/com/muyu/common/iotdb/domain/dto/IotDbRecordAble.java b/cloud-common/cloud-common-iotdb/src/main/java/com/muyu/common/iotdb/domain/dto/IotDbRecordAble.java new file mode 100644 index 0000000..621ae7c --- /dev/null +++ b/cloud-common/cloud-common-iotdb/src/main/java/com/muyu/common/iotdb/domain/dto/IotDbRecordAble.java @@ -0,0 +1,14 @@ +package com.muyu.common.iotdb.domain.dto; + +import lombok.Data; + +/** + * @Author WangXin + * @Data 2024/9/30 + * @Description IotDBServiceImpl业务实现层 + * @Version 1.0.0 + */ + +@Data +public class IotDbRecordAble { +} diff --git a/cloud-common/cloud-common-iotdb/src/main/java/com/muyu/common/iotdb/domain/dto/MeasurementSchemaValuesDTO.java b/cloud-common/cloud-common-iotdb/src/main/java/com/muyu/common/iotdb/domain/dto/MeasurementSchemaValuesDTO.java new file mode 100644 index 0000000..5b4b5e5 --- /dev/null +++ b/cloud-common/cloud-common-iotdb/src/main/java/com/muyu/common/iotdb/domain/dto/MeasurementSchemaValuesDTO.java @@ -0,0 +1,23 @@ +package com.muyu.common.iotdb.domain.dto; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; +import org.apache.iotdb.tsfile.write.schema.MeasurementSchema; + +import java.util.List; + + +@Data +@SuperBuilder +@AllArgsConstructor +@NoArgsConstructor +public class MeasurementSchemaValuesDTO { + + private List schemaList; + + private List values; + + private List valueIsNullIndex; +} diff --git a/cloud-common/cloud-common-iotdb/src/main/java/com/muyu/common/iotdb/service/IotDBService.java b/cloud-common/cloud-common-iotdb/src/main/java/com/muyu/common/iotdb/service/IotDBService.java new file mode 100644 index 0000000..b2e068e --- /dev/null +++ b/cloud-common/cloud-common-iotdb/src/main/java/com/muyu/common/iotdb/service/IotDBService.java @@ -0,0 +1,105 @@ +package com.muyu.common.iotdb.service; + +import com.muyu.common.iotdb.domain.dto.IotDbRecordAble; +import com.muyu.common.iotdb.domain.dto.MeasurementSchemaValuesDTO; +import org.apache.iotdb.common.rpc.thrift.TAggregationType; +import org.apache.iotdb.isession.SessionDataSet; +import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType; +import org.apache.iotdb.tsfile.write.record.Tablet; +import org.apache.iotdb.tsfile.write.schema.MeasurementSchema; + +import java.util.List; +import java.util.Map; + +/** + * @Author WangXin + * @Data 2024/9/28 + * @Description IotDBServiceImpl业务层 + * @Version 1.0.0 + */ +public interface IotDBService { + + void insertTablet(Tablet tablet); + + void insertTablets(Map tablets); + + void insertStringRecord(String deviceId, long time, List measurements, List values); + + void insertRecord(String deviceId, long time, List measurements, List types, List values); + + void insertStringRecords(List deviceIds, List times, List> measurementsList, List> valuesList); + + void insertRecords(List deviceIds, List times, List> measurementsList, List> typesList, List> valuesList); + + void insertStringRecordsOfOneDevice(String deviceId, List times, List> measurementsList, List> valuesList); + + void insertRecordsOfOneDevice(String deviceId, List times, List> measurementsList, List> typesList, List> valuesList); + + void deleteData(String path, long endTime); + + void deleteData(List paths, long endTime); + + SessionDataSet executeRawDataQuery(List paths, long startTime, long endTime, long timeOut); + + List executeRawDataQuery(List paths, long startTime, long endTime, long timeOut, Class clazz); + + SessionDataSet executeLastDataQuery(List paths, long lastTime); + + List executeLastDataQuery(List paths, long lastTime, Class clazz); + + SessionDataSet executeLastDataQueryForOneDevice(String db, String device, List sensors, boolean isLegalPathNodes); + + List executeLastDataQueryForOneDevice(String db, String device, List sensors, boolean isLegalPathNodes, Class clazz); + + SessionDataSet executeAggregationQuery(List paths, List aggregations); + + SessionDataSet executeAggregationQuery(List paths, List aggregations, long startTime, long endTime); + + SessionDataSet executeAggregationQuery(List paths, List aggregations, long startTime, long endTime, long interval); + + SessionDataSet executeAggregationQuery(List paths, List aggregations, long startTime, long endTime, long interval, long slidingStep); + + SessionDataSet executeQueryStatement(String sql); + + + /** + * SQL非查询 + * + * @param sql + */ + void executeNonQueryStatement(String sql); + + /** + * 封装处理数据 + * + * @param sessionDataSet + * @param titleList + */ + List> packagingMapData(SessionDataSet sessionDataSet, List columnNames); + + /** + * 封装处理数据(不支持聚合查询) + * + * @param sessionDataSet 查询返回的结果集 + * @param titleList 查询返回的结果集内的字段名 + * @param clazz 返回数据对应的对象(对象属性必须与字段名对应) + * @param + * @return + */ + List packagingObjectData(SessionDataSet sessionDataSet, List titleList, Class clazz); + + /** + * 根据对象构建MeasurementSchemas + * + * @param object 对象 + * @return + */ + List buildMeasurementSchemas(Object object); + /** + * 根据对象构建MeasurementSchemaValuesDTO + * + * @param object 对象 + * @return + */ + MeasurementSchemaValuesDTO buildMeasurementSchemasAndValues(Object object); +} diff --git a/cloud-common/cloud-common-iotdb/src/main/java/com/muyu/common/iotdb/service/impl/IotDBServiceImpl.java b/cloud-common/cloud-common-iotdb/src/main/java/com/muyu/common/iotdb/service/impl/IotDBServiceImpl.java new file mode 100644 index 0000000..4bf659a --- /dev/null +++ b/cloud-common/cloud-common-iotdb/src/main/java/com/muyu/common/iotdb/service/impl/IotDBServiceImpl.java @@ -0,0 +1,711 @@ +package com.muyu.common.iotdb.service.impl; + +import com.alibaba.fastjson2.JSON; +import com.muyu.common.iotdb.config.IotDBSessionConfig; +import com.muyu.common.iotdb.domain.dto.IotDbRecordAble; +import com.muyu.common.iotdb.domain.dto.MeasurementSchemaValuesDTO; +import com.muyu.common.iotdb.service.IotDBService; +import jakarta.annotation.Resource; +import lombok.SneakyThrows; +import lombok.extern.slf4j.Slf4j; +import org.apache.iotdb.common.rpc.thrift.TAggregationType; +import org.apache.iotdb.isession.SessionDataSet; +import org.apache.iotdb.isession.pool.SessionDataSetWrapper; +import org.apache.iotdb.session.pool.SessionPool; +import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType; +import org.apache.iotdb.tsfile.read.common.Field; +import org.apache.iotdb.tsfile.read.common.RowRecord; +import org.apache.iotdb.tsfile.write.record.Tablet; +import org.apache.iotdb.tsfile.write.schema.MeasurementSchema; +import org.springframework.stereotype.Service; + +import java.lang.reflect.Type; +import java.util.*; +import java.util.stream.Collectors; + +/** + * @Author WangXin + * @Data 2024/9/28 + * @Description IotDBServiceImpl业务实现层 + * @Version 1.0.0 + */ +@Service +@Slf4j +public class IotDBServiceImpl implements IotDBService { + + @Resource + private IotDBSessionConfig iotDBSessionConfig; + + /** + * 单设备批量插入数据 + * + * @param tablet + */ + @Override + public void insertTablet(Tablet tablet) { + SessionPool sessionPool = iotDBSessionConfig.getSessionPool(); + try { + log.info("iotdb数据入库:tablet:[{}]", tablet); + sessionPool.insertTablet(tablet); + } catch (Exception e) { + log.error("IotDBSession insertTablet失败: tablet={}, error={}", tablet, e.getMessage()); + } + } + + /** + * 多设备批量插入数据 + * + * @param tablets + */ + @Override + public void insertTablets(Map tablets) { + SessionPool sessionPool = iotDBSessionConfig.getSessionPool(); + try { + log.info("iotdb数据入库:tablets:[{}]", tablets); + sessionPool.insertTablets(tablets); + } catch (Exception e) { + log.error("IotDBSession insertTablets失败: tablets={}, error={}", tablets, e.getMessage()); + } + } + + /** + * 单条数据插入(string类型数据项) + * + * @param deviceId 设备名(表名)root.ln.wf01.wt01 + * @param time 时间戳 + * @param measurements 数据项列表 + * @param values 数据项对应值列表 + */ + @Override + public void insertStringRecord(String deviceId, long time, List measurements, List values) { + SessionPool sessionPool = iotDBSessionConfig.getSessionPool(); + try { + log.info("iotdb数据入库:device_id:[{}], measurements:[{}], values:[{}]", deviceId, measurements, values); + sessionPool.insertRecord(deviceId, time, measurements, values); + } catch (Exception e) { + log.error("IotDBSession insertRecord失败: deviceId={}, time={}, measurements={}, values={}, error={}", + deviceId, time, measurements, values, e.getMessage()); + } + } + + /** + * 单条数据插入(不同类型数据项) + * + * @param deviceId 设备名(表名)root.ln.wf01.wt01 + * @param time 时间戳 + * @param measurements 数据项列表 + * @param types 数据项对应类型列表 + * @param values 数据项对应值列表 + */ + @Override + public void insertRecord(String deviceId, long time, List measurements, List types, List values) { + SessionPool sessionPool = iotDBSessionConfig.getSessionPool(); + try { + log.info("iotdb数据入库:device_id:[{}], measurements:[{}], types:[{}], values:[{}]", deviceId, measurements, types, values); + sessionPool.insertRecord(deviceId, time, measurements, types, values); + } catch (Exception e) { + log.error("IotDBSession insertRecordHasTypes失败: deviceId={}, time={}, measurements={},types={}, values={}, error={}", + deviceId, time, measurements, types, values, e.getMessage()); + } + } + + + /** + * 多个设备多条数据插入(string类型数据项) + * + * @param deviceIds 多个设备名(表名)root.ln.wf01.wt01 + * @param times 时间戳的列表 + * @param measurementsList 数据项列表的列表 + * @param valuesList 数据项对应值列表的列表 + */ + @Override + public void insertStringRecords(List deviceIds, List times, List> measurementsList, List> valuesList) { + SessionPool sessionPool = iotDBSessionConfig.getSessionPool(); + try { + log.info("iotdb数据入库:deviceIds:[{}], measurementsList:[{}], valuesList:[{}]", deviceIds, measurementsList, valuesList); + sessionPool.insertRecords(deviceIds, times, measurementsList, valuesList); + } catch (Exception e) { + log.error("IotDBSession insertRecords失败: deviceIds={}, times={}, measurementsList={}, valuesList={}, error={}", + deviceIds, times, measurementsList, valuesList, e.getMessage()); + } + } + + /** + * 多个设备多条数据插入(不同类型数据项) + * + * @param deviceIds 多个设备名(表名))root.ln.wf01.wt01 + * @param times 时间戳的列表 + * @param measurementsList 数据项列表的列表 + * @param typesList 数据项对应类型列表的列表 + * @param valuesList 数据项对应值列表的列表 + */ + @Override + public void insertRecords(List deviceIds, List times, List> measurementsList, List> typesList, List> valuesList) { + SessionPool sessionPool = iotDBSessionConfig.getSessionPool(); + try { + log.info("iotdb数据入库:deviceIds:[{}], measurementsList:[{}], typesList:[{}], valuesList:[{}]", deviceIds, measurementsList, typesList, valuesList); + sessionPool.insertRecords(deviceIds, times, measurementsList, typesList, valuesList); + } catch (Exception e) { + log.error("IotDBSession insertRecords失败: deviceIds={}, times={}, measurementsList={}, typesList=[],valuesList={}, error={}", + deviceIds, times, measurementsList, typesList, valuesList, e.getMessage()); + } + } + + /** + * 单个设备多条数据插入(string类型数据项) + * + * @param deviceId 单个设备名(表名))root.ln.wf01.wt01 + * @param times 时间戳的列表 + * @param measurementsList 数据项列表的列表 + * @param valuesList 数据项对应值列表的列表 + */ + @Override + public void insertStringRecordsOfOneDevice(String deviceId, List times, List> measurementsList, List> valuesList) { + SessionPool sessionPool = iotDBSessionConfig.getSessionPool(); + try { + log.info("iotdb数据入库:deviceId:[{}], measurementsList:[{}], valuesList:[{}]", deviceId, measurementsList, valuesList); + sessionPool.insertStringRecordsOfOneDevice(deviceId, times, measurementsList, valuesList); + } catch (Exception e) { + log.error("IotDBSession insertStringRecordsOfOneDevice失败: deviceId={}, times={}, measurementsList={}, valuesList={}, error={}", + deviceId, times, measurementsList, valuesList, e.getMessage()); + } + } + + /** + * 单个设备多条数据插入(不同类型数据项) + * + * @param deviceId 单个设备名(表名))root.ln.wf01.wt01 + * @param times 时间戳的列表 + * @param measurementsList 数据项列表的列表 + * @param typesList 数据项对应类型列表的列表 + * @param valuesList 数据项对应值列表的列表 + */ + @Override + public void insertRecordsOfOneDevice(String deviceId, List times, List> measurementsList, List> typesList, List> valuesList) { + SessionPool sessionPool = iotDBSessionConfig.getSessionPool(); + try { + log.info("iotdb数据入库:deviceId:[{}], measurementsList:[{}], typesList:[{}], valuesList:[{}]", deviceId, measurementsList, typesList, valuesList); + sessionPool.insertRecordsOfOneDevice(deviceId, times, measurementsList, typesList, valuesList); + } catch (Exception e) { + log.error("IotDBSession insertRecordsOfOneDevice失败: deviceId={}, times={}, measurementsList={}, typesList=[],valuesList={}, error={}", deviceId, times, measurementsList, typesList, valuesList, e.getMessage()); + } + } + + /** + * 删除数据(删除一个时间序列在某个时间点前或这个时间点的数据) + * + * @param path 单个字段 root.ln.wf01.wt01.temperature + * @param endTime 删除时间点 + */ + @Override + public void deleteData(String path, long endTime) { + SessionPool sessionPool = iotDBSessionConfig.getSessionPool(); + try { + log.info("iotdb数据删除:path:[{}], endTime:[{}]", path, endTime); + sessionPool.deleteData(path, endTime); + } catch (Exception e) { + log.error("IotDBSession deleteData失败: deviceId={}, times={},error={}", path, endTime, e.getMessage()); + } + } + + /** + * 删除数据(删除多个时间序列在某个时间点前或这个时间点的数据) + * + * @param paths 多个字段(表名)) root.ln.wf01.wt01.temperature + * @param endTime 删除时间点 + */ + @Override + public void deleteData(List paths, long endTime) { + SessionPool sessionPool = iotDBSessionConfig.getSessionPool(); + try { + log.info("iotdb数据删除:paths:[{}], endTime:[{}]", paths, endTime); + sessionPool.deleteData(paths, endTime); + } catch (Exception e) { + log.error("IotDBSession deleteData失败: paths={}, times={},error={}", paths, endTime, e.getMessage()); + } + } + + /** + * 数据查询(时间序列原始数据范围查询,时间范围为左闭右开区间,包含开始时间但不包含结束时间) + * + * @param paths 多个字段(表名)) root.ln.wf01.wt01.temperature + * @param startTime 开始时间 + * @param endTime 结束时间 + * @param outTime 超时时间 + * @return SessionDataSet (Time,paths) + */ + @Override + public SessionDataSet executeRawDataQuery(List paths, long startTime, long endTime, long outTime) { + SessionPool sessionPool = iotDBSessionConfig.getSessionPool(); + SessionDataSetWrapper sessionDataSetWrapper = null; + try { + log.info("iotdb数据查询:paths:[{}], startTime:[{}], endTime:[{}],outTime:[{}]", paths, startTime, endTime, outTime); + sessionDataSetWrapper = sessionPool.executeRawDataQuery(paths, startTime, endTime, outTime); + return sessionDataSetWrapper.getSessionDataSet(); + } catch (Exception e) { + log.error("IotDBSession executeRawDataQuery失败: paths={}, startTime:[{}], endTime:[{}],outTime:[{}],error={}", paths, startTime, endTime, outTime, e.getMessage()); + } finally { + sessionPool.closeResultSet(sessionDataSetWrapper); + } + return null; + } + + /** + * 数据查询(时间序列原始数据范围查询,时间范围为左闭右开区间,包含开始时间但不包含结束时间) + * + * @param paths 多个字段(表名)) root.ln.wf01.wt01.temperature + * @param startTime 开始时间 + * @param endTime 结束时间 + * @param outTime 超时时间 + * @param clazz 返回数据对应的对象(对象属性必须与字段名对应) + * @param + * @return + */ + @Override + public List executeRawDataQuery(List paths, long startTime, long endTime, long outTime, Class clazz) { + SessionDataSet sessionDataSet = executeRawDataQuery(paths, startTime, endTime, outTime); + List columnNames = sessionDataSet.getColumnNames(); + List resultEntities = null; + try { + resultEntities = packagingObjectData(sessionDataSet, columnNames, clazz); + } catch (Exception e) { + log.error("IotDBSession executeRawDataQuery失败: paths={}, startTime:[{}], endTime:[{}],outTime:[{}],error={}", paths, startTime, endTime, outTime, e.getMessage()); + } + return resultEntities; + } + + /** + * 最新点查询(查询最后一条时间戳大于等于某个时间点的数据) + * + * @param paths 多个字段(表名)) root.ln.wf01.wt01.temperature + * @param lastTime 结束时间 + * @return SessionDataSet + */ + @Override + public SessionDataSet executeLastDataQuery(List paths, long lastTime) { + SessionPool sessionPool = iotDBSessionConfig.getSessionPool(); + SessionDataSetWrapper sessionDataSetWrapper = null; + try { + log.info("iotdb数据查询:paths:[{}], lastTime:[{}]", paths, lastTime); + sessionDataSetWrapper = sessionPool.executeLastDataQuery(paths, lastTime); + return sessionDataSetWrapper.getSessionDataSet(); + } catch (Exception e) { + log.error("IotDBSession executeLastDataQuery失败: paths={}, lastTime:[{}], error={}", paths, lastTime, e.getMessage()); + } finally { + sessionPool.closeResultSet(sessionDataSetWrapper); + } + return null; + } + + /** + * 最新点查询(查询最后一条时间戳大于等于某个时间点的数据) + * + * @param + * @param paths 多个字段(表名)) root.ln.wf01.wt01.temperature + * @param lastTime 结束时间 + * @param clazz 返回数据对应的对象(对象属性必须与字段名对应) + * @return + */ + @Override + public List executeLastDataQuery(List paths, long lastTime, Class clazz) { + SessionDataSet sessionDataSet = executeLastDataQuery(paths, lastTime); + List columnNames = sessionDataSet.getColumnNames(); + List resultEntities = null; + try { + resultEntities = packagingObjectData(sessionDataSet, columnNames, clazz); + } catch (Exception e) { + log.error("IotDBSession executeLastDataQuery失败: paths={}, lastTime:[{}], error={}", paths, lastTime, e.getMessage()); + } + return resultEntities; + } + + /** + * 最新点查询(快速查询单设备下指定序列最新点) + * + * @param db root.ln.wf01 + * @param device root.ln.wf01.wt01 + * @param sensors temperature,status(字段名) + * @param isLegalPathNodes true(避免路径校验) + * @return SessionDataSet + */ + @Override + public SessionDataSet executeLastDataQueryForOneDevice(String db, String device, List sensors, boolean isLegalPathNodes) { + SessionPool sessionPool = iotDBSessionConfig.getSessionPool(); + SessionDataSetWrapper sessionDataSetWrapper = null; + try { + log.info("iotdb数据查询:db:[{}], device:[{}],sensors:[{}], isLegalPathNodes:[{}]", db, device, sensors, isLegalPathNodes); + sessionDataSetWrapper = sessionPool.executeLastDataQueryForOneDevice(db, device, sensors, isLegalPathNodes); + return sessionDataSetWrapper.getSessionDataSet(); + } catch (Exception e) { + log.error("IotDBSession executeLastDataQueryForOneDevice失败: db:[{}], device:[{}],sensors:[{}], isLegalPathNodes:[{}], error={}", db, device, sensors, isLegalPathNodes, e.getMessage()); + } finally { + sessionPool.closeResultSet(sessionDataSetWrapper); + } + return null; + } + + /** + * @param db root.ln.wf01 + * @param device root.ln.wf01.wt01 + * @param sensors temperature,status(字段名) + * @param isLegalPathNodes true(避免路径校验) + * @param clazz 返回数据对应的对象(对象属性必须与字段名对应) + * @param + * @return + */ + @Override + public List executeLastDataQueryForOneDevice(String db, String device, List sensors, boolean isLegalPathNodes, Class clazz) { + SessionDataSet sessionDataSet = executeLastDataQueryForOneDevice(db, device, sensors, isLegalPathNodes); + List columnNames = sessionDataSet.getColumnNames(); + List resultEntities = null; + try { + resultEntities = packagingObjectData(sessionDataSet, columnNames, clazz); + } catch (Exception e) { + log.error("IotDBSession executeLastDataQueryForOneDevice失败: db:[{}], device:[{}],sensors:[{}], isLegalPathNodes:[{}], error={}", db, device, sensors, isLegalPathNodes, e.getMessage()); + } + return resultEntities; + } + + /** + * 聚合查询 + * + * @param paths 多个字段(表名)) root.ln.wf01.wt01.temperature + * @param aggregations 聚合操作 TAggregationType.SUM,TAggregationType.COUNT + * @return SessionDataSet + */ + @Override + public SessionDataSet executeAggregationQuery(List paths, List aggregations) { + SessionPool sessionPool = iotDBSessionConfig.getSessionPool(); + SessionDataSetWrapper sessionDataSetWrapper = null; + try { + log.info("iotdb聚合查询:paths:[{}], aggregations:[{}]", paths, aggregations); + sessionDataSetWrapper = sessionPool.executeAggregationQuery(paths, aggregations); + return sessionDataSetWrapper.getSessionDataSet(); + } catch (Exception e) { + log.error("IotDBSession executeAggregationQuery失败: paths:[{}], aggregations:[{}] ,error={}", paths, aggregations, e.getMessage()); + } finally { + sessionPool.closeResultSet(sessionDataSetWrapper); + } + return null; + } + + /** + * 聚合查询(时间序列原始数据范围查询,时间范围为左闭右开区间,包含开始时间但不包含结束时间) + * + * @param paths 多个字段(表名)) root.ln.wf01.wt01.temperature + * @param aggregations 聚合操作 TAggregationType.SUM,TAggregationType.COUNT + * @param startTime 开始时间(包含) + * @param endTime 结束时间 + * @return SessionDataSet + */ + @Override + public SessionDataSet executeAggregationQuery(List paths, List aggregations, long startTime, long endTime) { + SessionPool sessionPool = iotDBSessionConfig.getSessionPool(); + SessionDataSetWrapper sessionDataSetWrapper = null; + try { + log.info("iotdb聚合查询:paths:[{}], aggregations:[{}],startTime:[{}], endTime:[{}]", paths, aggregations, startTime, endTime); + sessionDataSetWrapper = sessionPool.executeAggregationQuery(paths, aggregations, startTime, endTime); + return sessionDataSetWrapper.getSessionDataSet(); + } catch (Exception e) { + log.error("IotDBSession executeAggregationQuery失败: paths:[{}], aggregations:[{}] ,startTime:[{}], endTime:[{}],error={}", paths, aggregations, startTime, endTime, e.getMessage()); + } finally { + sessionPool.closeResultSet(sessionDataSetWrapper); + } + return null; + } + + /** + * 聚合查询(支持按照时间区间分段查询) + * + * @param paths 多个字段(表名)) root.ln.wf01.wt01.temperature + * @param aggregations 聚合操作 TAggregationType.SUM,TAggregationType.COUNT + * @param startTime 开始时间(包含) + * @param endTime 结束时间 + * @param interval + * @return SessionDataSet + */ + @Override + public SessionDataSet executeAggregationQuery(List paths, List aggregations, long startTime, long endTime, long interval) { + SessionPool sessionPool = iotDBSessionConfig.getSessionPool(); + SessionDataSetWrapper sessionDataSetWrapper = null; + try { + log.info("iotdb聚合查询:paths:[{}], aggregations:[{}],startTime:[{}], endTime:[{}] ,interval:[{}]", paths, aggregations, startTime, endTime, interval); + sessionDataSetWrapper = sessionPool.executeAggregationQuery(paths, aggregations, startTime, endTime, interval); + return sessionDataSetWrapper.getSessionDataSet(); + } catch (Exception e) { + log.error("IotDBSession executeAggregationQuery失败: paths:[{}], aggregations:[{}] ,startTime:[{}], endTime:[{}], interval:[{}], error={}", paths, aggregations, startTime, endTime, interval, e.getMessage()); + } finally { + sessionPool.closeResultSet(sessionDataSetWrapper); + } + return null; + } + + /** + * 聚合查询(支持按照时间区间分段查询) + * + * @param paths 多个字段(表名)) root.ln.wf01.wt01.temperature + * @param aggregations 聚合操作 TAggregationType.SUM,TAggregationType.COUNT + * @param startTime 开始时间(包含) + * @param endTime 结束时间 + * @param interval + * @param slidingStep + * @return SessionDataSet + */ + @Override + public SessionDataSet executeAggregationQuery(List paths, List aggregations, long startTime, long endTime, long interval, long slidingStep) { + SessionPool sessionPool = iotDBSessionConfig.getSessionPool(); + SessionDataSetWrapper sessionDataSetWrapper = null; + + try { + log.info("iotdb聚合查询:paths:[{}], aggregations:[{}],startTime:[{}], endTime:[{}] ,interval:[{}], slidingStep:[{}]", paths, aggregations, startTime, endTime, interval, slidingStep); + sessionDataSetWrapper = sessionPool.executeAggregationQuery(paths, aggregations, startTime, endTime, interval, slidingStep); + return sessionDataSetWrapper.getSessionDataSet(); + } catch (Exception e) { + log.error("IotDBSession executeAggregationQuery失败: paths:[{}], aggregations:[{}] ,startTime:[{}], endTime:[{}], interval:[{}], slidingStep:[{}] ,error={}", paths, aggregations, startTime, endTime, interval, slidingStep, e.getMessage()); + } finally { + sessionPool.closeResultSet(sessionDataSetWrapper); + } + return null; + } + + /** + * SQL查询 + * + * @param sql + * @return + */ + @Override + public SessionDataSet executeQueryStatement(String sql) { + SessionPool sessionPool = iotDBSessionConfig.getSessionPool(); + SessionDataSetWrapper sessionDataSetWrapper = null; + + try { + log.info("iotdb SQL查询:sql:[{}]", sql); + sessionDataSetWrapper = sessionPool.executeQueryStatement(sql); + return sessionDataSetWrapper.getSessionDataSet(); + } catch (Exception e) { + log.error("IotDBSession executeQueryStatement失败:sql:[{}],error={}", sql, e.getMessage()); + } finally { + sessionPool.closeResultSet(sessionDataSetWrapper); + } + return null; + } + + /** + * SQL非查询 + * + * @param sql + */ + @Override + public void executeNonQueryStatement(String sql) { + SessionPool sessionPool = iotDBSessionConfig.getSessionPool(); + try { + log.info("iotdb SQL无查询:sql:[{}]", sql); + sessionPool.executeNonQueryStatement(sql); + } catch (Exception e) { + log.error("IotDBSession executeNonQueryStatement失败:sql:[{}],error={}", sql, e.getMessage()); + } + } + + /** + * 封装处理数据 + * + * @param sessionDataSet + * @param titleList + */ + @SneakyThrows + @Override + public List> packagingMapData(SessionDataSet sessionDataSet, List titleList) { + int fetchSize = sessionDataSet.getFetchSize(); + List> resultList = new ArrayList<>(); + titleList.remove("Time"); + if (fetchSize > 0) { + while (sessionDataSet.hasNext()) { + Map resultMap = new HashMap<>(); + RowRecord next = sessionDataSet.next(); + List fields = next.getFields(); + String timeString = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(next.getTimestamp()); + resultMap.put("time", timeString); + for (int i = 0; i < fields.size(); i++) { + Field field = fields.get(i); + if (field.getDataType() == null || field.getObjectValue(field.getDataType()) == null) { + resultMap.put(splitString(titleList.get(i)), null); + } else { + resultMap.put(splitString(titleList.get(i)), field.getObjectValue(field.getDataType()).toString()); + } + } + resultList.add(resultMap); + } + } + return resultList; + } + + /** + * 封装处理数据(不支持聚合查询) + * + * @param sessionDataSet 查询返回的结果集 + * @param titleList 查询返回的结果集内的字段名 + * @param clazz 返回数据对应的对象(对象属性必须与字段名对应) + * @param + * @return + */ + @SneakyThrows + @Override + public List packagingObjectData(SessionDataSet sessionDataSet, List titleList, Class clazz) { + int fetchSize = sessionDataSet.getFetchSize(); + List resultList = new ArrayList<>(); + titleList.remove("Time"); + if (fetchSize > 0) { + while (sessionDataSet.hasNext()) { + Map resultMap = new HashMap<>(); + RowRecord next = sessionDataSet.next(); + List fields = next.getFields(); + String timeString = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(next.getTimestamp()); + resultMap.put("time", timeString); + if (titleList.stream().anyMatch(str -> str.contains("."))) { + for (int i = 0; i < fields.size(); i++) { + Field field = fields.get(i); + String title = titleList.get(i); + if (field.getDataType() == null || field.getObjectValue(field.getDataType()) == null) { + resultMap.put(splitString(title), null); + } else { + resultMap.put(splitString(title), field.getObjectValue(field.getDataType()).toString()); + } + } + } else { + Field fieldName = fields.get(0); + Field fieldValue = fields.get(1); + Field fieldDataType = fields.get(2); + if (fieldName.getDataType() != null && fieldName.getObjectValue(fieldName.getDataType()) != null) { + String mapKey = fieldName.getObjectValue(fieldName.getDataType()).toString(); + Object mapValue = convertStringToType(fieldValue.getObjectValue(fieldValue.getDataType()).toString(), fieldDataType.getObjectValue(fieldDataType.getDataType()).toString()); + resultMap.put(splitString(mapKey), mapValue); + } + } + + String jsonString = JSON.toJSONString(resultMap); + resultList.add(JSON.parseObject(jsonString, (Type) clazz)); + } + } + return resultList; + } + + /** + * 分割获取字段名 + * + * @param str + * @return 字段名 + */ + public static String splitString(String str) { + String[] parts = str.split("\\."); + if (parts.length <= 0) { + return str; + } else { + return parts[parts.length - 1]; + } + } + + /** + * 根据数据值和数据类型返回对应数据类型数据 + * + * @param value 数据值 + * @param typeName 数据类型 + * @return 转换后的数据值 + */ + public static Object convertStringToType(String value, String typeName) { + String type = typeName.toLowerCase(); + if (type.isEmpty()) { + return value; + } + if ("boolean".equals(type)) { + return Boolean.parseBoolean(value); + } else if ("double".equals(type)) { + return Double.parseDouble(value); + } else if ("int32".equals(type)) { + return Integer.parseInt(value); + } else if ("int64".equals(type)) { + return Long.parseLong(value); + } else if ("float".equals(type)) { + return Float.parseFloat(value); + } else if ("text".equals(type)) { + return value; + } else { + return value; + } + } + + /** + * 根据对象属性的数据类型返回对应的TSDataType + * + * @param type 属性的数据类型 + * @return TSDataType + */ + public static TSDataType getTsDataTypeByString(String type) { + String typeName = splitString(type).toLowerCase(); + if ("boolean".equals(typeName)) { + return TSDataType.BOOLEAN; + } else if ("double".equals(typeName)) { + return TSDataType.DOUBLE; + } else if ("int".equals(typeName) || "integer".equals(typeName)) { + return TSDataType.INT32; + } else if ("long".equals(typeName)) { + return TSDataType.INT64; + } else if ("float".equals(typeName)) { + return TSDataType.FLOAT; + } else if ("text".equals(typeName)) { + return TSDataType.TEXT; + } else if ("string".equals(typeName)) { + return TSDataType.TEXT; + } else { + return TSDataType.UNKNOWN; + } + } + + /** + * 根据对象构建MeasurementSchemas + * + * @param obj 对象 + * @return + */ + @Override + public List buildMeasurementSchemas(Object obj) { + java.lang.reflect.Field[] fields = obj.getClass().getDeclaredFields(); + List schemaList = Arrays.stream(fields).map(field -> + new MeasurementSchema(field.getName(), + getTsDataTypeByString( + field.getType().getName() + ))). + collect(Collectors.toList()); + return schemaList; + } + + /** + * 根据对象构建MeasurementSchemaValuesDTO + * + * @param obj 对象 + * @return + */ + @SneakyThrows + @Override + public MeasurementSchemaValuesDTO buildMeasurementSchemasAndValues(Object obj) { + MeasurementSchemaValuesDTO measurementSchemaValuesDTO = new MeasurementSchemaValuesDTO(); + java.lang.reflect.Field[] fields = obj.getClass().getDeclaredFields(); + List schemaList = new ArrayList<>(); + List values = new ArrayList<>(); + List valuesIsNullIndex = new ArrayList<>(); + int valueIndex = 0; + for (java.lang.reflect.Field field : fields) { + MeasurementSchema measurementSchema = new MeasurementSchema(field.getName(), getTsDataTypeByString(field.getType().getName())); + schemaList.add(measurementSchema); + Object value = field.get(obj); + if (value == null) { + valuesIsNullIndex.add(valueIndex); + } + values.add(value); + valueIndex++; + } + measurementSchemaValuesDTO.setSchemaList(schemaList); + measurementSchemaValuesDTO.setValues(values); + return measurementSchemaValuesDTO; + } +} 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..cbd0681 --- /dev/null +++ b/cloud-common/cloud-common-kafka/pom.xml @@ -0,0 +1,38 @@ + + + 4.0.0 + + com.muyu + cloud-common + 3.6.3 + + + cloud-common-kafka + + + 8 + 8 + UTF-8 + + + + cloud-common-kafka kafka公共模块 + + + + + + com.muyu + cloud-common-core + + + + + org.apache.kafka + kafka-clients + + + + 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..2a75122 --- /dev/null +++ b/cloud-common/cloud-common-kafka/src/main/java/com/muyu/common/kafka/config/KafkaConsumerConfig.java @@ -0,0 +1,102 @@ +package com.muyu.common.kafka.config; + +import com.muyu.common.core.text.StrFormatter; +import com.muyu.common.kafka.constant.KafkaConfigConstants; +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.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import java.util.HashMap; + +/** + * @Author: wangXin + * @Date 2024/9/28 20:32 + * @Description Kafka消费者配置 + */ +@Configuration +public class KafkaConsumerConfig { + + /** + * 服务端IP + */ + @Value("${kafka.consumer.bootstrap-servers-ip}") + private String bootstrapServersIP; + + /** + * 服务端口号 + */ + @Value("${kafka.consumer.bootstrap-servers-port}") + private String bootstrapServersPort; + + /** + * 开启消费者偏移量 + */ + @Value("${kafka.consumer.enable-auto-commit}") + private Boolean enableAutoCommit; + + /** + * 自动提交时间间隔 + */ + @Value("${kafka.consumer.auto-commit-interval}") + private Integer autoCommitInterval; + + /** + * 自动重置偏移量 + */ + @Value("${kafka.consumer.auto-offset-reset}") + private String autoOffsetReset; + + /** + * 请求阻塞的最大时间 + */ + @Value("${kafka.consumer.fetch-max-wait}") + private Integer fetchMaxWait; + + /** + * 请求应答的最小字节数 + */ + @Value("${kafka.consumer.fetch-min-size}") + private Integer fetchMinSize; + + /** + * 心跳间隔时间 + */ + @Value("${kafka.consumer.heartbeat-interval}") + private Integer heartbeatInterval; + + /** + * 一次调用poll返回的最大记录条数 + */ + @Value("${kafka.consumer.max-poll-records}") + private Integer maxPollRecords; + + /** + * 指定消费组 + */ + @Value("${kafka.consumer.group-id}") + private String groupId; + + /** + * Kafka消费者初始化配置 + * @return Kafka消费者实例 + */ + @Bean + public KafkaConsumer kafkaConsumer() { + HashMap configs = new HashMap<>(); + configs.put(KafkaConfigConstants.BOOTSTRAP_SERVERS, + StrFormatter.format("{}:{}", bootstrapServersIP, bootstrapServersPort)); + configs.put(KafkaConfigConstants.ENABLE_AUTO_COMMIT, enableAutoCommit); + configs.put(KafkaConfigConstants.AUTO_COMMIT_INTERVAL, autoCommitInterval); + configs.put(KafkaConfigConstants.AUTO_OFFSET_RESET, autoOffsetReset); + configs.put(KafkaConfigConstants.FETCH_MAX_WAIT, fetchMaxWait); + configs.put(KafkaConfigConstants.FETCH_MIN_SIZE, fetchMinSize); + configs.put(KafkaConfigConstants.HEARTBEAT_INTERVAL, heartbeatInterval); + configs.put(KafkaConfigConstants.MAX_POLL_RECORDS, maxPollRecords); + configs.put(KafkaConfigConstants.GROUP_ID, groupId); + Deserializer keyDeserializer = new StringDeserializer(); + Deserializer valueDeserializer = new StringDeserializer(); + return new KafkaConsumer<>(configs, keyDeserializer, valueDeserializer); + } +} diff --git a/cloud-common/cloud-common-kafka/src/main/java/com/muyu/common/kafka/config/KafkaProducerConfig.java b/cloud-common/cloud-common-kafka/src/main/java/com/muyu/common/kafka/config/KafkaProducerConfig.java new file mode 100644 index 0000000..51162de --- /dev/null +++ b/cloud-common/cloud-common-kafka/src/main/java/com/muyu/common/kafka/config/KafkaProducerConfig.java @@ -0,0 +1,74 @@ +package com.muyu.common.kafka.config; + +import com.muyu.common.core.text.StrFormatter; +import com.muyu.common.kafka.constant.KafkaConfigConstants; +import org.apache.kafka.clients.producer.KafkaProducer; +import org.apache.kafka.common.serialization.Serializer; +import org.apache.kafka.common.serialization.StringSerializer; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import java.util.HashMap; + +/** + * @Author: wangXin + * @Date 2024/9/28 16:35 + * @Description Kafka生产者配置 + */ +@Configuration +public class KafkaProducerConfig { + + /** + * 服务端IP + */ + @Value("${kafka.producer.bootstrap-servers-ip}") + private String bootstrapServersIP; + + /** + * 服务端口号 + */ + @Value("${kafka.producer.bootstrap-servers-port}") + private String bootstrapServersPort; + + /** + * 重试次数 + */ + @Value("${kafka.producer.retries}") + private Integer retries; + + /** + * 默认批量大小 + */ + @Value("${kafka.producer.batch-size}") + private Integer batchSize; + + /** + * 总内存字节数 + */ + @Value("${kafka.producer.buffer-memory}") + private Integer bufferMemory; + + /** + * 偏移量 + */ + @Value("${kafka.producer.acks}") + private String acks; + + /** + * Kafka生产者初始化配置 + * @return kafka生产者实例 + */ + @Bean + public KafkaProducer kafkaProducer() { + HashMap configs = new HashMap<>(); + configs.put(KafkaConfigConstants.BOOTSTRAP_SERVERS, + StrFormatter.format("{}:{}", bootstrapServersIP, bootstrapServersPort)); + configs.put(KafkaConfigConstants.RETRIES, retries); + configs.put(KafkaConfigConstants.BATCH_SIZE, batchSize); + configs.put(KafkaConfigConstants.BUFFER_MEMORY, bufferMemory); + configs.put(KafkaConfigConstants.ACKS, acks); + Serializer keySerializer = new StringSerializer(); + Serializer valueSerializer = new StringSerializer(); + return new KafkaProducer<>(configs, keySerializer, valueSerializer); + } +} diff --git a/cloud-common/cloud-common-kafka/src/main/java/com/muyu/common/kafka/constant/KafkaConfigConstants.java b/cloud-common/cloud-common-kafka/src/main/java/com/muyu/common/kafka/constant/KafkaConfigConstants.java new file mode 100644 index 0000000..0bd1f73 --- /dev/null +++ b/cloud-common/cloud-common-kafka/src/main/java/com/muyu/common/kafka/constant/KafkaConfigConstants.java @@ -0,0 +1,74 @@ +package com.muyu.common.kafka.constant; + +/** + * @Author: wangXin + * @Date 2024/9/28 20:07 + * @Description Kafka配置通用常量 + */ +public class KafkaConfigConstants { + + /** + * 服务端ip+端口号 + */ + public static final String BOOTSTRAP_SERVERS = "bootstrap.servers"; + + /** + * 重试次数 + */ + public static final String RETRIES = "retries"; + + /** + * 默认批量大小 + */ + public static final String BATCH_SIZE = "batch.size"; + + /** + * 总内存字节数 + */ + public static final String BUFFER_MEMORY = "buffer-memory"; + + /** + * 偏移量 + */ + public static final String ACKS = "acks"; + + /** + * 开启消费者偏移量 + */ + public static final String ENABLE_AUTO_COMMIT = "enable.auto.commit"; + + /** + * 自动提交时间间隔 + */ + public static final String AUTO_COMMIT_INTERVAL = "auto.commit.interval"; + + /** + * 自动重置偏移量 + */ + public static final String AUTO_OFFSET_RESET = "auto.offset.reset"; + + /** + * 请求阻塞的最大时间 + */ + public static final String FETCH_MAX_WAIT = "fetch.max.wait"; + + /** + * 请求应答的最小字节数 + */ + public static final String FETCH_MIN_SIZE = "fetch.min.size"; + + /** + * 心跳间隔时间 + */ + public static final String HEARTBEAT_INTERVAL = "heartbeat-interval"; + + /** + * 一次调用poll返回的最大记录条数 + */ + public static final String MAX_POLL_RECORDS = "max.poll.records"; + + /** + * 指定消费组 + */ + public static final String GROUP_ID = "group.id"; +} diff --git a/cloud-common/cloud-common-kafka/src/main/java/com/muyu/common/kafka/constant/KafkaConstants.java b/cloud-common/cloud-common-kafka/src/main/java/com/muyu/common/kafka/constant/KafkaConstants.java new file mode 100644 index 0000000..d839c8a --- /dev/null +++ b/cloud-common/cloud-common-kafka/src/main/java/com/muyu/common/kafka/constant/KafkaConstants.java @@ -0,0 +1,14 @@ +package com.muyu.common.kafka.constant; + +/** + * @Author: WangXin + * @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..1d39066 --- /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.KafkaProducerConfig +com.muyu.common.kafka.config.KafkaConsumerConfig diff --git a/cloud-common/cloud-common-rabbit/pom.xml b/cloud-common/cloud-common-rabbit/pom.xml index fa6d383..79f5225 100644 --- a/cloud-common/cloud-common-rabbit/pom.xml +++ b/cloud-common/cloud-common-rabbit/pom.xml @@ -17,6 +17,10 @@ UTF-8 + + cloud-common-rabbit 消息队列服务 + + @@ -28,8 +32,8 @@ com.muyu - cloud-common-core + cloud-common-redis - \ No newline at end of file + diff --git a/cloud-common/cloud-common-rabbit/src/main/java/com/muyu/common/rabbit/config/ConfirmCallbackConfig.java b/cloud-common/cloud-common-rabbit/src/main/java/com/muyu/common/rabbit/config/ConfirmCallbackConfig.java new file mode 100644 index 0000000..da94c0b --- /dev/null +++ b/cloud-common/cloud-common-rabbit/src/main/java/com/muyu/common/rabbit/config/ConfirmCallbackConfig.java @@ -0,0 +1,48 @@ +package com.muyu.common.rabbit.config; + +import lombok.extern.log4j.Log4j2; +import org.springframework.amqp.rabbit.connection.CorrelationData; +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import javax.annotation.PostConstruct; + +/** + * 消息发送确认配置 + * 消息发送到交换机的回调 + */ +@Component +@Log4j2 +public class ConfirmCallbackConfig implements RabbitTemplate.ConfirmCallback { + + @Autowired + private RabbitTemplate rabbitTemplate; + + /** + * @PostContruct是spring框架的注解,在⽅法上加该注解会在项⽬启动的时候执⾏该⽅法,也可以理解为在spring容器初始化的时候执 + */ + @PostConstruct + public void init() { + rabbitTemplate.setConfirmCallback(this); + } + + /** + * 交换机不管是否收到消息的一个回调方法 + * + * @param correlationData 消息相关数据 + * @param ack 交换机是否收到消息 + * @param cause 失败原因 + */ + @Override + public void confirm(CorrelationData correlationData, boolean ack, String cause) { + if (!ack) { + String exchange = correlationData.getReturned().getExchange(); + String message = correlationData.getReturned().getMessage().getBody().toString(); + // 发送异常 + log.error("消息:{},发送到交换机:{}失败,原因是:{}", message, exchange, cause); + // TODO 可以把异常信息 以及 消息的内容直接添加到 MYSQL + } + } + +} 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/config/RabbitListenerConfigurer.java similarity index 92% rename from cloud-common/cloud-common-rabbit/src/main/java/com/muyu/common/rabbit/RabbitListenerConfigurer.java rename to cloud-common/cloud-common-rabbit/src/main/java/com/muyu/common/rabbit/config/RabbitListenerConfigurer.java index 51cb359..7486c19 100644 --- 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/config/RabbitListenerConfigurer.java @@ -1,13 +1,14 @@ -package com.muyu.common.rabbit; +package com.muyu.common.rabbit.config; 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; +import javax.annotation.Resource; + @Configuration public class RabbitListenerConfigurer implements org.springframework.amqp.rabbit.annotation.RabbitListenerConfigurer { @@ -16,7 +17,7 @@ public class RabbitListenerConfigurer implements org.springframework.amqp.rabbit } //以下配置RabbitMQ消息服务 - @Autowired + @Resource public ConnectionFactory connectionFactory; diff --git a/cloud-common/cloud-common-rabbit/src/main/java/com/muyu/common/rabbit/config/ReturnCallbackConfig.java b/cloud-common/cloud-common-rabbit/src/main/java/com/muyu/common/rabbit/config/ReturnCallbackConfig.java new file mode 100644 index 0000000..a457eb0 --- /dev/null +++ b/cloud-common/cloud-common-rabbit/src/main/java/com/muyu/common/rabbit/config/ReturnCallbackConfig.java @@ -0,0 +1,41 @@ +package com.muyu.common.rabbit.config; + +import lombok.extern.log4j.Log4j2; +import org.springframework.amqp.core.ReturnedMessage; +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import javax.annotation.PostConstruct; + +/** + * 消息发送到队列的确认 + */ +@Component +@Log4j2 +public class ReturnCallbackConfig implements RabbitTemplate.ReturnsCallback { + + @Autowired + private RabbitTemplate rabbitTemplate; + + /** + * @PostContruct是spring框架的注解,在⽅法上加该注解会在项⽬启动的时候执⾏该⽅法,也可以理解为在spring容器初始化的时候执 + */ + @PostConstruct + public void init() { + rabbitTemplate.setReturnsCallback(this); + } + + /** + * 消息发送失败 则会执行这个方法 + * + * @param returnedMessage the returned message and metadata. + */ + @Override + public void returnedMessage(ReturnedMessage returnedMessage) { + log.error("消息:{},被交换机:{} 回退!退回原因为:{}", + returnedMessage.getMessage().toString(), returnedMessage.getExchange(), returnedMessage.getReplyText()); + // TODO 回退了所有的信息,可做补偿机制 + } + +} 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..c279371 --- /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: WangXin + * @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 189ea2c..f276344 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 +1,3 @@ -com.muyu.common.rabbit.RabbitListenerConfigurer \ No newline at end of file +com.muyu.common.rabbit.config.RabbitListenerConfigurer +com.muyu.common.rabbit.config.ConfirmCallbackConfig +com.muyu.common.rabbit.config.ReturnCallbackConfig diff --git a/cloud-common/cloud-common-saas/pom.xml b/cloud-common/cloud-common-saas/pom.xml new file mode 100644 index 0000000..60b4041 --- /dev/null +++ b/cloud-common/cloud-common-saas/pom.xml @@ -0,0 +1,34 @@ + + + 4.0.0 + + com.muyu + cloud-common + 3.6.3 + + + cloud-common-saas + + + 17 + 17 + UTF-8 + + + + + + com.muyu + cloud-common-datasource + + + + + com.muyu + cloud-common-security + + + + 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 new file mode 100644 index 0000000..cea0f49 --- /dev/null +++ b/cloud-common/cloud-common-saas/src/main/java/com/muyu/cloud/common/many/datasource/ManyDataSource.java @@ -0,0 +1,111 @@ +package com.muyu.cloud.common.many.datasource; + +import com.alibaba.druid.pool.DruidDataSource; +import com.alibaba.fastjson2.JSON; +import com.baomidou.mybatisplus.autoconfigure.MybatisPlusAutoConfiguration; +import com.muyu.cloud.common.many.datasource.constents.DatasourceContent; +import com.muyu.cloud.common.saas.domain.model.EntInfo; +import com.muyu.cloud.common.many.datasource.factory.DruidDataSourceFactory; +import com.muyu.cloud.common.many.datasource.domain.model.DataSourceInfo; +import com.muyu.cloud.common.many.datasource.role.DynamicDataSource; +import com.muyu.cloud.common.saas.exception.SaaSException; +import com.muyu.common.core.constant.SecurityConstants; +import com.muyu.common.core.constant.UserConstants; +import com.muyu.common.core.domain.Result; +import com.muyu.common.core.utils.SpringUtils; +import com.muyu.common.system.domain.SysDept; +import com.muyu.common.system.domain.SysUser; +import com.muyu.common.system.remote.RemoteUserService; +import lombok.extern.log4j.Log4j2; +import org.springframework.boot.ApplicationArguments; +import org.springframework.boot.ApplicationRunner; +import org.springframework.boot.autoconfigure.AutoConfiguration; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * @Author: DongZeLiang + * @date: 2024/6/3 + * @Description: 多数据源 + * @Version: 1.0 + */ +@Log4j2 +@Configuration +@AutoConfiguration(before = MybatisPlusAutoConfiguration.class) +public class ManyDataSource implements ApplicationRunner { + + + private List dataSourceInfoList(){ + RemoteUserService RemoteUserService = SpringUtils.getBean(RemoteUserService.class); + Result> listResult = RemoteUserService.selectFirmDatabaseList(SecurityConstants.INNER); + if (listResult==null){ + throw new SaaSException("saas远调数据源错误"); + } + List data = listResult.getData(); + if (listResult.getCode() ==Result.SUCCESS && data !=null){ + List list = new ArrayList<>(); + for (String row : data) { + list.add( + EntInfo.builder() + .entCode(row) + .ip(DatasourceContent.IP) + .port(DatasourceContent.PORT) + .build() + ); + } + return list; + }else { + log.error("远调数据源错误,远调数据为:{}", JSON.toJSONString(data)); + throw new RuntimeException("远调数据源错误,远调--》 companyList "); + } + } +// private List dataPrimarySourceInfoList(){ +// List list = new ArrayList<>(); +// list.add( +// EntInfo.builder() +// .entCode() +// .ip(DatasourceContent.IP) +// .port(DatasourceContent.PORT) +// .build() +// ); +// return list; +// } + + @Bean + public DynamicDataSource dynamicDataSource(DruidDataSourceFactory druidDataSourceFactory) { + // 企业列表 企业CODE,端口,IP + Map dataSourceMap = new HashMap<>(); + dataSourceInfoList() + .stream() + .map(entInfo -> DataSourceInfo.hostAndPortBuild(entInfo.getEntCode(), entInfo.getIp(), entInfo.getPort())) + .forEach(dataSourceInfo -> { + dataSourceMap.put(dataSourceInfo.getKey(), druidDataSourceFactory.create(dataSourceInfo)); + }); + //设置动态数据源 + DynamicDataSource dynamicDataSource = new DynamicDataSource(); +// dynamicDataSource.setDefaultTargetDataSource(masterDataSource()); + dynamicDataSource.setTargetDataSources(dataSourceMap); + //将数据源信息备份在defineTargetDataSources中 + dynamicDataSource.setDefineTargetDataSources(dataSourceMap); + return dynamicDataSource; + } + + @Override + public void run(ApplicationArguments args) throws Exception { + DruidDataSourceFactory druidDataSourceFactory = SpringUtils.getBean(DruidDataSourceFactory.class); + DynamicDataSource dynamicDataSource = SpringUtils.getBean(DynamicDataSource.class); + for (EntInfo entInfo : dataSourceInfoList()) { + DataSourceInfo dataSourceInfo = DataSourceInfo.hostAndPortBuild( + entInfo.getEntCode(), entInfo.getIp(), entInfo.getPort() + ); + DruidDataSource druidDataSource = druidDataSourceFactory.create(dataSourceInfo); + dynamicDataSource.put(dataSourceInfo.getKey(), druidDataSource); + log.info("存储数据连接池为:key:{}",dataSourceInfo.getKey()); + } + } +} diff --git a/cloud-common/cloud-common-saas/src/main/java/com/muyu/cloud/common/many/datasource/constents/DatasourceContent.java b/cloud-common/cloud-common-saas/src/main/java/com/muyu/cloud/common/many/datasource/constents/DatasourceContent.java new file mode 100644 index 0000000..95c4cf7 --- /dev/null +++ b/cloud-common/cloud-common-saas/src/main/java/com/muyu/cloud/common/many/datasource/constents/DatasourceContent.java @@ -0,0 +1,19 @@ +package com.muyu.cloud.common.many.datasource.constents; + +/** + * @author DongZl + * @description: 数据源常量 + * @Date 2023-8-1 上午 11:02 + */ +public class DatasourceContent { + + public final static String DATASOURCE_URL = "jdbc:mysql://{}:{}/{}?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8"; + + public final static String USER_NAME = "root"; + + public final static String PASSWORD = "wx0713101x"; + + public final static String IP = "127.0.0.1"; + + public final static Integer PORT = 3307; +} diff --git a/cloud-common/cloud-common-saas/src/main/java/com/muyu/cloud/common/many/datasource/domain/model/DataSourceInfo.java b/cloud-common/cloud-common-saas/src/main/java/com/muyu/cloud/common/many/datasource/domain/model/DataSourceInfo.java new file mode 100644 index 0000000..73cc26e --- /dev/null +++ b/cloud-common/cloud-common-saas/src/main/java/com/muyu/cloud/common/many/datasource/domain/model/DataSourceInfo.java @@ -0,0 +1,50 @@ +package com.muyu.cloud.common.many.datasource.domain.model; + +import com.muyu.cloud.common.many.datasource.constents.DatasourceContent; +import com.muyu.common.core.utils.StringUtils; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author DongZl + * @description: 数据源实体类 + * @Date 2023-8-1 上午 11:15 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class DataSourceInfo { + + /** + * 键 + */ + private String key; + + /** + * 地址 + */ + private String url; + + /** + * 用户名 + */ + private String userName; + + /** + * 密码 + */ + private String password; + + + public static DataSourceInfo hostAndPortBuild(String key, String host, Integer port) { + return DataSourceInfo.builder() + .key(key) + .url(StringUtils.format(DatasourceContent.DATASOURCE_URL, host, port, key)) + .password(DatasourceContent.PASSWORD) + .userName(DatasourceContent.USER_NAME) + .build(); + } +} 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 new file mode 100644 index 0000000..0924697 --- /dev/null +++ b/cloud-common/cloud-common-saas/src/main/java/com/muyu/cloud/common/many/datasource/factory/DruidDataSourceFactory.java @@ -0,0 +1,39 @@ +package com.muyu.cloud.common.many.datasource.factory; + +import com.alibaba.druid.pool.DruidDataSource; +import com.muyu.cloud.common.many.datasource.domain.model.DataSourceInfo; +import lombok.extern.log4j.Log4j2; +import org.springframework.stereotype.Component; + +import java.sql.SQLException; + +/** + * @Author: DongZeLiang + * @date: 2024/6/3 + * @Description: Druid工厂 + * @Version: 1.0 + */ +@Log4j2 +@Component +public class DruidDataSourceFactory { + + /** + * @Description: 根据传递的数据源信息测试数据库连接 + */ + public DruidDataSource create(DataSourceInfo dataSourceInfo) { + DruidDataSource druidDataSource = new DruidDataSource(); + druidDataSource.setUrl(dataSourceInfo.getUrl()); + druidDataSource.setUsername(dataSourceInfo.getUserName()); + druidDataSource.setPassword(dataSourceInfo.getPassword()); + druidDataSource.setBreakAfterAcquireFailure(true); + druidDataSource.setConnectionErrorRetryAttempts(0); + try { + druidDataSource.getConnection(2000); + log.info("{} -> 数据源连接成功", dataSourceInfo.getKey()); + return druidDataSource; + } catch (SQLException throwables) { + log.error("数据源 {} 连接失败,用户名:{},密码 {}",dataSourceInfo.getUrl(),dataSourceInfo.getUserName(),dataSourceInfo.getPassword()); + return null; + } + } +} diff --git a/cloud-common/cloud-common-saas/src/main/java/com/muyu/cloud/common/many/datasource/holder/DynamicDataSourceHolder.java b/cloud-common/cloud-common-saas/src/main/java/com/muyu/cloud/common/many/datasource/holder/DynamicDataSourceHolder.java new file mode 100644 index 0000000..e53229a --- /dev/null +++ b/cloud-common/cloud-common-saas/src/main/java/com/muyu/cloud/common/many/datasource/holder/DynamicDataSourceHolder.java @@ -0,0 +1,42 @@ +package com.muyu.cloud.common.many.datasource.holder; + +import lombok.extern.slf4j.Slf4j; +import org.springframework.util.Assert; + +/** + * 数据源切换处理 + * + * @author Dongzl + */ +@Slf4j +public class DynamicDataSourceHolder { + /** + * 保存动态数据源名称 + */ + private static final ThreadLocal DYNAMIC_DATASOURCE_KEY = new ThreadLocal<>(); + + /** + * 设置/切换数据源,决定当前线程使用哪个数据源 + */ + public static void setDynamicDataSourceKey(String key){ + log.info("数据源切换为:{}",key); + DYNAMIC_DATASOURCE_KEY.set(key); + } + + /** + * 获取动态数据源名称,默认使用mater数据源 + */ + public static String getDynamicDataSourceKey(){ + String key = DYNAMIC_DATASOURCE_KEY.get(); + Assert.notNull(key, "请携带数据标识"); + return key; + } + + /** + * 移除当前数据源 + */ + public static void removeDynamicDataSourceKey(){ + log.info("移除数据源:{}",DYNAMIC_DATASOURCE_KEY.get()); + DYNAMIC_DATASOURCE_KEY.remove(); + } +} diff --git a/cloud-common/cloud-common-saas/src/main/java/com/muyu/cloud/common/many/datasource/role/DynamicDataSource.java b/cloud-common/cloud-common-saas/src/main/java/com/muyu/cloud/common/many/datasource/role/DynamicDataSource.java new file mode 100644 index 0000000..6ac17cb --- /dev/null +++ b/cloud-common/cloud-common-saas/src/main/java/com/muyu/cloud/common/many/datasource/role/DynamicDataSource.java @@ -0,0 +1,55 @@ +package com.muyu.cloud.common.many.datasource.role; + +import com.alibaba.druid.pool.DruidDataSource; +import com.muyu.cloud.common.many.datasource.holder.DynamicDataSourceHolder; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource; + +import java.util.Map; + +/** + * 动态数据源 + * 调用AddDefineDataSource组件的addDefineDynamicDataSource()方法,获取原来targetdatasources的map,并将新的数据源信息添加到map中,并替换targetdatasources中的map + * 切换数据源时可以使用@DataSource(value = "数据源名称"),或者DynamicDataSourceContextHolder.setContextKey("数据源名称") + * @author Dongzl + */ +@EqualsAndHashCode(callSuper = true) +@Data +@AllArgsConstructor +@NoArgsConstructor +public class DynamicDataSource extends AbstractRoutingDataSource { + /** + * 备份所有数据源信息 备份的是个 指针 !!! + */ + private Map defineTargetDataSources; + + /** + * 判定键是否出站了 + * @param key 键 + * @return 存在结果 true存在 false不存在 + */ + public boolean hashKey(String key){ + return defineTargetDataSources.containsKey(key); + } + + /** + * 添加数据库 + * @param key 键 + * @param value 数据源 + */ + public void put(String key, DruidDataSource value) { + defineTargetDataSources.put(key, value); + this.afterPropertiesSet(); + } + + /** + * 决定当前线程使用哪个数据源 + */ + @Override + protected Object determineCurrentLookupKey() { + return DynamicDataSourceHolder.getDynamicDataSourceKey(); + } +} diff --git a/cloud-common/cloud-common-saas/src/main/java/com/muyu/cloud/common/saas/contents/SaaSConstant.java b/cloud-common/cloud-common-saas/src/main/java/com/muyu/cloud/common/saas/contents/SaaSConstant.java new file mode 100644 index 0000000..241ce32 --- /dev/null +++ b/cloud-common/cloud-common-saas/src/main/java/com/muyu/cloud/common/saas/contents/SaaSConstant.java @@ -0,0 +1,12 @@ +package com.muyu.cloud.common.saas.contents; + +/** + * @Author: DongZeLiang + * @date: 2024/6/3 + * @Description: SAAS常量 + * @Version: 1.0 + */ +public class SaaSConstant { + + public final static String SAAS_KEY = "ent-code"; +} diff --git a/cloud-common/cloud-common-saas/src/main/java/com/muyu/cloud/common/saas/domain/model/EntInfo.java b/cloud-common/cloud-common-saas/src/main/java/com/muyu/cloud/common/saas/domain/model/EntInfo.java new file mode 100644 index 0000000..5c1985a --- /dev/null +++ b/cloud-common/cloud-common-saas/src/main/java/com/muyu/cloud/common/saas/domain/model/EntInfo.java @@ -0,0 +1,25 @@ +package com.muyu.cloud.common.saas.domain.model; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @Author: DongZeLiang + * @date: 2024/6/3 + * @Description: 企业信息 + * @Version: 1.0 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class EntInfo { + + private String entCode; + + private String ip; + + private Integer port; +} diff --git a/cloud-common/cloud-common-saas/src/main/java/com/muyu/cloud/common/saas/exception/SaaSException.java b/cloud-common/cloud-common-saas/src/main/java/com/muyu/cloud/common/saas/exception/SaaSException.java new file mode 100644 index 0000000..b2b4cc7 --- /dev/null +++ b/cloud-common/cloud-common-saas/src/main/java/com/muyu/cloud/common/saas/exception/SaaSException.java @@ -0,0 +1,28 @@ +package com.muyu.cloud.common.saas.exception; + + +import com.muyu.common.core.exception.ServiceException; + +/** + * @Author: DongZeLiang + * @date: 2024/6/3 + * @Description: SaaS异常类 + * @Version: 1.0 + */ +public class SaaSException extends ServiceException { + + public SaaSException (String message, Integer code) { + super(message, code); + } + + public SaaSException (String message) { + super(message); + } + + /** + * 空构造方法,避免反序列化问题 + */ + public SaaSException () { + super(); + } +} diff --git a/cloud-common/cloud-common-saas/src/main/java/com/muyu/cloud/common/saas/interceptor/SaaSInterceptor.java b/cloud-common/cloud-common-saas/src/main/java/com/muyu/cloud/common/saas/interceptor/SaaSInterceptor.java new file mode 100644 index 0000000..eca9f04 --- /dev/null +++ b/cloud-common/cloud-common-saas/src/main/java/com/muyu/cloud/common/saas/interceptor/SaaSInterceptor.java @@ -0,0 +1,66 @@ +package com.muyu.cloud.common.saas.interceptor; + +import com.alibaba.fastjson2.JSONObject; +import com.muyu.cloud.common.saas.contents.SaaSConstant; +import com.muyu.cloud.common.many.datasource.holder.DynamicDataSourceHolder; +import com.muyu.cloud.common.saas.exception.SaaSException; +import com.muyu.cloud.common.many.datasource.role.DynamicDataSource; +import com.muyu.common.core.utils.ServletUtils; +import com.muyu.common.core.utils.SpringUtils; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import lombok.extern.log4j.Log4j2; +import org.springframework.web.method.HandlerMethod; +import org.springframework.web.servlet.AsyncHandlerInterceptor; + + +/** + * @Author: DongZeLiang + * @date: 2024/6/3 + * @Description: SAAS拦截器 + * @Version: 1.0 + */ +@Log4j2 +public class SaaSInterceptor implements AsyncHandlerInterceptor { + + private Boolean flag = false; + + /** + * 之前 + */ + @Override + public boolean preHandle (HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { + if (!(handler instanceof HandlerMethod)) { + return true; + } + String SaaSKey = ServletUtils.getHeader(request, SaaSConstant.SAAS_KEY); + if (SaaSKey == null) { + throw new SaaSException("SaaS非法访问"); + } + if (SaaSKey.equals("-")){ + log.info("使用 [ nacos ] 配置数据库 "); + flag = true; + return true; + } + + DynamicDataSource dynamicDataSource = SpringUtils.getBean(DynamicDataSource.class); + if (!dynamicDataSource.hashKey(SaaSKey)){ + throw new SaaSException("SaaS非法访问"); + } + + DynamicDataSourceHolder.setDynamicDataSourceKey(SaaSKey); + return true; + } + + /** + * 之后 + */ + @Override + public void afterConcurrentHandlingStarted (HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { + if (flag){ + DynamicDataSourceHolder.removeDynamicDataSourceKey(); + flag = false; + } + + } +} diff --git a/cloud-common/cloud-common-saas/src/main/java/com/muyu/cloud/common/saas/interceptor/WebMvcSaaSConfig.java b/cloud-common/cloud-common-saas/src/main/java/com/muyu/cloud/common/saas/interceptor/WebMvcSaaSConfig.java new file mode 100644 index 0000000..4c79417 --- /dev/null +++ b/cloud-common/cloud-common-saas/src/main/java/com/muyu/cloud/common/saas/interceptor/WebMvcSaaSConfig.java @@ -0,0 +1,31 @@ +package com.muyu.cloud.common.saas.interceptor; + +import org.springframework.web.servlet.config.annotation.InterceptorRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; + +/** + * 拦截器配置 + * + * @author muyu + */ +public class WebMvcSaaSConfig implements WebMvcConfigurer { + /** + * 不需要拦截的地址 + */ + public static final String[] excludeUrls = {"/login", "/logout", "/refresh"}; + + @Override + public void addInterceptors (InterceptorRegistry registry) { + registry.addInterceptor(getHeaderInterceptor()) + .addPathPatterns("/**") + .excludePathPatterns(excludeUrls) + .order(-10); + } + + /** + * 自定义请求头拦截器 + */ + public SaaSInterceptor getHeaderInterceptor () { + return new SaaSInterceptor(); + } +} diff --git a/cloud-common/cloud-common-saas/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/cloud-common/cloud-common-saas/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports new file mode 100644 index 0000000..70148cf --- /dev/null +++ b/cloud-common/cloud-common-saas/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -0,0 +1,3 @@ +com.muyu.cloud.common.saas.interceptor.WebMvcSaaSConfig +com.muyu.cloud.common.many.datasource.ManyDataSource +com.muyu.cloud.common.many.datasource.factory.DruidDataSourceFactory diff --git a/cloud-common/cloud-common-system/pom.xml b/cloud-common/cloud-common-system/pom.xml index ad4356f..a5c1064 100644 --- a/cloud-common/cloud-common-system/pom.xml +++ b/cloud-common/cloud-common-system/pom.xml @@ -25,5 +25,9 @@ com.muyu cloud-common-core + + io.swagger.core.v3 + swagger-annotations-jakarta + diff --git a/cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/domain/SysFirmDatasource.java b/cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/domain/SysFirmDatasource.java new file mode 100644 index 0000000..c91cf6b --- /dev/null +++ b/cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/domain/SysFirmDatasource.java @@ -0,0 +1,64 @@ +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 io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + + +/** + * @Author WangXin + * @Data 2024/10/2 + * @Description 数据源信息 + * @Version 1.0.0 + */ +@Data +@SuperBuilder +@AllArgsConstructor +@NoArgsConstructor +@Tag(name = "数据源信息") +@TableName("sys_firm_datasource") +public class SysFirmDatasource { + + /** + * 数据源Id + */ + @Schema(name = "数据源Id") + @TableId(type = IdType.AUTO) + private Long id; + /** + * 数据源url + */ + @Schema(name = "数据源url") + private String datasourceUrl; + /** + * 数据源用户名 + */ + @Schema(name = "数据源用户名") + private String username; + /** + * 数据源密码 + */ + @Schema(name = "数据源密码") + private String password; + /** + * 数据源IP + */ + @Schema(name = "数据源IP") + private String ip; + /** + * 数据源端口号 + */ + @Schema(name = "数据源端口号") + private Integer port; + /** + * 数据源库名 + */ + @Schema(name = "数据源库名") + private String databaseName; +} diff --git a/cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/remote/RemoteUserService.java b/cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/remote/RemoteUserService.java index cb968e0..88ff05c 100644 --- a/cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/remote/RemoteUserService.java +++ b/cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/remote/RemoteUserService.java @@ -9,6 +9,8 @@ import com.muyu.common.system.domain.LoginUser; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.*; +import java.util.List; + /** * 用户服务 * @@ -37,4 +39,7 @@ public interface RemoteUserService { */ @PostMapping("/user/register") public Result registerUserInfo (@RequestBody SysUser sysUser, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); + + @GetMapping("/") + Result> selectFirmDatabaseList(@RequestHeader(SecurityConstants.FROM_SOURCE) String inner); } diff --git a/cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/remote/factory/RemoteUserFallbackFactory.java b/cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/remote/factory/RemoteUserFallbackFactory.java index b7f4d60..582a505 100644 --- a/cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/remote/factory/RemoteUserFallbackFactory.java +++ b/cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/remote/factory/RemoteUserFallbackFactory.java @@ -9,6 +9,8 @@ import org.slf4j.LoggerFactory; import org.springframework.cloud.openfeign.FallbackFactory; import org.springframework.stereotype.Component; +import java.util.List; + /** * 用户服务降级处理 * @@ -31,6 +33,11 @@ public class RemoteUserFallbackFactory implements FallbackFactory registerUserInfo (SysUser sysUser, String source) { return Result.error("注册用户失败:" + throwable.getMessage()); } + + @Override + public Result> selectFirmDatabaseList(String inner) { + return Result.error("注册用户失败:" + throwable.getMessage()); + } }; } } diff --git a/cloud-common/pom.xml b/cloud-common/pom.xml index d00dfc6..4a62bcf 100644 --- a/cloud-common/pom.xml +++ b/cloud-common/pom.xml @@ -20,6 +20,11 @@ cloud-common-system cloud-common-xxl cloud-common-rabbit + cloud-common-cache + cloud-common-kafka + cloud-common-iotdb + cloud-common-caffeine + cloud-common-saas cloud-common diff --git a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/SysCarFaultApplication.java b/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/SysCarFaultApplication.java deleted file mode 100644 index c18a353..0000000 --- a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/SysCarFaultApplication.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.muyu; - -import cn.hutool.core.date.DateTime; -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 javax.xml.crypto.Data; -import java.text.ParseException; -import java.text.SimpleDateFormat; -import java.util.Calendar; -import java.util.Date; -import java.util.Random; -import java.util.TimeZone; - -/** - * @className: SysCarFaultApplication ️✈️ - * @author: Yang 鹏 🦅 - * @date: 2024/9/21 11:06 ⏰ - * @Version: 1.0 - * @description: 故障检测 - */ -@EnableCustomConfig -@EnableMyFeignClients -@SpringBootApplication -public class SysCarFaultApplication { - public static void main (String[] args) throws ParseException { - SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - simpleDateFormat.setTimeZone(TimeZone.getTimeZone("GMT+08")); - String format = simpleDateFormat.format(new Date()); - System.out.println("故障模块启动成功"+format); - SpringApplication.run(SysCarFaultApplication.class, args); - } -} diff --git a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/controller/CarTypeController.java b/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/controller/CarTypeController.java deleted file mode 100644 index 680da12..0000000 --- a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/controller/CarTypeController.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.muyu.fault.controller; - - -import com.muyu.common.core.domain.Result; -import com.muyu.fault.service.CarTypeService; -import io.swagger.v3.oas.annotations.Operation; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -/** - * @className: CarTypeController ️✈️ - * @author: Yang 鹏 🦅 - * @date: 2024/9/23 22:06 ⏰ - * @Version: 1.0 - * @description: - */ -@RequestMapping("/cartype") -@RestController -public class CarTypeController { - - @Autowired - private CarTypeService carTypeService; - - /** - * 车辆类型 - * @return - */ - @PostMapping("/list") - @Operation(summary = "车辆类型",description = "车辆类型信息") - public Result carTypeList(){ - return Result.success(carTypeService.selectcarType()); - } -} diff --git a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/controller/FaultCodeController.java b/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/controller/FaultCodeController.java deleted file mode 100644 index 381a12e..0000000 --- a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/controller/FaultCodeController.java +++ /dev/null @@ -1,92 +0,0 @@ -package com.muyu.fault.controller; - - - -import com.muyu.common.core.domain.Result; -import com.muyu.fault.domain.req.FaultCodeAddReq; -import com.muyu.fault.domain.req.FaultCodeListReq; -import com.muyu.fault.domain.req.FaultCodeUpdReq; -import com.muyu.fault.domain.resp.FaultCodeTotalListResp; -import com.muyu.fault.service.FaultCodeService; -import io.swagger.v3.oas.annotations.Operation; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.autoconfigure.amqp.RabbitAutoConfiguration; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.*; - -/** - * @className: CarTypeController ️✈️ - * @author: Yang 鹏 🦅 - * @date: 2024/9/23 22:06 ⏰ - * @Version: 1.0 - * @description: 车辆故障码 - */ - -@RestController -@RequestMapping("/faultcode") -public class FaultCodeController { - - @Autowired - private FaultCodeService faultCodeService; - - /** - * 故障码展示(仅故障码单表) - * @param faultCodeListReq - * @return - */ - @PostMapping(path = "/list") - @Operation(summary = "故障码列表(单)",description = "展示故障码信息") - public Result selectlist(@Validated @RequestBody FaultCodeListReq faultCodeListReq){ - return Result.success(faultCodeService.selectlist(faultCodeListReq)); - } - - - /** - * 故障码展示(故障码联查) - * @param faultCodeListReq - * @return - */ - @PostMapping("/faultcodelist") - @Operation(summary = "故障码列表(多)",description = "展示故障码信息") - public Result selectfaultcodelist(@Validated @RequestBody FaultCodeListReq faultCodeListReq){ - return Result.success(faultCodeService.selectfaultcodelist(faultCodeListReq)); - } - - - /** - * 新增故障码 - * @param faultCodeAddReq - * @return - */ - @PostMapping("/faultcodeadd") - @Operation(summary = "新增故障码",description = "新增故障码信息") - public Result insertfaultcode(@Validated @RequestBody FaultCodeAddReq faultCodeAddReq){ - faultCodeService.insert(faultCodeAddReq); - return Result.success(null,"新增成功"); - } - - /** - * 修改故障码 - * @param faultCodeUpdReq - * @return - */ - @PostMapping("/faultcodeupd") - @Operation(summary = "修改故障码",description = "修改故障码信息") - public Result updfaultcode(@Validated @RequestBody FaultCodeUpdReq faultCodeUpdReq){ - faultCodeService.upd(faultCodeUpdReq); - return Result.success(null,"修改成功"); - } - - /** - * 删除故障码 - * @param messageTypeId - * @return - */ - @PostMapping("/faultcodedel/{messageTypeId}") - @Operation(summary = "删除故障码",description = "删除故障码信息") - public Result delfaultcode(@PathVariable("messageTypeId") Integer messageTypeId){ - faultCodeService.del(messageTypeId); - return Result.success(null,"删除成功"); - } - -} diff --git a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/controller/FaultConditionController.java b/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/controller/FaultConditionController.java deleted file mode 100644 index 8648deb..0000000 --- a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/controller/FaultConditionController.java +++ /dev/null @@ -1,92 +0,0 @@ -package com.muyu.fault.controller; - - - -import com.muyu.common.core.domain.Result; -import com.muyu.fault.domain.FaultCondition; -import com.muyu.fault.domain.req.FaultConditionAddReq; -import com.muyu.fault.domain.req.FaultConditionListReq; -import com.muyu.fault.domain.req.FaultConditionUpdReq; -import com.muyu.fault.service.FaultConditionService; -import io.swagger.v3.oas.annotations.Operation; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - -/** - * @className: CarTypeController ️✈️ -* @author: Yang 鹏 🦅 -* @date: 2024/9/23 22:06 ⏰ -* @Version: 1.0 -* @description: 故障检测 -*/ - -@RestController -@RequestMapping("/faultcondition") -public class FaultConditionController { - - @Autowired - private FaultConditionService faultConditionService; - - - /** - * 故障规则 - * @param faultConditionListReq - * @return - */ - @PostMapping("/list") - @Operation(summary = "故障规则列表展示",description = "故障规则列表展示") - public Result getfaultrulelist(@RequestBody @Validated FaultConditionListReq faultConditionListReq){ - return Result.success(faultConditionService.getfaultrulelist(faultConditionListReq)); - } - - - /** - * 故障规则添加 - * @param faultConditionAddReq - * @return - */ - @PostMapping("/faultconditionadd") - @Operation(summary = "添加规则",description = "添加故障规则") - public Result faultconditionadd(@RequestBody FaultConditionAddReq faultConditionAddReq){ - //判断车辆类型是否已存在所对应的故障规则 - List faultConditionList = faultConditionService.selectBytypeAndlabel(faultConditionAddReq); - if (faultConditionList.size()>0){ - return Result.error("此车辆类型已存在所对应的故障规则,无需重新制定,可在原规则上进行修改"); - } - faultConditionService.save(FaultCondition.faultConditionadd(faultConditionAddReq)); - return Result.success(null,"规则制定成功"); - } - - /** - * 故障规则修改 - * @param - * @param faultConditionUpdReq - * @return - */ - @PostMapping("/faultconditionupd") - @Operation(summary = "修改规则",description = "修改故障规则") - public Result faultconditionupd( - @RequestBody @Validated FaultConditionUpdReq faultConditionUpdReq){ - faultConditionService.updateById(FaultCondition.faultConditionupd(faultConditionUpdReq,()->faultConditionUpdReq.getCarconditionId())); - return Result.success(null,"规则修改成功"); - } - - - /** - * 故障规则删除 - * @param carconditionId - * @return - */ - @PostMapping("/faultconditiondel/{carconditionId}") - @Operation(summary = "删除规则",description = "删除故障规则") - public Result faultconditiondel(@PathVariable("carconditionId") long carconditionId){ - faultConditionService.removeById(carconditionId); - return Result.success(null,"规则删除成功"); - } - - - -} diff --git a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/controller/FaultDetectionStrategyController.java b/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/controller/FaultDetectionStrategyController.java deleted file mode 100644 index 0f23788..0000000 --- a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/controller/FaultDetectionStrategyController.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.muyu.fault.controller; - -import com.muyu.fault.service.FaultDetectionStrategyService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -/** - * @className: FaultDetectionStrategyController ️✈️ - * @author: Yang 鹏 🦅 - * @date: 2024/9/23 22:06 ⏰ - * @Version: 1.0 - * @description: 车辆故障码 - */ -@RestController -@RequestMapping("/faultdetectionstrategy") -public class FaultDetectionStrategyController { - - @Autowired - private FaultDetectionStrategyService faultDetectionStrategyService; - -} diff --git a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/controller/FaultLabelController.java b/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/controller/FaultLabelController.java deleted file mode 100644 index 8bc5e50..0000000 --- a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/controller/FaultLabelController.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.muyu.fault.controller; - -/** - * @className: FaultLog ️✈️ - * @author: Yang 鹏 🦅 - * @date: 2024/9/23 21:06 ⏰ - * @Version: 1.0 - * @description: - */ - - -import com.muyu.common.core.domain.Result; -import com.muyu.fault.service.FaultLabelService; -import io.swagger.v3.oas.annotations.Operation; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -/** - * 故障码分类 - */ -@RestController -@RequestMapping("/faultlabel") -public class FaultLabelController { - - @Autowired - private FaultLabelService faultLabelService; - - - /** - * 故障名称 - * @return - */ - @PostMapping("/list") - @Operation(summary = "故障名称查询",description = "故障名称信息") - public Result findfaulttype(){ - return Result.success(faultLabelService.select()); - } -} diff --git a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/controller/FaultLogController.java b/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/controller/FaultLogController.java deleted file mode 100644 index 2440f9f..0000000 --- a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/controller/FaultLogController.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.muyu.fault.controller; -import com.muyu.common.core.domain.Result; -import com.muyu.fault.domain.req.FaultLogListReq; -import com.muyu.fault.service.FaultLogService; -import io.swagger.v3.oas.annotations.Operation; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -/** - * @className: FaultLog ️✈️ - * @author: Yang 鹏 🦅 - * @date: 2024/9/23 21:06 ⏰ - * @Version: 1.0 - * @description: - */ -@RestController -@RequestMapping("/faultlog") -public class FaultLogController { - @Autowired - private FaultLogService faultLogService; - - - /** - * 故障日志列表 - * @param faultLogListReq - * @return - */ - @PostMapping("/list") - @Operation(summary = "故障日志列表",description = "故障日志列表展示") - public Result selectfaultlog(@Validated @RequestBody FaultLogListReq faultLogListReq){ - return Result.success(faultLogService.selectfaultlog(faultLogListReq)); - } -} diff --git a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/controller/FaultRuleController.java b/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/controller/FaultRuleController.java deleted file mode 100644 index a60905b..0000000 --- a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/controller/FaultRuleController.java +++ /dev/null @@ -1,49 +0,0 @@ -package com.muyu.fault.controller; - - -import com.muyu.common.core.domain.Result; -import com.muyu.fault.domain.CarFaultRule; -import com.muyu.fault.domain.FaultRule; -import com.muyu.fault.service.FaultRuleService; -import io.swagger.v3.oas.annotations.Operation; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -/** - * @className: FaultLog ️✈️ - * @author: Yang 鹏 🦅 - * @date: 2024/9/23 21:06 ⏰ - * @Version: 1.0 - * @description: 故障检测 - */ -@RestController -@RequestMapping("/faultrule") -public class FaultRuleController { - - @Autowired - private FaultRuleService faultRuleService; - - - /** - * 车辆故障检测 - * @return - */ - @PostMapping("/check-faults") - @Operation(summary = "检查故障",description = "进行故障检查") - public Result checkfault(@Validated FaultRule faultRule){ - String checkfaults = faultRuleService.checkfaults(faultRule); - return Result.success(checkfaults); - } - - - @PostMapping("/cheakfaults") - @Operation(summary = "故障参数匹配检查",description = "获取报文数据与故障参数进行比较") - public Result cheakfaults(@Validated @RequestBody CarFaultRule carFaultRule){ -// faultRuleService.checkfaults(carFaultRule); - return null; - } -} diff --git a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/controller/FaultTypeController.java b/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/controller/FaultTypeController.java deleted file mode 100644 index 30ebfc5..0000000 --- a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/controller/FaultTypeController.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.muyu.fault.controller; - -/** - * @className: FaultLog ️✈️ - * @author: Yang 鹏 🦅 - * @date: 2024/9/23 21:06 ⏰ - * @Version: 1.0 - * @description: 故障检测 - */ -import com.muyu.common.core.domain.Result; -import com.muyu.fault.service.FaultTypeService; -import io.swagger.v3.oas.annotations.Operation; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -/** - * 故障码分类 - */ -@RestController -@RequestMapping("/faulttype") -public class FaultTypeController { - - @Autowired - private FaultTypeService faultTypeService; - - - /** - * 故障码分类查询 - * @return - */ - @PostMapping("/list") - @Operation(summary = "故障码分类查询",description = "故障码分类信息") - public Result findfaulttype(){ - return Result.success(faultTypeService.select()); - } -} diff --git a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/controller/MessageController.java b/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/controller/MessageController.java deleted file mode 100644 index ee0aa0e..0000000 --- a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/controller/MessageController.java +++ /dev/null @@ -1,81 +0,0 @@ -package com.muyu.fault.controller; - - -import com.muyu.common.core.domain.Result; -import com.muyu.fault.domain.message.Message; -import com.muyu.fault.domain.message.MessageReq; -import com.muyu.fault.domain.message.MessageSendReq; -import com.muyu.fault.service.MessageService; -import io.swagger.v3.oas.annotations.Operation; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -/** - * @className: FaultLog ️✈️ - * @author: Yang 鹏 🦅 - * @date: 2024/9/23 21:06 ⏰ - * @Version: 1.0 - * @description: 故障检测 - */ -@RestController -@RequestMapping("/message") -public class MessageController { - - @Autowired - private MessageService messageService; - - /** - * 消息发送 - * @param messageSendReq - * @return - */ - @PostMapping("/sendmessage") - @Operation(summary = "发送消息",description = "站内信消息发送") - public Result sendmessage(@Validated MessageSendReq messageSendReq){ - messageService.sendmessage(messageSendReq); - return Result.success(null,"发送成功"); - } - - /** - * 消息查看 - * @param messageReq - * @param - * @return - */ - @PostMapping("/messagelist") - @Operation(summary = "消息查看(能根据登录人新的信息查看当前登录人的消息栏)",description = "消息查看") - public Result selectmessage(@Validated @RequestBody MessageReq messageReq){ - return Result.success(messageService.selectmessage(messageReq)); - } - - /** - * 查看消息改变状态 - * @param message - * @return - */ - @PostMapping("/changestatus") - @Operation(summary = "状态改变",description = "状态改变") - public Result changestatus(@RequestBody Message message){ - messageService.changestatus(message); - return Result.success(null,"成功"); - } - - - /** - * 查看未读的消息 - * @return - */ - @PostMapping("/unread") - @Operation(summary = "查看未读的消息",description = "查看未读的消息") - public Result unread(){ - return Result.success(messageService.unread()); - } - - - - -} diff --git a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/controller/SysCarFaultController.java b/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/controller/SysCarFaultController.java deleted file mode 100644 index 10728a1..0000000 --- a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/controller/SysCarFaultController.java +++ /dev/null @@ -1,112 +0,0 @@ -package com.muyu.fault.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.fault.domain.SysCarFault; -import com.muyu.fault.service.ISysCarFaultService; -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 - * - * @author Yang鹏 - * @date 2024-09-18 - */ -@RestController -@RequestMapping("/fault") -public class SysCarFaultController extends BaseController -{ - @Resource - private ISysCarFaultService sysCarFaultService; - - /** - * 查询车辆故障列表 - */ - - @GetMapping("/list") - public Result> list(SysCarFault sysCarFault) - { - startPage(); - List list = sysCarFaultService.selectSysCarFaultList(sysCarFault); - return getDataTable(list); - } - - /** - * 导出车辆故障列表 - */ - @RequiresPermissions("syscarfault:fault:export") - @PostMapping("/export") - public void export(HttpServletResponse response, SysCarFault sysCarFault) - { - List list = sysCarFaultService.selectSysCarFaultList(sysCarFault); - ExcelUtil util = new ExcelUtil(SysCarFault.class); - util.exportExcel(response, list, "车辆故障数据"); - } - - /** - * 获取车辆故障详细信息 - */ - @RequiresPermissions("syscarfault:fault:query") - @GetMapping(value = "/{id}") - public Result> getInfo(@PathVariable("id") Long id) - { - return success(sysCarFaultService.selectSysCarFaultById(id)); - } - - /** - * 新增车辆故障 - */ - @RequiresPermissions("syscarfault:fault:add") - @PostMapping - public Result add( - @Validated @RequestBody SysCarFault sysCarFault) - { - if (sysCarFaultService.checkIdUnique(sysCarFault)) { - return error("新增 车辆故障 '" + sysCarFault + "'失败,车辆故障已存在"); - } - sysCarFault.setCreateBy(SecurityUtils.getUsername()); - return toAjax(sysCarFaultService.save(sysCarFault)); - } - - /** - * 修改车辆故障 - */ - @RequiresPermissions("syscarfault:fault:edit") - @PutMapping - public Result edit( - @Validated @RequestBody SysCarFault sysCarFault) - { - if (!sysCarFaultService.checkIdUnique(sysCarFault)) { - return error("修改 车辆故障 '" + sysCarFault + "'失败,车辆故障不存在"); - } - sysCarFault.setUpdateBy(SecurityUtils.getUsername()); - return toAjax(sysCarFaultService.updateById(sysCarFault)); - } - - /** - * 删除车辆故障 - */ - @RequiresPermissions("syscarfault:fault:remove") - @DeleteMapping("/{ids}") - public Result remove(@PathVariable("ids") Long[] ids) - { - sysCarFaultService.removeBatchByIds(Arrays.asList(ids)); - return success(); - } -} diff --git a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/domain/CarFaultRule.java b/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/domain/CarFaultRule.java deleted file mode 100644 index d6c1daf..0000000 --- a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/domain/CarFaultRule.java +++ /dev/null @@ -1,206 +0,0 @@ -package com.muyu.fault.domain; - -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; -import lombok.experimental.SuperBuilder; -/** - * @className: CarFaultRule ️✈️ - * @author: Yang 鹏 🦅 - * @date: 2024/9/23 22:06 ⏰ - * @Version: 1.0 - * @description: - */ -@Data -@AllArgsConstructor -@NoArgsConstructor -@SuperBuilder -public class CarFaultRule {/** - * VIN码VIN码VIN码 - */ -private String vin; - /** - * 时间戳时间戳时间戳 - */ - private long timestamp; - /** - * 经度经度经度 - */ - private double longitude; - /** - * 纬度纬度纬度 - */ - private double latitude; - /** - * 车速车速车速 - */ - private double speed; - /** - * 总里程总里程总里程 - */ - private long TM; - /** - * 总电压总电压总电压 - */ - private double TV; - /** - * 总电流总电流总电流 - */ - private double CC; - /** - * 绝缘电阻绝缘电阻绝缘电阻 - */ - private double IR; - /** - * 档位档位档位 - */ - private String GP; - /** - * 加速踏板行程值加速踏板行程值加速踏板行程值 - */ - private double APTV; - /** - * 制动踏板行程值制动踏板行程值制动踏板行程值 - */ - private double BPTV; - /** - * 燃料消耗率燃料消耗率燃料消耗率 - */ - private double SFC; - /** - * 电机控制器温度电机控制器温度电机控制器温度 - */ - private double MCT; - /** - * 电机转速电机转速电机转速 - */ - private int MS; - /** - * 电机转矩电机转矩电机转矩 - */ - private double MTO; - /** - * 电机温度电机温度电机温度 - */ - private double MTE; - /** - * 电机电压电机电压电机电压 - */ - private double MV; - /** - * 电机电流电机电流电机电流 - */ - private double MC; - /** - * 动力电池剩余电量SOC动力电池剩余电量SOC动力电池剩余电量SOC - */ - private double PBRSOC; - /** - * 当前状态允许的最大反馈功率当前状态允许的最大反馈功率当前状态允许的最大反馈功率 - */ - private double MACSFP; - /** - * 当前状态允许最大放电功率当前状态允许最大放电功率当前状态允许最大放电功率 - */ - private double CSATMDP; - /** - * BMS自检计数器BMS自检计数器BMS自检计数器 - */ - private int BMS; - /** - * 动力电池充放电电流动力电池充放电电流动力电池充放电电流 - */ - private double CADC; - /** - * 动力电池负载端总电压V3动力电池负载端总电压V3动力电池负载端总电压V3 - */ - private double PBLETVV3; - /** - * 单次最大电压单次最大电压单次最大电压 - */ - private double SMV; - /** - * 单体电池最低电压单体电池最低电压单体电池最低电压 - */ - private double MVOAB; - /** - * 单体电池最高温度单体电池最高温度单体电池最高温度 - */ - private double MAXBT; - /** - * 单体电池最低温度单体电池最低温度单体电池最低温度 - */ - private double MINBT; - /** - * 动力电池可用容量动力电池可用容量动力电池可用容量 - */ - private double PBAC; - /** - * 车辆状态车辆状态车辆状态 - */ - private String VS; - /** - * 充电状态充电状态充电状态 - */ - private String CS; - /** - * 运行状态运行状态运行状态 - */ - private String RS; - /** - * SOCSOCSOC - */ - private double SOC; - /** - * 可充电储能装置工作状态可充电储能装置工作状态可充电储能装置工作状态 - */ - private String RESDWC; - /** - * EASEASEAS - */ - private String EAS; - /** - * PTCPTCPTC - */ - private String PTC; - /** - * EPSEPSEPS - */ - private String EPS; - /** - * ABSABSABS - */ - private String ABS; - /** - * MCUMCUMCU - */ - private String MCU; - /** - * 动力电池加热状态动力电池加热状态动力电池加热状态 - */ - private String PBHS; - /** - * 动力电池当前状态动力电池当前状态动力电池当前状态 - */ - private String PBCS; - /** - * 动力电池保温状态动力电池保温状态动力电池保温状态 - */ - private String PBIS; - /** - * DCDCDCDCDCDC - */ - private String DCDC; - /** - * CHGCHGCHG - */ - private String CHG; - /** - * 校验位校验位校验位 - */ - private byte CHB; - /** - * 截止位截止位截止位 - */ - private byte CUB; -} diff --git a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/domain/CarType.java b/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/domain/CarType.java deleted file mode 100644 index f5f1c35..0000000 --- a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/domain/CarType.java +++ /dev/null @@ -1,34 +0,0 @@ -package com.muyu.fault.domain; - -import com.baomidou.mybatisplus.annotation.TableName; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; -import lombok.experimental.SuperBuilder; - -/** - * @className: CarType ️✈️ - * @author: Yang 鹏 🦅 - * @date: 2024/9/23 22:01 ⏰ - * @Version: 1.0 - * @description: - */ -@Data -@AllArgsConstructor -@NoArgsConstructor -@SuperBuilder -@TableName(value = "car_type",autoResultMap = true) -public class CarType { - /** - * 车辆类型ID - */ - private long carTypeId; - /** - * 车辆类型名 - */ - private String carTypeName; - /** - * 车辆规则外键ID - */ - private long carTypeRules; -} diff --git a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/domain/FaultCode.java b/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/domain/FaultCode.java deleted file mode 100644 index 9ae4b02..0000000 --- a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/domain/FaultCode.java +++ /dev/null @@ -1,71 +0,0 @@ -package com.muyu.fault.domain; - -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; -import com.muyu.fault.domain.req.FaultCodeAddReq; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; -import lombok.experimental.SuperBuilder; - -/** - * @className: FaultCode ️✈️ - * @author: Yang 鹏 🦅 - * @date: 2024/9/23 22:21 ⏰ - * @Version: 1.0 - * @description: - */ -@Data -@AllArgsConstructor -@NoArgsConstructor -@SuperBuilder -@TableName(value = "car_faultcode", autoResultMap = true) -public class FaultCode { - /** - * 故障码Id - */ - @TableId(value = "faultcode_id", type = IdType.AUTO) - private long faultcodeId; - /** - * 故障名称Id - */ - private long messageTypeId; - /** - * 故障码 - */ - private String faultcodeNumber; - /** - * 故障组 - */ - private String faultGroup; - /** - * 故障位 - */ - private String faultBit; - /** - * 故障值 - */ - private String faultValue; - /** - * 是否警告 - */ - private Integer isWarning; - - private String faulttypeName; - private String messageTypeName; - private String messageTypeCode; - private String messageTypeBelongs; - - public static FaultCode addfaultcode(FaultCodeAddReq faultCodeAddReq) { - return FaultCode.builder() - .faultcodeId(0) - .messageTypeId(faultCodeAddReq.getMessageTypeId()) - .faultcodeNumber(faultCodeAddReq.getFaultcodeNumber()) - .faultGroup(faultCodeAddReq.getFaultGroup()) - .faultBit(faultCodeAddReq.getFaultBit()) - .faultValue(faultCodeAddReq.getFaultValue()) - .isWarning(faultCodeAddReq.getIsWarning()) - .build(); - } -} diff --git a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/domain/FaultCondition.java b/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/domain/FaultCondition.java deleted file mode 100644 index 1e5c926..0000000 --- a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/domain/FaultCondition.java +++ /dev/null @@ -1,87 +0,0 @@ -package com.muyu.fault.domain; - -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; -import com.muyu.fault.domain.req.FaultConditionAddReq; -import com.muyu.fault.domain.req.FaultConditionUpdReq; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; -import lombok.experimental.SuperBuilder; - -import java.math.BigDecimal; -import java.util.function.Supplier; - -/** - * @className: FaultCondition ️✈️ - * @author: Yang 鹏 🦅 - * @date: 2024/9/23 21:07 ⏰ - * @Version: 1.0 - * @description: - */ -@Data -@AllArgsConstructor -@NoArgsConstructor -@SuperBuilder -@TableName(value = "car_fault_condition",autoResultMap = true) -public class FaultCondition { - /** - * 故障规则表Id - */ - @TableId(value = "carcondition_id",type = IdType.AUTO) - private long carconditionId; - /** - * 车辆类型Id - */ - private long carTypeId; - /** - *故障名称Id - */ - private long messageTypeId; - /** - * 故障条件 - */ - private String faultconditionIdentification; - /** - * 故障规则参数 - */ - private BigDecimal faultconditionParameter; - /** - * 车辆类型名称 - */ - private String carTypeName; - /** - * 故障名称 - */ - private String messageTypeName; - /** - * 报文编码 - */ - private String messageTypeCode; - - - public static FaultCondition faultConditionadd(FaultConditionAddReq faultConditionAddReq){ - return FaultCondition.builder() - .carTypeId(faultConditionAddReq.getCarTypeId()) - .messageTypeId(faultConditionAddReq.getMessageTypeId()) - .faultconditionIdentification(faultConditionAddReq.getFaultconditionIdentification()) - .faultconditionParameter(faultConditionAddReq.getFaultconditionParameter()) - .build(); - } - - public static FaultCondition faultConditionupd(FaultConditionUpdReq faultConditionUpdReq, Supplier idSupplier){ - return FaultCondition.builder() - .carconditionId(faultConditionUpdReq.getCarconditionId()) - .carTypeId(faultConditionUpdReq.getCarTypeId()) - .messageTypeId(faultConditionUpdReq.getMessageTypeId()) - .faultconditionIdentification(faultConditionUpdReq.getFaultconditionIdentification()) - .faultconditionParameter(faultConditionUpdReq.getFaultconditionParameter()) - .build(); - } - - - - - -} diff --git a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/domain/FaultLabel.java b/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/domain/FaultLabel.java deleted file mode 100644 index 3211a6b..0000000 --- a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/domain/FaultLabel.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.muyu.fault.domain; - -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; -import lombok.experimental.SuperBuilder; - -/** - * @className: FaultLabel ️✈️ - * @author: Yang 鹏 🦅 - * @date: 2024/9/23 21:07 ⏰ - * @Version: 1.0 - * @description: - */ -@Data -@AllArgsConstructor -@NoArgsConstructor -@SuperBuilder -@TableName(value = "car_fault_label",autoResultMap = true) -public class FaultLabel { - - /** - *自增主键 - */ - @TableId(value = "message_type_id",type = IdType.AUTO) - private String messageTypeId; - /** - *报文编码 - */ - private String messageTypeCode; - /** - *报文名称 - */ - private String messageTypeName; - /** - *报文所属类别 - */ - private String messageTypeBelongs; - -} diff --git a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/domain/FaultLog.java b/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/domain/FaultLog.java deleted file mode 100644 index 2be245f..0000000 --- a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/domain/FaultLog.java +++ /dev/null @@ -1,68 +0,0 @@ -package com.muyu.fault.domain; - -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.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; -import lombok.experimental.SuperBuilder; - -import java.util.Date; - -/** - * @className: FaultLog ️✈️ - * @author: Yang 鹏 🦅 - * @date: 2024/9/23 21:06 ⏰ - * @Version: 1.0 - * @description: - */ - -@Data -@AllArgsConstructor -@NoArgsConstructor -@SuperBuilder -@TableName(value = "car_fault_log",autoResultMap = true) -public class FaultLog { - - /** - * 故障日志Id - */ - @TableId(value = "log_id",type = IdType.AUTO) - private long logId; - /** - * 故障码Id - */ - private long faultcodeId; - /** - * 车辆Id - */ - private long carInformationId; - /** - * 车辆VIN - */ - private String carVin; - /** - * 开始报警时间 - */ - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @Excel(description = "开始报警时间",defaultValue = "2024-8-9 10:47:57",type = "Date") - private Date startwarningTime; - /** - * 结束报警时间 - */ - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @Excel(description = "结束报警时间",defaultValue = "2024-8-9 10:47:57",type = "Date") - private Date endwarningTime; - /** - * 故障码 - */ - private String faultcodeNumber; - /** - * 车辆vin - */ - private String carInformationVIN; - -} diff --git a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/domain/FaultReport.java b/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/domain/FaultReport.java deleted file mode 100644 index bd26bce..0000000 --- a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/domain/FaultReport.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.muyu.fault.domain; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; -import lombok.experimental.SuperBuilder; - -/** - * @className: FaultReport ️✈️ - * @author: Yang 鹏 🦅 - * @date: 2024/9/23 21:05 ⏰ - * @Version: 1.0 - * @description: - */ - -@Data -@AllArgsConstructor -@NoArgsConstructor -@SuperBuilder -public class FaultReport { - private String VehicleType; - private String FaultDescription; -} diff --git a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/domain/FaultRule.java b/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/domain/FaultRule.java deleted file mode 100644 index d081ac2..0000000 --- a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/domain/FaultRule.java +++ /dev/null @@ -1,67 +0,0 @@ -package com.muyu.fault.domain; - -import com.baomidou.mybatisplus.annotation.TableName; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; -import lombok.experimental.SuperBuilder; - -import java.math.BigDecimal; - -/** - * @className: FaultRule ️✈️ - * @author: Yang 鹏 🦅 - * @date: 2024/9/23 21:05 ⏰ - * @Version: 1.0 - * @description: - */ -@Data -@AllArgsConstructor -@NoArgsConstructor -@SuperBuilder -@TableName(value = "car_fault_condition",autoResultMap = true) -public class FaultRule { - /** - * 触发条件Id - */ - private long conditionId; - - /** - * 故障码Id - */ - private long faultcodeId; - - /** - * 触发条件描述 - */ - private String conditionContent; - - /** - * 单个参数的阈值 - */ - private BigDecimal singleThreshold; - - /** - * 区间参数的阈值的最小值 - */ - private BigDecimal minThreshold; - - /** - * 区间参数的阈值的最大值 - */ - private BigDecimal maxThreshold; - - /** - * 触发条件是否激活 - */ - private Integer isActive; - - /** - * 车辆数据值 - */ - private BigDecimal Threshold; - - - -} - diff --git a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/domain/FaultType.java b/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/domain/FaultType.java deleted file mode 100644 index 613f366..0000000 --- a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/domain/FaultType.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.muyu.fault.domain; - -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; -import lombok.experimental.SuperBuilder; - -/** - * @className: FaultType ️✈️ - * @author: Yang 鹏 🦅 - * @date: 2024/9/23 21:04 ⏰ - * @Version: 1.0 - * @description: - */ -@Data -@AllArgsConstructor -@NoArgsConstructor -@SuperBuilder -@TableName(value = "car_fault_type",autoResultMap = true) -public class FaultType { - /** - *故障类型Id - */ - @TableId(value = "faulttype_id",type = IdType.AUTO) - private long faulttypeId; - /** - *故障类型名称 - */ - private String faulttypeName; -} diff --git a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/domain/MessageDao.java b/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/domain/MessageDao.java deleted file mode 100644 index 0d19cbd..0000000 --- a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/domain/MessageDao.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.muyu.fault.domain; - -import com.muyu.fault.domain.message.Message; -import lombok.Data; - -import java.sql.Connection; -import java.sql.PreparedStatement; - -/** - * @className: MessageDao ️✈️ - * @author: Yang 鹏 🦅 - * @date: 2024/9/23 20:58 ⏰ - * @Version: 1.0 - * @description: - */ -@Data -public class MessageDao { - private Connection connection; - - public MessageDao(Connection connection){ - this.connection=connection; - } - - public void sendMessage(Message message) throws Exception{ - String sql="INSERT INTO `eight`.`car_fault_message` (`id`, `sender`, `receiver`, `content`, `status`, `create_time`, `user_id`) " + - "VALUES (NULL, NULL, NULL, NULL, NULL, NULL, NULL)"; - try(PreparedStatement pstmt=connection.prepareStatement(sql)){ - pstmt.setString(1, message.getContent()); - pstmt.setString(2, message.getSender()); - pstmt.setString(3, message.getReceiver()); - pstmt.setObject(4, message.getCreateTime()); - pstmt.executeUpdate(); - } - - - } -} diff --git a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/domain/MessageService.java b/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/domain/MessageService.java deleted file mode 100644 index 70dea96..0000000 --- a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/domain/MessageService.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.muyu.fault.domain; - -import com.muyu.fault.domain.message.Message; - -import java.time.LocalDateTime; -import java.time.ZoneId; -import java.time.ZonedDateTime; -import java.time.format.DateTimeFormatter; -import java.util.Date; - -/** - * @className: MessageService ️✈️ - * @author: Yang 鹏 🦅 - * @date: 2024/9/23 21:01 ⏰ - * @Version: 1.0 - * @description: 业务逻辑层将负责实现消息的发送逻辑 - */ - -public class MessageService { - private MessageDao messageDao; - - public MessageService(MessageDao messageDao){ - this.messageDao=messageDao; - } - - public void sendMessage(String content,String sender,String receiver){ - - // 定义一个DateTimeFormatter对象,用于格式化日期时间为yyyy-MM-dd HH:mm:ss - DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); - // 获取当前日期和时间 - LocalDateTime now = LocalDateTime.now(); - // 使用formatter格式化当前日期和时间 - String formattedDateTime = now.format(formatter); - // 使用formatter将字符串解析回LocalDateTime - LocalDateTime parsedDateTime = LocalDateTime.parse(formattedDateTime, formatter); - // 然后按照上面的步骤将LocalDateTime转换为Date - ZonedDateTime zdt = parsedDateTime.atZone(ZoneId.systemDefault()); - Date date = Date.from(zdt.toInstant()); - - - Message message = new Message(); - message.setContent(content); - message.setSender(sender); - message.setReceiver(receiver); - message.setCreateTime(date); - - try { - messageDao.sendMessage(message); - } catch (Exception e) { - e.printStackTrace(); - } - - } -} diff --git a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/domain/SysCarFault.java b/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/domain/SysCarFault.java deleted file mode 100644 index e05d86b..0000000 --- a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/domain/SysCarFault.java +++ /dev/null @@ -1,102 +0,0 @@ -package com.muyu.fault.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; - -/** - * 车辆故障对象 sys_car_fault - * - * @author Yang鹏 - * @date 2024-09-18 - */ - -@Data -@Setter -@Getter -@SuperBuilder -@NoArgsConstructor -@AllArgsConstructor -@TableName("sys_car_fault") -public class SysCarFault extends BaseEntity{ - private static final long serialVersionUID = 1L; - - /** 自增主键 */ - @TableId( type = IdType.AUTO) - private Long id; - - /** 车辆故障编码; */ - @Excel(name = "车辆故障编码;") - private String faultCode; - - /** 车辆故障名称 */ - @Excel(name = "车辆故障名称") - private String faultName; - - /** 车辆故障类型 */ - @Excel(name = "车辆故障类型") - private String faultType; - - /** 故障VIN编码 */ - @Excel(name = "故障VIN编码") - private String carVin; - - /** 车辆故障标签 */ - @Excel(name = "车辆故障标签") - private String faultLabel; - - /** 车辆故障位 */ - @Excel(name = "车辆故障位") - private String faultBit; - - /** 车辆故障值 */ - @Excel(name = "车辆故障值") - private String faultValue; - - /** 故障级别; */ - @Excel(name = "故障级别;") - private String faultWarn; - - /** 报警状态(Y.是,N.否) */ - @Excel(name = "报警状态", readConverterExp = "Y=.是,N.否") - private String warnStatus; - - /** 故障描述信息 */ - @Excel(name = "故障描述信息") - private String faultDesc; - - /** 启用状态(1.待处理 2.处理中 3.已处理 4.忽略) */ - @Excel(name = "启用状态(1.待处理 2.处理中 3.已处理 4.忽略)") - private String state; - - - - @Override - public String toString() { - return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) - .append("id", getId()) - .append("faultCode", getFaultCode()) - .append("faultName", getFaultName()) - .append("faultType", getFaultType()) - .append("carVin", getCarVin()) - .append("faultLabel", getFaultLabel()) - .append("faultBit", getFaultBit()) - .append("faultValue", getFaultValue()) - .append("faultWarn", getFaultWarn()) - .append("warnStatus", getWarnStatus()) - .append("faultDesc", getFaultDesc()) - .append("state", getState()) - .append("createBy", getCreateBy()) - .append("createTime", getCreateTime()) - .append("updateBy", getUpdateBy()) - .append("updateTime", getUpdateTime()) - .append("remark", getRemark()) - .toString(); - } -} diff --git a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/domain/WarnLevel.java b/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/domain/WarnLevel.java deleted file mode 100644 index bd25d39..0000000 --- a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/domain/WarnLevel.java +++ /dev/null @@ -1,5 +0,0 @@ -package com.muyu.fault.domain; - -public enum WarnLevel { - LOW, MEDIUM, HIGH -} diff --git a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/domain/message/Message.java b/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/domain/message/Message.java deleted file mode 100644 index bfcca6c..0000000 --- a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/domain/message/Message.java +++ /dev/null @@ -1,66 +0,0 @@ -package com.muyu.fault.domain.message; - -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.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; -import lombok.experimental.SuperBuilder; - -import java.util.Date; - -/** - * @className: Message ️✈️ - * @author: Yang 鹏 🦅 - * @date: 2024/9/22 10:55 ⏰ - * @Version: 1.0 - * @description: - */ -@Data -@AllArgsConstructor -@NoArgsConstructor -@SuperBuilder -@TableName(value = "car_fault_message",autoResultMap = true) -public class Message { - /** - * id - */ - @TableId(value = "id",type = IdType.AUTO) - private long id; - - /** - * 发送者 - */ - private String sender; - - /** - * 接收者 - */ - private String receiver; - - /** - * 消息内容 - */ - private String content; - - /** - * 消息状态 - */ - private Integer status; - - /** - * 创建时间 - */ - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @Excel(description = "消息创建时间",defaultValue = "2024-8-9 10:47:57",type = "Date") - private Date createTime; - /** - * 登录人Id - */ - private long userId; - - -} diff --git a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/domain/message/MessageReq.java b/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/domain/message/MessageReq.java deleted file mode 100644 index 0d18799..0000000 --- a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/domain/message/MessageReq.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.muyu.fault.domain.message; - -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableId; -import com.muyu.common.core.annotation.Excel; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; -import lombok.experimental.SuperBuilder; - -/** - * @className: MessageReq ️✈️ - * @author: Yang 鹏 🦅 - * @date: 2024/9/23 20:59 ⏰ - * @Version: 1.0 - * @description: - */ -@Data -@AllArgsConstructor -@NoArgsConstructor -@SuperBuilder -public class MessageReq { - /** - * 消息状态 - */ - @TableId(type = IdType.AUTO,value = "status") - private Integer status; - /** - * 登录人Id - */ - @Excel(name = "登录人Id") - private long userId; -} diff --git a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/domain/message/MessageSendReq.java b/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/domain/message/MessageSendReq.java deleted file mode 100644 index 7e90572..0000000 --- a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/domain/message/MessageSendReq.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.muyu.fault.domain.message; - -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableId; -import com.fasterxml.jackson.annotation.JsonFormat; -import com.muyu.common.core.annotation.Excel; -import com.muyu.common.core.annotation.Excel; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; - -import java.util.Date; - -/** - * @className: MessageSendReq ️✈️ - * @author: Yang 鹏 🦅 - * @date: 2024/9/23 21:00 ⏰ - * @Version: 1.0 - * @description: - */ -@Data -@AllArgsConstructor -@NoArgsConstructor -@Builder -public class MessageSendReq { - /** - * 发送者 - */ - @TableId(type = IdType.AUTO,value = "id") - private String sender; - /** - * 接收者 - */ - @Excel(name = "接收者") - private String receiver; - - /** - * 消息内容 - */ - @Excel(name = "消息内容") - private String content; - /** - * 登录人Id - */ - @Excel(name = "登录人Id") - private long userId; - /** - * 创建时间 - */ - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @Excel(description = "消息创建时间",defaultValue = "2024-8-9 10:47:57",type = "String") - private Date createTime; -} diff --git a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/domain/message/User.java b/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/domain/message/User.java deleted file mode 100644 index 4fc85cc..0000000 --- a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/domain/message/User.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.muyu.fault.domain.message; - -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableId; -import com.muyu.common.core.annotation.Excel; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; -import lombok.experimental.SuperBuilder; - -/** - * @className: User ️✈️ - * @author: Yang 鹏 🦅 - * @date: 2024/9/23 20:56 ⏰ - * @Version: 1.0 - * @description: - */ -@Data -@AllArgsConstructor -@NoArgsConstructor -@SuperBuilder -public class User { - /** - * 用户id - */ - @TableId(value = "id", type = IdType.AUTO) - private Integer id; - /** - * 用户名 - */ - @Excel(name = "用户名") - private String username; - /** - * 邮箱 - */ - @Excel(name="邮箱") - private String email; -} diff --git a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/domain/req/FaultCodeAddReq.java b/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/domain/req/FaultCodeAddReq.java deleted file mode 100644 index 37d61a1..0000000 --- a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/domain/req/FaultCodeAddReq.java +++ /dev/null @@ -1,69 +0,0 @@ -package com.muyu.fault.domain.req; - -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; -import lombok.experimental.SuperBuilder; - -/** - * @className: FaultLog ️✈️ - * @author: Yang 鹏 🦅 - * @date: 2024/9/23 21:06 ⏰ - * @Version: 1.0 - * @description: 故障检测 - */ -@Data -@AllArgsConstructor -@NoArgsConstructor -@Builder -public class FaultCodeAddReq { - - /** - *故障名称Id - */ - private long messageTypeId; - /** - * 故障名称 - */ - private String messageTypeName; - /** - * 报文编码 - */ - private String messageTypeCode; - - /** - * 故障码 - */ - private String faultcodeNumber; - /** - * 故障分类Id - */ - private long faulttypeId; - /** - * 是否产生报警 - */ - private Integer isWarning; - /** - * 故障描述 - */ - private String faultContent; - /** - *故障组 - */ - private String faultGroup; - /** - *故障位 - */ - private String faultBit; - /** - *故障值 - */ - private String faultValue; - /** - *报文所属类别 - */ - private String messageTypeBelongs; - - -} diff --git a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/domain/req/FaultCodeListReq.java b/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/domain/req/FaultCodeListReq.java deleted file mode 100644 index 0c7907a..0000000 --- a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/domain/req/FaultCodeListReq.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.muyu.fault.domain.req; - -import io.swagger.v3.oas.annotations.tags.Tag; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; - -/** - * @className: FaultLog ️✈️ - * @author: Yang 鹏 🦅 - * @date: 2024/9/23 21:06 ⏰ - * @Version: 1.0 - * @description: - */ - -@Tag(name = "故障码列表请求对象") -@Data -@AllArgsConstructor -@NoArgsConstructor -@Builder -public class FaultCodeListReq { - /** - *故障码 - */ - private String faultcodeNumber; - /** - *故障位 - */ - private String faultBit; - /** - * 页码,从1开始 - */ - private Integer pageNum=1; - /** - * 每页大小 - */ - private Integer pageSize=10; - - -} diff --git a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/domain/req/FaultCodeUpdReq.java b/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/domain/req/FaultCodeUpdReq.java deleted file mode 100644 index c1ed026..0000000 --- a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/domain/req/FaultCodeUpdReq.java +++ /dev/null @@ -1,78 +0,0 @@ -package com.muyu.fault.domain.req; - -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableId; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; - -/** - * @className: FaultLog ️✈️ - * @author: Yang 鹏 🦅 - * @date: 2024/9/23 21:06 ⏰ - * @Version: 1.0 - * @description: 故障检测策略的接口 - */ -@Data -@AllArgsConstructor -@NoArgsConstructor -@Builder -public class FaultCodeUpdReq { - - /** - *故障码Id - */ - private long faultcodeId; - /** - *故障名称Id - */ - private long messageTypeId; - /** - * 故障名称 - */ - private String messageTypeName; - /** - * 报文编码 - */ - private String messageTypeCode; - /** - * 故障码 - */ - private String faultcodeNumber; - /** - * 故障分类Id - */ - private long faulttypeId; - /** - * 是否产生报警 - */ - private Integer isWarning; - /** - * 故障描述 - */ - private String faultContent; - /** - *故障状态 - */ - private Integer faultStatus; - /** - *故障组 - */ - private String faultGroup; - /** - *故障位 - */ - private String faultBit; - /** - *故障值 - */ - private String faultValue; - /** - *报文所属类别 - */ - private String messageTypeBelongs; - - - -} diff --git a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/domain/req/FaultConditionAddReq.java b/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/domain/req/FaultConditionAddReq.java deleted file mode 100644 index bfd372b..0000000 --- a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/domain/req/FaultConditionAddReq.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.muyu.fault.domain.req; - -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; - -import java.math.BigDecimal; - -/** - * @className: FaultLog ️✈️ - * @author: Yang 鹏 🦅 - * @date: 2024/9/23 21:06 ⏰ - * @Version: 1.0 - * @description: 故障检测策略的接口 - */ -@Data -@AllArgsConstructor -@NoArgsConstructor -@Builder -public class FaultConditionAddReq { - /** - * 故障规则表Id - */ - private long carconditionId; - /** - * 车辆类型Id - */ - private long carTypeId; - /** - *故障名称Id - */ - private long messageTypeId; - /** - * 故障条件 - */ - private String faultconditionIdentification; - /** - * 故障规则参数 - */ - private BigDecimal faultconditionParameter; - -} diff --git a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/domain/req/FaultConditionListReq.java b/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/domain/req/FaultConditionListReq.java deleted file mode 100644 index 279e996..0000000 --- a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/domain/req/FaultConditionListReq.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.muyu.fault.domain.req; - -import io.swagger.v3.oas.annotations.tags.Tag; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; - -import java.math.BigDecimal; - -/** - * @className: FaultLog ️✈️ - * @author: Yang 鹏 🦅 - * @date: 2024/9/23 21:06 ⏰ - * @Version: 1.0 - * @description: 故障检测策略的接口 - */ -@Tag(name = "故障规则列表请求对象") -@Data -@AllArgsConstructor -@NoArgsConstructor -@Builder -public class FaultConditionListReq { - - - /** - * 车辆类型Id - */ - private long carTypeId; - /** - *故障名称Id - */ - private long messageTypeId; - /** - * 页码,从1开始 - */ - private Integer pageNum=1; - /** - * 每页大小 - */ - private Integer pageSize=10; -} diff --git a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/domain/req/FaultConditionUpdReq.java b/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/domain/req/FaultConditionUpdReq.java deleted file mode 100644 index 615cbe7..0000000 --- a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/domain/req/FaultConditionUpdReq.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.muyu.fault.domain.req; - -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; - -import java.math.BigDecimal; - -/** - * @className: FaultLog ️✈️ - * @author: Yang 鹏 🦅 - * @date: 2024/9/23 21:06 ⏰ - * @Version: 1.0 - * @description: 故障检测策略的接口 - */ -@Data -@AllArgsConstructor -@NoArgsConstructor -@Builder -public class FaultConditionUpdReq { - - /** - * 故障规则表Id - */ - private long carconditionId; - /** - * 车辆类型Id - */ - private long carTypeId; - /** - *故障名称Id - */ - private long messageTypeId; - /** - * 故障条件 - */ - private String faultconditionIdentification; - /** - * 故障规则参数 - */ - private BigDecimal faultconditionParameter; -} diff --git a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/domain/req/FaultLogListReq.java b/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/domain/req/FaultLogListReq.java deleted file mode 100644 index 9bc7697..0000000 --- a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/domain/req/FaultLogListReq.java +++ /dev/null @@ -1,56 +0,0 @@ -package com.muyu.fault.domain.req; - -import com.fasterxml.jackson.annotation.JsonFormat; -import com.muyu.common.core.annotation.Excel; -import io.swagger.v3.oas.annotations.tags.Tag; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; - -import java.util.Date; - -/** - * @className: FaultLog ️✈️ - * @author: Yang 鹏 🦅 - * @date: 2024/9/23 21:06 ⏰ - * @Version: 1.0 - * @description: 故障检测策略的接口 - */ -@Tag(name = "故障日志列表请求对象") -@Data -@AllArgsConstructor -@NoArgsConstructor -@Builder -public class FaultLogListReq { - - /** - * 故障码Id - */ - private long faultcodeId; - /** - * 车辆VIN - */ - private String carVin; - /** - * 开始报警时间 - */ - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @Excel(description = "开始报警时间",defaultValue = "2024-8-9 10:47:57",type = "Date") - private Date startwarningTime; - /** - * 结束报警时间 - */ - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @Excel(description = "结束报警时间",defaultValue = "2024-8-9 10:47:57",type = "Date") - private Date endwarningTime; - - /** - * 页码,从1开始 - */ - private Integer pageNum=1; - /** - * 每页大小 - */ - private Integer pageSize=10; -} diff --git a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/domain/resp/FaultCodeListResp.java b/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/domain/resp/FaultCodeListResp.java deleted file mode 100644 index ae9e049..0000000 --- a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/domain/resp/FaultCodeListResp.java +++ /dev/null @@ -1,88 +0,0 @@ -package com.muyu.fault.domain.resp; - -import com.muyu.fault.domain.vo.FaultCodeVo; -import io.swagger.v3.oas.annotations.tags.Tag; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; - -/** - * @className: Messages ️✈️ - * @author: Yang 鹏 🦅 - * @date: 2024/9/22 10:55 ⏰ - * @Version: 1.0 - * @description: - */ - -@Data -@Builder -@AllArgsConstructor -@Tag(name="故障码信息响应对象",description = "故障码查询的响应结果") -public class FaultCodeListResp { - - /** - *故障码Id - */ - private long faultcodeId; - /** - *故障名称Id - */ - private long messageTypeId; - /** - *故障码 - */ - private String faultcodeNumber; - /** - *故障组 - */ - private String faultGroup; - /** - *故障位 - */ - private String faultBit; - /** - *故障值 - */ - private String faultValue; - /** - *是否警告 - */ - private Integer isWarning; - /** - *故障类型名称 - */ - private String faulttypeName; - /** - * 故障名称 - */ - private String messageTypeName; - /** - * 报文编码 - */ - private String messageTypeCode; - /** - *报文所属类别 - */ - private String messageTypeBelongs; - - /** - * 数据库对象构建为返回结果对象 - * @param faultCodeVO - * @return - */ - public static FaultCodeListResp faultCodeListResp(FaultCodeVo faultCodeVO){ - return FaultCodeListResp.builder() - .faultcodeId(faultCodeVO.getFaultcodeId()) - .messageTypeId(faultCodeVO.getMessageTypeId()) - .faultcodeNumber(faultCodeVO.getFaultcodeNumber()) - .faultGroup(faultCodeVO.getFaultGroup()) - .faultBit(faultCodeVO.getFaultBit()) - .faultValue(faultCodeVO.getFaultValue()) - .isWarning(faultCodeVO.getIsWarning()) - .faulttypeName(faultCodeVO.getFaulttypeName()) - .messageTypeName(faultCodeVO.getMessageTypeName()) - .messageTypeCode(faultCodeVO.getMessageTypeCode()) - .messageTypeBelongs(faultCodeVO.getMessageTypeBelongs()) - .build(); - } -} diff --git a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/domain/resp/FaultCodeTotalListResp.java b/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/domain/resp/FaultCodeTotalListResp.java deleted file mode 100644 index bfa9107..0000000 --- a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/domain/resp/FaultCodeTotalListResp.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.muyu.fault.domain.resp; - -import io.swagger.v3.oas.annotations.tags.Tag; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; -import lombok.experimental.SuperBuilder; - -import java.util.List; - -/** - * @className: Messages ️✈️ - * @author: Yang 鹏 🦅 - * @date: 2024/9/22 10:55 ⏰ - * @Version: 1.0 - * @description: - */ -@Data -@SuperBuilder -@AllArgsConstructor -@NoArgsConstructor -@Tag(name="数据总数列表",description = "数据和总数的响应") -public class FaultCodeTotalListResp { - - - private List faultCodeListRespList; - - private long total; - - public static FaultCodeTotalListResp faultCodeTotalListResp(List faultCodeListRespList,long total){ - FaultCodeTotalListResp faultCodeTotalListResp = new FaultCodeTotalListResp(); - faultCodeTotalListResp.setFaultCodeListRespList(faultCodeListRespList); - faultCodeTotalListResp.setTotal(total); - return faultCodeTotalListResp; - } - - -} diff --git a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/domain/resp/FaultConditionListResp.java b/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/domain/resp/FaultConditionListResp.java deleted file mode 100644 index 0af43ed..0000000 --- a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/domain/resp/FaultConditionListResp.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.muyu.fault.domain.resp; - - -import com.muyu.fault.domain.FaultCondition; -import io.swagger.v3.oas.annotations.tags.Tag; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; - -import java.math.BigDecimal; - -/** - * @className: FaultLog ️✈️ - * @author: Yang 鹏 🦅 - * @date: 2024/9/23 21:06 ⏰ - * @Version: 1.0 - * @description: - */ - -@Data -@Builder -@AllArgsConstructor -@Tag(name="故障规则信息响应对象",description = "故障规则查询的响应结果") -public class FaultConditionListResp { - - /** - * 故障规则表Id - */ - private long carconditionId; - /** - * 车辆类型Id - */ - private long carTypeId; - /** - *故障名称Id - */ - private long messageTypeId; - /** - * 故障条件 - */ - private String faultconditionIdentification; - /** - * 故障规则参数 - */ - private BigDecimal faultconditionParameter; - /** - * 车辆类型名称 - */ - private String carTypeName; - /** - * 故障名称 - */ - private String messageTypeName; - /** - * 报文编码 - */ - private String messageTypeCode; - - /** - * 数据库对象构建为返回结果对象 - * @param faultCondition - * @return - */ - public static FaultConditionListResp faultConditionListResp(FaultCondition faultCondition){ - return FaultConditionListResp.builder() - .carconditionId(faultCondition.getCarconditionId()) - .carTypeId(faultCondition.getCarTypeId()) - .messageTypeId(faultCondition.getMessageTypeId()) - .faultconditionParameter(faultCondition.getFaultconditionParameter()) - .faultconditionIdentification(faultCondition.getFaultconditionIdentification()) - .carTypeName(faultCondition.getCarTypeName()) - .messageTypeName(faultCondition.getMessageTypeName()) - .messageTypeCode(faultCondition.getMessageTypeCode()) - .build(); - } -} diff --git a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/domain/resp/FaultConditionTotalListResp.java b/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/domain/resp/FaultConditionTotalListResp.java deleted file mode 100644 index 1968d71..0000000 --- a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/domain/resp/FaultConditionTotalListResp.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.muyu.fault.domain.resp; - -import io.swagger.v3.oas.annotations.tags.Tag; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; -import lombok.experimental.SuperBuilder; - -import java.util.List; - -/** - * @className: FaultLog ️✈️ - * @author: Yang 鹏 🦅 - * @date: 2024/9/23 21:06 ⏰ - * @Version: 1.0 - * @description: 故障检测策略的接口 - */ -@Data -@SuperBuilder -@AllArgsConstructor -@NoArgsConstructor -@Tag(name="故障规则数据总数列表",description = "数据和总数的响应") -public class FaultConditionTotalListResp { - - private List faultConditionListRespList; - - private long total; - - public static FaultConditionTotalListResp faultConditionTotalListResp(List faultConditionListRespList,long total){ - FaultConditionTotalListResp faultConditionTotalListResp = new FaultConditionTotalListResp(); - faultConditionTotalListResp.setFaultConditionListRespList(faultConditionListRespList); - faultConditionTotalListResp.setTotal(total); - return faultConditionTotalListResp; - } -} diff --git a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/domain/resp/FaultLogListResp.java b/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/domain/resp/FaultLogListResp.java deleted file mode 100644 index d0bfaa2..0000000 --- a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/domain/resp/FaultLogListResp.java +++ /dev/null @@ -1,83 +0,0 @@ -package com.muyu.fault.domain.resp; - -import com.fasterxml.jackson.annotation.JsonFormat; - -import com.muyu.fault.domain.FaultLog; -import com.muyu.common.core.annotation.Excel; -import io.swagger.v3.oas.annotations.tags.Tag; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; - -import java.util.Date; - -/** - * @className: Messages ️✈️ - * @author: Yang 鹏 🦅 - * @date: 2024/9/22 10:55 ⏰ - * @Version: 1.0 - * @description: - */ -@Data -@Builder -@AllArgsConstructor -@Tag(name="故障日志信息响应对象",description = "故障日志的响应结果") -public class FaultLogListResp { - - - /** - * 故障日志Id - */ - private long logId; - /** - * 故障码Id - */ - private long faultcodeId; - /** - * 车辆Id - */ - private long carInformationId; - /** - * 车辆VIN - */ - private String carVin; - /** - * 开始报警时间 - */ - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @Excel(description = "开始报警时间",defaultValue = "2024-8-9 10:47:57",type = "Date") - private Date startwarningTime; - /** - * 结束报警时间 - */ - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @Excel(description = "结束报警时间",defaultValue = "2024-8-9 10:47:57",type = "Date") - private Date endwarningTime; - /** - * 故障码 - */ - private String faultcodeNumber; - /** - * 车辆vin - */ - private String carInformationVIN; - - - /** - * 数据库对象构建为返回结果对象 - * @param faultLog - * @return - */ - public static FaultLogListResp faultLogListResp(FaultLog faultLog){ - return FaultLogListResp.builder() - .logId(faultLog.getLogId()) - .faultcodeId(faultLog.getFaultcodeId()) - .carInformationId(faultLog.getCarInformationId()) - .carVin(faultLog.getCarVin()) - .startwarningTime(faultLog.getStartwarningTime()) - .endwarningTime(faultLog.getEndwarningTime()) - .faultcodeNumber(faultLog.getFaultcodeNumber()) - .carInformationVIN(faultLog.getCarInformationVIN()) - .build(); - } -} diff --git a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/domain/resp/FaultLogTotalListResp.java b/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/domain/resp/FaultLogTotalListResp.java deleted file mode 100644 index b77392d..0000000 --- a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/domain/resp/FaultLogTotalListResp.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.muyu.fault.domain.resp; - -import io.swagger.v3.oas.annotations.tags.Tag; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; -import lombok.experimental.SuperBuilder; - -import java.util.List; - -/** - * @className: Messages ️✈️ - * @author: Yang 鹏 🦅 - * @date: 2024/9/22 10:55 ⏰ - * @Version: 1.0 - * @description: - */ - -@Data -@SuperBuilder -@AllArgsConstructor -@NoArgsConstructor -@Tag(name="故障日志数据总数列表",description = "数据和总数的响应") -public class FaultLogTotalListResp { - - private List faultLogListRespList; - - private long total; - - public static FaultLogTotalListResp faultLogTotalListResp(List faultLogListRespList,long total){ - FaultLogTotalListResp faultLogTotalListResp = new FaultLogTotalListResp(); - faultLogTotalListResp.setFaultLogListRespList(faultLogListRespList); - faultLogTotalListResp.setTotal(total); - return faultLogTotalListResp; - } -} diff --git a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/domain/vo/FaultCodeVo.java b/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/domain/vo/FaultCodeVo.java deleted file mode 100644 index 56f3c00..0000000 --- a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/domain/vo/FaultCodeVo.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.muyu.fault.domain.vo; - -import com.muyu.fault.domain.FaultCode; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; -import lombok.experimental.SuperBuilder; -/** - * @className: FaultCodeVo ️✈️ - * @author: Yang 鹏 🦅 - * @date: 2024/9/23 22:18 ⏰ - * @Version: 1.0 - * @description: - */ -@EqualsAndHashCode(callSuper = true) -@Data -@AllArgsConstructor -@NoArgsConstructor -@SuperBuilder -public class FaultCodeVo extends FaultCode { - /** - *故障类型名称 - */ - private String faulttypeName; - /** - * 故障名称 - */ - private String messageTypeName; - /** - * 报文编码 - */ - private String messageTypeCode; - /** - *报文所属类别 - */ - private String messageTypeBelongs; - - -} diff --git a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/mapper/CarTypeMapper.java b/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/mapper/CarTypeMapper.java deleted file mode 100644 index 2460a6a..0000000 --- a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/mapper/CarTypeMapper.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.muyu.fault.mapper; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.muyu.fault.domain.CarType; -import org.apache.ibatis.annotations.Mapper; - -/** - * @className: CarTypeMapper ️✈️ - * @author: Yang 鹏 🦅 - * @date: 2024/9/23 21:06 ⏰ - * @Version: 1.0 - * @description: 故障检测策略的接口 - */ -@Mapper -public interface CarTypeMapper extends BaseMapper { - -} diff --git a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/mapper/FaultCodeMapper.java b/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/mapper/FaultCodeMapper.java deleted file mode 100644 index bb36881..0000000 --- a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/mapper/FaultCodeMapper.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.muyu.fault.mapper; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; - -import com.muyu.fault.domain.FaultCode; - -import com.muyu.fault.domain.FaultLabel; -import com.muyu.fault.domain.req.FaultCodeAddReq; -import com.muyu.fault.domain.req.FaultCodeListReq; -import com.muyu.fault.domain.req.FaultCodeUpdReq; -import com.muyu.fault.domain.vo.FaultCodeVo; -import org.apache.ibatis.annotations.Mapper; -import org.apache.ibatis.annotations.Param; - -import java.util.List; - -/** - * @className: FaultCodeMapper ️✈️ - * @author: Yang 鹏 🦅 - * @date: 2024/9/23 21:06 ⏰ - * @Version: 1.0 - * @description: 故障检测策略的接口 - */ -@Mapper -public interface FaultCodeMapper extends BaseMapper { - - List selectfaultcodelist(FaultCodeListReq faultCodeListReq); - - - - //新增故障码 - FaultLabel selectfaultName(@Param("messageTypeName") String messageTypeName); - FaultCode selectfaultCode(@Param("faultcodeNumber") String faultcodeNumber); - Integer insertfaultlabel(FaultCodeAddReq faultCodeAddReq); - Integer insertfaultcode(FaultCodeAddReq faultCodeAddReq); - - //修改故障码 - Integer updfaultlabel(FaultCodeUpdReq faultCodeUpdReq); - Integer updfaultcode(FaultCodeUpdReq faultCodeUpdReq); - - - - Integer delfaultcode(@Param("messageTypeId") long messageTypeId); - Integer delfaultlabel(@Param("messageTypeId") long messageTypeId); -} diff --git a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/mapper/FaultConditionMapper.java b/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/mapper/FaultConditionMapper.java deleted file mode 100644 index 006db23..0000000 --- a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/mapper/FaultConditionMapper.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.muyu.fault.mapper; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; - -import com.muyu.fault.domain.FaultCondition; -import com.muyu.fault.domain.req.FaultConditionAddReq; -import com.muyu.fault.domain.req.FaultConditionListReq; -import org.apache.ibatis.annotations.Mapper; - -import java.util.List; - -/** - * @className: FaultConditionMapper ️✈️ - * @author: Yang 鹏 🦅 - * @date: 2024/9/23 21:06 ⏰ - * @Version: 1.0 - * @description: 故障检测策略的接口 - */ -@Mapper -public interface FaultConditionMapper extends BaseMapper { - - List selectfaultconditionlist(FaultConditionListReq faultConditionListReq); - - - List selectBytypeAndlabel(FaultConditionAddReq faultConditionAddReq); -} diff --git a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/mapper/FaultDetectionStrategyMapper.java b/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/mapper/FaultDetectionStrategyMapper.java deleted file mode 100644 index 1164673..0000000 --- a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/mapper/FaultDetectionStrategyMapper.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.muyu.fault.mapper; - -/** - * @className: FaultDetectionStrategyMapper ️✈️ - * @author: Yang 鹏 🦅 - * @date: 2024/9/23 23:59 ⏰ - * @Version: 1.0 - * @description: - */ -public interface FaultDetectionStrategyMapper { -} diff --git a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/mapper/FaultLabelMapper.java b/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/mapper/FaultLabelMapper.java deleted file mode 100644 index c463cd4..0000000 --- a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/mapper/FaultLabelMapper.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.muyu.fault.mapper; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.muyu.fault.domain.FaultLabel; -import org.apache.ibatis.annotations.Mapper; - -/** - * @className: FaultLabelMapper ️✈️ - * @author: Yang 鹏 🦅 - * @date: 2024/9/23 21:06 ⏰ - * @Version: 1.0 - * @description: 故障检测策略的接口 - */ -@Mapper -public interface FaultLabelMapper extends BaseMapper { -} diff --git a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/mapper/FaultLogMapper.java b/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/mapper/FaultLogMapper.java deleted file mode 100644 index e21d993..0000000 --- a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/mapper/FaultLogMapper.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.muyu.fault.mapper; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; - -import com.muyu.fault.domain.FaultLog; -import com.muyu.fault.domain.req.FaultLogListReq; -import org.apache.ibatis.annotations.Mapper; - -import java.util.List; - -/** - * @className: FaultLog ️✈️ - * @author: Yang 鹏 🦅 - * @date: 2024/9/23 21:06 ⏰ - * @Version: 1.0 - * @description: 故障检测策略的接口 - */ -@Mapper -public interface FaultLogMapper extends BaseMapper { - - - List selectfaultLogMapper(FaultLogListReq faultLogListReq); - -} diff --git a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/mapper/FaultRuleMapper.java b/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/mapper/FaultRuleMapper.java deleted file mode 100644 index aa31e05..0000000 --- a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/mapper/FaultRuleMapper.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.muyu.fault.mapper; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.muyu.fault.domain.FaultRule; -import org.apache.ibatis.annotations.Mapper; - -/** - * @className: FaultRuleMapper ️✈️ - * @author: Yang 鹏 🦅 - * @date: 2024/9/23 21:06 ⏰ - * @Version: 1.0 - * @description: 故障检测策略的接口 - */ -@Mapper -public interface FaultRuleMapper extends BaseMapper { -} diff --git a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/mapper/FaultTypeMapper.java b/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/mapper/FaultTypeMapper.java deleted file mode 100644 index f2a0305..0000000 --- a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/mapper/FaultTypeMapper.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.muyu.fault.mapper; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; - -import com.muyu.fault.domain.FaultType; -import org.apache.ibatis.annotations.Mapper; - -/** - * @className: FaultTypeMapper ️✈️ - * @author: Yang 鹏 🦅 - * @date: 2024/9/23 21:06 ⏰ - * @Version: 1.0 - * @description: 故障检测策略的接口 - */ -@Mapper -public interface FaultTypeMapper extends BaseMapper { - Integer add(FaultType faultType); - - Integer update(FaultType faultType); - - Integer delete(Integer id); -} diff --git a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/mapper/MessageMapper.java b/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/mapper/MessageMapper.java deleted file mode 100644 index 6ed2bd3..0000000 --- a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/mapper/MessageMapper.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.muyu.fault.mapper; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; - -import com.muyu.fault.domain.message.Message; -import org.apache.ibatis.annotations.Mapper; - -import java.util.List; - -/** - * @className: MessageMapper ️✈️ - * @author: Yang 鹏 🦅 - * @date: 2024/9/23 21:06 ⏰ - * @Version: 1.0 - * @description: - */ -@Mapper -public interface MessageMapper extends BaseMapper { - void changestatus(Message message); - - List unread(); - -} diff --git a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/mapper/SysCarFaultMapper.java b/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/mapper/SysCarFaultMapper.java deleted file mode 100644 index 0bde603..0000000 --- a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/mapper/SysCarFaultMapper.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.muyu.fault.mapper; - -import com.muyu.fault.domain.SysCarFault; -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import org.apache.ibatis.annotations.Mapper; - -/** - * @className: MessageMapper ️✈️ - * @author: Yang 鹏 🦅 - * @date: 2024-09-18 21:06 ⏰ - * @Version: 1.0 - * @description: 车辆故障Mapper接口 - */ -@Mapper -public interface SysCarFaultMapper extends BaseMapper{ - -} diff --git a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/service/CarTypeService.java b/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/service/CarTypeService.java deleted file mode 100644 index 33aad1c..0000000 --- a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/service/CarTypeService.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.muyu.fault.service; - -import com.baomidou.mybatisplus.extension.service.IService; -import com.muyu.fault.domain.CarType; - - -import java.util.List; - -/** - * @className: CarTypeService ️✈️ - * @author: Yang 鹏 🦅 - * @date: 2024/9/23 21:06 ⏰ - * @Version: 1.0 - * @description: - */ -public interface CarTypeService extends IService { - - /** - * 车辆类型 - * @return - */ - List selectcarType(); - -} diff --git a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/service/FaultCodeService.java b/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/service/FaultCodeService.java deleted file mode 100644 index 1d5fd57..0000000 --- a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/service/FaultCodeService.java +++ /dev/null @@ -1,56 +0,0 @@ -package com.muyu.fault.service; - - -import com.baomidou.mybatisplus.extension.service.IService; -import com.muyu.fault.domain.req.FaultCodeAddReq; -import com.muyu.fault.domain.req.FaultCodeListReq; -import com.muyu.fault.domain.req.FaultCodeUpdReq; -import com.muyu.fault.domain.resp.FaultCodeTotalListResp; -import com.muyu.fault.domain.vo.FaultCodeVo; - -/** - * @className: FaultCodeService ️✈️ - * @author: Yang 鹏 🦅 - * @date: 2024/9/23 21:06 ⏰ - * @Version: 1.0 - * @description: 故障检测策略的接口 - */ -public interface FaultCodeService extends IService { - - /** - * 故障码展示 - * @param faultCodeListReq - * @return - */ - FaultCodeTotalListResp selectlist(FaultCodeListReq faultCodeListReq); - - /** - * 故障码展示(故障码联查) - * @param faultCodeListReq - * @return - */ - FaultCodeTotalListResp selectfaultcodelist(FaultCodeListReq faultCodeListReq); - - /** - * 新增故障码 - * @param faultCodeAddReq - * @return - */ - void insert(FaultCodeAddReq faultCodeAddReq); - - - /** - * 修改故障码 - * @param faultCodeUpdReq - * @return - */ - void upd(FaultCodeUpdReq faultCodeUpdReq); - - - /** - * 删除故障码 - * @param messageTypeId - * @return - */ - void del(Integer messageTypeId); -} diff --git a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/service/FaultConditionService.java b/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/service/FaultConditionService.java deleted file mode 100644 index 3c8e815..0000000 --- a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/service/FaultConditionService.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.muyu.fault.service; - -import com.baomidou.mybatisplus.extension.service.IService; -import com.muyu.fault.domain.FaultCondition; -import com.muyu.fault.domain.req.FaultConditionAddReq; -import com.muyu.fault.domain.req.FaultConditionListReq; -import com.muyu.fault.domain.resp.FaultConditionTotalListResp; - - -import java.util.List; - -/** - * @className: FaultConditionService ️✈️ - * @author: Yang 鹏 🦅 - * @date: 2024/9/23 21:06 ⏰ - * @Version: 1.0 - * @description: 故障检测策略的接口 - */ -public interface FaultConditionService extends IService { - - - /** - * 故障规则 - * @param faultConditionListReq - * @return - */ - FaultConditionTotalListResp getfaultrulelist(FaultConditionListReq faultConditionListReq); - - /** - * 故障规则添加 - * @param faultConditionAddReq - * @return - */ - List selectBytypeAndlabel(FaultConditionAddReq faultConditionAddReq); -} diff --git a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/service/FaultDetectionStrategy.java b/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/service/FaultDetectionStrategy.java deleted file mode 100644 index 2d4cc55..0000000 --- a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/service/FaultDetectionStrategy.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.muyu.fault.service; - -import com.muyu.fault.domain.CarFaultRule; -import com.muyu.fault.domain.FaultReport; -/** - * @className: FaultDetectionStrategy ️✈️ - * @author: Yang 鹏 🦅 - * @date: 2024/9/23 21:06 ⏰ - * @Version: 1.0 - * @description: 故障检测策略的接口 - */ -public interface FaultDetectionStrategy { - - FaultReport detectFaults(CarFaultRule carFaultRule); - -} diff --git a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/service/FaultDetectionStrategyService.java b/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/service/FaultDetectionStrategyService.java deleted file mode 100644 index 805cf15..0000000 --- a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/service/FaultDetectionStrategyService.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.muyu.fault.service; - -public interface FaultDetectionStrategyService { -} diff --git a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/service/FaultLabelService.java b/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/service/FaultLabelService.java deleted file mode 100644 index ec9b278..0000000 --- a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/service/FaultLabelService.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.muyu.fault.service; - -import com.baomidou.mybatisplus.extension.service.IService; -import com.muyu.fault.domain.FaultLabel; - - -import java.util.List; - -/** - * @className: FaultLabelService ️✈️ - * @author: Yang 鹏 🦅 - * @date: 2024/9/23 21:06 ⏰ - * @Version: 1.0 - * @description: 故障检测 - */ -public interface FaultLabelService extends IService { - /** - * 故障名称 - * @return - */ - List select(); - -} diff --git a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/service/FaultLogService.java b/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/service/FaultLogService.java deleted file mode 100644 index fa5f126..0000000 --- a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/service/FaultLogService.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.muyu.fault.service; - -import com.baomidou.mybatisplus.extension.service.IService; -import com.muyu.fault.domain.FaultLog; -import com.muyu.fault.domain.req.FaultLogListReq; -import com.muyu.fault.domain.resp.FaultLogTotalListResp; - - -import java.util.List; - -/** - * @className: FaultLogService ️✈️ - * @author: Yang 鹏 🦅 - * @date: 2024/9/23 21:06 ⏰ - * @Version: 1.0 - * @description: 故障检测 - */ -public interface FaultLogService extends IService { - - /** - * 故障日志列表 - * @param faultLogListReq - * @return - */ - FaultLogTotalListResp selectfaultlog(FaultLogListReq faultLogListReq); -} diff --git a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/service/FaultRuleService.java b/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/service/FaultRuleService.java deleted file mode 100644 index 1569c52..0000000 --- a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/service/FaultRuleService.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.muyu.fault.service; - -import com.baomidou.mybatisplus.extension.service.IService; -import com.muyu.fault.domain.FaultRule; - - -/** - * @className: FaultRuleService ️✈️ - * @author: Yang 鹏 🦅 - * @date: 2024/9/23 21:06 ⏰ - * @Version: 1.0 - * @description: 故障检测 - */ -public interface FaultRuleService extends IService { - - /** - * 车辆故障检测 - * @return - */ - String checkfaults(FaultRule faultRule); - - -} diff --git a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/service/FaultTypeService.java b/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/service/FaultTypeService.java deleted file mode 100644 index 01868e6..0000000 --- a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/service/FaultTypeService.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.muyu.fault.service; - -import com.baomidou.mybatisplus.extension.service.IService; -import com.muyu.fault.domain.FaultType; - -import java.util.List; - -/** - * @className: FaultTypeService ️✈️ - * @author: Yang 鹏 🦅 - * @date: 2024/9/23 21:06 ⏰ - * @Version: 1.0 - * @description: 故障检测 - */ -public interface FaultTypeService extends IService { - - /** - * 故障码分类查询 - * @return - */ - List select(); - - Integer add(FaultType faultType); - - Integer update(FaultType faultType); - - Integer delete(Integer id); -} diff --git a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/service/ISysCarFaultService.java b/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/service/ISysCarFaultService.java deleted file mode 100644 index dc6b566..0000000 --- a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/service/ISysCarFaultService.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.muyu.fault.service; - -import java.util.List; -import com.muyu.fault.domain.SysCarFault; -import com.baomidou.mybatisplus.extension.service.IService; - -/** - * 车辆故障Service接口 - * - * @author Yang鹏 - * @date 2024-09-18 - */ -public interface ISysCarFaultService extends IService { - /** - * 精确查询车辆故障 - * - * @param id 车辆故障主键 - * @return 车辆故障 - */ - public SysCarFault selectSysCarFaultById(Long id); - - /** - * 查询车辆故障列表 - * - * @param sysCarFault 车辆故障 - * @return 车辆故障集合 - */ - public List selectSysCarFaultList(SysCarFault sysCarFault); - - /** - * 判断 车辆故障 id是否唯一 - * @param sysCarFault 车辆故障 - * @return 结果 - */ - Boolean checkIdUnique(SysCarFault sysCarFault); - -} diff --git a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/service/MessageService.java b/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/service/MessageService.java deleted file mode 100644 index 1d0cbe3..0000000 --- a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/service/MessageService.java +++ /dev/null @@ -1,49 +0,0 @@ -package com.muyu.fault.service; - -import com.baomidou.mybatisplus.extension.service.IService; -import com.muyu.fault.domain.message.Message; -import com.muyu.fault.domain.message.MessageReq; -import com.muyu.fault.domain.message.MessageSendReq; - - -import java.util.List; - -/** - * @className: MessageService ️✈️ - * @author: Yang 鹏 🦅 - * @date: 2024/9/23 21:06 ⏰ - * @Version: 1.0 - * @description: 故障检测 - */ -public interface MessageService extends IService { - - /** - * 消息发送 - * @param messageSendReq - * @return - */ - void sendmessage(MessageSendReq messageSendReq); - - /** - * 消息查看 - * @param messageReq - * @param - * @return - */ - List selectmessage(MessageReq messageReq); - - - /** - * 查看消息改变状态 - * @param message - * @return - */ - void changestatus(Message message); - - - /** - * 查看未读的消息 - * @return - */ - List unread(); -} diff --git a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/service/impl/CarTypeServiceImpl.java b/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/service/impl/CarTypeServiceImpl.java deleted file mode 100644 index 6f9b99d..0000000 --- a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/service/impl/CarTypeServiceImpl.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.muyu.fault.service.impl; - -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; - -import com.muyu.fault.domain.CarType; -import com.muyu.fault.mapper.CarTypeMapper; -import com.muyu.fault.service.CarTypeService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import java.util.List; - -/** - * @className: CarFaultRule ️✈️ - * @author: Yang 鹏 🦅 - * @date: 2024/9/23 22:06 ⏰ - * @Version: 1.0 - * @description: - */ -@Service -public class CarTypeServiceImpl extends ServiceImpl implements CarTypeService { - - @Autowired - private CarTypeMapper carTypeMapper; - - /** - * 车辆类型 - * @return - */ - @Override - public List selectcarType() { - LambdaQueryWrapper carTypeLambdaQueryWrapper = new LambdaQueryWrapper<>(); - List list = this.list(carTypeLambdaQueryWrapper); - return list; - } - - -} diff --git a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/service/impl/FaultCodeServiceImpl.java b/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/service/impl/FaultCodeServiceImpl.java deleted file mode 100644 index 9754afa..0000000 --- a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/service/impl/FaultCodeServiceImpl.java +++ /dev/null @@ -1,122 +0,0 @@ -package com.muyu.fault.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.fault.domain.FaultCode; -import com.muyu.fault.domain.FaultLabel; -import com.muyu.fault.domain.req.FaultCodeAddReq; -import com.muyu.fault.domain.req.FaultCodeListReq; -import com.muyu.fault.domain.req.FaultCodeUpdReq; -import com.muyu.fault.domain.resp.FaultCodeListResp; -import com.muyu.fault.domain.resp.FaultCodeTotalListResp; -import com.muyu.fault.domain.vo.FaultCodeVo; -import com.muyu.fault.mapper.FaultCodeMapper; -import com.muyu.fault.service.FaultCodeService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import java.util.List; - -/** - * @className: FaultLog ️✈️ - * @author: Yang 鹏 🦅 - * @date: 2024/9/23 21:06 ⏰ - * @Version: 1.0 - * @description: 故障检测 - */ -@Service -public class FaultCodeServiceImpl extends ServiceImpl implements FaultCodeService { - @Autowired - private FaultCodeMapper faultCodeMapper; - - /** - * 故障码展示 - * @param faultCodeListReq - * @return - */ - @Override - public FaultCodeTotalListResp selectlist(FaultCodeListReq faultCodeListReq) { - Integer pageNum = faultCodeListReq.getPageNum(); - Integer pageSize = faultCodeListReq.getPageSize(); - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.eq(StringUtils.isNotEmpty(faultCodeListReq.getFaultcodeNumber()), - FaultCodeVo::getFaultcodeNumber,faultCodeListReq.getFaultcodeNumber()); - queryWrapper.eq(StringUtils.isNotEmpty(faultCodeListReq.getFaultBit()), - FaultCodeVo::getFaultBit,faultCodeListReq.getFaultBit()); - long count = this.count(queryWrapper); - queryWrapper.last("LIMIT "+ ((pageNum-1)*pageSize)+", "+pageSize); - List faultCodeVOList = this.list(queryWrapper); - List faultCodeListRespList = faultCodeVOList.stream() - .map(FaultCodeListResp::faultCodeListResp) - .toList(); - return FaultCodeTotalListResp.faultCodeTotalListResp(faultCodeListRespList,count); - } - - - /** - * 故障码展示(故障码联查) - * @param faultCodeListReq - * @return - */ - @Override - public FaultCodeTotalListResp selectfaultcodelist(FaultCodeListReq faultCodeListReq) { - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - long count = this.count(queryWrapper); - int offset = (faultCodeListReq.getPageNum() - 1) * faultCodeListReq.getPageSize(); - faultCodeListReq.setPageNum(offset); - List selectfaultcodelist = faultCodeMapper.selectfaultcodelist(faultCodeListReq); - List faultCodeListRespList = selectfaultcodelist.stream() - .map(FaultCodeListResp::faultCodeListResp) - .toList(); - return FaultCodeTotalListResp.faultCodeTotalListResp(faultCodeListRespList,count); - } - - /** - * 新增故障码 - * @param faultCodeAddReq - * @return - */ - @Override - public void insert(FaultCodeAddReq faultCodeAddReq) { - //判断故障名称或故障码是否存在,若都不存在先添加故障名称表,在添加故障码表 - //1.判断故障名称是否存在 - String messageTypeName = faultCodeAddReq.getMessageTypeName(); - FaultLabel faultLabel = faultCodeMapper.selectfaultName(messageTypeName); - //2.判断故障码是否存在 - String faultcodeNumber = faultCodeAddReq.getFaultcodeNumber(); - FaultCode faultCode = faultCodeMapper.selectfaultCode(faultcodeNumber); - if (faultLabel==null && faultCode==null){ - faultCodeMapper.insertfaultlabel(faultCodeAddReq); - faultCodeMapper.insertfaultcode(faultCodeAddReq); - } - } - - - /** - * 修改故障码 - * @param faultCodeUpdReq - * @return - */ - @Override - public void upd(FaultCodeUpdReq faultCodeUpdReq) { - //修改故障名称表信息和故障码表信息 -// faultCodeMapper.updfaultlabel(faultCodeUpdReq); - faultCodeMapper.updfaultcode(faultCodeUpdReq); - } - - - /** - * 删除故障码 - * @param messageTypeId - * @return - */ - @Override - public void del(Integer messageTypeId) { - - //删除故障码表信息 - faultCodeMapper.delfaultcode(messageTypeId); - //删除对应的故障名称表信息 - faultCodeMapper.delfaultlabel(messageTypeId); - } -} diff --git a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/service/impl/FaultConditionServiceImpl.java b/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/service/impl/FaultConditionServiceImpl.java deleted file mode 100644 index 2332018..0000000 --- a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/service/impl/FaultConditionServiceImpl.java +++ /dev/null @@ -1,63 +0,0 @@ -package com.muyu.fault.service.impl; - -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.muyu.fault.domain.FaultCondition; -import com.muyu.fault.domain.req.FaultConditionAddReq; -import com.muyu.fault.domain.req.FaultConditionListReq; -import com.muyu.fault.domain.resp.FaultConditionListResp; -import com.muyu.fault.domain.resp.FaultConditionTotalListResp; -import com.muyu.fault.mapper.FaultConditionMapper; -import com.muyu.fault.service.FaultConditionService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - - -import java.util.List; - -/** - * @className: FaultLog ️✈️ - * @author: Yang 鹏 🦅 - * @date: 2024/9/23 21:06 ⏰ - * @Version: 1.0 - * @description: 故障检测 - */ -@Service -public class FaultConditionServiceImpl extends ServiceImpl implements FaultConditionService { - - @Autowired - private FaultConditionMapper faultConditionMapper; - - - - /** - * 故障规则 - * @param faultConditionListReq - * @return - */ - @Override - public FaultConditionTotalListResp getfaultrulelist(FaultConditionListReq faultConditionListReq) { - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - long count = this.count(queryWrapper); - int offset = (faultConditionListReq.getPageNum() - 1) * faultConditionListReq.getPageSize(); - faultConditionListReq.setPageNum(offset); - - List selectfaultconditionlist = faultConditionMapper.selectfaultconditionlist(faultConditionListReq); - List faultConditionListRespList = selectfaultconditionlist.stream() - .map(FaultConditionListResp::faultConditionListResp) - .toList(); - return FaultConditionTotalListResp.faultConditionTotalListResp(faultConditionListRespList,count); - } - - - /** - * 故障规则添加 判断故障规则是否存在 - * @param faultConditionAddReq - * @return - */ - @Override - public List selectBytypeAndlabel(FaultConditionAddReq faultConditionAddReq) { - List faultConditionList = faultConditionMapper.selectBytypeAndlabel(faultConditionAddReq); - return faultConditionList; - } -} diff --git a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/service/impl/FaultDetectionStrategyServiceImpl.java b/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/service/impl/FaultDetectionStrategyServiceImpl.java deleted file mode 100644 index aa77e83..0000000 --- a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/service/impl/FaultDetectionStrategyServiceImpl.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.muyu.fault.service.impl; - -import com.muyu.fault.mapper.FaultDetectionStrategyMapper; -import com.muyu.fault.service.FaultDetectionStrategyService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -/** - * @className: FaultDetectionStrategyServiceImpl ️✈️ - * @author: Yang 鹏 🦅 - * @date: 2024/9/23 23:58 ⏰ - * @Version: 1.0 - * @description: - */ -@Service -public class FaultDetectionStrategyServiceImpl implements FaultDetectionStrategyService { - - @Autowired - private FaultDetectionStrategyMapper faultDetectionStrategyMapper; -} diff --git a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/service/impl/FaultLabelServiceImpl.java b/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/service/impl/FaultLabelServiceImpl.java deleted file mode 100644 index ceff5c6..0000000 --- a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/service/impl/FaultLabelServiceImpl.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.muyu.fault.service.impl; - -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; - -import com.muyu.fault.domain.FaultLabel; -import com.muyu.fault.mapper.FaultLabelMapper; -import com.muyu.fault.service.FaultLabelService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import java.util.List; - -/** - * @className: FaultLog ️✈️ - * @author: Yang 鹏 🦅 - * @date: 2024/9/23 21:06 ⏰ - * @Version: 1.0 - * @description: 故障检测 - */ -@Service -public class FaultLabelServiceImpl extends ServiceImpl implements FaultLabelService { - @Autowired - private FaultLabelMapper faultLabelMapper; - - - /** - * 故障信息查询 - * @return - */ - @Override - public List select() { - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - List list = this.list(queryWrapper); - return list; - } -} diff --git a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/service/impl/FaultLogServiceImpl.java b/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/service/impl/FaultLogServiceImpl.java deleted file mode 100644 index 1eecb65..0000000 --- a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/service/impl/FaultLogServiceImpl.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.muyu.fault.service.impl; - -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; - -import com.muyu.fault.domain.FaultLog; -import com.muyu.fault.domain.req.FaultLogListReq; -import com.muyu.fault.domain.resp.FaultLogListResp; -import com.muyu.fault.domain.resp.FaultLogTotalListResp; -import com.muyu.fault.mapper.FaultLogMapper; -import com.muyu.fault.service.FaultLogService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import java.util.List; - -/** - * @className: FaultLog ️✈️ - * @author: Yang 鹏 🦅 - * @date: 2024/9/23 21:06 ⏰ - * @Version: 1.0 - * @description: 故障检测 - */ -@Service -public class FaultLogServiceImpl extends ServiceImpl implements FaultLogService { - @Autowired - private FaultLogMapper faultLogMapper; - - /** - * 故障日志列表 - * @param faultLogListReq - * @return - */ - @Override - public FaultLogTotalListResp selectfaultlog(FaultLogListReq faultLogListReq) { - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - long count = this.count(queryWrapper); - int offset = (faultLogListReq.getPageNum() - 1) * faultLogListReq.getPageSize(); - faultLogListReq.setPageNum(offset); - List faultLogListResps = faultLogMapper.selectfaultLogMapper(faultLogListReq); - List faultLogListRespList = faultLogListResps.stream() - .map(FaultLogListResp::faultLogListResp) - .toList(); - return FaultLogTotalListResp.faultLogTotalListResp(faultLogListRespList,count); - } -} diff --git a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/service/impl/FaultRuleServiceImpl.java b/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/service/impl/FaultRuleServiceImpl.java deleted file mode 100644 index ff37c01..0000000 --- a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/service/impl/FaultRuleServiceImpl.java +++ /dev/null @@ -1,66 +0,0 @@ -package com.muyu.fault.service.impl; - -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; - -import com.muyu.fault.domain.FaultRule; -import com.muyu.fault.mapper.FaultRuleMapper; -import com.muyu.fault.service.FaultRuleService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import java.math.BigDecimal; -import java.util.Collections; -import java.util.List; - -/** - * @className: FaultLog ️✈️ - * @author: Yang 鹏 🦅 - * @date: 2024/9/23 21:06 ⏰ - * @Version: 1.0 - * @description: 故障检测 - */ -@Service -public class FaultRuleServiceImpl extends ServiceImpl implements FaultRuleService { - - @Autowired - private FaultRuleMapper faultRuleMapper; - - /** - * 车辆故障检测 - * @return - */ - @Override - public String checkfaults(FaultRule faultRule) { - //获取触发条件 - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - if (Long.valueOf(faultRule.getFaultcodeId())!=null && faultRule.getFaultcodeId()!=0){ - queryWrapper.eq(FaultRule::getFaultcodeId, faultRule.getFaultcodeId()); - } - List faultRuleList = this.list(queryWrapper); - for (FaultRule rule : faultRuleList) { - //单个值比较 - if (faultRule.getSingleThreshold()!=null && faultRule.getMaxThreshold()==null && faultRule.getMinThreshold()==null){ - //大于阈值 - if (faultRule.getConditionContent().contains(">") || faultRule.getConditionContent().contains("大于")){ - if (faultRule.getThreshold().compareTo(rule.getSingleThreshold())>0){ - return "数据超过阈值,出现异常"; - } - } - //小于阈值 - if (faultRule.getConditionContent().contains("<") || faultRule.getConditionContent().contains("小于")){ - if (faultRule.getThreshold().compareTo(rule.getSingleThreshold())<0){ - return "数据过低,出现异常"; - } - } - }else { //区间值比较 - if (faultRule.getThreshold().compareTo(rule.getMinThreshold())<0 || faultRule.getThreshold().compareTo(rule.getMaxThreshold())>0){ - return "数据不在可控范围内,出现异常"; - } - } - } - return "判断出现异常"; - } - - -} diff --git a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/service/impl/FaultTypeServiceImpl.java b/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/service/impl/FaultTypeServiceImpl.java deleted file mode 100644 index 3c67125..0000000 --- a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/service/impl/FaultTypeServiceImpl.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.muyu.fault.service.impl; - -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; - -import com.muyu.fault.domain.FaultType; -import com.muyu.fault.mapper.FaultTypeMapper; -import com.muyu.fault.service.FaultTypeService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import java.util.List; - -/** - * @className: FaultLog ️✈️ - * @author: Yang 鹏 🦅 - * @date: 2024/9/23 21:06 ⏰ - * @Version: 1.0 - * @description: 故障检测 - */ -@Service -public class FaultTypeServiceImpl extends ServiceImpl implements FaultTypeService { - @Autowired - private FaultTypeMapper faultTypeMapper; - /** - * 故障码分类查询 - * @return - */ - @Override - public List select() { - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - List list = this.list(queryWrapper); - return list; - } - - @Override - public Integer add(FaultType faultType) { - return faultTypeMapper.add(faultType); - } - - @Override - public Integer update(FaultType faultType) { - return faultTypeMapper.update(faultType); - } - - @Override - public Integer delete(Integer id) { - return faultTypeMapper.delete(id); - } -} diff --git a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/service/impl/MessageServiceImpl.java b/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/service/impl/MessageServiceImpl.java deleted file mode 100644 index eea14a6..0000000 --- a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/service/impl/MessageServiceImpl.java +++ /dev/null @@ -1,126 +0,0 @@ -package com.muyu.fault.service.impl; - - -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.muyu.common.security.service.TokenService; -import com.muyu.common.security.utils.SecurityUtils; -import com.muyu.common.system.domain.LoginUser; -import com.muyu.fault.domain.message.Message; -import com.muyu.fault.domain.message.MessageReq; -import com.muyu.fault.domain.message.MessageSendReq; -import com.muyu.fault.mapper.MessageMapper; -import com.muyu.fault.service.MessageService; -import jakarta.servlet.http.HttpServletRequest; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import java.time.LocalDateTime; -import java.time.ZoneId; -import java.time.ZonedDateTime; -import java.time.format.DateTimeFormatter; -import java.util.Date; -import java.util.List; - -/** - * @className: FaultLog ️✈️ - * @author: Yang 鹏 🦅 - * @date: 2024/9/23 21:06 ⏰ - * @Version: 1.0 - * @description: 故障检测 - */ -@Service -public class MessageServiceImpl extends ServiceImpl implements MessageService { - @Autowired - private TokenService tokenService; - @Autowired - private HttpServletRequest request; - @Autowired - private MessageMapper messageMapper; - /** - * 消息发送 - * @param messageSendReq - * @return - */ - @Override - public void sendmessage(MessageSendReq messageSendReq) { - String token = SecurityUtils.getToken();// 获取当前Token - LoginUser loginUser = tokenService.getLoginUser(token); // 获取当前登录用户 - if (loginUser == null) { - throw new RuntimeException("用户未登录或Token无效"); - } - Long userid = loginUser.getUserid(); - messageSendReq.setUserId(userid); - - // 定义一个DateTimeFormatter对象,用于格式化日期时间为yyyy-MM-dd HH:mm:ss - DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); - // 获取当前日期和时间 - LocalDateTime now = LocalDateTime.now(); - // 使用formatter格式化当前日期和时间 - String formattedDateTime = now.format(formatter); - // 使用formatter将字符串解析回LocalDateTime - LocalDateTime parsedDateTime = LocalDateTime.parse(formattedDateTime, formatter); - // 然后按照上面的步骤将LocalDateTime转换为Date - ZonedDateTime zdt = parsedDateTime.atZone(ZoneId.systemDefault()); - Date date = Date.from(zdt.toInstant()); - // 现在date是一个包含了字符串中日期和时间的Date对象 - messageSendReq.setCreateTime(date); - - - - } - - - /** - * 消息查看 - * @param messageReq - * @param - * @return - */ - @Override - public List selectmessage(MessageReq messageReq) { - String token = SecurityUtils.getToken();// 获取当前Token - LoginUser loginUser = tokenService.getLoginUser(token); // 获取当前登录用户 - if (loginUser == null) { - throw new RuntimeException("用户未登录或Token无效"); - } - Long userid = loginUser.getUserid(); - messageReq.setUserId(userid); - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); -// queryWrapper.eq(StringUtils.isNotEmpty(String.valueOf(messageReq.getStatus())), -// Message::getStatus,messageReq.getStatus()); -// queryWrapper.eq(StringUtils.isNotEmpty(String.valueOf(messageReq.getUserId())), -// Message::getUserId,messageReq.getUserId()); - if (messageReq.getStatus() != null) { - queryWrapper.eq(Message::getStatus, messageReq.getStatus()); - } - queryWrapper.eq(Message::getUserId, messageReq.getUserId()); - List list = this.list(queryWrapper); - return list; - } - - /** - * 查看消息改变状态 - * @param message - * @return - */ - @Override - public void changestatus(Message message) { - messageMapper.changestatus(message); - } - - /** - * 查看未读的消息 - * @return - */ - @Override - public List unread() { -// return messageMapper.unread(); - return null; - } - - - - - -} diff --git a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/service/impl/SysCarFaultServiceImpl.java b/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/service/impl/SysCarFaultServiceImpl.java deleted file mode 100644 index c219241..0000000 --- a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/service/impl/SysCarFaultServiceImpl.java +++ /dev/null @@ -1,100 +0,0 @@ -package com.muyu.fault.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.fault.domain.SysCarFault; -import com.muyu.fault.mapper.SysCarFaultMapper; -import com.muyu.fault.service.ISysCarFaultService; -import org.springframework.stereotype.Service; -import org.springframework.util.Assert; - -import java.util.List; - -/** - * 车辆故障Service业务层处理 - * - * @author Yang鹏 - * @date 2024-09-18 - */ -@Service -public class SysCarFaultServiceImpl - extends ServiceImpl - implements ISysCarFaultService { - - /** - * 精确查询车辆故障 - * - * @param id 车辆故障主键 - * @return 车辆故障 - */ - @Override - public SysCarFault selectSysCarFaultById(Long id) - { - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - Assert.notNull(id, "id不可为空"); - queryWrapper.eq(SysCarFault::getId, id); - return this.getOne(queryWrapper); - } - - - /** - * 查询车辆故障列表 - * - * @param sysCarFault 车辆故障 - * @return 车辆故障 - */ - @Override - public List selectSysCarFaultList(SysCarFault sysCarFault) - { - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - if (StringUtils.isNotEmpty(sysCarFault.getFaultCode())){ - queryWrapper.eq(SysCarFault::getFaultCode, sysCarFault.getFaultCode()); - } - if (StringUtils.isNotEmpty(sysCarFault.getFaultName())){ - queryWrapper.like(SysCarFault::getFaultName, sysCarFault.getFaultName()); - } - if (StringUtils.isNotEmpty(sysCarFault.getFaultType())){ - queryWrapper.eq(SysCarFault::getFaultType, sysCarFault.getFaultType()); - } - if (StringUtils.isNotEmpty(sysCarFault.getCarVin())){ - queryWrapper.eq(SysCarFault::getCarVin, sysCarFault.getCarVin()); - } - if (StringUtils.isNotEmpty(sysCarFault.getFaultLabel())){ - queryWrapper.eq(SysCarFault::getFaultLabel, sysCarFault.getFaultLabel()); - } - if (StringUtils.isNotEmpty(sysCarFault.getFaultBit())){ - queryWrapper.eq(SysCarFault::getFaultBit, sysCarFault.getFaultBit()); - } - if (StringUtils.isNotEmpty(sysCarFault.getFaultValue())){ - queryWrapper.eq(SysCarFault::getFaultValue, sysCarFault.getFaultValue()); - } - if (StringUtils.isNotEmpty(sysCarFault.getFaultWarn())){ - queryWrapper.eq(SysCarFault::getFaultWarn, sysCarFault.getFaultWarn()); - } - if (StringUtils.isNotEmpty(sysCarFault.getWarnStatus())){ - queryWrapper.eq(SysCarFault::getWarnStatus, sysCarFault.getWarnStatus()); - } - if (StringUtils.isNotEmpty(sysCarFault.getFaultDesc())){ - queryWrapper.eq(SysCarFault::getFaultDesc, sysCarFault.getFaultDesc()); - } - if (StringUtils.isNotEmpty(sysCarFault.getState())){ - queryWrapper.eq(SysCarFault::getState, sysCarFault.getState()); - } - return this.list(queryWrapper); - } - - /** - * 唯一 判断 - * @param sysCarFault 车辆故障 - * @return 车辆故障 - */ - @Override - public Boolean checkIdUnique(SysCarFault sysCarFault) { - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.eq(SysCarFault::getId, sysCarFault.getId()); - return this.count(queryWrapper) > 0; - } - - -} diff --git a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/service/impl/faultDetectionStrategy/FuelVehicleCarFaultDetectionStrategy.java b/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/service/impl/faultDetectionStrategy/FuelVehicleCarFaultDetectionStrategy.java deleted file mode 100644 index fcac7ac..0000000 --- a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/service/impl/faultDetectionStrategy/FuelVehicleCarFaultDetectionStrategy.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.muyu.fault.service.impl.faultDetectionStrategy; - -import org.springframework.stereotype.Service; - -/** - * @className: CarFaultRule ️✈️ - * @author: Yang 鹏 🦅 - * @date: 2024/9/23 22:06 ⏰ - * @Version: 1.0 - * @description: - */ - - -/** - * 针对燃油车的故障检测逻辑 - */ -@Service(value = "FuelVehicleCar") -public class FuelVehicleCarFaultDetectionStrategy { -} diff --git a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/service/impl/faultDetectionStrategy/PureElectricCarFaultDetectionStrategy.java b/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/service/impl/faultDetectionStrategy/PureElectricCarFaultDetectionStrategy.java deleted file mode 100644 index 6321250..0000000 --- a/cloud-gateway/cloud-modules-fault/src/main/java/com/muyu/fault/service/impl/faultDetectionStrategy/PureElectricCarFaultDetectionStrategy.java +++ /dev/null @@ -1,199 +0,0 @@ -package com.muyu.fault.service.impl.faultDetectionStrategy; - - -import com.muyu.fault.domain.CarFaultRule; -import com.muyu.fault.domain.FaultReport; -import com.muyu.fault.service.FaultDetectionStrategy; -import org.springframework.stereotype.Service; - -/** - * @className: CarFaultRule ️✈️ - * @author: Yang 鹏 🦅 - * @date: 2024/9/23 22:06 ⏰ - * @Version: 1.0 - * @description: - */ - -/** - * 针对纯电车的故障检测逻辑 - */ -@Service(value = "PureElectricCar") -public class PureElectricCarFaultDetectionStrategy implements FaultDetectionStrategy { - - - - @Override - public FaultReport detectFaults(CarFaultRule carFaultRule) { - - - //检测车速是否处于正常范围 - if (carFaultRule.getSpeed()>200 || carFaultRule.getSpeed()<0){ - return new FaultReport("纯电车","车速不在正常范围内,请注意"); - } - //检测总里程数是否超过正常数 - if (carFaultRule.getTM()>5000000){ - return new FaultReport("纯电车","总里程数已超标,请注意"); - } - //检测总电压是否正常 - if (carFaultRule.getTV()>650){ - return new FaultReport("纯电车","总电压过高,请注意"); - } - //检测电流是否超标 - if (carFaultRule.getCC()>50){ - return new FaultReport("纯电车","电流过高,请注意"); - } - //检测绝缘电阻 - if (carFaultRule.getIR()>100000){ - return new FaultReport("纯电车","绝缘电阻过高,请注意"); - } -// //检测加速踏板行程值 -// if (carFaultRule.getAPTV()){ -// -// } -// //检测制动踏板行程值 -// if (carFaultRule.getBPTV()){ -// -// } -// //检测燃料消耗率 -// if (carFaultRule.getSFC()){ -// -// } -// //检测电机控制器温度 -// if (carFaultRule.getMCT()){ -// -// } -// //检测电机转速 -// if (carFaultRule.getMS()){ -// -// } -// //检测电机转矩 -// if (carFaultRule.getMTO()){ -// -// } -// //检测电机温度 -// if (carFaultRule.getMTE()){ -// -// } -// //检测电机电压 -// if (carFaultRule.getMV()){ -// -// } -// //检测电机电流 -// if (carFaultRule.getMC()){ -// -// } -// //检测动力电池剩余电量SOC -// if (carFaultRule.getPBRSOC()){ -// -// } -// //检测当前状态允许的最大反馈功率 -// if (carFaultRule.getMACSFP()){ -// -// } -// //检测当前状态允许最大放电功率 -// if (carFaultRule.getCSATMDP()) { -// -// } -// //检测BMS自检计数器 -// if (carFaultRule.getBMS()) { -// -// } -// //检测动力电池充放电电流 -// if (carFaultRule.getCADC()) { -// -// } -// //检测动力电池负载端总电压V3 -// if (carFaultRule.getPBLETVV3()) { -// -// } -// //检测单次最大电压 -// if (carFaultRule.getSMV()) { -// -// } -// //检测单体电池最低电压 -// if (carFaultRule.getMVOAB()) { -// -// } -// //检测单体电池最高温度 -// if (carFaultRule.getMAXBT()) { -// -// } -// //检测单体电池最低温度 -// if (carFaultRule.getMINBT()) { -// -// } -// //检测动力电池可用容量 -// if (carFaultRule.getPBAC()) { -// -// } -// //检测车辆状态 -// if (carFaultRule.getVS()) { -// -// } -// //检测充电状态 -// if (carFaultRule.getCS()) { -// -// } -// //检测运行状态 -// if (carFaultRule.getRS()) { -// -// } -// //检测SOC -// if (carFaultRule.getSOC()) { -// -// } -// //检测可充电储能装置工作状态 -// if (carFaultRule.getRESDWC()) { -// -// } -// //检测驱动电机状态 -// if (carFaultRule.getEAS()) { -// -// } -// //检测定位是否有效 -// if (carFaultRule.getPTC()) { -// -// } -// //检测EAS -// if (carFaultRule.getEPS()) { -// -// } -// //检测PTC -// if (carFaultRule.getABS()) { -// -// } -// //检测EPS -// if (carFaultRule.getMCU()) { -// -// } -// //检测ABS -// if (carFaultRule.getPBHS()) { -// -// } -// //检测MCU -// if (carFaultRule.getPBCS()) { -// -// } -// //检测动力电池加热状态 -// if (carFaultRule.getPBIS()) { -// -// } -// //检测动力电池当前状态 -// if (carFaultRule.getDCDC()) { -// -// } -// //检测动力电池保温状态 -// if (carFaultRule.getCHG()) { -// -// } -// //检测DCDC -// if (carFaultRule.getCHB()) { -// -// } -// //检测CHG -// if (carFaultRule.getCUB()) { -// -// } - return null; - } -} diff --git a/cloud-gateway/cloud-modules-fault/src/main/resources/mapper/faultcode/FaultCodeMapper.xml b/cloud-gateway/cloud-modules-fault/src/main/resources/mapper/faultcode/FaultCodeMapper.xml deleted file mode 100644 index cf47a98..0000000 --- a/cloud-gateway/cloud-modules-fault/src/main/resources/mapper/faultcode/FaultCodeMapper.xml +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - - - - - - - - - - - - - - - SELECT - car_faultcode.faultcode_id, - car_faultcode.message_type_id, - car_fault_label.message_type_code, - car_faultcode.faultcode_number, - car_faultcode.fault_group, - car_faultcode.fault_bit, - car_faultcode.fault_value, - car_fault_label.message_type_name, - car_faultcode.is_warning - FROM - car_faultcode - LEFT JOIN car_fault_label ON car_faultcode.message_type_id = car_fault_label.message_type_id - - - - - - - - - - - - INSERT INTO `eight`.`car_fault_label` - (`message_type_id`, `message_type_code`, `message_type_name`, `message_type_belongs`) VALUES - (0, #{messageTypeCode}, #{messageTypeName}, '车辆基础'); - - - INSERT INTO `eight`.`car_faultcode` - (`faultcode_id`, `message_type_id`, `faultcode_number`, `fault_group`, `fault_bit`, `fault_value`, `is_warning`) VALUES - (0, #{messageTypeId}, #{faultcodeNumber}, #{faultGroup}, #{faultBit}, #{faultValue}, #{isWarning}); - - - - - - - UPDATE `eight`.`car_fault_label` - SET `message_type_code` = #{messageTypeCode}, - `message_type_name` = #{messageTypeName}, - `message_type_belongs` =#{messageTypeBelongs} - WHERE `message_type_id` = #{messageTypeId}; - - - UPDATE `eight`.`car_faultcode` - SET `message_type_id` = #{messageTypeId}, - `faultcode_number` = #{faultcodeNumber}, - `fault_group` = #{faultGroup}, - `fault_bit` = #{faultBit}, - `fault_value` = #{faultValue}, - `is_warning` = #{isWarning} - WHERE `faultcode_id` = #{faultcodeId}; - - - - - - delete from car_faultcode where message_type_id=#{messageTypeId} - - - delete from car_fault_label where message_type_id=#{messageTypeId} - - diff --git a/cloud-gateway/cloud-modules-fault/src/main/resources/mapper/faultcode/FaultConditionMapper.xml b/cloud-gateway/cloud-modules-fault/src/main/resources/mapper/faultcode/FaultConditionMapper.xml deleted file mode 100644 index 6ae69b4..0000000 --- a/cloud-gateway/cloud-modules-fault/src/main/resources/mapper/faultcode/FaultConditionMapper.xml +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - - - - - - - - - - - - SELECT - car_fault_condition.*, - car_type.car_type_name, - car_fault_label.message_type_name, - car_fault_label.message_type_code - FROM - car_fault_condition - LEFT JOIN car_type ON car_fault_condition.car_type_id = car_type.car_type_id - LEFT JOIN car_fault_label ON car_fault_condition.message_type_id = car_fault_label.message_type_id - - - - - - - - - diff --git a/cloud-gateway/cloud-modules-fault/src/main/resources/mapper/faultcode/FaultLogMapper.xml b/cloud-gateway/cloud-modules-fault/src/main/resources/mapper/faultcode/FaultLogMapper.xml deleted file mode 100644 index 62e8af8..0000000 --- a/cloud-gateway/cloud-modules-fault/src/main/resources/mapper/faultcode/FaultLogMapper.xml +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - - - - - - - - - - - SELECT - car_fault_log.*, - car_faultcode.faultcode_number, - car_information.car_information_VIN - FROM - car_fault_log - LEFT JOIN car_faultcode ON car_fault_log.faultcode_id = car_faultcode.faultcode_id - LEFT JOIN car_information ON car_fault_log.car_information_id = car_information.car_information_id - - - - - diff --git a/cloud-gateway/cloud-modules-fault/src/main/resources/mapper/faultcode/MessageMapper.xml b/cloud-gateway/cloud-modules-fault/src/main/resources/mapper/faultcode/MessageMapper.xml deleted file mode 100644 index a635225..0000000 --- a/cloud-gateway/cloud-modules-fault/src/main/resources/mapper/faultcode/MessageMapper.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - update car_fault_message set status=1 where id=#{id} - - - diff --git a/cloud-gateway/src/main/resources/bootstrap.yml b/cloud-gateway/src/main/resources/bootstrap.yml index 7ed6a9e..25f0a82 100644 --- a/cloud-gateway/src/main/resources/bootstrap.yml +++ b/cloud-gateway/src/main/resources/bootstrap.yml @@ -4,10 +4,10 @@ server: # nacos线上地址 nacos: - addr: 123.57.152.124:8848 + addr: 127.0.0.1:8848 user-name: nacos password: nacos - namespace: yan1 + namespace: wx # Spring spring: diff --git a/cloud-modules/cloud-modules-data-process/cloud-modules-data-process-common/pom.xml b/cloud-modules/cloud-modules-data-process/cloud-modules-data-process-common/pom.xml new file mode 100644 index 0000000..4e177b9 --- /dev/null +++ b/cloud-modules/cloud-modules-data-process/cloud-modules-data-process-common/pom.xml @@ -0,0 +1,48 @@ + + + 4.0.0 + + com.muyu + cloud-modules-data-process + 3.6.3 + + + cloud-modules-data-process-common + + + cloud-modules-data-process-common 数据处理公共模块 + + + + 17 + 17 + UTF-8 + + + + + com.muyu + cloud-common-core + + + org.apache.iotdb + iotdb-session + + + io.swagger.core.v3 + swagger-annotations-jakarta + + + org.projectlombok + lombok + provided + + + com.muyu + enterpise-common + + + + diff --git a/cloud-modules/cloud-modules-data-process/cloud-modules-data-process-common/src/main/java/com/muyu/data/basics/ConditionsBasics.java b/cloud-modules/cloud-modules-data-process/cloud-modules-data-process-common/src/main/java/com/muyu/data/basics/ConditionsBasics.java new file mode 100644 index 0000000..7a3fe96 --- /dev/null +++ b/cloud-modules/cloud-modules-data-process/cloud-modules-data-process-common/src/main/java/com/muyu/data/basics/ConditionsBasics.java @@ -0,0 +1,16 @@ +package com.muyu.data.basics; + +/** + * 条件基础类 + * @Author WangXin + * @Data 2024/10/5 + * @Version 1.0.0 + */ +public interface ConditionsBasics { + /** + * 判断是否执行 + * @param t 入参 + * @return true/false + */ + boolean isExecute(T t); +} diff --git a/cloud-modules/cloud-modules-data-process/cloud-modules-data-process-common/src/main/java/com/muyu/data/basics/EventStrategyHandler.java b/cloud-modules/cloud-modules-data-process/cloud-modules-data-process-common/src/main/java/com/muyu/data/basics/EventStrategyHandler.java new file mode 100644 index 0000000..12ddd57 --- /dev/null +++ b/cloud-modules/cloud-modules-data-process/cloud-modules-data-process-common/src/main/java/com/muyu/data/basics/EventStrategyHandler.java @@ -0,0 +1,25 @@ +package com.muyu.data.basics; + +import com.muyu.data.core.EndStrategy; + +/** + * 策略处理者,所有节点(根节点除外)都必须实现这个接口 + * @param

接口入参 + * @param 接口返回值 + * @author WangXin + * @date 2024/10/4 + * @version 1.0.0 + */ +public interface EventStrategyHandler { + + @SuppressWarnings("rawtypes") + EventStrategyHandler DEFAULT = t -> new EndStrategy(); + + /** + * 审核 + * @param param 参数 + * @return 返回值 + */ + R apply(P param); + +} diff --git a/cloud-modules/cloud-modules-data-process/cloud-modules-data-process-common/src/main/java/com/muyu/data/basics/EventStrategyRouter.java b/cloud-modules/cloud-modules-data-process/cloud-modules-data-process-common/src/main/java/com/muyu/data/basics/EventStrategyRouter.java new file mode 100644 index 0000000..6359423 --- /dev/null +++ b/cloud-modules/cloud-modules-data-process/cloud-modules-data-process-common/src/main/java/com/muyu/data/basics/EventStrategyRouter.java @@ -0,0 +1,76 @@ +package com.muyu.data.basics; + +/** + * 策略路由抽象类 + * @Author WangXin + * @Data 2024/10/4 + * @Version 1.0.0 + * 通用的“策略树“框架,通过树形结构实现分发与委托,每层通过指定的参数进行向下分发委托,直到达到最终的执行者。 + * 该框架包含两个类:{@code StrategyHandler} 和 {@code AbstractStrategyRouter} + * 其中:通过实现 {@code AbstractStrategyRouter} 抽象类完成对策略的分发, + * 实现 {@code StrategyHandler} 接口来对策略进行实现。 + * 像是第二层 A、B 这样的节点,既是 Root 节点的策略实现者也是策略A1、A2、B1、B2 的分发者,这样的节点只需要 + * 同时继承 {@code StrategyHandler} 和实现 {@code AbstractStrategyRouter} 接口就可以了。 + * + *

+ *           +---------+
+ *           |  Root   |   ----------- 第 1 层策略入口
+ *           +---------+
+ *            /       \  ------------- 根据入参 P1 进行策略分发
+ *           /         \
+ *     +------+      +------+
+ *     |  A   |      |  B   |  ------- 第 2 层不同策略的实现
+ *     +------+      +------+
+ *       /  \          /  \  --------- 根据入参 P2 进行策略分发
+ *      /    \        /    \
+ *   +---+  +---+  +---+  +---+
+ *   |A1 |  |A2 |  |B1 |  |B2 |  ----- 第 3 层不同策略的实现
+ *   +---+  +---+  +---+  +---+
+ *
+ * 
+ * + */ +public abstract class EventStrategyRouter { + + /** + * 策略映射器, 指定入参与出参以决定策略处理者 + * @param 策略入参 + * @param 策略出参 + */ + public interface StrategyMapper{ + // 通过入参获取对应策略处理方法,使用Map实现 + EventStrategyHandler getHandler(T param); + } + + /** + * 选择下级策略 + * @return + */ + protected abstract StrategyMapper registerStrategy(); + + /** + * 默认策略处理者 + */ + @SuppressWarnings("unchecked") + private EventStrategyHandler defaultStrategyHandler = EventStrategyHandler.DEFAULT; + + + /** + * 选择策略处理者 + * @param param 入参 + * @return 策略处理结果 + */ + public R applyStrategy(T param) { + StrategyMapper trStrategyMapper = registerStrategy(); + if (trStrategyMapper == null) { + return defaultStrategyHandler.apply(param); + } + final EventStrategyHandler strategyHandler = trStrategyMapper.getHandler(param); + if (strategyHandler != null) { + return strategyHandler.apply(param); + } + // 使用默认策略处理者 + return defaultStrategyHandler.apply(param); + } + +} diff --git a/cloud-modules/cloud-modules-data-process/cloud-modules-data-process-common/src/main/java/com/muyu/data/constant/EventConditions.java b/cloud-modules/cloud-modules-data-process/cloud-modules-data-process-common/src/main/java/com/muyu/data/constant/EventConditions.java new file mode 100644 index 0000000..3090eba --- /dev/null +++ b/cloud-modules/cloud-modules-data-process/cloud-modules-data-process-common/src/main/java/com/muyu/data/constant/EventConditions.java @@ -0,0 +1,46 @@ +package com.muyu.data.constant; + +import com.muyu.data.basics.ConditionsBasics; +import com.muyu.data.domain.Information; + +/** + * 事件判断枚举(包含所有事件判断条件) + * @Author WangXin + * @Data 2024/10/5 + * @Version 1.0.0 + */ +public enum EventConditions implements ConditionsBasics { + + /** + * 车辆故障判断 + */ + FAULT_STRATEGY { + @Override + public boolean isExecute(Information information) { + // 实现逻辑 + return false; + } + }, + + /** + * 电子围栏判断 + */ + FENCE_STRATEGY { + @Override + public boolean isExecute(Information information) { + // 实现逻辑 + return false; + } + }, + + /** + * 车辆预警判断 + */ + WARN_STRATEGY { + @Override + public boolean isExecute(Information information) { + // 实现逻辑 + return false; + } + }; +} diff --git a/cloud-modules/cloud-modules-data-process/cloud-modules-data-process-common/src/main/java/com/muyu/data/constant/EventEnum.java b/cloud-modules/cloud-modules-data-process/cloud-modules-data-process-common/src/main/java/com/muyu/data/constant/EventEnum.java new file mode 100644 index 0000000..3a73c8a --- /dev/null +++ b/cloud-modules/cloud-modules-data-process/cloud-modules-data-process-common/src/main/java/com/muyu/data/constant/EventEnum.java @@ -0,0 +1,54 @@ +package com.muyu.data.constant; + +import com.muyu.data.core.IotdbStrategy; +import com.muyu.data.core.event.FaultStrategy; +import com.muyu.data.core.event.FenceStrategy; +import com.muyu.data.core.event.WarnStrategy; + +/** + * 事件枚举 + * @Author WangXin + * @Data 2024/10/6 + * @Version 1.0.0 + */ +public enum EventEnum { + /** 电子围栏事件 */ + FENCE_EVENT("电子围栏事件", FenceStrategy.class), + /** 车辆报警事件 */ + WARN_EVENT("车辆报警事件", WarnStrategy.class), + /** 电子围栏事件 */ + FAULT_EVENT("车辆预警事件", FaultStrategy.class), + /** 存储事件 */ + IOTDB_EVENT("存储事件", IotdbStrategy.class); + + /** + * 事件名称 + */ + private String eventName; + + /** + * 事件类型 + */ + private Class aClass; + + EventEnum(String eventName, Class aClass) { + this.eventName = eventName; + this.aClass = aClass; + } + + public String getEventName() { + return eventName; + } + + public void setEventName(String eventName) { + this.eventName = eventName; + } + + public Class getaClass() { + return aClass; + } + + public void setaClass(Class aClass) { + this.aClass = aClass; + } +} diff --git a/cloud-modules/cloud-modules-data-process/cloud-modules-data-process-common/src/main/java/com/muyu/data/core/EndStrategy.java b/cloud-modules/cloud-modules-data-process/cloud-modules-data-process-common/src/main/java/com/muyu/data/core/EndStrategy.java new file mode 100644 index 0000000..4436e4b --- /dev/null +++ b/cloud-modules/cloud-modules-data-process/cloud-modules-data-process-common/src/main/java/com/muyu/data/core/EndStrategy.java @@ -0,0 +1,26 @@ +package com.muyu.data.core; + +import com.muyu.data.basics.EventStrategyHandler; +import com.muyu.data.domain.Information; +import lombok.extern.slf4j.Slf4j; + +/** + * 结束节点 + * @Author WangXin + * @Data 2024/10/5 + * @Version 1.0.0 + */ +@Slf4j +public class EndStrategy implements EventStrategyHandler { + + /** + * 结束节点方法 + * @param param 参数 + * @return null + */ + @Override + public Information apply(Information param) { + log.info("[线路结束] --- >"); + return null; + } +} diff --git a/cloud-modules/cloud-modules-data-process/cloud-modules-data-process-common/src/main/java/com/muyu/data/core/IotdbStrategy.java b/cloud-modules/cloud-modules-data-process/cloud-modules-data-process-common/src/main/java/com/muyu/data/core/IotdbStrategy.java new file mode 100644 index 0000000..56e8cc4 --- /dev/null +++ b/cloud-modules/cloud-modules-data-process/cloud-modules-data-process-common/src/main/java/com/muyu/data/core/IotdbStrategy.java @@ -0,0 +1,87 @@ +package com.muyu.data.core; + +import com.muyu.data.basics.EventStrategyHandler; +import com.muyu.data.basics.EventStrategyRouter; +import com.muyu.data.constant.EventConditions; +import com.muyu.data.constant.EventEnum; +import com.muyu.data.core.event.FenceStrategy; +import com.muyu.data.domain.Information; + +import lombok.extern.log4j.Log4j2; + +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.TimeUnit; + +/** + * 存储事件节点(路由转发) + * @Author WangXin + * @Data 2024/10/5 + * @Version 1.0.0 + */ +@Log4j2 +public class IotdbStrategy + extends EventStrategyRouter + implements EventStrategyHandler { + + private static ConcurrentHashMap> map = new ConcurrentHashMap<>(); + + @Override + public Information apply(Information param) { + return applyStrategy(param); + } + + @Override + protected StrategyMapper registerStrategy() { + return param -> { + initExecuteStrategy(param); + if (isEventMapSize()){ + log.info("[没有事件执行]"); + }else { + ExecutorService executor = Executors.newFixedThreadPool(map.size()); + for (EventEnum eventEnum : map.keySet()) { + executor.submit(() -> { + log.info("开始执行 [{}] ",eventEnum.getEventName()); + return map.get(eventEnum); + }); + } + // 关闭线程池 + executor.shutdown(); + try { + // 等待所有任务完成 + if (!executor.awaitTermination(60, TimeUnit.SECONDS)) { + executor.shutdownNow(); + } + } catch (InterruptedException e) { + executor.shutdownNow(); + } + } + return new EndStrategy(); + }; + } + + /** + * 初始化事件map + * @param param 入参 + */ + private static void initExecuteStrategy(Information param){ + if (EventConditions.FENCE_STRATEGY.isExecute(param)){ + map.put(EventEnum.FENCE_EVENT,new FenceStrategy()); + } + if (EventConditions.FAULT_STRATEGY.isExecute(param)){ + map.put(EventEnum.FAULT_EVENT,new FenceStrategy()); + } + if (EventConditions.WARN_STRATEGY.isExecute(param)){ + map.put(EventEnum.WARN_EVENT,new FenceStrategy()); + } + } + + /** + * 判断事件map长度 + * @return + */ + private static boolean isEventMapSize(){ + return map.size() > 0; + } +} diff --git a/cloud-modules/cloud-modules-data-process/cloud-modules-data-process-common/src/main/java/com/muyu/data/core/StartStrategy.java b/cloud-modules/cloud-modules-data-process/cloud-modules-data-process-common/src/main/java/com/muyu/data/core/StartStrategy.java new file mode 100644 index 0000000..b128185 --- /dev/null +++ b/cloud-modules/cloud-modules-data-process/cloud-modules-data-process-common/src/main/java/com/muyu/data/core/StartStrategy.java @@ -0,0 +1,23 @@ +package com.muyu.data.core; + +import com.muyu.data.basics.EventStrategyRouter; +import com.muyu.data.domain.Information; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +/** + * 根节点策略 + * @Author WangXin + * @Data 2024/10/6 + * @Version 1.0.0 + */ +@Slf4j +@Component +public class StartStrategy extends EventStrategyRouter { + + + @Override + protected StrategyMapper registerStrategy() { + return param -> new IotdbStrategy(); + } +} diff --git a/cloud-modules/cloud-modules-data-process/cloud-modules-data-process-common/src/main/java/com/muyu/data/core/event/FaultStrategy.java b/cloud-modules/cloud-modules-data-process/cloud-modules-data-process-common/src/main/java/com/muyu/data/core/event/FaultStrategy.java new file mode 100644 index 0000000..067062b --- /dev/null +++ b/cloud-modules/cloud-modules-data-process/cloud-modules-data-process-common/src/main/java/com/muyu/data/core/event/FaultStrategy.java @@ -0,0 +1,26 @@ +package com.muyu.data.core.event; + +import com.muyu.data.basics.EventStrategyHandler; +import com.muyu.data.basics.EventStrategyRouter; +import com.muyu.data.domain.Information; + +/** + * 车辆故障报警事件 + * @Author WangXin + * @Data 2024/10/5 + * @Version 1.0.0 + */ +public class FaultStrategy + extends EventStrategyRouter + implements EventStrategyHandler { + + @Override + public Information apply(Information param) { + return applyStrategy(param); + } + + @Override + protected StrategyMapper registerStrategy() { + return null; + } +} diff --git a/cloud-modules/cloud-modules-data-process/cloud-modules-data-process-common/src/main/java/com/muyu/data/core/event/FenceStrategy.java b/cloud-modules/cloud-modules-data-process/cloud-modules-data-process-common/src/main/java/com/muyu/data/core/event/FenceStrategy.java new file mode 100644 index 0000000..32c61e0 --- /dev/null +++ b/cloud-modules/cloud-modules-data-process/cloud-modules-data-process-common/src/main/java/com/muyu/data/core/event/FenceStrategy.java @@ -0,0 +1,25 @@ +package com.muyu.data.core.event; + +import com.muyu.data.basics.EventStrategyHandler; +import com.muyu.data.basics.EventStrategyRouter; +import com.muyu.data.domain.Information; + +/** + * 电子围栏事件 + * @Author WangXin + * @Data 2024/10/5 + * @Version 1.0.0 + */ +public class FenceStrategy + extends EventStrategyRouter + implements EventStrategyHandler { + @Override + public Information apply(Information param) { + return applyStrategy(param); + } + + @Override + protected StrategyMapper registerStrategy() { + return null; + } +} diff --git a/cloud-modules/cloud-modules-data-process/cloud-modules-data-process-common/src/main/java/com/muyu/data/core/event/WarnStrategy.java b/cloud-modules/cloud-modules-data-process/cloud-modules-data-process-common/src/main/java/com/muyu/data/core/event/WarnStrategy.java new file mode 100644 index 0000000..9b4f5b6 --- /dev/null +++ b/cloud-modules/cloud-modules-data-process/cloud-modules-data-process-common/src/main/java/com/muyu/data/core/event/WarnStrategy.java @@ -0,0 +1,26 @@ +package com.muyu.data.core.event; + +import com.muyu.data.basics.EventStrategyHandler; +import com.muyu.data.basics.EventStrategyRouter; +import com.muyu.data.domain.Information; + +/** + * 车辆预警事件 + * @Author WangXin + * @Data 2024/10/5 + * @Version 1.0.0 + */ +public class WarnStrategy + extends EventStrategyRouter + implements EventStrategyHandler { + + @Override + public Information apply(Information param) { + return applyStrategy(param); + } + + @Override + protected StrategyMapper registerStrategy() { + return null; + } +} diff --git a/cloud-modules/cloud-modules-data-process/cloud-modules-data-process-common/src/main/java/com/muyu/data/domain/EnterpriseCommon.java b/cloud-modules/cloud-modules-data-process/cloud-modules-data-process-common/src/main/java/com/muyu/data/domain/EnterpriseCommon.java new file mode 100644 index 0000000..dc82f0d --- /dev/null +++ b/cloud-modules/cloud-modules-data-process/cloud-modules-data-process-common/src/main/java/com/muyu/data/domain/EnterpriseCommon.java @@ -0,0 +1,49 @@ +package com.muyu.data.domain; + +import com.muyu.domain.*; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +/** + * @version 1.0 + * @Author xie ya ru + * @Date 2024/10/6 20:21 + * @注释 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +public class EnterpriseCommon { + /** + * 车辆基础信息 + */ + private SysCar sysCar; + + /** + * 车辆策略信息 + */ + private WarnStrategy warnStrategy; + + /** + * 车辆规则信息 + */ + private WarnRule warnRule; + + /** + * 车辆与围栏组 + */ + private List carAndGroupMiddleList; + + /** + * 围栏组与围栏信息 + */ + private List fenceAndGroupMiddles; + + /** + * 故障信息和车辆 + */ + +} diff --git a/cloud-modules/cloud-modules-data-process/cloud-modules-data-process-common/src/main/java/com/muyu/data/domain/EventActuate.java b/cloud-modules/cloud-modules-data-process/cloud-modules-data-process-common/src/main/java/com/muyu/data/domain/EventActuate.java new file mode 100644 index 0000000..0e4e579 --- /dev/null +++ b/cloud-modules/cloud-modules-data-process/cloud-modules-data-process-common/src/main/java/com/muyu/data/domain/EventActuate.java @@ -0,0 +1,30 @@ +package com.muyu.data.domain; + +import com.alibaba.fastjson2.JSONObject; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +import java.util.List; + +/** + * 事件驱动对象 + * @Author WangXin + * @Data 2024/9/29 + * @Version 1.0.0 + */ +@Data +@SuperBuilder +@AllArgsConstructor +@NoArgsConstructor +public class EventActuate { + /** + * json数据 + */ + private JSONObject jsonData; + /** + * 事件驱动key集合 + */ + private List eventKeys; +} diff --git a/cloud-modules/cloud-modules-data-process/cloud-modules-data-process-common/src/main/java/com/muyu/data/domain/Information.java b/cloud-modules/cloud-modules-data-process/cloud-modules-data-process-common/src/main/java/com/muyu/data/domain/Information.java new file mode 100644 index 0000000..0144f53 --- /dev/null +++ b/cloud-modules/cloud-modules-data-process/cloud-modules-data-process-common/src/main/java/com/muyu/data/domain/Information.java @@ -0,0 +1,41 @@ +package com.muyu.data.domain; + +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.domain.SysCar; +import com.muyu.domain.SysCarFault; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; +import org.springframework.boot.autoconfigure.web.WebProperties; + +import java.util.Date; +/** + * @author Bai + * @date 2024/9/20 10:29 + * @description Information: 车辆信息表实体类 + * @version: 1.0 + */ + +/** + * 车辆信息表实体类 + */ + +@Data +@SuperBuilder +@Builder +@AllArgsConstructor +@NoArgsConstructor +@TableName(value = "car_information",autoResultMap = true) +public class Information { + + private SysCar sysCar; + + private SysCarFault carFault; + +} diff --git a/cloud-modules/cloud-modules-data-process/cloud-modules-data-process-common/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/cloud-modules/cloud-modules-data-process/cloud-modules-data-process-common/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/cloud-modules/cloud-modules-data-process/cloud-modules-data-process-common/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -0,0 +1 @@ + diff --git a/cloud-modules/cloud-modules-data-process/cloud-modules-data-process-server/pom.xml b/cloud-modules/cloud-modules-data-process/cloud-modules-data-process-server/pom.xml new file mode 100644 index 0000000..3bff106 --- /dev/null +++ b/cloud-modules/cloud-modules-data-process/cloud-modules-data-process-server/pom.xml @@ -0,0 +1,146 @@ + + + 4.0.0 + + com.muyu + cloud-modules-data-process + 3.6.3 + + + cloud-modules-data-process-server + + + 17 + 17 + UTF-8 + + + + cloud-modules-data-process-server 数据处理服务模块 + + + + + + + org.eclipse.paho + org.eclipse.paho.client.mqttv3 + + + + com.muyu + enterpise-cache + + + com.muyu + cloud-common-caffeine + + + com.muyu + cloud-modules-data-process-common + + + com.muyu + cloud-common-iotdb + + + com.github.ben-manes.caffeine + caffeine + + + + com.muyu + cloud-common-kafka + + + + com.muyu + cloud-common-rabbit + + + + 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 + enterprise-cache + + + + + ${project.artifactId} + + + org.springframework.boot + spring-boot-maven-plugin + + + + repackage + + + + + + + + diff --git a/cloud-modules/cloud-modules-data-process/cloud-modules-data-process-server/src/main/java/com/muyu/data/DataProcessApplication.java b/cloud-modules/cloud-modules-data-process/cloud-modules-data-process-server/src/main/java/com/muyu/data/DataProcessApplication.java new file mode 100644 index 0000000..43599d7 --- /dev/null +++ b/cloud-modules/cloud-modules-data-process/cloud-modules-data-process-server/src/main/java/com/muyu/data/DataProcessApplication.java @@ -0,0 +1,16 @@ +package com.muyu.data; + +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.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; + +@EnableCustomConfig +@EnableMyFeignClients +@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class}) +public class DataProcessApplication { + public static void main(String[] args) { + SpringApplication.run(DataProcessApplication.class, args); + } +} diff --git a/cloud-modules/cloud-modules-data-process/cloud-modules-data-process-server/src/main/java/com/muyu/data/config/IoTDBConfig.java b/cloud-modules/cloud-modules-data-process/cloud-modules-data-process-server/src/main/java/com/muyu/data/config/IoTDBConfig.java new file mode 100644 index 0000000..12eb5d5 --- /dev/null +++ b/cloud-modules/cloud-modules-data-process/cloud-modules-data-process-server/src/main/java/com/muyu/data/config/IoTDBConfig.java @@ -0,0 +1,127 @@ +package com.muyu.data.config; + + +import com.muyu.data.domain.CarInformation; +import org.apache.iotdb.isession.SessionDataSet; +import org.apache.iotdb.isession.util.Version; +import org.apache.iotdb.rpc.IoTDBConnectionException; +import org.apache.iotdb.rpc.StatementExecutionException; +import org.apache.iotdb.session.Session; +import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType; +import org.apache.iotdb.tsfile.read.common.Field; +import org.apache.iotdb.tsfile.read.common.RowRecord; +import org.springframework.context.annotation.Configuration; + +import java.util.ArrayList; +import java.util.List; + +/** + * iotdb数据库 配置 + * @author WangXIn + * @package:com.muyu.event.config + * @name:IOTDBConfig + * @date:2024/9/28 19:35 + */ +@Configuration +public class IoTDBConfig { + + public static final String HOST="127.0.0.1"; + public static final Integer PORT=6667; + public static final String USERNAME="root"; + public static final String PASSWORD="root"; + public static final String TABLENAME="root.four.car_information"; + + + /** + * 初始化连接 + * @return + */ + public Session initIoTDB(){ + // 初始化与连接 + Session session = new Session.Builder() + .host(HOST) + .port(PORT) + .username(USERNAME) + .password(PASSWORD) + .version(Version.V_1_0) + .build(); + return session; + }; + + + /** + * 实时数据库添加 + * @param list + */ + public void insertIoTDB(List list){ + Session session = initIoTDB(); + // 开启session Rpc不压缩 + try { + session.open(false); + + //添加字段名称 + ArrayList measurements = new ArrayList<>(); + //添加字段类型 + ArrayList types = new ArrayList<>(); + + measurements.add("car_vin"); + measurements.add("information"); + + session.insertRecord(TABLENAME,System.currentTimeMillis(),measurements,list); + //关闭连接 + session.close(); + } catch (IoTDBConnectionException e) { + throw new RuntimeException(e); + } catch (StatementExecutionException e) { + throw new RuntimeException(e); + } + } + + public CarInformation queryIoTDB(String carVin) { + Session session = initIoTDB(); + try { + session.open(false); + } catch (IoTDBConnectionException e) { + throw new RuntimeException(e); + } + Long timeMillis = System.currentTimeMillis(); + + CarInformation carInformation = new CarInformation(); + + try(SessionDataSet dataSet= session.executeQueryStatement("select * from root.four.car_information where car_vin='"+carVin+"'")){ + System.out.println(dataSet.getColumnNames()); + dataSet.setFetchSize(1024); + while (dataSet.hasNext()){ +// List fields = dataSet.next().getFields(); +// carInformation.setCarVin(String.valueOf(fields.get(0))); +// carInformation.setInformation(String.valueOf(fields.get(1))); + + String[] fields = dataSet.next().toString().split("\t"); + carInformation.setTime(Long.valueOf(fields[0])); + carInformation.setCarVin(fields[1]); + carInformation.setInformation(fields[2]); + } + + } catch (IoTDBConnectionException e) { + throw new RuntimeException(e); + } catch (StatementExecutionException e) { + throw new RuntimeException(e); + } + + //关闭连接 + try { + session.close(); + } catch (IoTDBConnectionException e) { + throw new RuntimeException(e); + } + return carInformation; + }; + + + + + + + + +} diff --git a/cloud-modules/cloud-modules-data-process/cloud-modules-data-process-server/src/main/java/com/muyu/data/consumer/MessageConsumer.java b/cloud-modules/cloud-modules-data-process/cloud-modules-data-process-server/src/main/java/com/muyu/data/consumer/MessageConsumer.java new file mode 100644 index 0000000..64cdf54 --- /dev/null +++ b/cloud-modules/cloud-modules-data-process/cloud-modules-data-process-server/src/main/java/com/muyu/data/consumer/MessageConsumer.java @@ -0,0 +1,61 @@ +package com.muyu.data.consumer; + +import cn.hutool.core.thread.ThreadUtil; +import cn.hutool.json.JSONUtil; +import com.alibaba.fastjson2.JSONObject; +import com.alibaba.nacos.shaded.com.google.common.collect.Lists; +import com.muyu.common.kafka.constant.KafkaConstants; +import com.muyu.data.core.StartStrategy; +import com.muyu.data.domain.Information; +import jakarta.annotation.Resource; +import lombok.extern.log4j.Log4j2; +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 WangXIn + */ +@Component +@Log4j2 +public class MessageConsumer implements InitializingBean { + + @Resource + private KafkaConsumer kafkaConsumer; + @Resource + private StartStrategy startStrategy; + + @Override + public void afterPropertiesSet() throws Exception { + Thread thread = new Thread(() -> { + log.info("启动线程监听Topic: {}", KafkaConstants.KafkaTopic); + ThreadUtil.sleep(1000); + Collection topics = Lists.newArrayList(KafkaConstants.KafkaTopic); + kafkaConsumer.subscribe(topics); + while (true) { + 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对象 + JSONObject jsonObject = JSONObject.parseObject(originalMsg); + Information information = jsonObject.getObject("key", Information.class); + log.info("从Kafka中消费的实体数据: " + information); + // 执行策略 + startStrategy.applyStrategy(information); + } + } + }); + thread.start(); + } +} diff --git a/cloud-modules/cloud-modules-data-process/cloud-modules-data-process-server/src/main/java/com/muyu/data/controller/TestController.java b/cloud-modules/cloud-modules-data-process/cloud-modules-data-process-server/src/main/java/com/muyu/data/controller/TestController.java new file mode 100644 index 0000000..41f878c --- /dev/null +++ b/cloud-modules/cloud-modules-data-process/cloud-modules-data-process-server/src/main/java/com/muyu/data/controller/TestController.java @@ -0,0 +1,133 @@ +package com.muyu.data.controller; + +import com.alibaba.fastjson2.JSONObject; +import com.muyu.common.caffeine.enums.CacheNameEnums; +import com.muyu.common.core.utils.uuid.UUID; +import com.muyu.common.iotdb.config.IotDBSessionConfig; +import com.muyu.common.kafka.constant.KafkaConstants; +import com.muyu.common.rabbit.constants.RabbitConstants; +import com.muyu.data.domain.Information; +import jakarta.annotation.Resource; +import lombok.extern.log4j.Log4j2; +import org.apache.kafka.clients.producer.KafkaProducer; +import org.apache.kafka.clients.producer.ProducerRecord; +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.cache.Cache; +import org.springframework.cache.CacheManager; +import org.springframework.data.redis.core.RedisTemplate; +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; + +/** +* 测试 +* @program: cloud-server +* @author: WangXin +* @create: 2024-09-28 14:55 +**/ +@RestController +@RequestMapping +@Log4j2 +public class TestController { + + @Resource + private KafkaProducer kafkaProducer; + @Resource + private RabbitTemplate rabbitTemplate; + @Resource + private IotDBSessionConfig iotDBConfig; + @Resource + private RedisTemplate redisTemplate; +// @Resource +// private CaffeineCacheUtils cacheUtils; + + @Resource + private CacheManager cacheManager; + + @GetMapping("/testKafka") + public void sendMsg() { + try { + // 测试数据 + Information information = new Information(); + JSONObject from = JSONObject.from(information); + ProducerRecord producerRecord = new ProducerRecord<>(KafkaConstants.KafkaTopic, from); + kafkaProducer.send(producerRecord); + System.out.println("同步消息发送成功: " + from); + } catch (Exception e) { + e.printStackTrace(); + System.out.println("同步消息发送失败"); + } + } + + @GetMapping("/testRabbit/GoOnline") + public void testRabbitGoOnline(@RequestParam("msg") String msg) { + rabbitTemplate.convertAndSend(RabbitConstants.GO_ONLINE_QUEUE, msg, message -> { + message.getMessageProperties().setMessageId(UUID.randomUUID().toString().replace("-","")); + return message; + }); + } + + @GetMapping("/testRabbit/Downline") + public void testRabbitDownline(@RequestParam("msg") String msg) { + rabbitTemplate.convertAndSend(RabbitConstants.DOWNLINE_QUEUE, msg, message -> { + message.getMessageProperties().setMessageId(UUID.randomUUID().toString().replace("-","")); + return message; + }); + } + + @GetMapping("/insertData") + public void insertData(@RequestParam("deviceId") String deviceId, @RequestParam("time") long time, @RequestParam("value") double value) throws Exception { + String sql = String.format("insert into root.one.%s(timestamp, temperature) values (%d, %f)", deviceId, time, value); + iotDBConfig.getSessionPool().executeNonQueryStatement(sql); + } + + @GetMapping("/testSetRedis") + public void testSetRedis(@RequestParam("key") String key,@RequestParam("value") String value) { + redisTemplate.opsForValue().set(key,value); + } + + @GetMapping("/testGetCache") + public void testGetCache(@RequestParam("cacheName") String cacheName,@RequestParam("key") String key) { + Cache cache = cacheManager.getCache(cacheName); + if (cache != null) { + String v = cache.get(key,String.class); + log.info("缓存值为: {}",v); + }else { + log.info("无缓存"); + } + } + + @GetMapping("/textSetCache") + public void textSetCache( + @RequestParam("cacheName") String cacheName, + @RequestParam("key") String key, + @RequestParam("value") String value) { + Cache cache = cacheManager.getCache(cacheName); + if (cache != null){ + cache.put(key, value); + log.info("设置缓存成功"); + }else { + log.info("无缓存"); + } + } + + @GetMapping("/testDelCache") + public void testDelCache(@RequestParam("cacheName") String cacheName) { + if (!CacheNameEnums.isCode(cacheName)){ + log.info("缓存分区不存在"); + return; + } + Cache cache = cacheManager.getCache(cacheName); + if (cache != null) { + cache.invalidate(); + log.info("删除缓存成功"); + }else{ + log.info("无缓存"); + } + } + + + + +} diff --git a/cloud-modules/cloud-modules-data-process/cloud-modules-data-process-server/src/main/java/com/muyu/data/domain/CarInformation.java b/cloud-modules/cloud-modules-data-process/cloud-modules-data-process-server/src/main/java/com/muyu/data/domain/CarInformation.java new file mode 100644 index 0000000..29514c2 --- /dev/null +++ b/cloud-modules/cloud-modules-data-process/cloud-modules-data-process-server/src/main/java/com/muyu/data/domain/CarInformation.java @@ -0,0 +1,45 @@ +package com.muyu.data.domain; + +import com.alibaba.fastjson.JSON; +import com.muyu.common.core.annotation.Excel; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 车辆实时信息实体类 + * @author WangXIn + * @package:com.muyu.event.domian + * @name:CarInformation + * @date:2024/9/28 19:25 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +public class CarInformation { + + /** + * 时间戳 + */ + @Excel(name = "时间戳") + private Long Time; + + /** + * 车辆vin码 + */ + @Excel(name = "车辆vin码") + private String carVin; + + /** + * 车辆实时信息 + */ + @Excel(name = "车辆实时信息") + private String information; + + + + + + + +} diff --git a/cloud-modules/cloud-modules-data-process/cloud-modules-data-process-server/src/main/java/com/muyu/data/rabbit/DownlineRabbitConsumer.java b/cloud-modules/cloud-modules-data-process/cloud-modules-data-process-server/src/main/java/com/muyu/data/rabbit/DownlineRabbitConsumer.java new file mode 100644 index 0000000..3a5d18e --- /dev/null +++ b/cloud-modules/cloud-modules-data-process/cloud-modules-data-process-server/src/main/java/com/muyu/data/rabbit/DownlineRabbitConsumer.java @@ -0,0 +1,69 @@ +package com.muyu.data.rabbit; + + +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: WangXin + * @Description: 车辆下线监听器 + */ +@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-process/cloud-modules-data-process-server/src/main/java/com/muyu/data/rabbit/GoOnlineRabbitConsumer.java b/cloud-modules/cloud-modules-data-process/cloud-modules-data-process-server/src/main/java/com/muyu/data/rabbit/GoOnlineRabbitConsumer.java new file mode 100644 index 0000000..3e001a5 --- /dev/null +++ b/cloud-modules/cloud-modules-data-process/cloud-modules-data-process-server/src/main/java/com/muyu/data/rabbit/GoOnlineRabbitConsumer.java @@ -0,0 +1,67 @@ +package com.muyu.data.rabbit; +import com.muyu.common.caffeine.enums.CacheNameEnums; +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.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: WangXin + * @Name: GoOnlineRabbitConsumer + */ +@Slf4j +@Component +@Setter +public class GoOnlineRabbitConsumer { + @Resource + private RedisTemplate redisTemplate; + @Resource + private CacheManager cacheManager; + + @RabbitListener(queuesToDeclare = {@Queue(RabbitConstants.GO_ONLINE_QUEUE)}) + 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-process/cloud-modules-data-process-server/src/main/java/com/muyu/data/service/TestService.java b/cloud-modules/cloud-modules-data-process/cloud-modules-data-process-server/src/main/java/com/muyu/data/service/TestService.java new file mode 100644 index 0000000..8f7046e --- /dev/null +++ b/cloud-modules/cloud-modules-data-process/cloud-modules-data-process-server/src/main/java/com/muyu/data/service/TestService.java @@ -0,0 +1,10 @@ +package com.muyu.data.service; + +/** + * + * @Author WangXin + * @Data 2024/10/3 + * @Version 1.0.0 + */ +public interface TestService { +} diff --git a/cloud-modules/cloud-modules-data-process/cloud-modules-data-process-server/src/main/java/com/muyu/data/service/impl/TestServiceImpl.java b/cloud-modules/cloud-modules-data-process/cloud-modules-data-process-server/src/main/java/com/muyu/data/service/impl/TestServiceImpl.java new file mode 100644 index 0000000..c3bc835 --- /dev/null +++ b/cloud-modules/cloud-modules-data-process/cloud-modules-data-process-server/src/main/java/com/muyu/data/service/impl/TestServiceImpl.java @@ -0,0 +1,20 @@ +package com.muyu.data.service.impl; + +import com.muyu.data.service.TestService; +import org.springframework.stereotype.Service; + +/** + * @author WangXIn + * @package:com.muyu.event.service.impl + * @name:TestServiceImpl + * @date:2024/9/29 21:00 + */ +@Service +public class TestServiceImpl implements TestService { + + + + + + +} diff --git a/cloud-modules/cloud-modules-data-process/cloud-modules-data-process-server/src/main/java/com/muyu/data/util/Iotdb.java b/cloud-modules/cloud-modules-data-process/cloud-modules-data-process-server/src/main/java/com/muyu/data/util/Iotdb.java new file mode 100644 index 0000000..8c4e0c5 --- /dev/null +++ b/cloud-modules/cloud-modules-data-process/cloud-modules-data-process-server/src/main/java/com/muyu/data/util/Iotdb.java @@ -0,0 +1,66 @@ +package com.muyu.data.util; + +import org.apache.iotdb.isession.SessionDataSet; +import org.apache.iotdb.isession.util.Version; +import org.apache.iotdb.rpc.IoTDBConnectionException; +import org.apache.iotdb.rpc.StatementExecutionException; +import org.apache.iotdb.session.Session; +import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType; + +import java.util.ArrayList; +import java.util.List; + +public class Iotdb { + public static void main(String[] args) throws IoTDBConnectionException, StatementExecutionException { + + System.out.println("测试数据库开始~~~~~"); + + // 初始化与连接 + Session session = new Session.Builder() + .host("47.116.173.119") + .port(6667) + .username("root") + .password("root") + .version(Version.V_1_0) + .build(); + + // 开启session Rpc不压缩 + session.open(false); + + // 写入数据 + ArrayList list = new ArrayList<>(); + list.add(100); + insertRecord(session,list); + + //查询数据 + queryRecord(session); + + //关闭连接 + session.close(); + + } + + + private static void insertRecord(Session session, List values) throws IoTDBConnectionException, StatementExecutionException { + ArrayList measurements = new ArrayList<>(); + ArrayList types = new ArrayList<>(); + + measurements.add("status"); + types.add(TSDataType.INT32); + session.insertRecord("root.four.test",System.currentTimeMillis(),measurements,types,values); + System.out.println("————————————————写入数据成功————————————————"); + } + + private static void queryRecord(Session session) throws IoTDBConnectionException, StatementExecutionException { + System.out.println("————————————————查询数据开始————————————————"); + try(SessionDataSet dataSet= session.executeQueryStatement("select * from root.four.test")){ + System.out.println(dataSet.getColumnNames()); + dataSet.setFetchSize(1024); + while (dataSet.hasNext()){ + System.out.println(dataSet.next()); + } + + } + System.out.println("————————————————查询数据结束————————————————"); + } +} diff --git a/cloud-modules/cloud-modules-data-process/cloud-modules-data-process-server/src/main/java/com/muyu/data/util/Receive.java b/cloud-modules/cloud-modules-data-process/cloud-modules-data-process-server/src/main/java/com/muyu/data/util/Receive.java new file mode 100644 index 0000000..c4c3bf0 --- /dev/null +++ b/cloud-modules/cloud-modules-data-process/cloud-modules-data-process-server/src/main/java/com/muyu/data/util/Receive.java @@ -0,0 +1,48 @@ +package com.muyu.data.util; + +import org.eclipse.paho.client.mqttv3.*; + +public class Receive { + + public static void main(String[] args) { + String topic = "vehicle"; + String broker = "tcp://47.101.53.251:1883"; + String clientId="lw"; + + try { + MqttClient mqttClient= new MqttClient(broker,clientId); + MqttConnectOptions connectOptions=new MqttConnectOptions(); + connectOptions.setCleanSession(true); + System.out.println("Connecting to broker:" + broker); + mqttClient.connect(connectOptions); + System.out.println("已连接"); + mqttClient.setCallback(new MqttCallback(){ + + @Override + public void connectionLost(Throwable throwable) { + System.out.println("Connect lost!"); + } + + @Override + public void messageArrived(String s, MqttMessage mqttMessage) throws Exception { + System.out.println("Message arrived. topic:"+topic); + } + + @Override + public void deliveryComplete(IMqttDeliveryToken iMqttDeliveryToken) { + + } + }); + + mqttClient.subscribe(topic); + System.out.println("Subscribed to topic " + topic); + } catch (MqttException e) { + System.out.println("reason "+e.getReasonCode()); + System.out.println("msg " +e.getMessage()); + System.out.println("loc " +e.getLocalizedMessage()); + System.out.println("cause "+e.getCause()); + System.out.println("excep "+e); + e.printStackTrace(); + } + } +} diff --git a/cloud-modules/cloud-modules-data-process/cloud-modules-data-process-server/src/main/java/com/muyu/data/warn/WarningJudgment.java b/cloud-modules/cloud-modules-data-process/cloud-modules-data-process-server/src/main/java/com/muyu/data/warn/WarningJudgment.java new file mode 100644 index 0000000..1a10be6 --- /dev/null +++ b/cloud-modules/cloud-modules-data-process/cloud-modules-data-process-server/src/main/java/com/muyu/data/warn/WarningJudgment.java @@ -0,0 +1,36 @@ +package com.muyu.data.warn; + +import com.muyu.domain.SysCar; +import com.muyu.enterpise.cache.SysCarCacheService; +import com.muyu.enterpise.cache.SysCarTypeCacheService; +import org.springframework.stereotype.Component; +import org.apache.catalina.mapper.*; + +import javax.annotation.PostConstruct; +import javax.annotation.Resource; + +/** + * @version 1.0 + * @Author xie ya ru + * @Date 2024/10/6 15:21 + * @注释 事件预警 + */ +@Component +public class WarningJudgment { + + @Resource + private SysCarCacheService sysCarCacheService; + + @Resource + private SysCarTypeCacheService sysCarTypeCacheService; + + @PostConstruct + public void getCache(){ + + + } + + + + +} diff --git a/cloud-modules/cloud-modules-data-process/cloud-modules-data-process-server/src/main/resources/banner.txt b/cloud-modules/cloud-modules-data-process/cloud-modules-data-process-server/src/main/resources/banner.txt new file mode 100644 index 0000000..0dd5eee --- /dev/null +++ b/cloud-modules/cloud-modules-data-process/cloud-modules-data-process-server/src/main/resources/banner.txt @@ -0,0 +1,2 @@ +Spring Boot Version: ${spring-boot.version} +Spring Application Name: ${spring.application.name} diff --git a/cloud-gateway/cloud-modules-fault/src/main/resources/bootstrap.yml b/cloud-modules/cloud-modules-data-process/cloud-modules-data-process-server/src/main/resources/bootstrap.yml similarity index 67% rename from cloud-gateway/cloud-modules-fault/src/main/resources/bootstrap.yml rename to cloud-modules/cloud-modules-data-process/cloud-modules-data-process-server/src/main/resources/bootstrap.yml index 1dc47cd..d2217fd 100644 --- a/cloud-gateway/cloud-modules-fault/src/main/resources/bootstrap.yml +++ b/cloud-modules/cloud-modules-data-process/cloud-modules-data-process-server/src/main/resources/bootstrap.yml @@ -1,19 +1,27 @@ # Tomcat server: - port: 9434 + port: 9701 # nacos线上地址 nacos: - addr: 123.57.152.124:8848 + addr: 127.0.0.1:8848 user-name: nacos password: nacos - namespace: five - + namespace: wx +# SPRING_AMQP_DESERIALIZATION_TRUST_ALL=true spring.amqp.deserialization.trust.all # Spring spring: + iotdb: + ip: 127.0.0.1 + username: root + port: 6667 + password: root + maxSize: 10 + main: + allow-bean-definition-overriding: true application: # 应用名称 - name: cloud-fault + name: cloud-modules-data-process-server profiles: # 环境配置 active: dev @@ -47,3 +55,7 @@ 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} + # kafka 配置文件 + - application-kafka-config-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} diff --git a/cloud-modules/cloud-modules-data-process/cloud-modules-data-process-server/src/main/resources/logback/dev.xml b/cloud-modules/cloud-modules-data-process/cloud-modules-data-process-server/src/main/resources/logback/dev.xml new file mode 100644 index 0000000..33ea79e --- /dev/null +++ b/cloud-modules/cloud-modules-data-process/cloud-modules-data-process-server/src/main/resources/logback/dev.xml @@ -0,0 +1,74 @@ + + + + + + + + + + + ${log.pattern} + + + + + + ${log.path}/info.log + + + + ${log.path}/info.%d{yyyy-MM-dd}.log + + 60 + + + ${log.pattern} + + + + INFO + + ACCEPT + + DENY + + + + + ${log.path}/error.log + + + + ${log.path}/error.%d{yyyy-MM-dd}.log + + 60 + + + ${log.pattern} + + + + ERROR + + ACCEPT + + DENY + + + + + + + + + + + + + + + + + + diff --git a/cloud-modules/cloud-modules-data-process/cloud-modules-data-process-server/src/main/resources/logback/prod.xml b/cloud-modules/cloud-modules-data-process/cloud-modules-data-process-server/src/main/resources/logback/prod.xml new file mode 100644 index 0000000..b4199b0 --- /dev/null +++ b/cloud-modules/cloud-modules-data-process/cloud-modules-data-process-server/src/main/resources/logback/prod.xml @@ -0,0 +1,81 @@ + + + + + + + + + + + + ${log.sky.pattern} + + + + + + ${log.path}/info.log + + + + ${log.path}/info.%d{yyyy-MM-dd}.log + + 60 + + + + + INFO + + ACCEPT + + DENY + + + + + ${log.path}/error.log + + + + ${log.path}/error.%d{yyyy-MM-dd}.log + + 60 + + + + + ERROR + + ACCEPT + + DENY + + + + + + + + ${log.sky.pattern} + + + + + + + + + + + + + + + + + + + + diff --git a/cloud-modules/cloud-modules-data-process/cloud-modules-data-process-server/src/main/resources/logback/test.xml b/cloud-modules/cloud-modules-data-process/cloud-modules-data-process-server/src/main/resources/logback/test.xml new file mode 100644 index 0000000..b4199b0 --- /dev/null +++ b/cloud-modules/cloud-modules-data-process/cloud-modules-data-process-server/src/main/resources/logback/test.xml @@ -0,0 +1,81 @@ + + + + + + + + + + + + ${log.sky.pattern} + + + + + + ${log.path}/info.log + + + + ${log.path}/info.%d{yyyy-MM-dd}.log + + 60 + + + + + INFO + + ACCEPT + + DENY + + + + + ${log.path}/error.log + + + + ${log.path}/error.%d{yyyy-MM-dd}.log + + 60 + + + + + ERROR + + ACCEPT + + DENY + + + + + + + + ${log.sky.pattern} + + + + + + + + + + + + + + + + + + + + diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-client/pom.xml b/cloud-modules/cloud-modules-data-process/pom.xml similarity index 67% rename from cloud-modules/cloud-modules-enterprise/enterpise-client/pom.xml rename to cloud-modules/cloud-modules-data-process/pom.xml index 88ebf6b..f41615f 100644 --- a/cloud-modules/cloud-modules-enterprise/enterpise-client/pom.xml +++ b/cloud-modules/cloud-modules-data-process/pom.xml @@ -9,7 +9,16 @@ 3.6.3 - enterpise-client + cloud-modules-data-process + pom + + + cloud-modules-data-process数据处理模块 + + + cloud-modules-data-process-server + cloud-modules-data-process-common + 17 diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-client/.gitignore b/cloud-modules/cloud-modules-enterprise/enterpise-cache/.gitignore similarity index 100% rename from cloud-modules/cloud-modules-enterprise/enterpise-client/.gitignore rename to cloud-modules/cloud-modules-enterprise/enterpise-cache/.gitignore diff --git a/cloud-gateway/cloud-modules-fault/pom.xml b/cloud-modules/cloud-modules-enterprise/enterpise-cache/pom.xml similarity index 78% rename from cloud-gateway/cloud-modules-fault/pom.xml rename to cloud-modules/cloud-modules-enterprise/enterpise-cache/pom.xml index a2c8c47..5df41ff 100644 --- a/cloud-gateway/cloud-modules-fault/pom.xml +++ b/cloud-modules/cloud-modules-enterprise/enterpise-cache/pom.xml @@ -5,23 +5,26 @@ 4.0.0 com.muyu - cloud-modules + cloud-modules-enterprise 3.6.3 - cloud-modules-fault + enterpise-cache 17 17 UTF-8 - - cloud-modules-fault故障模块 - + + com.muyu + enterpise-common + ${muyu.version} + + com.alibaba.cloud @@ -57,6 +60,11 @@ com.muyu cloud-common-datasource + + + com.muyu + cloud-common-cache + @@ -84,22 +92,4 @@ - - ${project.artifactId} - - - org.springframework.boot - spring-boot-maven-plugin - - - - repackage - - - - - - - - diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-cache/src/main/java/com/muyu/enterpise/cache/MessageValueCacheService.java b/cloud-modules/cloud-modules-enterprise/enterpise-cache/src/main/java/com/muyu/enterpise/cache/MessageValueCacheService.java new file mode 100644 index 0000000..80e08a1 --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/enterpise-cache/src/main/java/com/muyu/enterpise/cache/MessageValueCacheService.java @@ -0,0 +1,43 @@ +package com.muyu.enterpise.cache; + +import com.muyu.common.cache.CacheAbsBasic; +import com.muyu.domain.MessageValue; +import org.springframework.stereotype.Component; + +import java.util.List; + +/** + * @version 1.0 + * @Author xie ya ru + * @Date 2024/9/29 20:04 + * @注释 + */ +@Component +public class MessageValueCacheService extends CacheAbsBasic>{ + + /** + * 前缀 + * @return + */ + @Override + public String keyPre() { + return"messageValue:info:"; + } + + + @Override + public String encode(String key) { + return super.encode(key); + } + + + /** + * 解密 + * @param key 缓存建 + * @return + */ + @Override + public String decode(String key) { + return key.replace("messageValue:info:",""); + } +} diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-cache/src/main/java/com/muyu/enterpise/cache/SysCarCacheService.java b/cloud-modules/cloud-modules-enterprise/enterpise-cache/src/main/java/com/muyu/enterpise/cache/SysCarCacheService.java new file mode 100644 index 0000000..898694f --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/enterpise-cache/src/main/java/com/muyu/enterpise/cache/SysCarCacheService.java @@ -0,0 +1,32 @@ +package com.muyu.enterpise.cache; + +import com.muyu.common.cache.CacheAbsBasic; +import com.muyu.domain.SysCar; +import org.springframework.stereotype.Component; + +import java.util.List; + +/** + * @version 1.0 + * @Author xie ya ru + * @Date 2024/9/30 11:06 + * @注释 + */ +@Component +public class SysCarCacheService 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/enterpise-cache/src/main/java/com/muyu/enterpise/cache/SysCarTypeCacheService.java b/cloud-modules/cloud-modules-enterprise/enterpise-cache/src/main/java/com/muyu/enterpise/cache/SysCarTypeCacheService.java new file mode 100644 index 0000000..112439d --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/enterpise-cache/src/main/java/com/muyu/enterpise/cache/SysCarTypeCacheService.java @@ -0,0 +1,29 @@ +package com.muyu.enterpise.cache; + +import com.muyu.common.cache.CacheAbsBasic; +import com.muyu.domain.SysCarType; +import org.springframework.stereotype.Component; + +/** + * @version 1.0 + * @Author xie ya ru + * @Date 2024/9/30 11:18 + * @注释 + */ +@Component +public class SysCarTypeCacheService 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/enterpise-cache/src/main/java/com/muyu/enterpise/cache/WarnStrategyCacjeService.java b/cloud-modules/cloud-modules-enterprise/enterpise-cache/src/main/java/com/muyu/enterpise/cache/WarnStrategyCacjeService.java new file mode 100644 index 0000000..46fa854 --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/enterpise-cache/src/main/java/com/muyu/enterpise/cache/WarnStrategyCacjeService.java @@ -0,0 +1,32 @@ +package com.muyu.enterpise.cache; + +import com.muyu.common.cache.CacheAbsBasic; +import com.muyu.domain.WarnStrategy; +import org.springframework.stereotype.Component; + +/** + * @Author:yan + * @Package:com.muyu.enterpise.cache + * @Project:plus + * @name:WarnStrategyCacjeService + * @Date:2024/10/6 19:26 + */ +@Component +public class WarnStrategyCacjeService 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/enterpise-cache/src/main/java/com/muyu/enterprise/cache/VehicleCacheService.java b/cloud-modules/cloud-modules-enterprise/enterpise-cache/src/main/java/com/muyu/enterprise/cache/VehicleCacheService.java new file mode 100644 index 0000000..019fa3a --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/enterpise-cache/src/main/java/com/muyu/enterprise/cache/VehicleCacheService.java @@ -0,0 +1,28 @@ +package com.muyu.enterprise.cache; + +import com.muyu.common.cache.CacheAbsBasic; +import com.muyu.domain.CarInformation; + +/** + * 车辆缓存服务 + * @className: VehicleCacheService ️✈️ + * @author: Yang 鹏 🦅 + * @date: 2024/9/30 00:36 ⏰ + * @Version: 1.0 + * @description: + */ +public class VehicleCacheService extends CacheAbsBasic { + + @Override + public String keyPre() { + return "vehicle:info:"; + } + + @Override + public String decode(String key){ + return key.replace("vehicle:info:",""); + } + + +} + diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-cache/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/cloud-modules/cloud-modules-enterprise/enterpise-cache/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports new file mode 100644 index 0000000..e1854da --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/enterpise-cache/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -0,0 +1,5 @@ +com.muyu.enterpise.cache.MessageValueCacheService +com.muyu.enterpise.cache.SysCarCacheService +com.muyu.enterpise.cache.SysCarTypeCacheService +com.muyu.enterpise.cache.WarnStrategyCacjeService + diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-client/src/main/java/com/muyu/Main.java b/cloud-modules/cloud-modules-enterprise/enterpise-client/src/main/java/com/muyu/Main.java deleted file mode 100644 index efc3142..0000000 --- a/cloud-modules/cloud-modules-enterprise/enterpise-client/src/main/java/com/muyu/Main.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.muyu; - -/** - * @Author:yan - * @Package:com.muyu - * @Project:Default (Template) Project - * @name:${NAME} - * @Date:2024/9/29 09:56 - */ -public class Main { - public static void main(String[] args) { - System.out.println("Hello world!"); - } -} diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-common/pom.xml b/cloud-modules/cloud-modules-enterprise/enterpise-common/pom.xml index 6a4fbae..9bb9136 100644 --- a/cloud-modules/cloud-modules-enterprise/enterpise-common/pom.xml +++ b/cloud-modules/cloud-modules-enterprise/enterpise-common/pom.xml @@ -3,9 +3,10 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 + com.muyu - cloud-modules + cloud-modules-enterprise 3.6.3 @@ -18,66 +19,15 @@ + com.muyu - cloud-common - 3.6.3 + cloud-common-core - - - - org.eclipse.paho - org.eclipse.paho.client.mqttv3 - 1.2.5 - - - - - 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 + cloud-common-security @@ -86,10 +36,19 @@ cloud-common-api-doc - + + io.swagger.core.v3 + swagger-annotations-jakarta + + com.muyu - cloud-common-xxl + cloud-common-system + + + + com.muyu + cloud-common-saas diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-common/src/main/java/com/muyu/domain/CarAndGroupMiddle.java b/cloud-modules/cloud-modules-enterprise/enterpise-common/src/main/java/com/muyu/domain/CarAndGroupMiddle.java new file mode 100644 index 0000000..6c5d5fc --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/enterpise-common/src/main/java/com/muyu/domain/CarAndGroupMiddle.java @@ -0,0 +1,45 @@ +package com.muyu.domain; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 车辆电子围栏中间表 + * * @Author:yan + * * @Package:com.muyu.car.domain + * * @Project:plues + * * @name:FenceAndGroupMiddle + * * @Date:2024/9/22 09:59 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +@Tag(name = "车辆和电子围栏组中间表") +@TableName(value = "car_group_middle",autoResultMap = true) +public class CarAndGroupMiddle { + /** + * id + */ + @TableId(value = "id",type = IdType.AUTO) + @Schema(name = "id") + private Long id; + /** + * 车id + */ + @Schema(name = "围栏id") + private Integer carId; + /** + * 围栏组id + */ + @Schema(name = "围栏组id") + private Long groupId; + +} diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-common/src/main/java/com/muyu/domain/CarFirmMiddle.java b/cloud-modules/cloud-modules-enterprise/enterpise-common/src/main/java/com/muyu/domain/CarFirmMiddle.java new file mode 100644 index 0000000..db633c6 --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/enterpise-common/src/main/java/com/muyu/domain/CarFirmMiddle.java @@ -0,0 +1,27 @@ +package com.muyu.domain; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +/** + * @Author WangXin + * @Data 2024/9/30 + * @Description 车辆公司中间表 + * @Version 1.0.0 + */ +@Data +@SuperBuilder +@AllArgsConstructor +@NoArgsConstructor +public class CarFirmMiddle { + /** + * 车辆ID + */ + private Long CarId; + /** + * 公司ID + */ + private Long firmId; +} diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-common/src/main/java/com/muyu/domain/Cars.java b/cloud-modules/cloud-modules-enterprise/enterpise-common/src/main/java/com/muyu/domain/Cars.java new file mode 100644 index 0000000..94e5160 --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/enterpise-common/src/main/java/com/muyu/domain/Cars.java @@ -0,0 +1,119 @@ +package com.muyu.domain; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @Author:yan + * @Package:com.muyu.domain + * @Project:plus + * @name:Cars + * @Date:2024/10/4 20:45 + */ +@AllArgsConstructor +@Data +@NoArgsConstructor +@Builder +public class Cars { + + /** + * id + */ + @Schema + private Integer id; + /** + * name + */ + @Schema + private String name; + + /** + * w + */ + @Schema + private String w; + + /** + * q + */ + @Schema + private String q; + + /** + * e + */ + @Schema + private String e; + + /** + * r + */ + @Schema + private String r; + + /** + * t + */ + @Schema + private String t; + + /** + * g + */ + @Schema + private String y; + + /** + * a + */ + @Schema + private String a; + + /** + * s + */ + @Schema + private String s; + + /** + * d + */ + @Schema + private String d; + + /** + * f + */ + @Schema + private String f; + + /** + * g + */ + @Schema + private String g; + + /** + * z + */ + @Schema + private String z; + + /** + * x + */ + + @Schema + private String x; + + /** + * c + */ + @Schema + private String c; + + +} diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-common/src/main/java/com/muyu/domain/FenceGroup.java b/cloud-modules/cloud-modules-enterprise/enterpise-common/src/main/java/com/muyu/domain/FenceGroup.java index 132b031..c06ad93 100644 --- a/cloud-modules/cloud-modules-enterprise/enterpise-common/src/main/java/com/muyu/domain/FenceGroup.java +++ b/cloud-modules/cloud-modules-enterprise/enterpise-common/src/main/java/com/muyu/domain/FenceGroup.java @@ -3,6 +3,7 @@ package com.muyu.domain; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.muyu.domain.req.FenceGroupUpdateReq; import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.AllArgsConstructor; @@ -30,7 +31,7 @@ public class FenceGroup { */ @TableId(value = "group_id",type = IdType.AUTO) @Schema(name = "围栏组id") - private Integer groupId; + private Long groupId; /** * 围栏组名称 */ @@ -42,5 +43,17 @@ public class FenceGroup { @Schema(name = "围栏组状态") private Integer groupStates; + public static FenceGroup carFenceUpdateById(Integer states, FenceGroupUpdateReq fenceGroupBuilder ){ + return FenceGroup.builder() + .groupId(fenceGroupBuilder.getGroupId()) + .groupStates(states) + .build(); + } + public static FenceGroup closeCarFenceUpdateById(Integer states, Long groupId ){ + return FenceGroup.builder() + .groupId(groupId) + .groupStates(states) + .build(); + } } diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-common/src/main/java/com/muyu/domain/MessageValue.java b/cloud-modules/cloud-modules-enterprise/enterpise-common/src/main/java/com/muyu/domain/MessageValue.java index 88f16ed..3395bda 100644 --- a/cloud-modules/cloud-modules-enterprise/enterpise-common/src/main/java/com/muyu/domain/MessageValue.java +++ b/cloud-modules/cloud-modules-enterprise/enterpise-common/src/main/java/com/muyu/domain/MessageValue.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.muyu.common.core.web.domain.BaseEntity; import com.muyu.domain.req.MessageValueAddReq; +import com.muyu.domain.resp.MessageValueListResp; import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.AllArgsConstructor; @@ -82,4 +83,14 @@ public class MessageValue extends BaseEntity { .messageEndIndex(messageValueAddReq.getMessageEndIndex()) .build(); } + public static MessageValue addRollback(MessageValueListResp messageValueListResp){ + return MessageValue.builder() + .templateId(messageValueListResp.getMessageId()) + .messageType(messageValueListResp.getMessageType()) + .messageCode(messageValueListResp.getMessageCode()) + .messageLabel(messageValueListResp.getMessageLabel()) + .messageStartIndex(messageValueListResp.getMessageStartIndex()) + .messageEndIndex(messageValueListResp.getMessageEndIndex()) + .build(); + } } diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-common/src/main/java/com/muyu/domain/SysCar.java b/cloud-modules/cloud-modules-enterprise/enterpise-common/src/main/java/com/muyu/domain/SysCar.java index 63b0a42..c2d8093 100644 --- a/cloud-modules/cloud-modules-enterprise/enterpise-common/src/main/java/com/muyu/domain/SysCar.java +++ b/cloud-modules/cloud-modules-enterprise/enterpise-common/src/main/java/com/muyu/domain/SysCar.java @@ -66,6 +66,10 @@ public class SysCar extends BaseEntity{ @Schema(name = "启用状态") private Integer state; + /** 车辆所属公司 */ + @Schema(name = "公司Id") + private Integer deptId; + @Override diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-common/src/main/java/com/muyu/domain/SysCarFault.java b/cloud-modules/cloud-modules-enterprise/enterpise-common/src/main/java/com/muyu/domain/SysCarFault.java index 78a0987..8960c69 100644 --- a/cloud-modules/cloud-modules-enterprise/enterpise-common/src/main/java/com/muyu/domain/SysCarFault.java +++ b/cloud-modules/cloud-modules-enterprise/enterpise-common/src/main/java/com/muyu/domain/SysCarFault.java @@ -17,6 +17,7 @@ import org.apache.commons.lang3.builder.ToStringStyle; * @date 2024-09-18 */ +@EqualsAndHashCode(callSuper = true) @Data @Setter @Getter diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-common/src/main/java/com/muyu/domain/WarnLogs.java b/cloud-modules/cloud-modules-enterprise/enterpise-common/src/main/java/com/muyu/domain/WarnLogs.java index e0c8a27..afceacd 100644 --- a/cloud-modules/cloud-modules-enterprise/enterpise-common/src/main/java/com/muyu/domain/WarnLogs.java +++ b/cloud-modules/cloud-modules-enterprise/enterpise-common/src/main/java/com/muyu/domain/WarnLogs.java @@ -79,8 +79,6 @@ public class WarnLogs extends BaseEntity{ @Schema(name = "是否发送预警") private Long status; - - @Override public String toString() { return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-common/src/main/java/com/muyu/domain/req/FaultCodeListReq.java b/cloud-modules/cloud-modules-enterprise/enterpise-common/src/main/java/com/muyu/domain/req/FaultCodeListReq.java index b14c797..7ce0e7e 100644 --- a/cloud-modules/cloud-modules-enterprise/enterpise-common/src/main/java/com/muyu/domain/req/FaultCodeListReq.java +++ b/cloud-modules/cloud-modules-enterprise/enterpise-common/src/main/java/com/muyu/domain/req/FaultCodeListReq.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.AllArgsConstructor; +import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; import lombok.experimental.SuperBuilder; @@ -41,11 +42,13 @@ public class FaultCodeListReq { * 页码,从1开始 */ @Schema(name = "页码") + @Builder.Default private Integer pageNum=1; /** * 每页大小 */ @Schema(name = "每页大小") + @Builder.Default private Integer pageSize=10; diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-common/src/main/java/com/muyu/domain/req/FenceGroupUpdateReq.java b/cloud-modules/cloud-modules-enterprise/enterpise-common/src/main/java/com/muyu/domain/req/FenceGroupUpdateReq.java new file mode 100644 index 0000000..6ffad3b --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/enterpise-common/src/main/java/com/muyu/domain/req/FenceGroupUpdateReq.java @@ -0,0 +1,31 @@ +package com.muyu.domain.req; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 修改围栏的状态 + * @Author:yan + * @Package:com.muyu.domain.req + * @Project:plues + * @name:CarFenceUpdateReq + * @Date:2024/9/29 20:22 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Tag(name = "修改围栏的状态", description = "修改围栏的状态") +public class FenceGroupUpdateReq { + /** + * id + */ + @TableId(value = "group_id", type = IdType.AUTO) + @Schema(title = "围栏组Id") + private Long groupId; + +} diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-common/src/main/java/com/muyu/domain/req/SysCar.java b/cloud-modules/cloud-modules-enterprise/enterpise-common/src/main/java/com/muyu/domain/req/SysCarReq.java similarity index 62% rename from cloud-modules/cloud-modules-enterprise/enterpise-common/src/main/java/com/muyu/domain/req/SysCar.java rename to cloud-modules/cloud-modules-enterprise/enterpise-common/src/main/java/com/muyu/domain/req/SysCarReq.java index 142b116..0da2dea 100644 --- a/cloud-modules/cloud-modules-enterprise/enterpise-common/src/main/java/com/muyu/domain/req/SysCar.java +++ b/cloud-modules/cloud-modules-enterprise/enterpise-common/src/main/java/com/muyu/domain/req/SysCarReq.java @@ -6,10 +6,7 @@ import com.baomidou.mybatisplus.annotation.TableName; import com.muyu.common.core.web.domain.BaseEntity; import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.tags.Tag; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; +import lombok.*; import lombok.experimental.SuperBuilder; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; @@ -21,14 +18,13 @@ import org.apache.commons.lang3.builder.ToStringStyle; * @date 2024-09-18 */ -@EqualsAndHashCode(callSuper = true) @Data -@SuperBuilder +@Builder @NoArgsConstructor @AllArgsConstructor @TableName(value = "sys_car", autoResultMap = true) @Tag(name = "车辆基础信息对象") -public class SysCar extends BaseEntity{ +public class SysCarReq { /** 自增主键 */ @TableId( type = IdType.AUTO) @@ -68,24 +64,4 @@ public class SysCar extends BaseEntity{ private Integer state; - - @Override - public String toString() { - return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) - .append("id", getId()) - .append("carVin", getCarVin()) - .append("carPlate", getCarPlate()) - .append("carBrand", getCarBrand()) - .append("carModel", getCarModel()) - .append("carType", getCarType()) - .append("warnStrategy", getWarnStrategy()) - .append("groupCode", getGroupCode()) - .append("state", getState()) - .append("createBy", getCreateBy()) - .append("createTime", getCreateTime()) - .append("updateBy", getUpdateBy()) - .append("updateTime", getUpdateTime()) - .append("remark", getRemark()) - .toString(); - } } diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-common/src/main/java/com/muyu/domain/resp/FenceGroupResp.java b/cloud-modules/cloud-modules-enterprise/enterpise-common/src/main/java/com/muyu/domain/resp/FenceGroupResp.java new file mode 100644 index 0000000..063163b --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/enterpise-common/src/main/java/com/muyu/domain/resp/FenceGroupResp.java @@ -0,0 +1,36 @@ +package com.muyu.domain.resp; + +import com.muyu.domain.SysCar; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +import java.util.List; + +/** + * 车辆电子绑定电子围栏信息 + * @Author WangXin + * @Data 2024/10/3 + * @Description 车辆电子绑定电子围栏信息 + * @Version 1.0.0 + */ +@Data +@SuperBuilder +@AllArgsConstructor +@NoArgsConstructor +@Tag(name = "车辆电子绑定电子围栏信息") +public class FenceGroupResp { + /** + * 车辆信息 + */ + @Schema(name = "车辆基础信息对象") + private SysCar sysCar; + /** + * 围栏组内所有围栏的集合 + */ + @Schema(name = "车辆电子围栏信息") + private List carFenceResqList; +} diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-common/src/main/java/com/muyu/domain/resp/MessageValueListResp.java b/cloud-modules/cloud-modules-enterprise/enterpise-common/src/main/java/com/muyu/domain/resp/MessageValueListResp.java index ca09dc6..9d72b62 100644 --- a/cloud-modules/cloud-modules-enterprise/enterpise-common/src/main/java/com/muyu/domain/resp/MessageValueListResp.java +++ b/cloud-modules/cloud-modules-enterprise/enterpise-common/src/main/java/com/muyu/domain/resp/MessageValueListResp.java @@ -66,6 +66,7 @@ public class MessageValueListResp { @Schema(description = "终止下标",example = "1") private Integer messageEndIndex; + public static MessageValueListResp valueBuild(MessageValue messageValue){ return MessageValueListResp.builder() .messageId(messageValue.getMessageId()) diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-common/src/main/java/com/muyu/domain/resp/SysCarResp.java b/cloud-modules/cloud-modules-enterprise/enterpise-common/src/main/java/com/muyu/domain/resp/SysCarResp.java index 19c61e5..b85b6b2 100644 --- a/cloud-modules/cloud-modules-enterprise/enterpise-common/src/main/java/com/muyu/domain/resp/SysCarResp.java +++ b/cloud-modules/cloud-modules-enterprise/enterpise-common/src/main/java/com/muyu/domain/resp/SysCarResp.java @@ -3,6 +3,7 @@ package com.muyu.domain.resp; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.muyu.domain.SysCar; import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.AllArgsConstructor; @@ -89,19 +90,19 @@ public class SysCarResp { @Schema(description = "启用状态") private Integer state; - @Override - public String toString() { - return "SysCarResp{" + - "id=" + id + - ", carVin='" + carVin + '\'' + - ", carPlate='" + carPlate + '\'' + - ", carBrand='" + carBrand + '\'' + - ", carModel='" + carModel + '\'' + - ", carType=" + carType + - ", sysTypeName='" + sysTypeName + '\'' + - ", warnStrategy=" + warnStrategy + - ", groupCode='" + groupCode + '\'' + - ", state=" + state + - '}'; + + public static SysCarResp reverseResp(SysCar sysCar){ + return SysCarResp.builder() + .id(sysCar.getId()) + .carVin(sysCar.getCarVin()) + .carPlate(sysCar.getCarPlate()) + .carBrand(sysCar.getCarBrand()) + .carModel(sysCar.getCarModel()) + .carType(sysCar.getCarType()) + .warnStrategy(sysCar.getWarnStrategy()) + .groupCode(sysCar.getGroupCode()) + .state(sysCar.getState()) + .build(); + } } diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-remote/pom.xml b/cloud-modules/cloud-modules-enterprise/enterpise-remote/pom.xml index 63c8105..e94a784 100644 --- a/cloud-modules/cloud-modules-enterprise/enterpise-remote/pom.xml +++ b/cloud-modules/cloud-modules-enterprise/enterpise-remote/pom.xml @@ -5,7 +5,7 @@ 4.0.0 com.muyu - cloud-modules + cloud-modules-enterprise 3.6.3 @@ -17,4 +17,11 @@ UTF-8 + + + com.muyu + enterpise-common + ${muyu.version} + + diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-remote/src/main/java/com/muyu/Main.java b/cloud-modules/cloud-modules-enterprise/enterpise-remote/src/main/java/com/muyu/Main.java deleted file mode 100644 index 07a7a1d..0000000 --- a/cloud-modules/cloud-modules-enterprise/enterpise-remote/src/main/java/com/muyu/Main.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.muyu; - -/** - * @Author:yan - * @Package:com.muyu - * @Project:Default (Template) Project - * @name:${NAME} - * @Date:2024/9/29 09:55 - */ -public class Main { - public static void main(String[] args) { - System.out.println("Hello world!"); - } -} diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-remote/src/main/java/com/muyu/remote/RemoteMessageValueService.java b/cloud-modules/cloud-modules-enterprise/enterpise-remote/src/main/java/com/muyu/remote/RemoteMessageValueService.java new file mode 100644 index 0000000..c2a4641 --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/enterpise-remote/src/main/java/com/muyu/remote/RemoteMessageValueService.java @@ -0,0 +1,30 @@ +package com.muyu.remote; + +import com.muyu.common.core.constant.ServiceNameConstants; +import com.muyu.common.core.domain.Result; +import com.muyu.domain.req.MessageValueReq; +import com.muyu.domain.resp.MessageValueListResp; +import com.muyu.remote.factory.RemoteMessageValueFallbackFactory; +import io.swagger.v3.oas.annotations.Operation; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * @version 1.0 + * @Author xie ya ru + * @Date 2024/9/28 21:00 + * @注释 vin查询报文模版类型 + */ +@FeignClient(contextId = "remoteMessageValueService", value = ServiceNameConstants.ENTERPRISE_SERVICE, fallbackFactory = RemoteMessageValueFallbackFactory.class,path = "messageValue") +public interface RemoteMessageValueService { + + @PostMapping("/findByTemplateId/{stringVin}") + @Operation(summary = "根据车辆类型查询报文模版ID",description = "根据车辆类型查询报文模版ID") + Result findByTemplateId(@PathVariable("stringVin") String stringVin); + + @RequestMapping(value = "/list", method = RequestMethod.POST) + Result> findAll(@RequestBody MessageValueReq messageValueReq); + +} diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-remote/src/main/java/com/muyu/remote/factory/RemoteMessageValueFallbackFactory.java b/cloud-modules/cloud-modules-enterprise/enterpise-remote/src/main/java/com/muyu/remote/factory/RemoteMessageValueFallbackFactory.java new file mode 100644 index 0000000..7a41d23 --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/enterpise-remote/src/main/java/com/muyu/remote/factory/RemoteMessageValueFallbackFactory.java @@ -0,0 +1,35 @@ +package com.muyu.remote.factory; + +import com.muyu.common.core.domain.Result; +import com.muyu.domain.req.MessageValueReq; +import com.muyu.domain.resp.MessageValueListResp; +import com.muyu.remote.RemoteMessageValueService; +import lombok.extern.log4j.Log4j2; +import org.springframework.cloud.openfeign.FallbackFactory; + +import java.util.List; + +/** + * @version 1.0 + * @Author xie ya ru + * @Date 2024/9/28 21:04 + * @注释 + */ +@Log4j2 +public class RemoteMessageValueFallbackFactory implements FallbackFactory { + @Override + public RemoteMessageValueService create(Throwable cause) { + log.error("文件服务调用失败:{}",cause.getMessage()); + return new RemoteMessageValueService() { + @Override + public Result> findAll(MessageValueReq messageValueReq) { + return Result.error("查询数据失败:"+cause.getMessage()); + } + + @Override + public Result findByTemplateId(String stringVin) { + return Result.error("查询数据失败:"+cause.getMessage()); + } + }; + } +} diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-remote/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/cloud-modules/cloud-modules-enterprise/enterpise-remote/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports new file mode 100644 index 0000000..f47b915 --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/enterpise-remote/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -0,0 +1 @@ +com.muyu.remote.factory.RemoteMessageValueFallbackFactory diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-service/pom.xml b/cloud-modules/cloud-modules-enterprise/enterpise-service/pom.xml index 9b369fd..1131b07 100644 --- a/cloud-modules/cloud-modules-enterprise/enterpise-service/pom.xml +++ b/cloud-modules/cloud-modules-enterprise/enterpise-service/pom.xml @@ -5,7 +5,7 @@ 4.0.0 com.muyu - cloud-modules + cloud-modules-enterprise 3.6.3 @@ -19,18 +19,19 @@ + + + com.github.yulichang + mybatis-plus-join + 1.4.13 + + com.muyu enterpise-common ${muyu.version} - - org.eclipse.paho - org.eclipse.paho.client.mqttv3 - 1.2.5 - - com.alibaba.cloud @@ -66,6 +67,11 @@ com.muyu cloud-common-datasource + + + com.muyu + cloud-common-cache + @@ -91,6 +97,12 @@ cloud-common-xxl + + + com.muyu + enterpise-cache + + diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/controller/CarAndFenceGroupMiddleController.java b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/controller/CarAndFenceGroupMiddleController.java new file mode 100644 index 0000000..aba9ae9 --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/controller/CarAndFenceGroupMiddleController.java @@ -0,0 +1,42 @@ +package com.muyu.controller; + +import com.muyu.common.core.domain.Result; +import com.muyu.domain.FenceGroup; +import com.muyu.enterpise.service.CarAndFenceGroupMiddleService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.AllArgsConstructor; +import lombok.extern.log4j.Log4j2; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * 车辆和围栏组中间表 + * @Author:yan + * @Package:com.muyu.controller + * @Project:plues + * @name:CarAndFenceGroupMiddleController + * @Date:2024/9/29 20:09 + */ +@RequestMapping("/carandfencemiddle") +@RestController +@AllArgsConstructor +@Log4j2 +@Tag(name = "车辆和围栏组中间表") +public class CarAndFenceGroupMiddleController { + @Autowired + private CarAndFenceGroupMiddleService carAndFenceGroupMiddleService; + + /** + * 根据围栏组和车辆的id添加中间表 + */ + @PostMapping("/addFenceGroupAddCarMiddle") + @Operation(summary = "根据围栏组和车辆的id添加中间表",description = "根据围栏组和车辆的id添加中间表") + public Result addFenceGroupAddCarMiddle(@RequestParam("carId") Integer carId , @RequestBody List fenceGroups ){ + boolean b = carAndFenceGroupMiddleService.saveBatch(fenceGroups,carId); + return Result.success("成功"); + } + +} diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/controller/CarFenceClazzController.java b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/controller/CarFenceClazzController.java similarity index 93% rename from cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/controller/CarFenceClazzController.java rename to cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/controller/CarFenceClazzController.java index 43f27ea..8440cb4 100644 --- a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/controller/CarFenceClazzController.java +++ b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/controller/CarFenceClazzController.java @@ -1,9 +1,9 @@ -package com.muyu.controller; +package com.muyu.enterpise.controller; import com.muyu.common.core.domain.Result; import com.muyu.domain.CarFenceClazz; -import com.muyu.service.CarFenceClazzService; +import com.muyu.enterpise.service.CarFenceClazzService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.AllArgsConstructor; diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/controller/CarFenceController.java b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/controller/CarFenceController.java similarity index 93% rename from cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/controller/CarFenceController.java rename to cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/controller/CarFenceController.java index e323d6c..b1b6563 100644 --- a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/controller/CarFenceController.java +++ b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/controller/CarFenceController.java @@ -1,12 +1,12 @@ -package com.muyu.controller; +package com.muyu.enterpise.controller; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.muyu.common.core.domain.Result; import com.muyu.domain.CarFence; import com.muyu.domain.req.CarFenceReq; import com.muyu.domain.resp.CarFenceResq; -import com.muyu.service.CarFenceService; -import com.muyu.service.CarFenceServiceMybaits; +import com.muyu.enterpise.service.CarFenceService; +import com.muyu.enterpise.service.CarFenceServiceMybaits; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.AllArgsConstructor; diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/controller/CarFenceTypeController.java b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/controller/CarFenceTypeController.java similarity index 93% rename from cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/controller/CarFenceTypeController.java rename to cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/controller/CarFenceTypeController.java index 2b3024b..c47d09a 100644 --- a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/controller/CarFenceTypeController.java +++ b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/controller/CarFenceTypeController.java @@ -1,8 +1,8 @@ -package com.muyu.controller; +package com.muyu.enterpise.controller; import com.muyu.common.core.domain.Result; import com.muyu.domain.CarFenceType; -import com.muyu.service.CarFenceTypeService; +import com.muyu.enterpise.service.CarFenceTypeService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.AllArgsConstructor; diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/controller/CarFenceUpdateController.java b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/controller/CarFenceUpdateController.java new file mode 100644 index 0000000..30866b6 --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/controller/CarFenceUpdateController.java @@ -0,0 +1,58 @@ +package com.muyu.enterpise.controller; + +import com.muyu.common.core.domain.Result; +import com.muyu.domain.FenceGroup; +import com.muyu.domain.req.FenceGroupUpdateReq; + +import com.muyu.enterpise.service.CarFenceUpdateService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.AllArgsConstructor; +import lombok.extern.log4j.Log4j2; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +/** + * 围栏组的修改状态 + * @Author:yan + * @Package:com.muyu.controller + * @Project:plues + * @name:CarFenceUpdateController + * @Date:2024/9/30 09:10 + * + */ +@RestController +@RequestMapping("/fenceUpdate") +@AllArgsConstructor +@Log4j2 +@Tag(name = "修改围栏组的状态") +public class CarFenceUpdateController { + @Autowired + private CarFenceUpdateService carFenceUpdateService; + + /** + * 启动围栏组 + */ + @PutMapping("/activate") + @Operation(summary = "启动围栏状态",description = "启动围栏状态") + public Result activate(@RequestBody FenceGroupUpdateReq fenceGroupUpdateReq){ + Integer states = 0; + boolean b = carFenceUpdateService.updateById(FenceGroup.carFenceUpdateById(states, fenceGroupUpdateReq)); + return Result.success("成功"); + } + + /** + * 修改围栏状态为关闭 + * @param groupId + * @return + */ + @GetMapping("/updateFenceGroupById") + @Operation(summary = "修改围栏状态为关闭",description = "修改围栏状态为关闭") + public Result updateFenceGroupById(@RequestParam("groupId") Long groupId){ + Integer states = 1; + carFenceUpdateService.updateById(FenceGroup.closeCarFenceUpdateById(states,groupId)); + + return Result.success("成功"); + } + +} diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/controller/CarTypeController.java b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/controller/CarTypeController.java similarity index 92% rename from cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/controller/CarTypeController.java rename to cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/controller/CarTypeController.java index 26b37e9..85dcd97 100644 --- a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/controller/CarTypeController.java +++ b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/controller/CarTypeController.java @@ -1,8 +1,8 @@ -package com.muyu.controller; +package com.muyu.enterpise.controller; import com.muyu.common.core.domain.Result; -import com.muyu.service.CarTypeService; +import com.muyu.enterpise.service.CarTypeService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import org.springframework.beans.factory.annotation.Autowired; diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/controller/FaultCodeController.java b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/controller/FaultCodeController.java similarity index 97% rename from cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/controller/FaultCodeController.java rename to cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/controller/FaultCodeController.java index d209501..8c1df61 100644 --- a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/controller/FaultCodeController.java +++ b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/controller/FaultCodeController.java @@ -1,4 +1,4 @@ -package com.muyu.controller; +package com.muyu.enterpise.controller; @@ -7,7 +7,7 @@ import com.muyu.domain.req.FaultCodeAddReq; import com.muyu.domain.req.FaultCodeListReq; import com.muyu.domain.req.FaultCodeUpdReq; import com.muyu.domain.resp.FaultCodeTotalListResp; -import com.muyu.service.FaultCodeService; +import com.muyu.enterpise.service.FaultCodeService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import org.springframework.beans.factory.annotation.Autowired; diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/controller/FaultConditionController.java b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/controller/FaultConditionController.java similarity index 97% rename from cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/controller/FaultConditionController.java rename to cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/controller/FaultConditionController.java index 7e6cb77..703d222 100644 --- a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/controller/FaultConditionController.java +++ b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/controller/FaultConditionController.java @@ -1,4 +1,4 @@ -package com.muyu.controller; +package com.muyu.enterpise.controller; @@ -7,7 +7,7 @@ import com.muyu.domain.FaultCondition; import com.muyu.domain.req.FaultConditionAddReq; import com.muyu.domain.req.FaultConditionListReq; import com.muyu.domain.req.FaultConditionUpdReq; -import com.muyu.service.FaultConditionService; +import com.muyu.enterpise.service.FaultConditionService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import org.springframework.beans.factory.annotation.Autowired; diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/controller/FaultLabelController.java b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/controller/FaultLabelController.java similarity index 91% rename from cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/controller/FaultLabelController.java rename to cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/controller/FaultLabelController.java index 96924c7..3ec1325 100644 --- a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/controller/FaultLabelController.java +++ b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/controller/FaultLabelController.java @@ -1,6 +1,6 @@ -package com.muyu.controller; +package com.muyu.enterpise.controller; import com.muyu.common.core.domain.Result; -import com.muyu.service.FaultLabelService; +import com.muyu.enterpise.service.FaultLabelService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import org.springframework.beans.factory.annotation.Autowired; diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/controller/FaultLogController.java b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/controller/FaultLogController.java similarity index 93% rename from cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/controller/FaultLogController.java rename to cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/controller/FaultLogController.java index 4bdf04f..c67767c 100644 --- a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/controller/FaultLogController.java +++ b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/controller/FaultLogController.java @@ -1,7 +1,7 @@ -package com.muyu.controller; +package com.muyu.enterpise.controller; import com.muyu.common.core.domain.Result; import com.muyu.domain.req.FaultLogListReq; -import com.muyu.service.FaultLogService; +import com.muyu.enterpise.service.FaultLogService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import org.springframework.beans.factory.annotation.Autowired; diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/controller/FaultRuleController.java b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/controller/FaultRuleController.java similarity index 95% rename from cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/controller/FaultRuleController.java rename to cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/controller/FaultRuleController.java index 5f1b91c..bcac91c 100644 --- a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/controller/FaultRuleController.java +++ b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/controller/FaultRuleController.java @@ -1,10 +1,10 @@ -package com.muyu.controller; +package com.muyu.enterpise.controller; import com.muyu.common.core.domain.Result; import com.muyu.domain.CarFaultRule; import com.muyu.domain.FaultRule; -import com.muyu.service.FaultRuleService; +import com.muyu.enterpise.service.FaultRuleService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import org.springframework.beans.factory.annotation.Autowired; diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/controller/FaultTypeController.java b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/controller/FaultTypeController.java similarity index 92% rename from cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/controller/FaultTypeController.java rename to cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/controller/FaultTypeController.java index 40818d6..97b373b 100644 --- a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/controller/FaultTypeController.java +++ b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/controller/FaultTypeController.java @@ -1,6 +1,6 @@ -package com.muyu.controller; +package com.muyu.enterpise.controller; import com.muyu.common.core.domain.Result; -import com.muyu.service.FaultTypeService; +import com.muyu.enterpise.service.FaultTypeService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import org.springframework.beans.factory.annotation.Autowired; diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/controller/FenceGroupController.java b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/controller/FenceGroupController.java similarity index 94% rename from cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/controller/FenceGroupController.java rename to cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/controller/FenceGroupController.java index 3678693..1b4c76a 100644 --- a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/controller/FenceGroupController.java +++ b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/controller/FenceGroupController.java @@ -1,8 +1,8 @@ -package com.muyu.controller; +package com.muyu.enterpise.controller; import com.muyu.common.core.domain.Result; import com.muyu.domain.FenceGroup; -import com.muyu.service.FenceGroupService; +import com.muyu.enterpise.service.FenceGroupService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.AllArgsConstructor; diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/controller/MessageController.java b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/controller/MessageController.java similarity index 96% rename from cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/controller/MessageController.java rename to cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/controller/MessageController.java index 98ce3c6..0bcd21a 100644 --- a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/controller/MessageController.java +++ b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/controller/MessageController.java @@ -1,11 +1,11 @@ -package com.muyu.controller; +package com.muyu.enterpise.controller; import com.muyu.common.core.domain.Result; import com.muyu.domain.message.Message; import com.muyu.domain.message.MessageReq; import com.muyu.domain.message.MessageSendReq; -import com.muyu.service.MessageService; +import com.muyu.enterpise.service.MessageService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import org.springframework.beans.factory.annotation.Autowired; diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/controller/MessageTemplateController.java b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/controller/MessageTemplateController.java similarity index 95% rename from cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/controller/MessageTemplateController.java rename to cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/controller/MessageTemplateController.java index 148e9e1..75edf5c 100644 --- a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/controller/MessageTemplateController.java +++ b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/controller/MessageTemplateController.java @@ -1,10 +1,10 @@ -package com.muyu.controller; +package com.muyu.enterpise.controller; import com.muyu.common.core.domain.Result; import com.muyu.domain.MessageTemplate; import com.muyu.domain.req.MessageTemplateAddReq; import com.muyu.domain.resp.MessageTemplateListResp; -import com.muyu.service.MessageTemplateService; +import com.muyu.enterpise.service.MessageTemplateService; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.extern.log4j.Log4j2; import org.springframework.beans.factory.annotation.Autowired; diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/controller/MessageValueController.java b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/controller/MessageValueController.java similarity index 75% rename from cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/controller/MessageValueController.java rename to cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/controller/MessageValueController.java index fb28d64..6bdb51a 100644 --- a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/controller/MessageValueController.java +++ b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/controller/MessageValueController.java @@ -1,4 +1,4 @@ -package com.muyu.controller; +package com.muyu.enterpise.controller; import com.muyu.common.core.domain.Result; import com.muyu.common.core.web.controller.BaseController; @@ -6,7 +6,8 @@ import com.muyu.domain.MessageValue; import com.muyu.domain.req.MessageValueAddReq; import com.muyu.domain.req.MessageValueReq; import com.muyu.domain.resp.MessageValueListResp; -import com.muyu.service.MessageValueService; +import com.muyu.enterpise.cache.MessageValueCacheService; +import com.muyu.enterpise.service.MessageValueService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.extern.log4j.Log4j2; @@ -31,6 +32,9 @@ public class MessageValueController extends BaseController { @Autowired private MessageValueService messageValueService; + @Autowired + private MessageValueCacheService enterpiseCacheService; + /** * 报文数据列表查询 * @param messageValueReq @@ -52,6 +56,7 @@ public class MessageValueController extends BaseController { @Operation(summary = "添加报文数据", description = "新增报文数据") public Result save(@RequestBody MessageValueAddReq messageValueAddReq){ messageValueService.save(MessageValue.addBuild(messageValueAddReq)); +// enterpiseCacheService.put(String.valueOf(messageValueAddReq.getTemplateId()),MessageValue.addBuild(messageValueAddReq)); return Result.success("添加成功"); } @@ -74,4 +79,14 @@ public class MessageValueController extends BaseController { public void test(String str){ messageValueService.test(str); } + + + @PostMapping({"/findByTemplateId/{stringVin}"}) + @Operation( + summary = "根据车辆类型查询报文模版ID", + description = "根据车辆类型查询报文模版ID" + ) + public Result findByTemplateId(@PathVariable("stringVin") String stringVin) { + return Result.success(this.messageValueService.findByTemplateId(stringVin), "查询成功"); + } } diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/controller/MiddleController.java b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/controller/MiddleController.java similarity index 50% rename from cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/controller/MiddleController.java rename to cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/controller/MiddleController.java index 7e6de8c..32ff409 100644 --- a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/controller/MiddleController.java +++ b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/controller/MiddleController.java @@ -1,10 +1,9 @@ -package com.muyu.controller; +package com.muyu.enterpise.controller; import com.muyu.common.core.domain.Result; -import com.muyu.domain.FenceGroup; import com.muyu.domain.req.CarFenceAdd; -import com.muyu.service.CarFenceServiceMybaits; -import com.muyu.service.MiddleService; + +import com.muyu.enterpise.service.CarFenceServiceMybaits; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.AllArgsConstructor; @@ -28,45 +27,20 @@ import java.util.List; @Tag(name = "中间表添加",description = "添加") @Log4j2 public class MiddleController { - @Autowired - private MiddleService middleService; @Autowired private CarFenceServiceMybaits carFenceServiceMybaits; - - /** * 添加围栏组 多对多 */ @PostMapping("/addCarFence") - @Operation(summary = "添加中间",description = "添加中间") + @Operation(summary = "添加中间围栏和围栏组",description = "添加中间") public Result addCarFence(@RequestParam("fenceGroupId") Integer fenceGroupId, @RequestBody List carFences){ - carFenceServiceMybaits.addFenceGroup(fenceGroupId,carFences); - System.out.println("围栏组Id"+fenceGroupId); - System.out.println("围栏Id"+carFences); - return Result.success("成功"); + boolean i = carFenceServiceMybaits.saveBatch(carFences,fenceGroupId); + return i?Result.success("添加成功"):Result.error("失败"); } - /** - * 修改围栏状态 - * @param groupId - * @return - */ - @GetMapping("/updateFenceGroupById") - @Operation(summary = "修改围栏状态",description = "修改围栏状态") - public Result updateFenceGroupById(@RequestParam("groupId") Integer groupId){ - return Result.success(carFenceServiceMybaits.updateFenceGroupById(groupId)); - } - - /** - * 启动围栏 - */ - @GetMapping("/activate") - @Operation(summary = "启动围栏状态",description = "启动围栏状态") - public Result activate(@RequestParam("groupId") Integer groupId){ - return Result.success(carFenceServiceMybaits.activate(groupId)); - } /** * 根据围栏组的id查询绑定的围栏的中间表 @@ -74,20 +48,12 @@ public class MiddleController { @GetMapping("/BoundFenceGroup") @Operation(summary = "根据围栏组的id查询绑定的围栏的中间表",description = "根据围栏组的id查询绑定的围栏的中间表") public Result BoundFenceGroup(@RequestParam("groupId") Integer groupId){ - - return Result.success(carFenceServiceMybaits.BoundFenceGroup(groupId)); - } - - /** - * 根据围栏组和车辆的id添加中间表 - */ - @PostMapping("/addFenceGroupAddCarMiddle") - @Operation(summary = "根据围栏组和车辆的id添加中间表",description = "根据围栏组和车辆的id添加中间表") - public Result addFenceGroupAddCarMiddle(@RequestParam("carId") Integer carId , @RequestBody List fenceGroups ){ - carFenceServiceMybaits.addFenceGroupAddCarMiddle(carId,fenceGroups); + carFenceServiceMybaits.BoundFenceGroup(groupId); return Result.success(); } + + /** * 获取绑定的围栏组 */ diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/controller/SysCarController.java b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/controller/SysCarController.java similarity index 89% rename from cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/controller/SysCarController.java rename to cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/controller/SysCarController.java index 3aba980..68efcd7 100644 --- a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/controller/SysCarController.java +++ b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/controller/SysCarController.java @@ -1,4 +1,4 @@ -package com.muyu.controller; +package com.muyu.enterpise.controller; import com.muyu.common.core.domain.Result; import com.muyu.common.core.web.controller.BaseController; @@ -6,8 +6,9 @@ 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.domain.SysCar; +import com.muyu.domain.req.SysCarReq; import com.muyu.domain.resp.SysCarResp; -import com.muyu.service.SysCarService; +import com.muyu.enterpise.service.SysCarService; import io.swagger.v3.oas.annotations.tags.Tag; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -32,19 +33,19 @@ public class SysCarController extends BaseController /** * 查询车辆基础信息列表 */ - @RequiresPermissions("car:car:list") + @RequiresPermissions("saas:car:list") @GetMapping("/list") - public Result> list(SysCar sysCar) + public Result> list(SysCarReq sysCarReq) { startPage(); - List list = sysCarService.selectSysCarList(sysCar); + List list = sysCarService.selectSysCarList(sysCarReq); return getDataTable(list); } /** * 获取车辆基础信息详细信息 */ - @RequiresPermissions("car:car:query") + @RequiresPermissions("saas:car:query") @GetMapping(value = "/{id}") public Result> getInfo(@PathVariable("id") Long id) { diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/controller/SysCarFaultController.java b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/controller/SysCarFaultController.java similarity index 97% rename from cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/controller/SysCarFaultController.java rename to cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/controller/SysCarFaultController.java index 5b3f287..6e73975 100644 --- a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/controller/SysCarFaultController.java +++ b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/controller/SysCarFaultController.java @@ -1,4 +1,4 @@ -package com.muyu.controller; +package com.muyu.enterpise.controller; import com.muyu.common.core.domain.Result; import com.muyu.common.core.utils.poi.ExcelUtil; @@ -7,7 +7,7 @@ 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.domain.SysCarFault; -import com.muyu.service.ISysCarFaultService; +import com.muyu.enterpise.service.ISysCarFaultService; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.servlet.http.HttpServletResponse; import org.springframework.validation.annotation.Validated; diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/controller/SysTypeController.java b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/controller/SysTypeController.java similarity index 92% rename from cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/controller/SysTypeController.java rename to cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/controller/SysTypeController.java index 7eb5abe..a2ad3b3 100644 --- a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/controller/SysTypeController.java +++ b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/controller/SysTypeController.java @@ -1,10 +1,10 @@ -package com.muyu.controller; +package com.muyu.enterpise.controller; 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.domain.SysCarType; -import com.muyu.service.SysTypeService; +import com.muyu.enterpise.service.SysTypeService; import io.swagger.v3.oas.annotations.tags.Tag; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/controller/WarnLogsController.java b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/controller/WarnLogsController.java similarity index 96% rename from cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/controller/WarnLogsController.java rename to cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/controller/WarnLogsController.java index 9e6f3fd..225af02 100644 --- a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/controller/WarnLogsController.java +++ b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/controller/WarnLogsController.java @@ -1,4 +1,4 @@ -package com.muyu.controller; +package com.muyu.enterpise.controller; import com.muyu.common.core.domain.Result; import com.muyu.common.core.utils.poi.ExcelUtil; @@ -6,7 +6,7 @@ import com.muyu.common.core.web.controller.BaseController; import com.muyu.common.core.web.page.TableDataInfo; import com.muyu.common.security.utils.SecurityUtils; import com.muyu.domain.WarnLogs; -import com.muyu.service.IWarnLogsService; +import com.muyu.enterpise.service.IWarnLogsService; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.servlet.http.HttpServletResponse; import org.springframework.validation.annotation.Validated; diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/controller/WarnRuleController.java b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/controller/WarnRuleController.java similarity index 96% rename from cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/controller/WarnRuleController.java rename to cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/controller/WarnRuleController.java index 0189a41..17680c4 100644 --- a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/controller/WarnRuleController.java +++ b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/controller/WarnRuleController.java @@ -1,4 +1,4 @@ -package com.muyu.controller; +package com.muyu.enterpise.controller; import com.muyu.common.core.domain.Result; import com.muyu.common.core.utils.poi.ExcelUtil; @@ -6,7 +6,7 @@ import com.muyu.common.core.web.controller.BaseController; import com.muyu.common.core.web.page.TableDataInfo; import com.muyu.common.security.utils.SecurityUtils; import com.muyu.domain.WarnRule; -import com.muyu.service.IWarnRuleService; +import com.muyu.enterpise.service.IWarnRuleService; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.servlet.http.HttpServletResponse; import org.springframework.validation.annotation.Validated; diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/controller/WarnStrategyController.java b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/controller/WarnStrategyController.java similarity index 97% rename from cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/controller/WarnStrategyController.java rename to cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/controller/WarnStrategyController.java index 1cb1478..7f3b24f 100644 --- a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/controller/WarnStrategyController.java +++ b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/controller/WarnStrategyController.java @@ -1,4 +1,4 @@ -package com.muyu.controller; +package com.muyu.enterpise.controller; import com.muyu.common.core.domain.Result; import com.muyu.common.core.utils.poi.ExcelUtil; @@ -6,7 +6,7 @@ import com.muyu.common.core.web.controller.BaseController; import com.muyu.common.core.web.page.TableDataInfo; import com.muyu.common.security.utils.SecurityUtils; import com.muyu.domain.WarnStrategy; -import com.muyu.service.IWarnStrategyService; +import com.muyu.enterpise.service.IWarnStrategyService; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.servlet.http.HttpServletResponse; import org.springframework.validation.annotation.Validated; diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/mapper/CarAndFenceGroupMiddleMapper.java b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/mapper/CarAndFenceGroupMiddleMapper.java new file mode 100644 index 0000000..d4ab379 --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/mapper/CarAndFenceGroupMiddleMapper.java @@ -0,0 +1,19 @@ +package com.muyu.enterpise.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.muyu.common.core.web.controller.BaseController; +import com.muyu.domain.CarAndGroupMiddle; +import org.apache.ibatis.annotations.Mapper; + +/** + * 车辆和围栏组中间表 + * @Author:yan + * @Package:com.muyu.mapper + * @Project:plues + * @name:CarAndFenceGroupMiddleMapper + * @Date:2024/9/29 20:12 + */ +@Mapper +public interface CarAndFenceGroupMiddleMapper extends BaseMapper { + +} diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/mapper/CarFenceClazzMapper.java b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/mapper/CarFenceClazzMapper.java similarity index 92% rename from cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/mapper/CarFenceClazzMapper.java rename to cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/mapper/CarFenceClazzMapper.java index 30ada37..ba6acb1 100644 --- a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/mapper/CarFenceClazzMapper.java +++ b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/mapper/CarFenceClazzMapper.java @@ -1,4 +1,4 @@ -package com.muyu.mapper; +package com.muyu.enterpise.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.muyu.domain.CarFenceClazz; diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/mapper/CarFenceMapper.java b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/mapper/CarFenceMapper.java similarity index 91% rename from cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/mapper/CarFenceMapper.java rename to cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/mapper/CarFenceMapper.java index c6198b0..451261d 100644 --- a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/mapper/CarFenceMapper.java +++ b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/mapper/CarFenceMapper.java @@ -1,4 +1,4 @@ -package com.muyu.mapper; +package com.muyu.enterpise.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.muyu.domain.CarFence; diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/mapper/CarFenceServiceMybaitsMapper.java b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/mapper/CarFenceServiceMybaitsMapper.java similarity index 73% rename from cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/mapper/CarFenceServiceMybaitsMapper.java rename to cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/mapper/CarFenceServiceMybaitsMapper.java index e41f497..d4d59bb 100644 --- a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/mapper/CarFenceServiceMybaitsMapper.java +++ b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/mapper/CarFenceServiceMybaitsMapper.java @@ -1,8 +1,9 @@ -package com.muyu.mapper; +package com.muyu.enterpise.mapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.muyu.domain.CarFence; import com.muyu.domain.CarMiddle; -import com.muyu.domain.FenceAndGroupMiddle; +import com.muyu.domain.CarAndGroupMiddle; import com.muyu.domain.FenceGroup; import com.muyu.domain.req.CarFenceGroup; import org.apache.ibatis.annotations.Mapper; @@ -19,7 +20,7 @@ import java.util.List; * * @Date:2024/9/22 19:25 */ @Mapper -public interface CarFenceServiceMybaitsMapper { +public interface CarFenceServiceMybaitsMapper extends BaseMapper { void fenceAdd(CarFenceGroup carFence); @@ -32,17 +33,6 @@ public interface CarFenceServiceMybaitsMapper { */ Integer addFenceGroup(@Param("fenceGroupId") Integer fenceGroupId, @Param("id") Integer id); - /** - * 修改围栏组状态 - * @param groupId - * @return - */ - void updateFenceGroupById(@Param("groupId") Integer groupId); - - /** - * 启动围栏 - */ - void activate(@Param("groupId") Integer groupId); /** * 根据围栏组的id查询绑定的围栏的中间表 @@ -64,19 +54,19 @@ public interface CarFenceServiceMybaitsMapper { * @param id * @param groupId */ - void addFenceGroupAddCarMiddle(@Param("id") Integer id, @Param("groupId") Integer groupId); + void addFenceGroupAddCarMiddle(@Param("id") Integer id, @Param("groupId") Long groupId); /** * 获取绑定的围栏组 * @param carId * @return */ - List selectBoundGFenceGroup(@Param("carId") Integer carId); + List selectBoundGFenceGroup(@Param("carId") Integer carId); /** * 获取围栏组的数据 * @param carGroupId 参数 * @return */ - FenceGroup selectGroup(@Param("carGroupId") Integer carGroupId); + FenceGroup selectGroup(@Param("carGroupId") Long carGroupId); } diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/mapper/CarFenceTypeMapper.java b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/mapper/CarFenceTypeMapper.java similarity index 92% rename from cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/mapper/CarFenceTypeMapper.java rename to cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/mapper/CarFenceTypeMapper.java index efa6855..4b4d9ba 100644 --- a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/mapper/CarFenceTypeMapper.java +++ b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/mapper/CarFenceTypeMapper.java @@ -1,4 +1,4 @@ -package com.muyu.mapper; +package com.muyu.enterpise.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.muyu.domain.CarFenceType; diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/mapper/CarFenceUpdateMapper.java b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/mapper/CarFenceUpdateMapper.java new file mode 100644 index 0000000..8bba863 --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/mapper/CarFenceUpdateMapper.java @@ -0,0 +1,18 @@ +package com.muyu.enterpise.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.muyu.domain.CarFence; +import com.muyu.domain.FenceGroup; +import org.apache.ibatis.annotations.Mapper; + +/** + * 围栏组的修改状态 + * @Author:yan + * @Package:com.muyu.mapper + * @Project:plues + * @name:CarFenceUpdateMapper + * @Date:2024/9/30 09:13 + */ +@Mapper +public interface CarFenceUpdateMapper extends BaseMapper { +} diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/mapper/CarTypeMapper.java b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/mapper/CarTypeMapper.java similarity index 92% rename from cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/mapper/CarTypeMapper.java rename to cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/mapper/CarTypeMapper.java index 3d2d805..829e92a 100644 --- a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/mapper/CarTypeMapper.java +++ b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/mapper/CarTypeMapper.java @@ -1,4 +1,4 @@ -package com.muyu.mapper; +package com.muyu.enterpise.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.muyu.domain.CarType; diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/mapper/FaultCodeMapper.java b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/mapper/FaultCodeMapper.java similarity index 97% rename from cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/mapper/FaultCodeMapper.java rename to cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/mapper/FaultCodeMapper.java index 1805157..0461600 100644 --- a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/mapper/FaultCodeMapper.java +++ b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/mapper/FaultCodeMapper.java @@ -1,4 +1,4 @@ -package com.muyu.mapper; +package com.muyu.enterpise.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.muyu.domain.FaultCode; diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/mapper/FaultConditionMapper.java b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/mapper/FaultConditionMapper.java similarity index 95% rename from cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/mapper/FaultConditionMapper.java rename to cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/mapper/FaultConditionMapper.java index f4a7aa3..9068d18 100644 --- a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/mapper/FaultConditionMapper.java +++ b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/mapper/FaultConditionMapper.java @@ -1,4 +1,4 @@ -package com.muyu.mapper; +package com.muyu.enterpise.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.muyu.domain.FaultCondition; diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/mapper/FaultLabelMapper.java b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/mapper/FaultLabelMapper.java similarity index 92% rename from cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/mapper/FaultLabelMapper.java rename to cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/mapper/FaultLabelMapper.java index 8d188fa..4b29d39 100644 --- a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/mapper/FaultLabelMapper.java +++ b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/mapper/FaultLabelMapper.java @@ -1,4 +1,4 @@ -package com.muyu.mapper; +package com.muyu.enterpise.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.muyu.domain.FaultLabel; diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/mapper/FaultLogMapper.java b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/mapper/FaultLogMapper.java similarity index 94% rename from cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/mapper/FaultLogMapper.java rename to cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/mapper/FaultLogMapper.java index f5afe1f..3d13bd8 100644 --- a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/mapper/FaultLogMapper.java +++ b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/mapper/FaultLogMapper.java @@ -1,4 +1,4 @@ -package com.muyu.mapper; +package com.muyu.enterpise.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.muyu.domain.FaultLog; diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/mapper/FaultRuleMapper.java b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/mapper/FaultRuleMapper.java similarity index 92% rename from cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/mapper/FaultRuleMapper.java rename to cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/mapper/FaultRuleMapper.java index 0e42646..86a42cd 100644 --- a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/mapper/FaultRuleMapper.java +++ b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/mapper/FaultRuleMapper.java @@ -1,4 +1,4 @@ -package com.muyu.mapper; +package com.muyu.enterpise.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.muyu.domain.FaultRule; diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/mapper/FaultTypeMapper.java b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/mapper/FaultTypeMapper.java similarity index 93% rename from cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/mapper/FaultTypeMapper.java rename to cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/mapper/FaultTypeMapper.java index 65971a5..542f13c 100644 --- a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/mapper/FaultTypeMapper.java +++ b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/mapper/FaultTypeMapper.java @@ -1,4 +1,4 @@ -package com.muyu.mapper; +package com.muyu.enterpise.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.muyu.domain.FaultType; diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/mapper/FenceGroupMapper.java b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/mapper/FenceGroupMapper.java similarity index 91% rename from cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/mapper/FenceGroupMapper.java rename to cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/mapper/FenceGroupMapper.java index cb52bf0..c663ba1 100644 --- a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/mapper/FenceGroupMapper.java +++ b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/mapper/FenceGroupMapper.java @@ -1,4 +1,4 @@ -package com.muyu.mapper; +package com.muyu.enterpise.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.muyu.domain.FenceGroup; diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/mapper/MessageMapper.java b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/mapper/MessageMapper.java similarity index 93% rename from cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/mapper/MessageMapper.java rename to cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/mapper/MessageMapper.java index 5dde70a..417753a 100644 --- a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/mapper/MessageMapper.java +++ b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/mapper/MessageMapper.java @@ -1,4 +1,4 @@ -package com.muyu.mapper; +package com.muyu.enterpise.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.muyu.domain.message.Message; diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/mapper/MessageTemplateMapper.java b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/mapper/MessageTemplateMapper.java similarity index 91% rename from cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/mapper/MessageTemplateMapper.java rename to cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/mapper/MessageTemplateMapper.java index eddf39d..85d4d52 100644 --- a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/mapper/MessageTemplateMapper.java +++ b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/mapper/MessageTemplateMapper.java @@ -1,4 +1,4 @@ -package com.muyu.mapper; +package com.muyu.enterpise.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.muyu.domain.MessageTemplate; diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/mapper/MessageValueMapper.java b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/mapper/MessageValueMapper.java similarity index 58% rename from cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/mapper/MessageValueMapper.java rename to cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/mapper/MessageValueMapper.java index 2f9d223..233d11f 100644 --- a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/mapper/MessageValueMapper.java +++ b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/mapper/MessageValueMapper.java @@ -1,8 +1,9 @@ -package com.muyu.mapper; +package com.muyu.enterpise.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.muyu.domain.MessageValue; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Select; /** * 消息值表(MessageValue)表数据库访问层 @@ -13,4 +14,6 @@ import org.apache.ibatis.annotations.Mapper; */ @Mapper public interface MessageValueMapper extends BaseMapper { + @Select({"SELECT sct.message_template_id FROM sys_car sc LEFT JOIN sys_car_type sct on sct.id = sc.car_type WHERE sc.car_vin = ${stringVin}"}) + Long findByTemplateId(String stringVin); } diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/mapper/MiddleMapper.java b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/mapper/MiddleMapper.java similarity index 93% rename from cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/mapper/MiddleMapper.java rename to cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/mapper/MiddleMapper.java index bb9ac8b..9d1b8a2 100644 --- a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/mapper/MiddleMapper.java +++ b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/mapper/MiddleMapper.java @@ -1,4 +1,4 @@ -package com.muyu.mapper; +package com.muyu.enterpise.mapper; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/mapper/SysCarFaultMapper.java b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/mapper/SysCarFaultMapper.java similarity index 92% rename from cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/mapper/SysCarFaultMapper.java rename to cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/mapper/SysCarFaultMapper.java index f743f89..deb269b 100644 --- a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/mapper/SysCarFaultMapper.java +++ b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/mapper/SysCarFaultMapper.java @@ -1,4 +1,4 @@ -package com.muyu.mapper; +package com.muyu.enterpise.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.muyu.domain.SysCarFault; diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/mapper/SysCarMapper.java b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/mapper/SysCarMapper.java similarity index 91% rename from cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/mapper/SysCarMapper.java rename to cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/mapper/SysCarMapper.java index 5d18dba..abd13a3 100644 --- a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/mapper/SysCarMapper.java +++ b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/mapper/SysCarMapper.java @@ -1,4 +1,4 @@ -package com.muyu.mapper; +package com.muyu.enterpise.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.muyu.domain.SysCar; diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/mapper/SysTypeMapper.java b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/mapper/SysTypeMapper.java similarity index 91% rename from cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/mapper/SysTypeMapper.java rename to cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/mapper/SysTypeMapper.java index 9197cc2..8ca2562 100644 --- a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/mapper/SysTypeMapper.java +++ b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/mapper/SysTypeMapper.java @@ -1,4 +1,4 @@ -package com.muyu.mapper; +package com.muyu.enterpise.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.muyu.domain.SysCarType; diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/mapper/WarnLogsMapper.java b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/mapper/WarnLogsMapper.java similarity index 88% rename from cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/mapper/WarnLogsMapper.java rename to cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/mapper/WarnLogsMapper.java index b8917c4..01288e5 100644 --- a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/mapper/WarnLogsMapper.java +++ b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/mapper/WarnLogsMapper.java @@ -1,4 +1,4 @@ -package com.muyu.mapper; +package com.muyu.enterpise.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.muyu.domain.WarnLogs; diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/mapper/WarnRuleMapper.java b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/mapper/WarnRuleMapper.java similarity index 88% rename from cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/mapper/WarnRuleMapper.java rename to cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/mapper/WarnRuleMapper.java index 9b41857..2e3c1d8 100644 --- a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/mapper/WarnRuleMapper.java +++ b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/mapper/WarnRuleMapper.java @@ -1,4 +1,4 @@ -package com.muyu.mapper; +package com.muyu.enterpise.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/mapper/WarnStrategyMapper.java b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/mapper/WarnStrategyMapper.java similarity index 89% rename from cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/mapper/WarnStrategyMapper.java rename to cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/mapper/WarnStrategyMapper.java index 7d55fbd..892d593 100644 --- a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/mapper/WarnStrategyMapper.java +++ b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/mapper/WarnStrategyMapper.java @@ -1,4 +1,4 @@ -package com.muyu.mapper; +package com.muyu.enterpise.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/CarAndFenceGroupMiddleService.java b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/CarAndFenceGroupMiddleService.java new file mode 100644 index 0000000..357e5d0 --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/CarAndFenceGroupMiddleService.java @@ -0,0 +1,22 @@ +package com.muyu.enterpise.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.muyu.domain.CarAndGroupMiddle; +import com.muyu.domain.FenceGroup; + +import java.util.List; + +/** + * 车辆和围栏组中间表 + * @Author:yan + * @Package:com.muyu.service + * @Project:plues + * @name:CarAndFenceGroupMiddleService + * @Date:2024/9/29 20:10 + */ +public interface CarAndFenceGroupMiddleService extends IService { + /** + * 根据围栏组和车辆的id添加中间表 + */ + boolean saveBatch(List fenceGroups, Integer carId); +} diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/CarFenceClazzService.java b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/CarFenceClazzService.java similarity index 91% rename from cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/CarFenceClazzService.java rename to cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/CarFenceClazzService.java index 1df33ac..086db20 100644 --- a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/CarFenceClazzService.java +++ b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/CarFenceClazzService.java @@ -1,4 +1,4 @@ -package com.muyu.service; +package com.muyu.enterpise.service; import com.baomidou.mybatisplus.extension.service.IService; import com.muyu.domain.CarFenceClazz; diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/CarFenceService.java b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/CarFenceService.java similarity index 94% rename from cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/CarFenceService.java rename to cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/CarFenceService.java index 78b717d..168f749 100644 --- a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/CarFenceService.java +++ b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/CarFenceService.java @@ -1,4 +1,4 @@ -package com.muyu.service; +package com.muyu.enterpise.service; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/CarFenceServiceMybaits.java b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/CarFenceServiceMybaits.java similarity index 56% rename from cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/CarFenceServiceMybaits.java rename to cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/CarFenceServiceMybaits.java index 913cb27..71e9166 100644 --- a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/CarFenceServiceMybaits.java +++ b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/CarFenceServiceMybaits.java @@ -1,6 +1,8 @@ -package com.muyu.service; +package com.muyu.enterpise.service; +import com.baomidou.mybatisplus.extension.service.IService; import com.muyu.domain.CarFence; +import com.muyu.domain.CarMiddle; import com.muyu.domain.FenceGroup; import com.muyu.domain.req.CarFenceAdd; @@ -14,36 +16,29 @@ import java.util.List; * * @name:CarFenceServiceMybaits * * @Date:2024/9/22 19:24 */ -public interface CarFenceServiceMybaits { - void add(Integer fenceGroupId, List carFenceId); +public interface CarFenceServiceMybaits extends IService { + /** * 添加多对多围栏组 + * * @param fenceGroupId * @param carFences - */ - void addFenceGroup(Integer fenceGroupId, List carFences); - - /** - * 修改围栏状态 - * @param groupId * @return */ - Object updateFenceGroupById(Integer groupId); + boolean saveBatch(List carFences, Integer fenceGroupId); + + + + + - /** - * 启动围栏 - */ - Object activate(Integer groupId); /** * 根据围栏组的id查询绑定的围栏的中间表 */ List BoundFenceGroup(Integer groupId); - /** - * 根据围栏组和车辆的id添加中间表 - */ - void addFenceGroupAddCarMiddle(Integer id, List fenceGroups); + /** * 获取绑定的围栏组 @@ -51,4 +46,6 @@ public interface CarFenceServiceMybaits { */ List selectBoundGFenceGroup(Integer carId); + + } diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/CarFenceTypeService.java b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/CarFenceTypeService.java similarity index 90% rename from cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/CarFenceTypeService.java rename to cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/CarFenceTypeService.java index b90043a..597f415 100644 --- a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/CarFenceTypeService.java +++ b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/CarFenceTypeService.java @@ -1,4 +1,4 @@ -package com.muyu.service; +package com.muyu.enterpise.service; import com.baomidou.mybatisplus.extension.service.IService; import com.muyu.domain.CarFenceType; diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/CarFenceUpdateService.java b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/CarFenceUpdateService.java new file mode 100644 index 0000000..a61fd09 --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/CarFenceUpdateService.java @@ -0,0 +1,16 @@ +package com.muyu.enterpise.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.muyu.domain.CarFence; +import com.muyu.domain.FenceGroup; + +/** + * 围栏组的修改状态 + * @Author:yan + * @Package:com.muyu.service + * @Project:plues + * @name:CarFenceUpdateService + * @Date:2024/9/30 09:12 + */ +public interface CarFenceUpdateService extends IService { +} diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/CarTypeService.java b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/CarTypeService.java similarity index 92% rename from cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/CarTypeService.java rename to cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/CarTypeService.java index 0292832..0222e8b 100644 --- a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/CarTypeService.java +++ b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/CarTypeService.java @@ -1,4 +1,4 @@ -package com.muyu.service; +package com.muyu.enterpise.service; import com.baomidou.mybatisplus.extension.service.IService; import com.muyu.domain.CarType; diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/FaultCodeService.java b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/FaultCodeService.java similarity index 97% rename from cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/FaultCodeService.java rename to cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/FaultCodeService.java index 096ffe1..36369e5 100644 --- a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/FaultCodeService.java +++ b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/FaultCodeService.java @@ -1,4 +1,4 @@ -package com.muyu.service; +package com.muyu.enterpise.service; import com.baomidou.mybatisplus.extension.service.IService; diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/FaultConditionService.java b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/FaultConditionService.java similarity index 96% rename from cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/FaultConditionService.java rename to cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/FaultConditionService.java index 2954aae..a429871 100644 --- a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/FaultConditionService.java +++ b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/FaultConditionService.java @@ -1,4 +1,4 @@ -package com.muyu.service; +package com.muyu.enterpise.service; import com.baomidou.mybatisplus.extension.service.IService; import com.muyu.domain.FaultCondition; diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/FaultDetectionStrategy.java b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/FaultDetectionStrategy.java similarity index 91% rename from cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/FaultDetectionStrategy.java rename to cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/FaultDetectionStrategy.java index e1a9619..f1ed1c3 100644 --- a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/FaultDetectionStrategy.java +++ b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/FaultDetectionStrategy.java @@ -1,4 +1,4 @@ -package com.muyu.service; +package com.muyu.enterpise.service; import com.muyu.domain.CarFaultRule; import com.muyu.domain.FaultReport; diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/FaultDetectionStrategyService.java b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/FaultDetectionStrategyService.java similarity index 88% rename from cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/FaultDetectionStrategyService.java rename to cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/FaultDetectionStrategyService.java index 1ef9726..f6d7575 100644 --- a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/FaultDetectionStrategyService.java +++ b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/FaultDetectionStrategyService.java @@ -1,4 +1,4 @@ -package com.muyu.service; +package com.muyu.enterpise.service; /** * 故障检测策略的接口 diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/FaultLabelService.java b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/FaultLabelService.java similarity index 93% rename from cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/FaultLabelService.java rename to cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/FaultLabelService.java index c8cbe2f..c134a55 100644 --- a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/FaultLabelService.java +++ b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/FaultLabelService.java @@ -1,4 +1,4 @@ -package com.muyu.service; +package com.muyu.enterpise.service; import com.baomidou.mybatisplus.extension.service.IService; import com.muyu.domain.FaultLabel; diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/FaultLogService.java b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/FaultLogService.java similarity index 94% rename from cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/FaultLogService.java rename to cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/FaultLogService.java index 7014adf..0ffa24c 100644 --- a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/FaultLogService.java +++ b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/FaultLogService.java @@ -1,4 +1,4 @@ -package com.muyu.service; +package com.muyu.enterpise.service; import com.baomidou.mybatisplus.extension.service.IService; import com.muyu.domain.FaultLog; diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/FaultRuleService.java b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/FaultRuleService.java similarity index 92% rename from cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/FaultRuleService.java rename to cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/FaultRuleService.java index 5dcdd85..1d3b8ba 100644 --- a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/FaultRuleService.java +++ b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/FaultRuleService.java @@ -1,4 +1,4 @@ -package com.muyu.service; +package com.muyu.enterpise.service; import com.baomidou.mybatisplus.extension.service.IService; import com.muyu.domain.FaultRule; diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/FaultTypeService.java b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/FaultTypeService.java similarity index 95% rename from cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/FaultTypeService.java rename to cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/FaultTypeService.java index d4e7791..4f4ecb2 100644 --- a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/FaultTypeService.java +++ b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/FaultTypeService.java @@ -1,4 +1,4 @@ -package com.muyu.service; +package com.muyu.enterpise.service; import com.baomidou.mybatisplus.extension.service.IService; import com.muyu.domain.FaultType; diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/FenceGroupService.java b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/FenceGroupService.java similarity index 92% rename from cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/FenceGroupService.java rename to cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/FenceGroupService.java index 085d485..4edcbd2 100644 --- a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/FenceGroupService.java +++ b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/FenceGroupService.java @@ -1,4 +1,4 @@ -package com.muyu.service; +package com.muyu.enterpise.service; import com.baomidou.mybatisplus.extension.service.IService; import com.muyu.domain.FenceGroup; diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/ISysCarFaultService.java b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/ISysCarFaultService.java similarity index 95% rename from cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/ISysCarFaultService.java rename to cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/ISysCarFaultService.java index ff8d275..0aa20ed 100644 --- a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/ISysCarFaultService.java +++ b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/ISysCarFaultService.java @@ -1,4 +1,4 @@ -package com.muyu.service; +package com.muyu.enterpise.service; import com.baomidou.mybatisplus.extension.service.IService; import com.muyu.domain.SysCarFault; diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/IWarnLogsService.java b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/IWarnLogsService.java similarity index 95% rename from cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/IWarnLogsService.java rename to cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/IWarnLogsService.java index 0ded45b..5a75aad 100644 --- a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/IWarnLogsService.java +++ b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/IWarnLogsService.java @@ -1,4 +1,4 @@ -package com.muyu.service; +package com.muyu.enterpise.service; import com.baomidou.mybatisplus.extension.service.IService; import com.muyu.domain.WarnLogs; diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/IWarnRuleService.java b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/IWarnRuleService.java similarity index 95% rename from cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/IWarnRuleService.java rename to cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/IWarnRuleService.java index e239d0a..a882960 100644 --- a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/IWarnRuleService.java +++ b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/IWarnRuleService.java @@ -1,4 +1,4 @@ -package com.muyu.service; +package com.muyu.enterpise.service; import com.baomidou.mybatisplus.extension.service.IService; import com.muyu.domain.WarnRule; diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/IWarnStrategyService.java b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/IWarnStrategyService.java similarity index 95% rename from cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/IWarnStrategyService.java rename to cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/IWarnStrategyService.java index 2b95076..5a887c1 100644 --- a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/IWarnStrategyService.java +++ b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/IWarnStrategyService.java @@ -1,4 +1,4 @@ -package com.muyu.service; +package com.muyu.enterpise.service; import com.baomidou.mybatisplus.extension.service.IService; import com.muyu.domain.WarnStrategy; diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/MessageService.java b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/MessageService.java similarity index 96% rename from cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/MessageService.java rename to cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/MessageService.java index ed74af9..b5c6604 100644 --- a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/MessageService.java +++ b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/MessageService.java @@ -1,4 +1,4 @@ -package com.muyu.service; +package com.muyu.enterpise.service; import com.baomidou.mybatisplus.extension.service.IService; import com.muyu.domain.message.Message; diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/MessageTemplateService.java b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/MessageTemplateService.java similarity index 89% rename from cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/MessageTemplateService.java rename to cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/MessageTemplateService.java index 5b515f1..d3503ae 100644 --- a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/MessageTemplateService.java +++ b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/MessageTemplateService.java @@ -1,4 +1,4 @@ -package com.muyu.service; +package com.muyu.enterpise.service; import com.baomidou.mybatisplus.extension.service.IService; import com.muyu.domain.MessageTemplate; diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/MessageValueService.java b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/MessageValueService.java similarity index 89% rename from cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/MessageValueService.java rename to cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/MessageValueService.java index 4cc6854..7817ddd 100644 --- a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/MessageValueService.java +++ b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/MessageValueService.java @@ -1,4 +1,4 @@ -package com.muyu.service; +package com.muyu.enterpise.service; import com.baomidou.mybatisplus.extension.service.IService; import com.muyu.domain.MessageValue; @@ -27,5 +27,6 @@ public interface MessageValueService extends IService { * @param str */ void test(String str); + Long findByTemplateId(String stringVin); } diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/MiddleService.java b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/MiddleService.java similarity index 91% rename from cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/MiddleService.java rename to cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/MiddleService.java index 157e0b0..95df7c2 100644 --- a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/MiddleService.java +++ b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/MiddleService.java @@ -1,4 +1,4 @@ -package com.muyu.service; +package com.muyu.enterpise.service; /** * 中间表服务接口 diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/SysCarService.java b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/SysCarService.java similarity index 72% rename from cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/SysCarService.java rename to cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/SysCarService.java index 4d012b9..bce64ff 100644 --- a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/SysCarService.java +++ b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/SysCarService.java @@ -1,7 +1,9 @@ -package com.muyu.service; +package com.muyu.enterpise.service; import com.baomidou.mybatisplus.extension.service.IService; +import com.muyu.common.domain.InformationData; import com.muyu.domain.SysCar; +import com.muyu.domain.req.SysCarReq; import com.muyu.domain.resp.SysCarResp; import java.util.List; @@ -26,7 +28,7 @@ public interface SysCarService extends IService { * @param sysCar 车辆基础信息 * @return 车辆基础信息集合 */ - public List selectSysCarList(SysCar sysCar); + public List selectSysCarList(SysCarReq sysCarReq); /** * 判断 车辆基础信息 id是否唯一 @@ -35,4 +37,8 @@ public interface SysCarService extends IService { */ Boolean checkIdUnique(SysCar sysCar); + /** + * 根据车辆Vin查询车辆信息 + */ + InformationData selectSysCarInfoByVin(String vin); } diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/SysTypeService.java b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/SysTypeService.java similarity index 92% rename from cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/SysTypeService.java rename to cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/SysTypeService.java index af89808..fd21274 100644 --- a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/SysTypeService.java +++ b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/SysTypeService.java @@ -1,4 +1,4 @@ -package com.muyu.service; +package com.muyu.enterpise.service; import com.baomidou.mybatisplus.extension.service.IService; import com.muyu.domain.SysCarType; diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/impl/CarAndFenceGroupMiddleServiceImpl.java b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/impl/CarAndFenceGroupMiddleServiceImpl.java new file mode 100644 index 0000000..864b352 --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/impl/CarAndFenceGroupMiddleServiceImpl.java @@ -0,0 +1,42 @@ +package com.muyu.enterpise.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.muyu.domain.CarAndGroupMiddle; +import com.muyu.domain.FenceGroup; + +import com.muyu.enterpise.mapper.CarAndFenceGroupMiddleMapper; +import com.muyu.enterpise.service.CarAndFenceGroupMiddleService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 车辆和围栏组中间表 + * @Author:yan + * @Package:com.muyu.service.impl + * @Project:plues + * @name:CarAndFenceGroupMiddleServiceImpl + * @Date:2024/9/29 20:11 + */ +@Service +public class CarAndFenceGroupMiddleServiceImpl extends ServiceImpl implements CarAndFenceGroupMiddleService { + @Autowired + private CarAndFenceGroupMiddleMapper carAndFenceGroupMiddleMapper; + + /** + * 根据围栏组和车辆的id添加中间表 + */ + @Override + public boolean saveBatch(List fenceGroups, Integer carId) { + List list = fenceGroups.stream().map(fenceGroup -> { + CarAndGroupMiddle carAndGroupMiddle = new CarAndGroupMiddle(); + //获取围栏组的id + carAndGroupMiddle.setGroupId(fenceGroup.getGroupId()); + carAndGroupMiddle.setCarId(carId); + return carAndGroupMiddle; + }).toList(); + boolean b = this.saveBatch(list); + return b; + } +} diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/impl/CarFenceClazzServiceImpl.java b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/impl/CarFenceClazzServiceImpl.java similarity index 77% rename from cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/impl/CarFenceClazzServiceImpl.java rename to cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/impl/CarFenceClazzServiceImpl.java index df0a210..3c832f5 100644 --- a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/impl/CarFenceClazzServiceImpl.java +++ b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/impl/CarFenceClazzServiceImpl.java @@ -1,9 +1,9 @@ -package com.muyu.service.impl; +package com.muyu.enterpise.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.muyu.domain.CarFenceClazz; -import com.muyu.mapper.CarFenceClazzMapper; -import com.muyu.service.CarFenceClazzService; +import com.muyu.enterpise.mapper.CarFenceClazzMapper; +import com.muyu.enterpise.service.CarFenceClazzService; import org.springframework.stereotype.Service; /** diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/impl/CarFenceServiceImpl.java b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/impl/CarFenceServiceImpl.java similarity index 94% rename from cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/impl/CarFenceServiceImpl.java rename to cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/impl/CarFenceServiceImpl.java index c855522..5519cf1 100644 --- a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/impl/CarFenceServiceImpl.java +++ b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/impl/CarFenceServiceImpl.java @@ -1,4 +1,4 @@ -package com.muyu.service.impl; +package com.muyu.enterpise.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -9,10 +9,10 @@ import com.muyu.domain.CarFenceClazz; import com.muyu.domain.CarFenceType; import com.muyu.domain.req.CarFenceReq; import com.muyu.domain.resp.CarFenceResq; -import com.muyu.mapper.CarFenceMapper; -import com.muyu.service.CarFenceClazzService; -import com.muyu.service.CarFenceService; -import com.muyu.service.CarFenceTypeService; +import com.muyu.enterpise.mapper.CarFenceMapper; +import com.muyu.enterpise.service.CarFenceClazzService; +import com.muyu.enterpise.service.CarFenceService; +import com.muyu.enterpise.service.CarFenceTypeService; import lombok.extern.log4j.Log4j2; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/impl/CarFenceServiceMybaitsImpl.java b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/impl/CarFenceServiceMybaitsImpl.java new file mode 100644 index 0000000..593a74e --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/impl/CarFenceServiceMybaitsImpl.java @@ -0,0 +1,103 @@ +package com.muyu.enterpise.service.impl; + + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.muyu.domain.CarFence; +import com.muyu.domain.CarMiddle; +import com.muyu.domain.CarAndGroupMiddle; +import com.muyu.domain.FenceGroup; +import com.muyu.domain.req.CarFenceAdd; + +import com.muyu.enterpise.mapper.CarFenceServiceMybaitsMapper; +import com.muyu.enterpise.service.CarFenceServiceMybaits; +import lombok.extern.log4j.Log4j2; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; + +/** + * 围栏组服务实现类 + * * @Author:yan + * * @Package:com.muyu.car.service.impl + * * @Project:plues + * * @name:CarFenceServiceMybaitsImpl + * * @Date:2024/9/22 19:24 + */ +@Service +@Log4j2 +public class CarFenceServiceMybaitsImpl extends ServiceImpl implements CarFenceServiceMybaits { + @Autowired + private CarFenceServiceMybaitsMapper carFenceServiceMybaitsMapper; + + + + + /** + * 添加多对多围栏组 + * + * @param fenceGroupId + * @param carFences + * @return + */ + @Override + public boolean saveBatch(List carFences, Integer fenceGroupId) { + List list = carFences.stream().map(carFenceAdd -> { + CarMiddle carMiddle = new CarMiddle(); + carMiddle.setCarFenceId(carFenceAdd.getId()); + carMiddle.setCarGroupId(fenceGroupId); + return carMiddle; + }).toList(); + boolean b = this.saveBatch(list); + return b; + } + + + /** + * 根据围栏组的id查询绑定的围栏的中间表 + */ + @Override + public List BoundFenceGroup(Integer groupId) { + //根据id获取中间表的数据 + List list = carFenceServiceMybaitsMapper.BoundFenceGroup(groupId); + ArrayList carFences = new ArrayList<>(); + for (CarMiddle carMiddle : list) { + //获取中间表中的围栏id + Integer carFenceId = carMiddle.getCarFenceId(); + //查询围栏组绑定的围栏列表 + carFences.add(carFenceServiceMybaitsMapper.selectBoundCarFenceList(carFenceId)); + } + return carFences; + } + + + + + + /** + * 获取绑定的围栏组 + * @param carId + */ + @Override + public List selectBoundGFenceGroup(Integer carId) { + /*根据id查询围栏组的id*/ + List list = carFenceServiceMybaitsMapper.selectBoundGFenceGroup(carId); + ArrayList fenceGroups = new ArrayList<>(); + + /*循环*/ + for (CarAndGroupMiddle fenceAndGroupMiddle : list) { + /** + * 获取围栏组的id + */ + Long carGroupId = fenceAndGroupMiddle.getGroupId(); + //获取围栏组的数据 并 存入list + fenceGroups.add(carFenceServiceMybaitsMapper.selectGroup(carGroupId)); + } + return fenceGroups; + } + + + + +} diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/impl/CarFenceTypeServiceImpl.java b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/impl/CarFenceTypeServiceImpl.java similarity index 77% rename from cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/impl/CarFenceTypeServiceImpl.java rename to cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/impl/CarFenceTypeServiceImpl.java index e587835..c625541 100644 --- a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/impl/CarFenceTypeServiceImpl.java +++ b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/impl/CarFenceTypeServiceImpl.java @@ -1,9 +1,9 @@ -package com.muyu.service.impl; +package com.muyu.enterpise.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.muyu.domain.CarFenceType; -import com.muyu.mapper.CarFenceTypeMapper; -import com.muyu.service.CarFenceTypeService; +import com.muyu.enterpise.mapper.CarFenceTypeMapper; +import com.muyu.enterpise.service.CarFenceTypeService; import org.springframework.stereotype.Service; /** diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/impl/CarFenceUpdateServiceImpl.java b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/impl/CarFenceUpdateServiceImpl.java new file mode 100644 index 0000000..2890804 --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/impl/CarFenceUpdateServiceImpl.java @@ -0,0 +1,27 @@ +package com.muyu.enterpise.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.muyu.domain.CarFence; +import com.muyu.domain.FenceGroup; + +import com.muyu.enterpise.mapper.CarFenceUpdateMapper; +import com.muyu.enterpise.service.CarFenceUpdateService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +/** + * 围栏组的修改状态 + * @Author:yan + * @Package:com.muyu.service.impl + * @Project:plues + * @name:CarFenceUpdateServiceImpl + * @Date:2024/9/30 09:12 + * 围栏组的修改状态 + */ + +@Service +public class CarFenceUpdateServiceImpl extends ServiceImpl implements CarFenceUpdateService { + @Autowired + private CarFenceUpdateMapper carFenceUpdateMapper; + +} diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/impl/CarTypeServiceImpl.java b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/impl/CarTypeServiceImpl.java similarity index 87% rename from cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/impl/CarTypeServiceImpl.java rename to cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/impl/CarTypeServiceImpl.java index fee335e..2df19ce 100644 --- a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/impl/CarTypeServiceImpl.java +++ b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/impl/CarTypeServiceImpl.java @@ -1,10 +1,10 @@ -package com.muyu.service.impl; +package com.muyu.enterpise.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.muyu.domain.CarType; -import com.muyu.mapper.CarTypeMapper; -import com.muyu.service.CarTypeService; +import com.muyu.enterpise.mapper.CarTypeMapper; +import com.muyu.enterpise.service.CarTypeService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/impl/FaultCodeServiceImpl.java b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/impl/FaultCodeServiceImpl.java similarity index 96% rename from cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/impl/FaultCodeServiceImpl.java rename to cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/impl/FaultCodeServiceImpl.java index 710703f..2978b89 100644 --- a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/impl/FaultCodeServiceImpl.java +++ b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/impl/FaultCodeServiceImpl.java @@ -1,4 +1,4 @@ -package com.muyu.service.impl; +package com.muyu.enterpise.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -11,8 +11,8 @@ import com.muyu.domain.req.FaultCodeUpdReq; import com.muyu.domain.resp.FaultCodeListResp; import com.muyu.domain.resp.FaultCodeTotalListResp; import com.muyu.domain.vo.FaultCodeVo; -import com.muyu.mapper.FaultCodeMapper; -import com.muyu.service.FaultCodeService; +import com.muyu.enterpise.mapper.FaultCodeMapper; +import com.muyu.enterpise.service.FaultCodeService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/impl/FaultConditionServiceImpl.java b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/impl/FaultConditionServiceImpl.java similarity index 93% rename from cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/impl/FaultConditionServiceImpl.java rename to cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/impl/FaultConditionServiceImpl.java index eef3ca1..eaaeeb0 100644 --- a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/impl/FaultConditionServiceImpl.java +++ b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/impl/FaultConditionServiceImpl.java @@ -1,4 +1,4 @@ -package com.muyu.service.impl; +package com.muyu.enterpise.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -7,8 +7,8 @@ import com.muyu.domain.req.FaultConditionAddReq; import com.muyu.domain.req.FaultConditionListReq; import com.muyu.domain.resp.FaultConditionListResp; import com.muyu.domain.resp.FaultConditionTotalListResp; -import com.muyu.mapper.FaultConditionMapper; -import com.muyu.service.FaultConditionService; +import com.muyu.enterpise.mapper.FaultConditionMapper; +import com.muyu.enterpise.service.FaultConditionService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/impl/FaultLabelServiceImpl.java b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/impl/FaultLabelServiceImpl.java similarity index 86% rename from cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/impl/FaultLabelServiceImpl.java rename to cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/impl/FaultLabelServiceImpl.java index fade30b..8af081b 100644 --- a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/impl/FaultLabelServiceImpl.java +++ b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/impl/FaultLabelServiceImpl.java @@ -1,10 +1,10 @@ -package com.muyu.service.impl; +package com.muyu.enterpise.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.muyu.domain.FaultLabel; -import com.muyu.mapper.FaultLabelMapper; -import com.muyu.service.FaultLabelService; +import com.muyu.enterpise.mapper.FaultLabelMapper; +import com.muyu.enterpise.service.FaultLabelService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/impl/FaultLogServiceImpl.java b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/impl/FaultLogServiceImpl.java similarity index 91% rename from cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/impl/FaultLogServiceImpl.java rename to cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/impl/FaultLogServiceImpl.java index 2f18497..ecb4add 100644 --- a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/impl/FaultLogServiceImpl.java +++ b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/impl/FaultLogServiceImpl.java @@ -1,4 +1,4 @@ -package com.muyu.service.impl; +package com.muyu.enterpise.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -6,8 +6,8 @@ import com.muyu.domain.FaultLog; import com.muyu.domain.req.FaultLogListReq; import com.muyu.domain.resp.FaultLogListResp; import com.muyu.domain.resp.FaultLogTotalListResp; -import com.muyu.mapper.FaultLogMapper; -import com.muyu.service.FaultLogService; +import com.muyu.enterpise.mapper.FaultLogMapper; +import com.muyu.enterpise.service.FaultLogService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/impl/FaultRuleServiceImpl.java b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/impl/FaultRuleServiceImpl.java similarity index 94% rename from cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/impl/FaultRuleServiceImpl.java rename to cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/impl/FaultRuleServiceImpl.java index a6a2b33..6c7fc4f 100644 --- a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/impl/FaultRuleServiceImpl.java +++ b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/impl/FaultRuleServiceImpl.java @@ -1,10 +1,10 @@ -package com.muyu.service.impl; +package com.muyu.enterpise.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.muyu.domain.FaultRule; -import com.muyu.mapper.FaultRuleMapper; -import com.muyu.service.FaultRuleService; +import com.muyu.enterpise.mapper.FaultRuleMapper; +import com.muyu.enterpise.service.FaultRuleService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/impl/FaultTypeServiceImpl.java b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/impl/FaultTypeServiceImpl.java similarity index 90% rename from cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/impl/FaultTypeServiceImpl.java rename to cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/impl/FaultTypeServiceImpl.java index feca6bd..8d0abd0 100644 --- a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/impl/FaultTypeServiceImpl.java +++ b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/impl/FaultTypeServiceImpl.java @@ -1,10 +1,10 @@ -package com.muyu.service.impl; +package com.muyu.enterpise.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.muyu.domain.FaultType; -import com.muyu.mapper.FaultTypeMapper; -import com.muyu.service.FaultTypeService; +import com.muyu.enterpise.mapper.FaultTypeMapper; +import com.muyu.enterpise.service.FaultTypeService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/impl/FenceGroupServiceImpl.java b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/impl/FenceGroupServiceImpl.java similarity index 84% rename from cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/impl/FenceGroupServiceImpl.java rename to cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/impl/FenceGroupServiceImpl.java index ef4ec27..b28fe78 100644 --- a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/impl/FenceGroupServiceImpl.java +++ b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/impl/FenceGroupServiceImpl.java @@ -1,9 +1,9 @@ -package com.muyu.service.impl; +package com.muyu.enterpise.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.muyu.domain.FenceGroup; -import com.muyu.mapper.FenceGroupMapper; -import com.muyu.service.FenceGroupService; +import com.muyu.enterpise.mapper.FenceGroupMapper; +import com.muyu.enterpise.service.FenceGroupService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/impl/MessageServiceImpl.java b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/impl/MessageServiceImpl.java similarity index 96% rename from cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/impl/MessageServiceImpl.java rename to cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/impl/MessageServiceImpl.java index 3105c9d..48780b3 100644 --- a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/impl/MessageServiceImpl.java +++ b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/impl/MessageServiceImpl.java @@ -1,4 +1,4 @@ -package com.muyu.service.impl; +package com.muyu.enterpise.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; @@ -9,8 +9,8 @@ import com.muyu.common.system.domain.LoginUser; import com.muyu.domain.message.Message; import com.muyu.domain.message.MessageReq; import com.muyu.domain.message.MessageSendReq; -import com.muyu.mapper.MessageMapper; -import com.muyu.service.MessageService; +import com.muyu.enterpise.mapper.MessageMapper; +import com.muyu.enterpise.service.MessageService; import jakarta.servlet.http.HttpServletRequest; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/impl/MessageTemplateServiceImpl.java b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/impl/MessageTemplateServiceImpl.java similarity index 80% rename from cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/impl/MessageTemplateServiceImpl.java rename to cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/impl/MessageTemplateServiceImpl.java index 0efa970..9144447 100644 --- a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/impl/MessageTemplateServiceImpl.java +++ b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/impl/MessageTemplateServiceImpl.java @@ -1,9 +1,9 @@ -package com.muyu.service.impl; +package com.muyu.enterpise.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.muyu.domain.MessageTemplate; -import com.muyu.mapper.MessageTemplateMapper; -import com.muyu.service.MessageTemplateService; +import com.muyu.enterpise.mapper.MessageTemplateMapper; +import com.muyu.enterpise.service.MessageTemplateService; import org.springframework.stereotype.Service; import javax.annotation.Resource; diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/impl/MessageValueServiceImpl.java b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/impl/MessageValueServiceImpl.java similarity index 69% rename from cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/impl/MessageValueServiceImpl.java rename to cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/impl/MessageValueServiceImpl.java index d371ae7..fd122bf 100644 --- a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/impl/MessageValueServiceImpl.java +++ b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/impl/MessageValueServiceImpl.java @@ -1,4 +1,4 @@ -package com.muyu.service.impl; +package com.muyu.enterpise.service.impl; import cn.hutool.json.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; @@ -7,10 +7,13 @@ import com.muyu.common.core.utils.StringUtils; import com.muyu.domain.MessageValue; import com.muyu.domain.req.MessageValueReq; import com.muyu.domain.resp.MessageValueListResp; -import com.muyu.mapper.MessageValueMapper; -import com.muyu.service.MessageValueService; +import com.muyu.enterpise.cache.MessageValueCacheService; +import com.muyu.enterpise.mapper.MessageValueMapper; +import com.muyu.enterpise.service.MessageValueService; +import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Service; +import javax.annotation.Resource; import java.util.List; /** @@ -25,6 +28,13 @@ public class MessageValueServiceImpl extends ServiceImpl implements MessageValueService { + @Resource + private MessageValueMapper messageValueMapper; + @Resource + private MessageValueCacheService messageValueCacheService; + + + /** * 查询所有消息值 * @param messageValueReq @@ -46,6 +56,9 @@ public class MessageValueServiceImpl } List list = this.list(queryWrapper); + messageValueCacheService.put(String.valueOf(messageValueReq.getMessageTemplateId()),list); + List messageValues = messageValueCacheService.get(String.valueOf(messageValueReq.getMessageTemplateId())); + System.out.println("asoldonasond:"+messageValues); return list.stream() .map(messageValue -> MessageValueListResp.valueBuild( messageValue @@ -68,5 +81,10 @@ public class MessageValueServiceImpl } } + @Override + public Long findByTemplateId(String stringVin) { + return messageValueMapper.findByTemplateId(stringVin); + } + } diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/impl/MiddleServiceImpl.java b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/impl/MiddleServiceImpl.java similarity index 83% rename from cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/impl/MiddleServiceImpl.java rename to cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/impl/MiddleServiceImpl.java index 33ff30a..4bb8d72 100644 --- a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/impl/MiddleServiceImpl.java +++ b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/impl/MiddleServiceImpl.java @@ -1,7 +1,7 @@ -package com.muyu.service.impl; +package com.muyu.enterpise.service.impl; -import com.muyu.mapper.MiddleMapper; -import com.muyu.service.MiddleService; +import com.muyu.enterpise.mapper.MiddleMapper; +import com.muyu.enterpise.service.MiddleService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/impl/SysCarFaultServiceImpl.java b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/impl/SysCarFaultServiceImpl.java similarity index 95% rename from cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/impl/SysCarFaultServiceImpl.java rename to cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/impl/SysCarFaultServiceImpl.java index 6f06f94..1418161 100644 --- a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/impl/SysCarFaultServiceImpl.java +++ b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/impl/SysCarFaultServiceImpl.java @@ -1,11 +1,11 @@ -package com.muyu.service.impl; +package com.muyu.enterpise.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.domain.SysCarFault; -import com.muyu.mapper.SysCarFaultMapper; -import com.muyu.service.ISysCarFaultService; +import com.muyu.enterpise.mapper.SysCarFaultMapper; +import com.muyu.enterpise.service.ISysCarFaultService; import org.springframework.stereotype.Service; import org.springframework.util.Assert; diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/impl/SysCarServiceImpl.java b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/impl/SysCarServiceImpl.java new file mode 100644 index 0000000..001879e --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/impl/SysCarServiceImpl.java @@ -0,0 +1,117 @@ +package com.muyu.enterpise.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.muyu.common.domain.InformationData; +import com.muyu.domain.SysCar; +import com.muyu.domain.req.SysCarReq; +import com.muyu.domain.resp.SysCarResp; +import com.muyu.enterpise.cache.SysCarCacheService; +import com.muyu.enterpise.mapper.SysCarMapper; +import com.muyu.enterpise.service.SysCarService; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.Assert; + +import java.util.List; + +/** + * 车辆基础信息Service业务层处理 + * @author LiHD + * @date 2024-09-18 + */ +@Service +public class SysCarServiceImpl + extends ServiceImpl + implements SysCarService { + + @Autowired + private SysCarMapper sysCarMapper; + + @Autowired + private SysCarCacheService sysCarCacheService; + + /** + * 精确查询车辆基础信息 + * @param id 车辆基础信息主键 + * @return 车辆基础信息 + */ + @Override + public SysCar selectSysCarById(Long id) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + Assert.notNull(id, "id不可为空"); + queryWrapper.eq(SysCar::getId, id); + + + return this.getOne(queryWrapper); + } + + + /** + * 查询车辆基础信息列表 + * @param sysCarReq 车辆基础信息 + * @return 车辆基础信息 + */ + @Override + public List selectSysCarList(SysCarReq sysCarReq) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + if (StringUtils.isNotEmpty(sysCarReq.getCarVin())) { + queryWrapper.eq(SysCar::getCarVin,sysCarReq.getCarVin()); + } + if (StringUtils.isNotEmpty(sysCarReq.getCarPlate())) { + queryWrapper.like(SysCar::getCarPlate, sysCarReq.getCarPlate()); + } + if (StringUtils.isNotEmpty(sysCarReq.getCarBrand())) { + queryWrapper.eq(SysCar::getCarBrand, sysCarReq.getCarBrand()); + } + if (StringUtils.isNotEmpty(sysCarReq.getCarModel())) { + queryWrapper.eq(SysCar::getCarModel, sysCarReq.getCarModel()); + } + if (null != sysCarReq.getCarType()) { + queryWrapper.eq(SysCar::getCarType, sysCarReq.getCarType()); + } + if (null != sysCarReq.getState()) { + queryWrapper.eq(SysCar::getState, sysCarReq.getState()); + } + //就是下面两个判断有问题 还有问题吗 没有我就下了 + List list = this.list(queryWrapper); + for (SysCar sysCar : list) { + String carVin = sysCar.getCarVin(); + //MQTTX是啥 跟MQ差不多 这样就行吧 OK 这个缓存 是老懂教我们的 + + sysCarCacheService.put(carVin, sysCar); + System.out.println("s够不够水电费健康发动机刚发打卡机这咋广发卡缴纳:"+carVin); + SysCar sysCar1 = sysCarCacheService.get(carVin); + System.out.println("asfih"+sysCar1); + } + return list.stream() + .map(SysCarResp::reverseResp) + .toList(); + } + + + /** + * 唯一 判断 + * @param sysCar 车辆基础信息 + * @return 车辆基础信息 + */ + @Override + public Boolean checkIdUnique(SysCar sysCar) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(SysCar::getId, sysCar.getId()); + return this.count(queryWrapper) > 0; + } + + @Override + public InformationData selectSysCarInfoByVin(String vin) { + LambdaQueryWrapper car = new LambdaQueryWrapper<>(); + car.eq(SysCar::getCarVin, vin); + SysCar sysCar = this.sysCarMapper.selectOne(car); + return InformationData.builder() + .sysCar(sysCar) + + .build(); + } + +} diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/impl/SysTypeServiceImpl.java b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/impl/SysTypeServiceImpl.java similarity index 83% rename from cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/impl/SysTypeServiceImpl.java rename to cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/impl/SysTypeServiceImpl.java index c0e47fd..e2f8728 100644 --- a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/impl/SysTypeServiceImpl.java +++ b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/impl/SysTypeServiceImpl.java @@ -1,9 +1,9 @@ -package com.muyu.service.impl; +package com.muyu.enterpise.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.muyu.domain.SysCarType; -import com.muyu.mapper.SysTypeMapper; -import com.muyu.service.SysTypeService; +import com.muyu.enterpise.mapper.SysTypeMapper; +import com.muyu.enterpise.service.SysTypeService; import org.springframework.stereotype.Service; import javax.annotation.Resource; diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/impl/WarnLogsServiceImpl.java b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/impl/WarnLogsServiceImpl.java similarity index 95% rename from cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/impl/WarnLogsServiceImpl.java rename to cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/impl/WarnLogsServiceImpl.java index c7ed3b3..1d3eef0 100644 --- a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/impl/WarnLogsServiceImpl.java +++ b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/impl/WarnLogsServiceImpl.java @@ -1,11 +1,11 @@ -package com.muyu.service.impl; +package com.muyu.enterpise.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.domain.WarnLogs; -import com.muyu.mapper.WarnLogsMapper; -import com.muyu.service.IWarnLogsService; +import com.muyu.enterpise.mapper.WarnLogsMapper; +import com.muyu.enterpise.service.IWarnLogsService; import org.springframework.stereotype.Service; import org.springframework.util.Assert; diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/impl/WarnRuleServiceImpl.java b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/impl/WarnRuleServiceImpl.java similarity index 94% rename from cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/impl/WarnRuleServiceImpl.java rename to cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/impl/WarnRuleServiceImpl.java index f5faab3..762c31f 100644 --- a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/impl/WarnRuleServiceImpl.java +++ b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/impl/WarnRuleServiceImpl.java @@ -1,11 +1,11 @@ -package com.muyu.service.impl; +package com.muyu.enterpise.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.domain.WarnRule; -import com.muyu.mapper.WarnRuleMapper; -import com.muyu.service.IWarnRuleService; +import com.muyu.enterpise.mapper.WarnRuleMapper; +import com.muyu.enterpise.service.IWarnRuleService; import org.springframework.stereotype.Service; import java.util.List; diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/impl/WarnStrategyServiceImpl.java b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/impl/WarnStrategyServiceImpl.java similarity index 78% rename from cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/impl/WarnStrategyServiceImpl.java rename to cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/impl/WarnStrategyServiceImpl.java index f0db750..d4bc2b8 100644 --- a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/impl/WarnStrategyServiceImpl.java +++ b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/impl/WarnStrategyServiceImpl.java @@ -1,11 +1,13 @@ -package com.muyu.service.impl; +package com.muyu.enterpise.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.domain.WarnStrategy; -import com.muyu.mapper.WarnStrategyMapper; -import com.muyu.service.IWarnStrategyService; +import com.muyu.enterpise.cache.WarnStrategyCacjeService; +import com.muyu.enterpise.mapper.WarnStrategyMapper; +import com.muyu.enterpise.service.IWarnStrategyService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; @@ -20,6 +22,9 @@ public class WarnStrategyServiceImpl extends ServiceImpl implements IWarnStrategyService { + @Autowired + private WarnStrategyCacjeService warnStrategyCacjeService; + /** * 精确查询预警策略 * @@ -56,7 +61,15 @@ public class WarnStrategyServiceImpl if (null!=warnStrategy.getMsgId()){ queryWrapper.eq(WarnStrategy::getMsgId, warnStrategy.getMsgId()); } - return this.list(queryWrapper); + + List list = this.list(queryWrapper); + + for (WarnStrategy strategy : list) { + + warnStrategyCacjeService.put(String.valueOf(strategy.getId()),strategy); + } + + return list; } /** diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/impl/faultDetectionStrategy/FuelVehicleCarFaultDetectionStrategy.java b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/impl/faultDetectionStrategy/FuelVehicleCarFaultDetectionStrategy.java similarity index 84% rename from cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/impl/faultDetectionStrategy/FuelVehicleCarFaultDetectionStrategy.java rename to cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/impl/faultDetectionStrategy/FuelVehicleCarFaultDetectionStrategy.java index 6899198..86b4817 100644 --- a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/impl/faultDetectionStrategy/FuelVehicleCarFaultDetectionStrategy.java +++ b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/impl/faultDetectionStrategy/FuelVehicleCarFaultDetectionStrategy.java @@ -1,4 +1,4 @@ -package com.muyu.service.impl.faultDetectionStrategy; +package com.muyu.enterpise.service.impl.faultDetectionStrategy; import org.springframework.stereotype.Service; diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/impl/faultDetectionStrategy/PureElectricCarFaultDetectionStrategy.java b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/impl/faultDetectionStrategy/PureElectricCarFaultDetectionStrategy.java similarity index 92% rename from cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/impl/faultDetectionStrategy/PureElectricCarFaultDetectionStrategy.java rename to cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/impl/faultDetectionStrategy/PureElectricCarFaultDetectionStrategy.java index c4c88d7..d9df9af 100644 --- a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/impl/faultDetectionStrategy/PureElectricCarFaultDetectionStrategy.java +++ b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/enterpise/service/impl/faultDetectionStrategy/PureElectricCarFaultDetectionStrategy.java @@ -1,9 +1,9 @@ -package com.muyu.service.impl.faultDetectionStrategy; +package com.muyu.enterpise.service.impl.faultDetectionStrategy; import com.muyu.domain.CarFaultRule; import com.muyu.domain.FaultReport; -import com.muyu.service.FaultDetectionStrategy; +import com.muyu.enterpise.service.FaultDetectionStrategy; import org.springframework.stereotype.Service; /** diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/impl/CarFenceServiceMybaitsImpl.java b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/impl/CarFenceServiceMybaitsImpl.java deleted file mode 100644 index 9a60f37..0000000 --- a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/impl/CarFenceServiceMybaitsImpl.java +++ /dev/null @@ -1,132 +0,0 @@ -package com.muyu.service.impl; - -import com.muyu.domain.CarFence; -import com.muyu.domain.CarMiddle; -import com.muyu.domain.FenceAndGroupMiddle; -import com.muyu.domain.FenceGroup; -import com.muyu.domain.req.CarFenceAdd; -import com.muyu.mapper.CarFenceServiceMybaitsMapper; -import com.muyu.service.CarFenceServiceMybaits; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import java.util.ArrayList; -import java.util.List; - -/** - * 围栏组服务实现类 - * * @Author:yan - * * @Package:com.muyu.car.service.impl - * * @Project:plues - * * @name:CarFenceServiceMybaitsImpl - * * @Date:2024/9/22 19:24 - */ -@Service -public class CarFenceServiceMybaitsImpl implements CarFenceServiceMybaits { - @Autowired - private CarFenceServiceMybaitsMapper carFenceServiceMybaitsMapper; - - - /** - * 添加多对多围栏组 - * @param fenceGroupId - * @param carFenceId - */ - @Override - public void add(Integer fenceGroupId, List carFenceId) { - - for (Integer integer : carFenceId) { - Integer addMiddle = carFenceServiceMybaitsMapper.addGroup(fenceGroupId,integer); - } - - - - } - - /** - * 添加多对多围栏组 - * @param fenceGroupId - * @param carFences - */ - @Override - public void addFenceGroup(Integer fenceGroupId, List carFences) { - for (CarFenceAdd carFence : carFences) { - Integer id = carFence.getId(); - Integer addMiddle = carFenceServiceMybaitsMapper.addFenceGroup(fenceGroupId,id); - } - } - - /** - * 修改围栏组状态 - * @param groupId - * @return - */ - @Override - public Object updateFenceGroupById(Integer groupId) { - carFenceServiceMybaitsMapper.updateFenceGroupById(groupId); - return null; - } - - /** - * 启动围栏 - */ - @Override - public Object activate(Integer groupId) { - carFenceServiceMybaitsMapper.activate(groupId); - return null; - } - - /** - * 根据围栏组的id查询绑定的围栏的中间表 - */ - @Override - public List BoundFenceGroup(Integer groupId) { - //根据id获取中间表的数据 - List list = carFenceServiceMybaitsMapper.BoundFenceGroup(groupId); - ArrayList carFences = new ArrayList<>(); - for (CarMiddle carMiddle : list) { - //获取中间表中的围栏id - Integer carFenceId = carMiddle.getCarFenceId(); - //查询围栏组绑定的围栏列表 - carFences.add(carFenceServiceMybaitsMapper.selectBoundCarFenceList(carFenceId)); - } - return carFences; - } - - /** - * 根据围栏组和车辆的id添加中间表 - */ - @Override - public void addFenceGroupAddCarMiddle(Integer id, List fenceGroups) { - - //遍历集合 - for (FenceGroup fenceGroup : fenceGroups) { - //获取围栏组的id - Integer groupId = fenceGroup.getGroupId(); - carFenceServiceMybaitsMapper.addFenceGroupAddCarMiddle(id,groupId); - } - - } - - /** - * 获取绑定的围栏组 - * @param carId - */ - @Override - public List selectBoundGFenceGroup(Integer carId) { - /*根据id查询围栏组的id*/ - List list = carFenceServiceMybaitsMapper.selectBoundGFenceGroup(carId); - ArrayList fenceGroups = new ArrayList<>(); - - /*循环*/ - for (FenceAndGroupMiddle fenceAndGroupMiddle : list) { - /** - * 获取围栏组的id - */ - Integer carGroupId = fenceAndGroupMiddle.getGroupId(); - //获取围栏组的数据 并 存入list - fenceGroups.add(carFenceServiceMybaitsMapper.selectGroup(carGroupId)); - } - return fenceGroups; - } -} diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/impl/SysCarServiceImpl.java b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/impl/SysCarServiceImpl.java deleted file mode 100644 index c67bb8e..0000000 --- a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/java/com/muyu/service/impl/SysCarServiceImpl.java +++ /dev/null @@ -1,88 +0,0 @@ -package com.muyu.service.impl; - -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.muyu.domain.SysCar; -import com.muyu.domain.resp.SysCarResp; -import com.muyu.mapper.SysCarMapper; -import com.muyu.service.SysCarService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import org.springframework.util.Assert; - -import java.util.List; - -/** - * 车辆基础信息Service业务层处理 - * @author LiHD - * @date 2024-09-18 - */ -@Service -public class SysCarServiceImpl - extends ServiceImpl - implements SysCarService { - - @Autowired - private SysCarMapper sysCarMapper; - - /** - * 精确查询车辆基础信息 - * - * @param id 车辆基础信息主键 - * @return 车辆基础信息 - */ - @Override - public SysCar selectSysCarById(Long id) - { - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - Assert.notNull(id, "id不可为空"); - queryWrapper.eq(SysCar::getId, id); - return this.getOne(queryWrapper); - } - - - /** - * 查询车辆基础信息列表 - * - * @param sysCar 车辆基础信息 - * @return 车辆基础信息 - */ - @Override - public List selectSysCarList(SysCar sysCar) - { - return sysCarMapper.selectSysCarList(sysCar); -// LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); -// if (StringUtils.isNotEmpty(sysCar.getCarVin())){ -// queryWrapper.like(SysCarResp::getCarVin, sysCar.getCarVin()); -// } -// if (StringUtils.isNotEmpty(sysCar.getCarPlate())){ -// queryWrapper.like(SysCarResp::getCarPlate, sysCar.getCarPlate()); -// } -// if (StringUtils.isNotEmpty(sysCar.getCarBrand())){ -// queryWrapper.eq(SysCarResp::getCarBrand, sysCar.getCarBrand()); -// } -// if (StringUtils.isNotEmpty(sysCar.getCarModel())){ -// queryWrapper.eq(SysCarResp::getCarModel, sysCar.getCarModel()); -// } -// if (StringUtils.isNotEmpty(String.valueOf(sysCar.getCarType()))){ -// queryWrapper.eq(SysCarResp::getCarType, sysCar.getCarType()); -// } -// if (StringUtils.isNotEmpty(String.valueOf(sysCar.getState()))){ -// queryWrapper.eq(SysCarResp::getState, sysCar.getState()); -// } -// return this.list(queryWrapper); - } - - /** - * 唯一 判断 - * @param sysCar 车辆基础信息 - * @return 车辆基础信息 - */ - @Override - public Boolean checkIdUnique(SysCar sysCar) { - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.eq(SysCar::getId, sysCar.getId()); - return this.count(queryWrapper) > 0; - } - -} diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/resources/bootstrap.yml b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/resources/bootstrap.yml index 60732a3..7f2f29b 100644 --- a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/resources/bootstrap.yml +++ b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/resources/bootstrap.yml @@ -7,7 +7,7 @@ nacos: addr: 123.57.152.124:8848 user-name: nacos password: nacos - namespace: yan1 + namespace: xyr # SPRING_AMQP_DESERIALIZATION_TRUST_ALL=true spring.amqp.deserialization.trust.all # Spring spring: @@ -19,7 +19,7 @@ spring: allow-bean-definition-overriding: true application: # 应用名称 - name: cloud-warn + name: cloud-saas profiles: # 环境配置 active: dev diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/resources/mapper/CarFenceServiceMybaitsMapper.xml b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/resources/mapper/CarFenceServiceMybaitsMapper.xml index a822ddd..c4bbb07 100644 --- a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/resources/mapper/CarFenceServiceMybaitsMapper.xml +++ b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/resources/mapper/CarFenceServiceMybaitsMapper.xml @@ -2,7 +2,7 @@ - + insert into car_fence values (0,#{name},#{clazzId},#{typeId},#{fenceText},#{fenceStart},#{fenceEnd},#{fenceCreate},0) @@ -17,12 +17,7 @@ insert into car_group_middle values (0,#{id},#{groupId}) - - update fence_group set group_states = 1 where group_id = #{groupId} - - - update fence_group set group_states = 0 where group_id = #{groupId} - + select * from car_fault_message where status=0 diff --git a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/resources/mapper/MiddleMapper.xml b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/resources/mapper/MiddleMapper.xml index fb4c76d..a055a8d 100644 --- a/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/resources/mapper/MiddleMapper.xml +++ b/cloud-modules/cloud-modules-enterprise/enterpise-service/src/main/resources/mapper/MiddleMapper.xml @@ -2,7 +2,7 @@ - + diff --git a/cloud-modules/cloud-modules-enterprise/pom.xml b/cloud-modules/cloud-modules-enterprise/pom.xml index 1159651..e05d3c1 100644 --- a/cloud-modules/cloud-modules-enterprise/pom.xml +++ b/cloud-modules/cloud-modules-enterprise/pom.xml @@ -10,7 +10,6 @@ cloud-modules-enterprise - pom cloud-modules-enterprise闫🐕和🐂鹏 @@ -23,10 +22,10 @@ - enterpise-client enterpise-common enterpise-remote enterpise-service + enterpise-cache 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 46a342b..da919cf 100644 --- a/cloud-modules/cloud-modules-file/src/main/resources/bootstrap.yml +++ b/cloud-modules/cloud-modules-file/src/main/resources/bootstrap.yml @@ -4,10 +4,10 @@ server: # nacos线上地址 nacos: - addr: 123.57.152.124:8848 + addr: 127.0.0.1:8848 user-name: nacos password: nacos - namespace: yan1 + namespace: wx # Spring spring: diff --git a/cloud-modules/cloud-modules-gen/src/main/java/com/muyu/gen/controller/GenController.java b/cloud-modules/cloud-modules-gen/src/main/java/com/muyu/gen/controller/GenController.java index f93075e..f66e260 100644 --- a/cloud-modules/cloud-modules-gen/src/main/java/com/muyu/gen/controller/GenController.java +++ b/cloud-modules/cloud-modules-gen/src/main/java/com/muyu/gen/controller/GenController.java @@ -3,6 +3,7 @@ package com.muyu.gen.controller; import com.muyu.common.core.domain.Result; import com.muyu.common.core.text.Convert; import com.muyu.common.core.web.controller.BaseController; +import com.muyu.common.core.web.domain.BaseEntity; import com.muyu.common.core.web.page.TableDataInfo; import com.muyu.common.log.annotation.Log; import com.muyu.common.log.enums.BusinessType; @@ -31,8 +32,7 @@ import java.util.Map; */ @RequestMapping("/gen") @RestController -public class GenController extends BaseController -{ +public class GenController extends BaseController { @Resource private IGenTableService genTableService; 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 0a5455a..ca7c3dd 100644 --- a/cloud-modules/cloud-modules-gen/src/main/resources/bootstrap.yml +++ b/cloud-modules/cloud-modules-gen/src/main/resources/bootstrap.yml @@ -4,10 +4,10 @@ server: # nacos线上地址 nacos: - addr: 123.57.152.124:8848 + addr: 127.0.0.1:8848 user-name: nacos password: nacos - namespace: yan1 + namespace: wx # SPRING_AMQP_DESERIALIZATION_TRUST_ALL=true spring.amqp.deserialization.trust.all # Spring spring: diff --git a/cloud-modules/cloud-modules-gen/src/main/resources/vm/java/controller.java.vm b/cloud-modules/cloud-modules-gen/src/main/resources/vm/java/controller.java.vm index c62cc8b..20fdeff 100644 --- a/cloud-modules/cloud-modules-gen/src/main/resources/vm/java/controller.java.vm +++ b/cloud-modules/cloud-modules-gen/src/main/resources/vm/java/controller.java.vm @@ -2,6 +2,8 @@ package ${packageName}.controller; import java.util.Arrays; import java.util.List; + +import com.muyu.common.core.web.domain.BaseEntity; import jakarta.servlet.http.HttpServletResponse; import javax.annotation.Resource; import org.springframework.web.bind.annotation.GetMapping; @@ -33,8 +35,7 @@ import com.muyu.common.core.web.page.TableDataInfo; */ @RestController @RequestMapping("/${businessName}") -public class ${ClassName}Controller extends BaseController -{ +public class ${ClassName}Controller extends BaseController { @Resource private I${ClassName}Service ${className}Service; diff --git a/cloud-modules/cloud-modules-parse/pom.xml b/cloud-modules/cloud-modules-parse/pom.xml new file mode 100644 index 0000000..9991788 --- /dev/null +++ b/cloud-modules/cloud-modules-parse/pom.xml @@ -0,0 +1,134 @@ + + + 4.0.0 + + com.muyu + cloud-modules + 3.6.3 + + + cloud-modules-parse + + cloud-modules-parse 协议解析 + + + 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 + + + + + + + + + + + org.eclipse.paho + org.eclipse.paho.client.mqttv3 + + + + org.projectlombok + lombok + + + + + com.muyu + enterpise-remote + + + + com.muyu + enterpise-common + + + + com.muyu + enterpise-cache + + + + + com.muyu + cloud-common-kafka + + + + + + ${project.artifactId} + + + org.springframework.boot + spring-boot-maven-plugin + + + + repackage + + + + + + + diff --git a/cloud-modules/cloud-modules-parse/src/main/java/com/muyu/parse/ParseApplication.java b/cloud-modules/cloud-modules-parse/src/main/java/com/muyu/parse/ParseApplication.java new file mode 100644 index 0000000..6bd2c13 --- /dev/null +++ b/cloud-modules/cloud-modules-parse/src/main/java/com/muyu/parse/ParseApplication.java @@ -0,0 +1,24 @@ +package com.muyu.parse; + +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; + +/** + * @version 1.0 + * @Author xie ya ru + * @Date 2024/9/28 12:26 + * @注释 + */ +@SpringBootApplication +@EnableCustomConfig +//@EnableCustomSwagger2 +@EnableMyFeignClients + +public class ParseApplication { + public static void main(String[] args) { + SpringApplication.run(ParseApplication.class, args); + } +} diff --git a/cloud-modules/cloud-modules-parse/src/main/java/com/muyu/parse/configure/MqttConsumerConfig.java b/cloud-modules/cloud-modules-parse/src/main/java/com/muyu/parse/configure/MqttConsumerConfig.java new file mode 100644 index 0000000..dba66d3 --- /dev/null +++ b/cloud-modules/cloud-modules-parse/src/main/java/com/muyu/parse/configure/MqttConsumerConfig.java @@ -0,0 +1,83 @@ +package com.muyu.parse.configure; + +import com.muyu.parse.process.ProcessData; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.eclipse.paho.client.mqttv3.*; +import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence; +import org.springframework.stereotype.Component; + +import javax.annotation.PostConstruct; +import javax.annotation.Resource; + +/** + * @version 1.0 + * @Author xie ya ru + * @Date 2024/9/26 15:31 + * @注释 MQTT监听者 + */ + + +@Component +@Slf4j +@Data +@AllArgsConstructor +@NoArgsConstructor +public class MqttConsumerConfig { + + String topic = "yyy"; + String content = "Message from MqttPublishSample"; + int qos = 2; + String broker = "tcp://123.57.152.124:1883"; + String clientId = "xyr123456789"; + + @Resource + private ProcessData processData; + + @PostConstruct + public void connect() { + try { + MqttClient sampleClient = new MqttClient(broker, clientId, new MemoryPersistence()); + MqttConnectOptions connOpts = new MqttConnectOptions(); + //是否清空session + connOpts.setCleanSession(false); + System.out.println("Connecting to broker: " + broker); + //连接 + sampleClient.connect(connOpts); + sampleClient.subscribe(topic, qos); + sampleClient.setCallback(new MqttCallback() { + //连接丢失(报错) + @Override + public void connectionLost(Throwable throwable) { + log.error("error:{}", throwable.getMessage(), throwable); + } + + //消息已经接收到 + @Override + public void messageArrived(String s, MqttMessage mqttMessage) throws Exception { + String s1 = new String(mqttMessage.getPayload()); + System.out.println("接收到的主题是:" + s + "内容是:{}" + s1); + processData.DataConversion(s1); + + } + + //交付完成 + @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-parse/src/main/java/com/muyu/parse/process/ProcessData.java b/cloud-modules/cloud-modules-parse/src/main/java/com/muyu/parse/process/ProcessData.java new file mode 100644 index 0000000..fcab72c --- /dev/null +++ b/cloud-modules/cloud-modules-parse/src/main/java/com/muyu/parse/process/ProcessData.java @@ -0,0 +1,94 @@ +package com.muyu.parse.process; + +import cn.hutool.json.JSONObject; +import com.muyu.common.kafka.config.KafkaProducerConfig; +import com.muyu.domain.MessageValue; +import com.muyu.domain.SysCar; +import com.muyu.domain.SysCarType; +import com.muyu.enterpise.cache.MessageValueCacheService; +import com.muyu.enterpise.cache.SysCarCacheService; +import com.muyu.enterpise.cache.SysCarTypeCacheService; +import com.muyu.parse.uitl.DataParseUtil; +import com.muyu.remote.RemoteMessageValueService; +import lombok.extern.log4j.Log4j2; +import org.apache.kafka.clients.producer.Callback; +import org.apache.kafka.clients.producer.ProducerRecord; +import org.apache.kafka.clients.producer.RecordMetadata; +import org.springframework.context.annotation.Configuration; + +import javax.annotation.Resource; +import java.util.List; + + +/** + * @version 1.0 + * @Author xie ya ru + * @Date 2024/9/28 21:14 + * @注释 + */ +@Log4j2 +@Configuration +public class ProcessData { + + + + //报文模版信息 + @Resource + private MessageValueCacheService messageValueCacheService; + + //车辆信息 + @Resource + private SysCarCacheService sysCarCacheService; + + //车辆类型信息 + @Resource + private SysCarTypeCacheService sysCarTypeCacheService; + + @Resource + private KafkaProducerConfig kafkaProducerConfig; + + private final static String topic = "sysCar_vin_topic"; + + public void DataConversion(String jsonVin ) { + //设置数组存储车辆数据 + JSONObject jsonObject = new JSONObject(); + String vin = DataParseUtil.dataParsing(jsonVin); + System.out.println("车辆转换的vin是:"+vin); + + //判断vin是否存在缓存中 + if(sysCarCacheService.hashKey(vin)){ + //从Redis中获取车辆信息 + SysCar sysCar = sysCarCacheService.get(vin); + //根据缓存车辆类型获取缓存报文 + SysCarType sysCarType = sysCarTypeCacheService.get(String.valueOf(sysCar.getCarType())); + + //获取报文模版信息 + List messageValues = messageValueCacheService.get(String.valueOf(sysCarType.getMessageTemplateId())); + for (MessageValue messageValue : messageValues) { + //起始位下标 + Integer startIndex = messageValue.getMessageStartIndex() - 1; + //结束位下标 + Integer endIndex = messageValue.getMessageEndIndex(); + //根据报文模版截取数据 + String value = vin.substring(startIndex, endIndex); + //存入数据 + System.out.println("标签"+messageValue.getMessageLabel()+"值"+value); + jsonObject.put(messageValue.getMessageLabel(), value); + } + sendKafkaMessage(jsonObject); + } + + } + + + + private void sendKafkaMessage(JSONObject jsonObject){ + ProducerRecord producerRecord = new ProducerRecord<>(topic, jsonObject); + try { + kafkaProducerConfig.kafkaProducer().send(new ProducerRecord<>(topic,jsonObject.toString())); + } catch (Exception e) { + throw new RuntimeException(e); + } + } + +} diff --git a/cloud-modules/cloud-modules-parse/src/main/java/com/muyu/parse/uitl/DataParseUtil.java b/cloud-modules/cloud-modules-parse/src/main/java/com/muyu/parse/uitl/DataParseUtil.java new file mode 100644 index 0000000..c3ea6a1 --- /dev/null +++ b/cloud-modules/cloud-modules-parse/src/main/java/com/muyu/parse/uitl/DataParseUtil.java @@ -0,0 +1,35 @@ +package com.muyu.parse.uitl; + + +import lombok.extern.log4j.Log4j2; + +/** + * @version 1.0 + * @Author xie ya ru + * @Date 2024/9/28 16:48 + * @注释 进制转换 + */ +@Log4j2 +public class DataParseUtil { + public static final Integer STARTPOSITION = 1; + + public static final Integer ENDPOSITION = 18; + + public static final Integer INDEX = 16; + public static String dataParsing(String jsonVin){ + + //根据空格切割数据 + String[] hexArray = jsonVin.split(" "); + StringBuilder result = new StringBuilder(); + //遍历十六进制数据转换为字符 + for (String hex : hexArray) { + int decimal = Integer.parseInt(hex, INDEX); + result.append((char) decimal); + } + //取出车辆VIN码 + String vehicleVin = result.substring(STARTPOSITION, ENDPOSITION); + log.info("车辆VIN码: " + vehicleVin); + return vehicleVin; + + } +} diff --git a/cloud-modules/cloud-modules-parse/src/main/resources/banner.txt b/cloud-modules/cloud-modules-parse/src/main/resources/banner.txt new file mode 100644 index 0000000..0dd5eee --- /dev/null +++ b/cloud-modules/cloud-modules-parse/src/main/resources/banner.txt @@ -0,0 +1,2 @@ +Spring Boot Version: ${spring-boot.version} +Spring Application Name: ${spring.application.name} diff --git a/cloud-modules/cloud-modules-parse/src/main/resources/bootstrap.yml b/cloud-modules/cloud-modules-parse/src/main/resources/bootstrap.yml new file mode 100644 index 0000000..3f1f253 --- /dev/null +++ b/cloud-modules/cloud-modules-parse/src/main/resources/bootstrap.yml @@ -0,0 +1,61 @@ +# Tomcat +server: + port: 9705 + +# nacos线上地址 +nacos: + addr: 123.57.152.124:8848 + user-name: nacos + password: nacos + namespace: xyr +# 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-parse + 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} +# # xxl-job 配置文件 +# - application-xxl-config-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} + #kafka共享配置 + #application-kafka-config-dev.yml + - application-kafka-config-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} +logging: + level: + com.muyu.system.mapper: DEBUG diff --git a/cloud-gateway/cloud-modules-fault/src/main/resources/logback/dev.xml b/cloud-modules/cloud-modules-parse/src/main/resources/logback/dev.xml similarity index 98% rename from cloud-gateway/cloud-modules-fault/src/main/resources/logback/dev.xml rename to cloud-modules/cloud-modules-parse/src/main/resources/logback/dev.xml index f350dd2..820a507 100644 --- a/cloud-gateway/cloud-modules-fault/src/main/resources/logback/dev.xml +++ b/cloud-modules/cloud-modules-parse/src/main/resources/logback/dev.xml @@ -1,7 +1,7 @@ - + diff --git a/cloud-gateway/cloud-modules-fault/src/main/resources/logback/prod.xml b/cloud-modules/cloud-modules-parse/src/main/resources/logback/prod.xml similarity index 98% rename from cloud-gateway/cloud-modules-fault/src/main/resources/logback/prod.xml rename to cloud-modules/cloud-modules-parse/src/main/resources/logback/prod.xml index f523344..5bae47a 100644 --- a/cloud-gateway/cloud-modules-fault/src/main/resources/logback/prod.xml +++ b/cloud-modules/cloud-modules-parse/src/main/resources/logback/prod.xml @@ -1,7 +1,7 @@ - + diff --git a/cloud-gateway/cloud-modules-fault/src/main/resources/logback/test.xml b/cloud-modules/cloud-modules-parse/src/main/resources/logback/test.xml similarity index 98% rename from cloud-gateway/cloud-modules-fault/src/main/resources/logback/test.xml rename to cloud-modules/cloud-modules-parse/src/main/resources/logback/test.xml index f523344..5bae47a 100644 --- a/cloud-gateway/cloud-modules-fault/src/main/resources/logback/test.xml +++ b/cloud-modules/cloud-modules-parse/src/main/resources/logback/test.xml @@ -1,7 +1,7 @@ - + diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysConfigController.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysConfigController.java index 3bced52..824115c 100644 --- a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysConfigController.java +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysConfigController.java @@ -3,6 +3,7 @@ package com.muyu.system.controller; 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.domain.BaseEntity; import com.muyu.common.core.web.page.TableDataInfo; import com.muyu.common.log.annotation.Log; import com.muyu.common.log.enums.BusinessType; @@ -28,7 +29,7 @@ import java.util.List; @RestController @RequestMapping("/config") @Tag(name = "SysConfigController", description = "系统参数配置") -public class SysConfigController extends BaseController { +public class SysConfigController extends BaseController { @Autowired private SysConfigService configService; 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 37e48fc..02d12f9 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 @@ -4,6 +4,7 @@ import com.muyu.common.core.constant.UserConstants; import com.muyu.common.core.utils.StringUtils; import com.muyu.common.core.web.controller.BaseController; import com.muyu.common.core.domain.Result; +import com.muyu.common.core.web.domain.BaseEntity; import com.muyu.common.log.annotation.Log; import com.muyu.common.log.enums.BusinessType; import com.muyu.common.security.annotation.RequiresPermissions; @@ -24,7 +25,7 @@ import java.util.List; */ @RestController @RequestMapping("/dept") -public class SysDeptController extends BaseController { +public class SysDeptController extends BaseController { @Autowired private SysDeptService deptService; diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysDictDataController.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysDictDataController.java index f9862d9..3edd170 100644 --- a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysDictDataController.java +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysDictDataController.java @@ -4,6 +4,7 @@ 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.domain.Result; +import com.muyu.common.core.web.domain.BaseEntity; import com.muyu.common.core.web.page.TableDataInfo; import com.muyu.common.log.annotation.Log; import com.muyu.common.log.enums.BusinessType; @@ -27,7 +28,7 @@ import java.util.List; */ @RestController @RequestMapping("/dict/data") -public class SysDictDataController extends BaseController { +public class SysDictDataController extends BaseController { @Autowired private SysDictDataService dictDataService; diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysDictTypeController.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysDictTypeController.java index c4a7b9f..37ddb78 100644 --- a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysDictTypeController.java +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysDictTypeController.java @@ -3,6 +3,7 @@ package com.muyu.system.controller; import com.muyu.common.core.utils.poi.ExcelUtil; import com.muyu.common.core.web.controller.BaseController; import com.muyu.common.core.domain.Result; +import com.muyu.common.core.web.domain.BaseEntity; import com.muyu.common.core.web.page.TableDataInfo; import com.muyu.common.log.annotation.Log; import com.muyu.common.log.enums.BusinessType; @@ -24,7 +25,7 @@ import java.util.List; */ @RestController @RequestMapping("/dict/type") -public class SysDictTypeController extends BaseController { +public class SysDictTypeController extends BaseController { @Autowired private SysDictTypeService dictTypeService; diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysFirmDatasourceController.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysFirmDatasourceController.java new file mode 100644 index 0000000..8e56ae2 --- /dev/null +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysFirmDatasourceController.java @@ -0,0 +1,60 @@ +package com.muyu.system.controller; + +import com.muyu.common.core.domain.Result; +import com.muyu.common.core.web.controller.BaseController; +import com.muyu.common.core.web.domain.BaseEntity; +import com.muyu.common.system.domain.SysFirmDatasource; +import com.muyu.system.service.SysFirmDatasourceService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; + +/** + * 数据源信息控制层 + * @Author WangXin + * @Data 2024/10/2 + * @Description 数据源信息控制层 + * @Version 1.0.0 + */ +@RestController +@RequestMapping("/firmDatasource") +@Tag(name = "sysFirmDatasourceController", description = "数据源信息控制层") +public class SysFirmDatasourceController extends BaseController { + + @Resource + private SysFirmDatasourceService sysFirmDatasourceService; + + /** + * 根据id查询数据源信息 + * @param id 数据源id + * @return 数据原信息结果集 + */ + @GetMapping("/findById/{id}") + @Operation(summary = "根据id查询数据源信息",description = "根据id查询数据源信息") + public Result findById(@PathVariable("id") Long id) { + return success(sysFirmDatasourceService.getById(id)); + } + + /** + * 添加数据原信息 + * @param sysFirmDatasource 数据源信息 + * @return 添加的主键 + */ + @Operation(summary = "添加数据原信息",description = "在给公司分配数据源时添加数据源") + @PostMapping("/addFirmDatasource") + public Result addFirmDatasource(@RequestBody SysFirmDatasource sysFirmDatasource) { + return success(sysFirmDatasourceService.save(sysFirmDatasource)); + } + + + @Operation(summary = "根据id修改数据源信息", description = "根据id修改数据源信息") + @PutMapping("/updFindById") + public Result updFindById(@RequestBody SysFirmDatasource sysFirmDatasource) { + return success(sysFirmDatasourceService.updateById(sysFirmDatasource)); + } + +} diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysLogininforController.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysLogininforController.java index c1e92b7..90ba9b2 100644 --- a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysLogininforController.java +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysLogininforController.java @@ -4,6 +4,7 @@ import com.muyu.common.core.constant.CacheConstants; import com.muyu.common.core.utils.poi.ExcelUtil; import com.muyu.common.core.web.controller.BaseController; import com.muyu.common.core.domain.Result; +import com.muyu.common.core.web.domain.BaseEntity; import com.muyu.common.core.web.page.TableDataInfo; import com.muyu.common.log.annotation.Log; import com.muyu.common.log.enums.BusinessType; @@ -25,7 +26,7 @@ import java.util.List; */ @RestController @RequestMapping("/logininfor") -public class SysLogininforController extends BaseController { +public class SysLogininforController extends BaseController { @Autowired private SysLogininforService logininforService; 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 e5ae348..c1cb457 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 @@ -4,6 +4,7 @@ import com.muyu.common.core.constant.UserConstants; import com.muyu.common.core.utils.StringUtils; import com.muyu.common.core.web.controller.BaseController; import com.muyu.common.core.domain.Result; +import com.muyu.common.core.web.domain.BaseEntity; import com.muyu.common.log.annotation.Log; import com.muyu.common.log.enums.BusinessType; import com.muyu.common.security.annotation.RequiresPermissions; @@ -24,7 +25,7 @@ import java.util.List; */ @RestController @RequestMapping("/menu") -public class SysMenuController extends BaseController { +public class SysMenuController extends BaseController { @Autowired private SysMenuService menuService; diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysNoticeController.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysNoticeController.java index e6b9ede..e7a2519 100644 --- a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysNoticeController.java +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysNoticeController.java @@ -2,6 +2,7 @@ package com.muyu.system.controller; import com.muyu.common.core.web.controller.BaseController; import com.muyu.common.core.domain.Result; +import com.muyu.common.core.web.domain.BaseEntity; import com.muyu.common.core.web.page.TableDataInfo; import com.muyu.common.log.annotation.Log; import com.muyu.common.log.enums.BusinessType; @@ -22,7 +23,7 @@ import java.util.List; */ @RestController @RequestMapping("/notice") -public class SysNoticeController extends BaseController { +public class SysNoticeController extends BaseController { @Autowired private SysNoticeService noticeService; diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysOperlogController.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysOperlogController.java index bb00d1d..2ab620b 100644 --- a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysOperlogController.java +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysOperlogController.java @@ -3,6 +3,7 @@ package com.muyu.system.controller; import com.muyu.common.core.utils.poi.ExcelUtil; import com.muyu.common.core.web.controller.BaseController; import com.muyu.common.core.domain.Result; +import com.muyu.common.core.web.domain.BaseEntity; import com.muyu.common.core.web.page.TableDataInfo; import com.muyu.common.log.annotation.Log; import com.muyu.common.log.enums.BusinessType; @@ -23,7 +24,7 @@ import java.util.List; */ @RestController @RequestMapping("/operlog") -public class SysOperlogController extends BaseController { +public class SysOperlogController extends BaseController { @Autowired private SysOperLogService operLogService; diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysPostController.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysPostController.java index 79f3f47..647d584 100644 --- a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysPostController.java +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysPostController.java @@ -3,6 +3,7 @@ package com.muyu.system.controller; import com.muyu.common.core.utils.poi.ExcelUtil; import com.muyu.common.core.web.controller.BaseController; import com.muyu.common.core.domain.Result; +import com.muyu.common.core.web.domain.BaseEntity; import com.muyu.common.core.web.page.TableDataInfo; import com.muyu.common.log.annotation.Log; import com.muyu.common.log.enums.BusinessType; @@ -24,7 +25,7 @@ import java.util.List; */ @RestController @RequestMapping("/post") -public class SysPostController extends BaseController { +public class SysPostController extends BaseController { @Autowired private SysPostService postService; diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysProfileController.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysProfileController.java index ae49255..64ff4ea 100644 --- a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysProfileController.java +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysProfileController.java @@ -5,6 +5,7 @@ import com.muyu.common.core.utils.StringUtils; import com.muyu.common.core.utils.file.FileTypeUtils; import com.muyu.common.core.utils.file.MimeTypeUtils; import com.muyu.common.core.web.controller.BaseController; +import com.muyu.common.core.web.domain.BaseEntity; import com.muyu.common.log.annotation.Log; import com.muyu.common.log.enums.BusinessType; import com.muyu.common.security.service.TokenService; @@ -28,7 +29,7 @@ import java.util.Arrays; */ @RestController @RequestMapping("/user/profile") -public class SysProfileController extends BaseController { +public class SysProfileController extends BaseController { @Autowired private SysUserService userService; diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysRoleController.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysRoleController.java index f8b05ad..904bb3b 100644 --- a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysRoleController.java +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysRoleController.java @@ -3,6 +3,7 @@ package com.muyu.system.controller; import com.muyu.common.core.utils.poi.ExcelUtil; import com.muyu.common.core.web.controller.BaseController; import com.muyu.common.core.domain.Result; +import com.muyu.common.core.web.domain.BaseEntity; import com.muyu.common.core.web.page.TableDataInfo; import com.muyu.common.log.annotation.Log; import com.muyu.common.log.enums.BusinessType; @@ -30,7 +31,7 @@ import java.util.List; */ @RestController @RequestMapping("/role") -public class SysRoleController extends BaseController { +public class SysRoleController extends BaseController { @Autowired private SysRoleService roleService; diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysUserController.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysUserController.java index bc0b5fe..effee4a 100644 --- a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysUserController.java +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysUserController.java @@ -4,6 +4,7 @@ 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.domain.BaseEntity; import com.muyu.common.core.web.page.TableDataInfo; import com.muyu.common.log.annotation.Log; import com.muyu.common.log.enums.BusinessType; @@ -37,7 +38,7 @@ import java.util.stream.Collectors; */ @RestController @RequestMapping("/user") -public class SysUserController extends BaseController { +public class SysUserController extends BaseController { @Autowired private SysUserService userService; diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysUserOnlineController.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysUserOnlineController.java index 5b78721..2142a55 100644 --- a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysUserOnlineController.java +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysUserOnlineController.java @@ -4,6 +4,7 @@ import com.muyu.common.core.constant.CacheConstants; import com.muyu.common.core.utils.StringUtils; import com.muyu.common.core.web.controller.BaseController; import com.muyu.common.core.domain.Result; +import com.muyu.common.core.web.domain.BaseEntity; import com.muyu.common.core.web.page.TableDataInfo; import com.muyu.common.log.annotation.Log; import com.muyu.common.log.enums.BusinessType; @@ -27,7 +28,7 @@ import java.util.List; */ @RestController @RequestMapping("/online") -public class SysUserOnlineController extends BaseController { +public class SysUserOnlineController extends BaseController { @Autowired private SysUserOnlineService userOnlineService; diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/mapper/SysFirmDatasourceMapper.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/mapper/SysFirmDatasourceMapper.java new file mode 100644 index 0000000..2b81dd9 --- /dev/null +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/mapper/SysFirmDatasourceMapper.java @@ -0,0 +1,15 @@ +package com.muyu.system.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.muyu.common.system.domain.SysFirmDatasource; +import org.apache.ibatis.annotations.Mapper; + +/** + * @Author WangXin + * @Data 2024/10/2 + * @Description 数据源信息持久层 + * @Version 1.0.0 + */ +@Mapper +public interface SysFirmDatasourceMapper extends BaseMapper { +} diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/SysFirmDatasourceService.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/SysFirmDatasourceService.java new file mode 100644 index 0000000..b58400b --- /dev/null +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/SysFirmDatasourceService.java @@ -0,0 +1,13 @@ +package com.muyu.system.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.muyu.common.system.domain.SysFirmDatasource; + +/** + * @Author WangXin + * @Data 2024/10/2 + * @Description + * @Version 1.0.0 + */ +public interface SysFirmDatasourceService extends IService { +} diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/impl/SysFirmDatasourceServiceImpl.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/impl/SysFirmDatasourceServiceImpl.java new file mode 100644 index 0000000..ced57c6 --- /dev/null +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/impl/SysFirmDatasourceServiceImpl.java @@ -0,0 +1,21 @@ +package com.muyu.system.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.muyu.common.system.domain.SysFirmDatasource; +import com.muyu.system.mapper.SysFirmDatasourceMapper; +import com.muyu.system.service.SysFirmDatasourceService; +import org.springframework.stereotype.Service; + +/** + * @Author WangXin + * @Data 2024/10/2 + * @Description + * @Version 1.0.0 + */ +@Service +public class SysFirmDatasourceServiceImpl + extends ServiceImpl + implements SysFirmDatasourceService { + + +} 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 1a529e6..560dd30 100644 --- a/cloud-modules/cloud-modules-system/src/main/resources/bootstrap.yml +++ b/cloud-modules/cloud-modules-system/src/main/resources/bootstrap.yml @@ -1,13 +1,13 @@ # Tomcat server: - port: 9701 + port: 19701 # nacos线上地址 nacos: - addr: 123.57.152.124:8848 + addr: 127.0.0.1:8848 user-name: nacos password: nacos - namespace: yan1 + namespace: wx # SPRING_AMQP_DESERIALIZATION_TRUST_ALL=true spring.amqp.deserialization.trust.all # Spring spring: diff --git a/cloud-modules/cloud-modules-vehicle-gateway/pom.xml b/cloud-modules/cloud-modules-vehicle-gateway/pom.xml index e42a0b6..31414a6 100644 --- a/cloud-modules/cloud-modules-vehicle-gateway/pom.xml +++ b/cloud-modules/cloud-modules-vehicle-gateway/pom.xml @@ -12,7 +12,7 @@ cloud-modules-vehicle-gateway - cloud-modules-vehicle-gateway车辆网关模块 + cloud-modules-vehicleGateway 车辆网关模块 @@ -53,39 +53,6 @@ 0.2.21 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - com.alibaba.cloud diff --git a/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehicleGateway/ClearInstance.java b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehicleGateway/ClearInstance.java new file mode 100644 index 0000000..11ac2cb --- /dev/null +++ b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehicleGateway/ClearInstance.java @@ -0,0 +1,108 @@ +package com.muyu.vehicleGateway; + +import com.aliyun.ecs20140526.models.DescribeInstancesRequest; +import com.aliyun.ecs20140526.models.DescribeInstancesResponse; +import com.aliyun.ecs20140526.models.DescribeInstancesResponseBody; +import com.aliyun.tea.TeaException; +import com.aliyun.teautil.models.RuntimeOptions; +import lombok.extern.log4j.Log4j2; +import org.springframework.beans.factory.DisposableBean; +import org.springframework.stereotype.Component; + +import java.util.ArrayList; + +/** + * 清除阿里云ECS实例 + * @ClassName ClearInstance + * @author LiHD + * @Date 2024/9/28 22:29 + */ +@Component +@Log4j2 +public class ClearInstance implements DisposableBean { + + /** + * description : + *

使用AK&SK初始化账号Client

+ * @return Client + * + * @throws Exception + */ + public static com.aliyun.ecs20140526.Client createClient() throws Exception { + // 工程代码泄露可能会导致 AccessKey 泄露,并威胁账号下所有资源的安全性。以下代码示例仅供参考。 + // 建议使用更安全的 STS 方式,更多鉴权访问方式请参见:https://help.aliyun.com/document_detail/378657.html。 + com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config() + // 必填,请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_ID。 + .setAccessKeyId("LTAI5tM4LSerzWQ9wUPXgybq") + // 必填,请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_SECRET。 + .setAccessKeySecret("hkiPr0QwkKMZauhXucgg1SDriXUW0Q"); + // Endpoint 请参考 https://api.aliyun.com/product/Ecs + config.endpoint = "ecs.cn-beijing.aliyuncs.com"; + return new com.aliyun.ecs20140526.Client(config); + } + + public static void clearInstance() throws Exception { + + // 创建ECS客户端对象,用于后续调用ECS相关API + com.aliyun.ecs20140526.Client client = ClearInstance.createClient(); + + DescribeInstancesRequest describeInstancesRequest = new DescribeInstancesRequest() + .setRegionId("cn-beijing"); + + //创建运行时选择对象,用于配置运行时的选项参数 + RuntimeOptions runtimeOptions = new RuntimeOptions(); + + //获取实例列表 + DescribeInstancesResponse describeInstancesResponse = client.describeInstancesWithOptions(describeInstancesRequest, runtimeOptions); + + //提取实例ID集合 + ArrayList list = new ArrayList<>(); + DescribeInstancesResponseBody body = describeInstancesResponse.getBody(); + + for (DescribeInstancesResponseBody.DescribeInstancesResponseBodyInstancesInstance instance : body.getInstances().getInstance()) { + list.add(instance.getInstanceId()); + } + log.info("Instance IDs: " + list); + // 创建删除实例请求对象,并设置请求参数 + com.aliyun.ecs20140526.models.DeleteInstancesRequest deleteInstancesRequest = new com.aliyun.ecs20140526.models.DeleteInstancesRequest() + // 设置地域ID,指定删除实例的地域 + .setRegionId("cn-beijing") + // 设置DryRun为true,用于验证请求是否可以成功,但不实际执行删除操作 + .setDryRun(false) + // 设置Force为true,表示即使实例有正在运行的任务,也强制删除实例 + .setForce(true) + // 设置TerminateSubscription为true,表示删除按订阅付费的实例时终止订阅 + .setTerminateSubscription(true) + .setInstanceId(list); + + // 创建运行时选项对象,用于配置运行时的选项参数 + com.aliyun.teautil.models.RuntimeOptions runtime = new com.aliyun.teautil.models.RuntimeOptions(); + try { + // 复制代码运行请自行打印 API 的返回值 + client.deleteInstancesWithOptions(deleteInstancesRequest, runtime); + } 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); + } + } + + + @Override + public void destroy() throws Exception { + log.info("开始执行删除实例方法"); + clearInstance(); + log.info("删除实例方法执行完毕"); + } +} diff --git a/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehicleGateway/CreateInstance.java b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehicleGateway/CreateInstance.java new file mode 100644 index 0000000..7d8860e --- /dev/null +++ b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehicleGateway/CreateInstance.java @@ -0,0 +1,101 @@ +package com.muyu.vehicleGateway; + +import com.aliyun.tea.TeaException; +import lombok.extern.log4j.Log4j2; +import org.springframework.boot.ApplicationArguments; +import org.springframework.boot.ApplicationRunner; +import org.springframework.stereotype.Component; + +/** + * 创建阿里云ECS实例 + * @className Sample + * @author LiHD + * @date 2024/9/28 19:02 + */ +@Component +@Log4j2 +public class CreateInstance implements ApplicationRunner{ + + /** + * description : + *

使用AK&SK初始化账号Client

+ * @return Client + * + * @throws Exception + */ + public static com.aliyun.ecs20140526.Client createClient() throws Exception { + // 工程代码泄露可能会导致 AccessKey 泄露,并威胁账号下所有资源的安全性。以下代码示例仅供参考。 + com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config() + // 必填,请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_ID。 + .setAccessKeyId("LTAI5tM4LSerzWQ9wUPXgybq") + // 必填,请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_SECRET。 + .setAccessKeySecret("hkiPr0QwkKMZauhXucgg1SDriXUW0Q"); + // Endpoint 请参考 https://api.aliyun.com/product/Ecs + config.endpoint = "ecs.cn-beijing.aliyuncs.com"; + return new com.aliyun.ecs20140526.Client(config); + } + + /** + * 本程序的入口点 + * 主要功能是创建阿里云ECS实例 + * + * @throws Exception 如果执行过程中发生错误则抛出异常 + */ + public static void sample() throws Exception { + + // 创建阿里云ECS客户端 + com.aliyun.ecs20140526.Client client = CreateInstance.createClient(); + + // 配置系统盘参数 + com.aliyun.ecs20140526.models.RunInstancesRequest.RunInstancesRequestSystemDisk systemDisk = new com.aliyun.ecs20140526.models.RunInstancesRequest.RunInstancesRequestSystemDisk() + .setSize("40") // 设置系统盘大小为40GB + .setCategory("cloud_essd"); // 设置系统盘类型为cloud_essd + + // 创建创建实例请求对象并设置参数 + com.aliyun.ecs20140526.models.RunInstancesRequest runInstancesRequest = new com.aliyun.ecs20140526.models.RunInstancesRequest() + .setRegionId("cn-beijing") // 设置地域ID + .setImageId("m-2ze801i45fclmf1qwes5") // 设置镜像ID + .setInstanceType("ecs.e-c1m1.large") // 设置实例类型 + .setSecurityGroupId("sg-2ze63acc0bas9vjm5gtv") // 设置安全组ID + .setVSwitchId("vsw-2ze028qk4xpwk3i0ggket") // 设置虚拟交换机ID + .setInstanceName("server-mqtt") // 设置实例名称 + .setInstanceChargeType("PostPaid") // 设置实例付费类型为后付费按量付费 + .setSystemDisk(systemDisk) // 设置系统盘配置 + .setHostName("root") // 设置主机名 + .setPassword("Lhd.123456") // 设置实例密码 + .setAmount(1) // 设置创建实例的数量 + .setInternetChargeType("PayByTraffic") // 设置互联网计费类型为按流量计费 + .setInternetMaxBandwidthOut(5); // 设置最大出带宽为5Mbps + + // 创建运行时选项对象 + com.aliyun.teautil.models.RuntimeOptions runtime = new com.aliyun.teautil.models.RuntimeOptions(); + + // 尝试执行创建实例请求 + try { + // 复制代码运行请自行打印 API 的返回值 + client.runInstancesWithOptions(runInstancesRequest, runtime); + } 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); + } + } + + @Override + public void run(ApplicationArguments args) throws Exception { + log.info("开始执行创建实例方法"); + sample(); + log.info("创建实例方法执行完毕"); + } +} diff --git a/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehicleGateway/MqttPublishSample.java b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehicleGateway/MqttPublishSample.java new file mode 100644 index 0000000..f1b337a --- /dev/null +++ b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehicleGateway/MqttPublishSample.java @@ -0,0 +1,56 @@ +package com.muyu.vehicleGateway; + +import lombok.extern.log4j.Log4j2; +import lombok.extern.slf4j.Slf4j; +import org.eclipse.paho.client.mqttv3.*; + +@Log4j2 +@Slf4j +public class MqttPublishSample { + + public static void main(String[] args) { + + // 定义一个用于MQTT消息发布的示例程序 + String topic = "vehicleGateway"; + String content = "Message from MqttPublishSample"; + int qos = 2; + String broker = "tcp://123.57.152.124:1883"; + String clientId = "JavaSample"; + + try { + // 创建MQTT客户端并连接到指定的broker + 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 { + // 消息到达的处理 + System.out.println(new String(mqttMessage.getPayload())); + } + + @Override + public void deliveryComplete(IMqttDeliveryToken iMqttDeliveryToken) { + // 消息发送完成的处理 + } + }); + } catch(MqttException me) { + // 处理MQTT异常 + 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-vehicle-gateway/src/main/java/com/muyu/vehicle/gateway/vehicle/VehicleInstance.java b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehicleGateway/vehicle/VehicleInstance.java similarity index 100% rename from cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehicle/gateway/vehicle/VehicleInstance.java rename to cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehicleGateway/vehicle/VehicleInstance.java diff --git a/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehicle/gateway/vehicle/model/VehicleData.java b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehicleGateway/vehicle/model/VehicleData.java similarity index 100% rename from cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehicle/gateway/vehicle/model/VehicleData.java rename to cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehicleGateway/vehicle/model/VehicleData.java diff --git a/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehicle/gateway/vehicle/thread/VehicleThread.java b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehicleGateway/vehicle/thread/VehicleThread.java similarity index 100% rename from cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehicle/gateway/vehicle/thread/VehicleThread.java rename to cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehicleGateway/vehicle/thread/VehicleThread.java diff --git a/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehicle/gateway/web/domain/VehicleInfo.java b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehicleGateway/web/domain/VehicleInfo.java similarity index 100% rename from cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehicle/gateway/web/domain/VehicleInfo.java rename to cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehicleGateway/web/domain/VehicleInfo.java diff --git a/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehicle/gateway/web/domain/model/PositionModel.java b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehicleGateway/web/domain/model/PositionModel.java similarity index 100% rename from cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehicle/gateway/web/domain/model/PositionModel.java rename to cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehicleGateway/web/domain/model/PositionModel.java diff --git a/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehicle/gateway/web/mapper/VehicleInfoMapper.java b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehicleGateway/web/mapper/VehicleInfoMapper.java similarity index 100% rename from cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehicle/gateway/web/mapper/VehicleInfoMapper.java rename to cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehicleGateway/web/mapper/VehicleInfoMapper.java diff --git a/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehicle/gateway/web/service/impl/VechileInfoServiceImpl.java b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehicleGateway/web/service/impl/VechileInfoServiceImpl.java similarity index 100% rename from cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehicle/gateway/web/service/impl/VechileInfoServiceImpl.java rename to cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehicleGateway/web/service/impl/VechileInfoServiceImpl.java diff --git a/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehicle/gateway/web/util/VehicleUtils.java b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehicleGateway/web/util/VehicleUtils.java similarity index 100% rename from cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehicle/gateway/web/util/VehicleUtils.java rename to cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehicleGateway/web/util/VehicleUtils.java diff --git a/cloud-modules/cloud-modules-vehicle-gateway/src/main/resources/bootstrap.yml b/cloud-modules/cloud-modules-vehicle-gateway/src/main/resources/bootstrap.yml index 08feddf..32764e5 100644 --- a/cloud-modules/cloud-modules-vehicle-gateway/src/main/resources/bootstrap.yml +++ b/cloud-modules/cloud-modules-vehicle-gateway/src/main/resources/bootstrap.yml @@ -1,6 +1,6 @@ # Tomcat -server: - port: 9703 +#server: +# port: 9703 # nacos线上地址 nacos: diff --git a/cloud-modules/cloud-vx/pom.xml b/cloud-modules/cloud-vx/pom.xml index 6e7cc2a..1ff8a00 100644 --- a/cloud-modules/cloud-vx/pom.xml +++ b/cloud-modules/cloud-vx/pom.xml @@ -59,6 +59,11 @@ 2.0.43
+ + + + + diff --git a/cloud-modules/cloud-vx/src/main/java/com/muyu/service/Impl/WxServiceImpl.java b/cloud-modules/cloud-vx/src/main/java/com/muyu/service/Impl/WxServiceImpl.java index 69c4702..9976d5a 100644 --- a/cloud-modules/cloud-vx/src/main/java/com/muyu/service/Impl/WxServiceImpl.java +++ b/cloud-modules/cloud-vx/src/main/java/com/muyu/service/Impl/WxServiceImpl.java @@ -3,6 +3,7 @@ package com.muyu.service.Impl; import com.alibaba.fastjson2.JSONObject; import com.muyu.domain.Message; import com.muyu.domain.SubscribedUser; + import com.muyu.service.WxService; import com.muyu.util.OkHttpUtils; import com.muyu.util.TokenUtil; @@ -14,6 +15,7 @@ import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.Element; import org.dom4j.io.SAXReader; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; diff --git a/cloud-modules/pom.xml b/cloud-modules/pom.xml index b8fc35b..6b106df 100644 --- a/cloud-modules/pom.xml +++ b/cloud-modules/pom.xml @@ -13,8 +13,10 @@ cloud-modules-gen cloud-modules-file cloud-vx + cloud-modules-parse cloud-modules-enterprise - cloud-modules-vehicle-gateway + + cloud-modules-data-process cloud-modules 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 f594774..9d829bf 100644 --- a/cloud-visual/cloud-visual-monitor/src/main/resources/bootstrap.yml +++ b/cloud-visual/cloud-visual-monitor/src/main/resources/bootstrap.yml @@ -4,10 +4,10 @@ server: # nacos线上地址 nacos: - addr: 123.57.152.124:8848 + addr: 127.0.0.1:8848 user-name: nacos password: nacos - namespace: yan1 + namespace: wx # Spring spring: diff --git a/pom.xml b/pom.xml index b30f0df..30c8c30 100644 --- a/pom.xml +++ b/pom.xml @@ -23,6 +23,7 @@ 3.2.3 3.0.0 1.6.2 + 2.2.8 1.27.2 2.3.3 1.4.7 @@ -42,6 +43,10 @@ 5.8.27 4.1.0 2.4.1 + 1.3.1 + 2.2.8 + 2.9.3 + 1.2.5
@@ -127,6 +132,17 @@ ${swagger.core.version} + + io.swagger.core.v3 + swagger-annotations-jakarta + ${swagger.v3.version} + + + + com.muyu + cloud-common-caffeine + ${muyu.version} + pro.fessional @@ -266,6 +282,104 @@ cloud-common-rabbit ${muyu.version} + + + com.muyu + enterpise-remote + ${muyu.version} + + + + com.muyu + enterpise-common + ${muyu.version} + + + + com.muyu + enterprise-cache + ${muyu.version} + + + + + com.muyu + cloud-common-kafka + ${muyu.version} + + + + + + + + + + + org.eclipse.paho + org.eclipse.paho.client.mqttv3 + ${mqtt.version} + + + + org.apache.iotdb + iotdb-session + ${iotdb.version} + + + + com.github.ben-manes.caffeine + caffeine + ${caffeine.version} + + + + com.muyu + cloud-common-kafka + ${muyu.version} + + + + com.muyu + cloud-common-iotdb + ${muyu.version} + + + + com.muyu + cloud-modules-data-process-common + ${muyu.version} + + + + com.muyu + cloud-common-cache + ${muyu.version} + + + + com.muyu + enterpise-cache + ${muyu.version} + + + + com.muyu + enterpise-common + ${muyu.version} + + + + com.muyu + enterpise-remote + ${muyu.version} + + + + com.muyu + cloud-common-saas + ${muyu.version} + @@ -291,6 +405,7 @@ org.apache.maven.plugins maven-compiler-plugin + 3.13.0 ${java.version} ${java.version}