From 8bbaadea94cd0eb79da9f56172238afdc81e63c3 Mon Sep 17 00:00:00 2001 From: lijiayao <13831655+xiao-yao-charge-forward@user.noreply.gitee.com> Date: Sun, 7 Apr 2024 22:32:02 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E7=94=B5=E5=AD=90=E5=9B=B4=E6=A0=8F?= =?UTF-8?q?=E6=8A=A5=E8=AD=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/event/AnalyzeEventCache.java | 51 +++ .../couplet/analyze/msg/utils/MsgUtils.java | 338 ------------------ ...ot.autoconfigure.AutoConfiguration.imports | 2 +- .../common/redis/service/RedisService.java | 13 + .../couplet-analyze-msg/pom.xml | 1 + .../server/service/impl/FenceServiceImpl.java | 7 +- pom.xml | 6 + 7 files changed, 75 insertions(+), 343 deletions(-) create mode 100644 couplet-common/couplet-common-event/src/main/java/com/couplet/analyze/common/event/AnalyzeEventCache.java delete mode 100644 couplet-common/couplet-common-event/src/main/java/com/couplet/analyze/msg/utils/MsgUtils.java diff --git a/couplet-common/couplet-common-event/src/main/java/com/couplet/analyze/common/event/AnalyzeEventCache.java b/couplet-common/couplet-common-event/src/main/java/com/couplet/analyze/common/event/AnalyzeEventCache.java new file mode 100644 index 0000000..32d043a --- /dev/null +++ b/couplet-common/couplet-common-event/src/main/java/com/couplet/analyze/common/event/AnalyzeEventCache.java @@ -0,0 +1,51 @@ +package com.couplet.analyze.common.event; + +import com.couplet.common.redis.service.RedisService; +import org.springframework.beans.factory.annotation.Autowired; + +import java.util.Set; + +/** + * @Author: LiJiaYao + * @Date: 2024/4/7 + * @Description: + */ + +public class AnalyzeEventCache { + + @Autowired + private RedisService redisService; + + public String encode(String vin){ + return "event:arr"+vin; + } + /** + * 添加事件 + */ + public void addEvent(String vin, String eventValue) { + redisService.setCacheSet(encode(vin), eventValue); + } + + /** + * 修改事件 + */ + public void updateEvent(String vin,String eventValue){ + redisService.setCacheSet(encode(vin), eventValue); + } + /** + * 删除事件 + */ + public void removeEvent(String vin,String eventName){ + redisService.deleteSet(encode(vin), eventName); + } + /** + * 获取事件集合 + * + * @return + */ + public Set getEventList(String vin){ + + return redisService.getCacheSet(encode(vin)); + } + +} diff --git a/couplet-common/couplet-common-event/src/main/java/com/couplet/analyze/msg/utils/MsgUtils.java b/couplet-common/couplet-common-event/src/main/java/com/couplet/analyze/msg/utils/MsgUtils.java deleted file mode 100644 index 1e2800a..0000000 --- a/couplet-common/couplet-common-event/src/main/java/com/couplet/analyze/msg/utils/MsgUtils.java +++ /dev/null @@ -1,338 +0,0 @@ -package com.couplet.analyze.msg.utils; - -import com.couplet.analyze.msg.domain.CoupletMsgData; -import lombok.extern.slf4j.Slf4j; - -import java.math.BigDecimal; -import java.nio.charset.StandardCharsets; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.Random; - -/** - * @author DongXiaoDong - * @version 1.0 - * @date 2024/4/6 14:12 - * @description - */ -@Slf4j -public class MsgUtils { - - public static String generateGTA() { - // 生成四位以"GTA"开头的字符串 - String prefix = "GTA"; - // 生成三位随机数字 - String randomNumber = generateRandomNumber(4); - // 拼接字符串 - return prefix + randomNumber; - } - - public static String generateRandomNumber(int length) { - // 生成随机数 - Random random = new Random(); - StringBuilder sb = new StringBuilder(); - for (int i = 0; i < length; i++) { - // 生成0到9之间的随机数字,并转换为字符串 - sb.append(random.nextInt(10)); - } - return sb.toString(); - } - - /** - * 将16进制字符串转换为ASCII字符串 - * @param s 16进制字符串 - * @return ASCII字符串 - */ - public static String hexToString(String s) { - if (s == null || s.equals("")) { - return null; - } - s = s.replace(" ", ""); - byte[] baKeyword = new byte[s.length() / 2]; - for (int i = 0; i < baKeyword.length; i++) { - try { - baKeyword[i] = (byte) (0xff & Integer.parseInt(s.substring(i * 2, i * 2 + 2), 16)); - } catch (Exception e) { - e.printStackTrace(); - } - } - try { - s = new String(baKeyword, StandardCharsets.UTF_8); - } catch (Exception e1) { - e1.printStackTrace(); - return s; - } - return s; - } - - /** - * 将解析后的数据进行截取封装 - * @param str - * @return - */ - public static List sendMsg(String str) { - List coupletMsgDataList = new ArrayList<>(); - CoupletMsgData coupletMsgData = new CoupletMsgData(); - - coupletMsgData.setVin(str.substring(1,18)); - - log.info("vin=="+coupletMsgData.getVin()); - - //时间 - String tim =str.substring(18,31); - long timestamp = Long.parseLong(tim); - - Date date = new Date(timestamp); - coupletMsgData.setCreateTime(date); - - //经度 - String lt = str.substring(31,42); - // 如果末尾是零,则舍去 - int endIndex = lt.length() - 1; - while (lt.charAt(endIndex) == '0'){ - endIndex--; - } - - String longitude = lt.substring(0, endIndex + 1); - coupletMsgData.setLongitude(longitude); - - //维度 - String latitudeIndex =str.substring(42,52); - int endIndexT = latitudeIndex.length() - 1; - while (latitudeIndex.charAt(endIndexT) == '0'){ - endIndexT--; - } - - String latitude = latitudeIndex.substring(0, endIndexT + 1); - coupletMsgData.setLatitude(latitude); - - //速度speed - String speed =str.substring(52,58); - coupletMsgData.setSpeed(speed); - - //里程 - BigDecimal mileage= new BigDecimal(str.substring(58,69)); - mileage=mileage.stripTrailingZeros(); - coupletMsgData.setMileage(mileage); - - //总电压 - String voltage =str.substring(69,75); - while (voltage.endsWith("0")) { - voltage = voltage.substring(0, voltage.length() - 1); // 去除末尾的零 - } - coupletMsgData.setVoltage(voltage); - - //总电流 - String current =str.substring(75,80); - while (current.endsWith("0")){ - current=current.substring(0,current.length()-1); - } - coupletMsgData.setCurrent(current); - - //绝缘电阻 resistance - String res =str.substring(80,89); - String resistance = res.substring(0, 5); - coupletMsgData.setResistance(resistance); - - //档位 - String gear =str.substring(89,90); - coupletMsgData.setGear(gear); - - //accelerationPedal 加速踏板行程值 - String accelerationPedal =str.substring(90,91); - coupletMsgData.setAccelerationPedal(accelerationPedal); - - //brakePedal 制动踏板行程值 - String brakePedal =str.substring(92,93); - coupletMsgData.setBrakePedal(brakePedal); - - //fuelConsumptionRate 燃料消耗率 - String fuelConsumptionRate =str.substring(94,99); - coupletMsgData.setFuelConsumptionRate(fuelConsumptionRate); - - //motorControllerTemperature 电机控制器温度 - String motorControllerTemperature =str.substring(99,105); - while (motorControllerTemperature.endsWith("0")){ - motorControllerTemperature=motorControllerTemperature.substring(0,motorControllerTemperature.length()-1); - } - coupletMsgData.setMotorControllerTemperature(motorControllerTemperature); - - //motorSpeed 电机转速 - String motorSpeed =str.substring(105,110); - coupletMsgData.setMotorSpeed(motorSpeed); - - //motorTorque 电机转矩 - String motorTorque =str.substring(110,114); - while (motorTorque.endsWith("0")){ - motorTorque=motorTorque.substring(0,motorTorque.length()-1); - } - coupletMsgData.setMotorTorque(motorTorque); - - //motorTemperature 电机温度 - String motorTemperature =str.substring(114,120); - while (motorTemperature.endsWith("0")){ - motorTemperature=motorTemperature.substring(0,motorTemperature.length()-1); - } - coupletMsgData.setMotorTemperature(motorTemperature); - - //motorVoltage 电机电压 - String motorVoltage =str.substring(120,125); - while (motorVoltage.endsWith("0")){ - motorVoltage=motorVoltage.substring(0,motorVoltage.length()-1); - } - coupletMsgData.setMotorVoltage(motorVoltage); - - //motorCurrent 电机电流 - String motorCurrent =str.substring(125,133); - while (motorCurrent.endsWith("0")){ - motorCurrent=motorCurrent.substring(0,motorCurrent.length()-1); - } - coupletMsgData.setMotorCurrent(motorCurrent); - - //remainingBattery 动力电池剩余电量SOC - BigDecimal remainingBattery = new BigDecimal(str.substring(133,138)); - coupletMsgData.setRemainingBattery(remainingBattery); - - //maximumFeedbackPower 当前状态允许的最大反馈功率 - String maximumFeedbackPower =str.substring(139,144); - while (maximumFeedbackPower.endsWith("0")){ - maximumFeedbackPower=maximumFeedbackPower.substring(0,maximumFeedbackPower.length()-1); - } - coupletMsgData.setMaximumFeedbackPower(maximumFeedbackPower); - - //maximumDischargePower 当前状态允许最大放电功率 - String maximumDischargePower =str.substring(145,151); - while (maximumDischargePower.endsWith("0")){ - maximumDischargePower=maximumDischargePower.substring(0,maximumDischargePower.length()-1); - } - coupletMsgData.setMaximumDischargePower(maximumDischargePower); - - //selfCheckCounter BMS自检计数器 - String selfCheckCounter =str.substring(151,153); - String selfCheckCounterReplace = selfCheckCounter.replace("0", ""); - coupletMsgData.setSelfCheckCounter(selfCheckCounterReplace); - - //totalBatteryCurrent 动力电池充放电电流 - String totalBatteryCurrent =str.substring(153,158); - while (totalBatteryCurrent.endsWith("0")){ - totalBatteryCurrent=totalBatteryCurrent.substring(0,totalBatteryCurrent.length()-1); - } - coupletMsgData.setTotalBatteryCurrent(totalBatteryCurrent); - - //totalBatteryVoltage 动力电池负载端总电压V3 - String totalBatteryVoltage =str.substring(158,164); - while (totalBatteryVoltage.endsWith("0")){ - totalBatteryVoltage=totalBatteryVoltage.substring(0,totalBatteryVoltage.length()-1); - } - coupletMsgData.setTotalBatteryVoltage(totalBatteryVoltage); - - //singleBatteryMaxVoltage 单次最大电压 - String singleBatteryMaxVoltage =str.substring(164,168); - while (singleBatteryMaxVoltage.endsWith("0")){ - singleBatteryMaxVoltage=singleBatteryMaxVoltage.substring(0,singleBatteryMaxVoltage.length()-1); - } - coupletMsgData.setSingleBatteryMaxVoltage(singleBatteryMaxVoltage); - - //singleBatteryMinVoltage 单体电池最低电压 - String singleBatteryMinVoltage =str.substring(168,172); - while (singleBatteryMinVoltage.endsWith("0")){ - singleBatteryMinVoltage=singleBatteryMinVoltage.substring(0,singleBatteryMinVoltage.length()-1); - } - - coupletMsgData.setSingleBatteryMinVoltage(singleBatteryMinVoltage); - - //singleBatteryMaxTemperature 单体电池最高温度 - String singleBatteryMaxTemperature =str.substring(172,178); - while (singleBatteryMaxTemperature.endsWith("0")){ - singleBatteryMaxTemperature=singleBatteryMaxTemperature.substring(0,singleBatteryMaxTemperature.length()-1); - } - coupletMsgData.setSingleBatteryMaxTemperature(singleBatteryMaxTemperature); - - //singleBatteryMinTemperature 单体电池最低温度 - String singleBatteryMinTemperature =str.substring(178,184); - while (singleBatteryMinTemperature.endsWith("0")){ - singleBatteryMinTemperature=singleBatteryMinTemperature.substring(0,singleBatteryMinTemperature.length()-1); - } - coupletMsgData.setSingleBatteryMinTemperature(singleBatteryMinTemperature); - - //availableBatteryCapacity 可用电池容量 - String availableBatteryCapacity =str.substring(184,190); - while (availableBatteryCapacity.endsWith("0")){ - availableBatteryCapacity=availableBatteryCapacity.substring(0,availableBatteryCapacity.length()-1); - } - coupletMsgData.setAvailableBatteryCapacity(availableBatteryCapacity); - - //vehicleStatus 车辆状态 - int vehicleStatus = Integer.parseInt(str.substring(190,191)); - coupletMsgData.setVehicleStatus(vehicleStatus); - - //chargingStatus 充电状态 - int chargingStatus = Integer.parseInt(str.substring(191,192)); - coupletMsgData.setChargingStatus(chargingStatus); - - //operatingStatus 运行状态 - int operatingStatus = Integer.parseInt(str.substring(192,193)); - coupletMsgData.setOperatingStatus(operatingStatus); - - //socStatus SOC - int socStatus = Integer.parseInt(str.substring(193,194)); - coupletMsgData.setSocStatus(socStatus); - - //chargingEnergyStorageStatus 可充电储能装置工作状态 - int chargingEnergyStorageStatus = Integer.parseInt(str.substring(194,195)); - coupletMsgData.setChargingEnergyStorageStatus(chargingEnergyStorageStatus); - - //driveMotorStatus 驱动电机状态 - int driveMotorStatus = Integer.parseInt(str.substring(195,196)); - coupletMsgData.setDriveMotorStatus(driveMotorStatus); - - //positionStatus 定位是否有效 - int positionStatus = Integer.parseInt(str.substring(196,197)); - coupletMsgData.setPositionStatus(positionStatus); - - //easStatus EAS(汽车防盗系统)状态 - int easStatus = Integer.parseInt(str.substring(197,198)); - coupletMsgData.setEasStatus(easStatus); - - //ptcStatus PTC(电动加热器)状态 - int ptcStatus = Integer.parseInt(str.substring(198,199)); - coupletMsgData.setPtcStatus(ptcStatus); - - //epsStatus - int epsStatus = Integer.parseInt(str.substring(199,200)); - coupletMsgData.setEpsStatus(epsStatus); - - //absStatus EPS(电动助力系统)状态 - int absStatus = Integer.parseInt(str.substring(200,201)); - coupletMsgData.setAbsStatus(absStatus); - - //mcuStatus MCU(电机/逆变器)状态 - int mcuStatus = Integer.parseInt(str.substring(201,202)); - coupletMsgData.setMcuStatus(mcuStatus); - - //heatingStatus 动力电池加热状态 - int heatingStatus = Integer.parseInt(str.substring(202,203)); - coupletMsgData.setHeatingStatus(heatingStatus); - - //batteryStatus 动力电池当前状态 - int batteryStatus = Integer.parseInt(str.substring(203,204)); - coupletMsgData.setBatteryStatus(batteryStatus); - - //batteryInsulationStatus 动力电池保温状态 - int batteryInsulationStatus = Integer.parseInt(str.substring(204,205)); - coupletMsgData.setBatteryInsulationStatus(batteryInsulationStatus); - - //dcdcStatus DCDC(电力交换系统)状态 - int dcdcStatus = Integer.parseInt(str.substring(205,206)); - coupletMsgData.setDcdcStatus(dcdcStatus); - - //chgStatus CHG(充电机)状态 - int chgStatus = Integer.parseInt(str.substring(206,207)); - coupletMsgData.setChgStatus(chgStatus); - - coupletMsgDataList.add(coupletMsgData); - - return coupletMsgDataList; - } -} diff --git a/couplet-common/couplet-common-event/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/couplet-common/couplet-common-event/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports index eca240b..cb7030c 100644 --- a/couplet-common/couplet-common-event/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports +++ b/couplet-common/couplet-common-event/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -1 +1 @@ -com.couplet.common.core.utils.SpringUtils +com.couplet.analyze.common.event.AnalyzeEventCache diff --git a/couplet-common/couplet-common-redis/src/main/java/com/couplet/common/redis/service/RedisService.java b/couplet-common/couplet-common-redis/src/main/java/com/couplet/common/redis/service/RedisService.java index 4d382f6..676d61f 100644 --- a/couplet-common/couplet-common-redis/src/main/java/com/couplet/common/redis/service/RedisService.java +++ b/couplet-common/couplet-common-redis/src/main/java/com/couplet/common/redis/service/RedisService.java @@ -1,6 +1,7 @@ package com.couplet.common.redis.service; import com.couplet.common.domain.CoupletVehicleData; +import org.apache.poi.ss.formula.functions.T; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.*; import org.springframework.stereotype.Component; @@ -180,7 +181,17 @@ public class RedisService { return setOperation; } + /** + * 删除set + * @param key + * @param setValue + */ + public void deleteSet(String key, String setValue) { + //缓存的键值 + BoundSetOperations setOperation = redisTemplate.boundSetOps(key); + setOperation.remove(setValue); //缓存的数据 + } /** * 获得缓存的set * @@ -274,4 +285,6 @@ public class RedisService { public Collection keys (final String pattern) { return redisTemplate.keys(pattern); } + + } diff --git a/couplet-modules/couplet-analyze/couplet-analyze-msg/pom.xml b/couplet-modules/couplet-analyze/couplet-analyze-msg/pom.xml index 5cac2c7..be591db 100644 --- a/couplet-modules/couplet-analyze/couplet-analyze-msg/pom.xml +++ b/couplet-modules/couplet-analyze/couplet-analyze-msg/pom.xml @@ -11,6 +11,7 @@ couplet-analyze-msg + 解析系统 17 17 diff --git a/couplet-modules/couplet-business/src/main/java/com/couplet/business/server/service/impl/FenceServiceImpl.java b/couplet-modules/couplet-business/src/main/java/com/couplet/business/server/service/impl/FenceServiceImpl.java index 696896d..94c1ab1 100644 --- a/couplet-modules/couplet-business/src/main/java/com/couplet/business/server/service/impl/FenceServiceImpl.java +++ b/couplet-modules/couplet-business/src/main/java/com/couplet/business/server/service/impl/FenceServiceImpl.java @@ -11,7 +11,6 @@ import com.couplet.common.domain.request.FenceRequest; import com.couplet.common.domain.request.FenceUpdateRequest; import com.couplet.common.redis.service.RedisService; import com.couplet.common.security.utils.SecurityUtils; -import com.couplet.mq.remote.RemoteFenceService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -45,8 +44,8 @@ public class FenceServiceImpl extends ServiceImpl implements /** * 远程调用队列服务 */ - @Autowired - private RemoteFenceService remoteFenceService; +// @Autowired +// private RemoteFenceService remoteFenceService; @Override public List pageQuery(FenceConfig fenceConfig) { @@ -68,7 +67,7 @@ public class FenceServiceImpl extends ServiceImpl implements redisService.setCacheObject("fence:info:"+fenceUpdateRequest.getFenceId(),fenceUpdateRequest); redisService.expire("fence:info:"+fenceUpdateRequest.getFenceId(),10,TimeUnit.MINUTES); - remoteFenceService.fenceQueue(fenceUpdateRequest); +// remoteFenceService.fenceQueue(fenceUpdateRequest); } /** diff --git a/pom.xml b/pom.xml index 3defd5f..139c8c9 100644 --- a/pom.xml +++ b/pom.xml @@ -236,6 +236,12 @@ couplet-analyze-msg ${couplet.version} + + + com.couplet + couplet-common-event + ${couplet.version} +