diff --git a/couplet-modules/couplet-analyze/couplet-analyze-msg/src/main/java/com/couplet/analyze/msg/consumer/FenceConsumer.java b/couplet-modules/couplet-analyze/couplet-analyze-msg/src/main/java/com/couplet/analyze/msg/consumer/FenceConsumer.java index 4e858d4..b9882f7 100644 --- a/couplet-modules/couplet-analyze/couplet-analyze-msg/src/main/java/com/couplet/analyze/msg/consumer/FenceConsumer.java +++ b/couplet-modules/couplet-analyze/couplet-analyze-msg/src/main/java/com/couplet/analyze/msg/consumer/FenceConsumer.java @@ -39,17 +39,20 @@ public class FenceConsumer { if (!redisTemplate.hasKey("消息不丢失:" + messageId)) { redisTemplate.opsForValue().set("消息不丢失:" + messageId, "" + deliveryTag, 1, TimeUnit.MINUTES); } + if (redisTemplate.hasKey("fence")){ + redisTemplate.delete("fence"); + } Long add = redisTemplate.opsForSet().add("消息不重复:" + messageId, messageId); redisTemplate.expire("消息不重复:" + messageId, 5, TimeUnit.MINUTES); try { if (0 < add) { - HashMap hashMap = new HashMap<>(); HashSet hashSet = new HashSet<>(); hashSet.add(fenceUpdateRequest); hashMap.put(fenceUpdateRequest.getFenceId()+"",fenceUpdateRequest); - redisTemplate.opsForValue().set("fence", JSON.toJSONString(hashMap),10,TimeUnit.MINUTES); +// redisTemplate.opsForH("fence", JSON.toJSONString(hashMap),10,TimeUnit.MINUTES); + redisTemplate.opsForHash().put("fence", fenceUpdateRequest.getFenceId()+"", JSON.toJSONString(hashMap)); //判断车辆是否有实时数据,如果没有则删除数据 channel.basicAck(deliveryTag, false); } else { diff --git a/couplet-modules/couplet-analyze/couplet-analyze-msg/src/main/java/com/couplet/analyze/msg/consumer/MsgConsumer.java b/couplet-modules/couplet-analyze/couplet-analyze-msg/src/main/java/com/couplet/analyze/msg/consumer/MsgConsumer.java index 4c85370..8d66933 100644 --- a/couplet-modules/couplet-analyze/couplet-analyze-msg/src/main/java/com/couplet/analyze/msg/consumer/MsgConsumer.java +++ b/couplet-modules/couplet-analyze/couplet-analyze-msg/src/main/java/com/couplet/analyze/msg/consumer/MsgConsumer.java @@ -49,8 +49,8 @@ public class MsgConsumer { if (0 < add) { JSONObject jsonObject = JSONObject.parseObject(String.valueOf(realTimeDataRequest)); - String vin = jsonObject.getString("vin"); Long userId = jsonObject.getLong("userId"); + String vin = jsonObject.getString("vin"); RealTimeDataRequest request = new RealTimeDataRequest(); request.setVin(vin); request.setUserId(userId); diff --git a/couplet-modules/couplet-analyze/couplet-analyze-msg/src/main/java/com/couplet/analyze/msg/model/ModelMessage.java b/couplet-modules/couplet-analyze/couplet-analyze-msg/src/main/java/com/couplet/analyze/msg/model/ModelMessage.java deleted file mode 100644 index a857211..0000000 --- a/couplet-modules/couplet-analyze/couplet-analyze-msg/src/main/java/com/couplet/analyze/msg/model/ModelMessage.java +++ /dev/null @@ -1,396 +0,0 @@ -package com.couplet.analyze.msg.model; - -import com.couplet.analyze.msg.domain.CoupletMsgData; -import com.couplet.analyze.msg.service.IncidentService; -import com.couplet.common.core.utils.SpringUtils; -import lombok.extern.slf4j.Slf4j; -import org.eclipse.paho.client.mqttv3.*; -import org.springframework.amqp.rabbit.core.RabbitTemplate; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.scheduling.annotation.Scheduled; -import org.springframework.stereotype.Component; - -import java.math.BigDecimal; -import java.nio.charset.StandardCharsets; -import java.util.*; - -import static com.couplet.analyze.msg.contents.MsgContent.BROKER_URL; -import static com.couplet.analyze.msg.contents.MsgContent.CLIENT_ID; - - -/** - * @author DongXiaoDong - * @version 1.0 - * @date 2024/4/2 15:41 - * @description 解析报文数据 - */ -@Slf4j -@Component -public class ModelMessage { - -// @Autowired -// private RabbitTemplate rabbitTemplate; -// static ArrayList strings = new ArrayList<>() { -// { -// add("breakdown"); -// add("electronic-fence"); -// add("real-time-data"); -// add("stored-event"); -// } -// }; -// -//// @Value("${mq.queueName}") -//// public String queueName; -//// -//// //交换机 -//// @Value("${mq.exchangeName}") -//// public String exchangeName; -//// -//// //路由键 -//// @Value("${mq.routingKey}") -//// public String routingKey; -// -// @Scheduled(cron = "0/5 * * * * ?") -// public void startMsg() { -// try { -// MqttClient mqttClient = new MqttClient(BROKER_URL, CLIENT_ID); -// -// MqttConnectOptions options = new MqttConnectOptions(); -// -// options.setCleanSession(true); -// mqttClient.connect(options); -// -// mqttClient.setCallback(new MqttCallback() { -// @Override -// public void connectionLost(Throwable throwable) { -// log.error("Mqtt[{}-{}]连接断开:[{}]", CLIENT_ID, BROKER_URL, throwable.getMessage(), throwable); -// } -// -// @Override -// public void messageArrived(String topic, MqttMessage mqttMessage) throws Exception { -// //打印接收到的消息和主题 -// log.info("主题='{}':消息内容={}", topic, new String(mqttMessage.getPayload())); -//// String str = hexToString(new String(mqttMessage.getPayload())); -//// List coupletMsgDataList = sendMsg(str); -// -// for (CoupletMsgData msgData : coupletMsgDataList) { -// log.info("解析到车辆数据:{}", msgData); -// for (String string : strings) { -// IncidentService incidentService = SpringUtils.getBean(string); -// incidentService.incident(msgData); -// } -//// 不睡眠,他们也会主动拉取数据,不会影响其他服务 -//// try { -//// Thread.sleep(1000); -//// } catch (InterruptedException e) { -//// throw new RuntimeException(e); -//// } -// } -// -// } -// -// @Override -// public void deliveryComplete(IMqttDeliveryToken token) { -// log.info("消息已投递成功:{}",token); -// } -// }); -// mqttClient.subscribe("test",0); -// -// Thread.sleep(1000*60*10); -// } catch (Exception e) { -// throw new RuntimeException(e); -// } -// } -// -// /** -// * 将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; -//// } -//// -//// 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-modules/couplet-analyze/couplet-analyze-msg/src/main/java/com/couplet/analyze/msg/service/impl/ElectronicFenceServiceImpl.java b/couplet-modules/couplet-analyze/couplet-analyze-msg/src/main/java/com/couplet/analyze/msg/service/impl/ElectronicFenceServiceImpl.java index d4a9d20..aaaabc6 100644 --- a/couplet-modules/couplet-analyze/couplet-analyze-msg/src/main/java/com/couplet/analyze/msg/service/impl/ElectronicFenceServiceImpl.java +++ b/couplet-modules/couplet-analyze/couplet-analyze-msg/src/main/java/com/couplet/analyze/msg/service/impl/ElectronicFenceServiceImpl.java @@ -32,6 +32,7 @@ public class ElectronicFenceServiceImpl implements IncidentService { if (redisTemplate.hasKey("fence")) { log.info("电子围栏事件redis存在......."); String s = redisTemplate.opsForValue().get("fence"); + log.info("更改的电子围栏内容是:"+s); log.info("电子围栏事件结束......."); } diff --git a/couplet-modules/couplet-analyze/couplet-analyze-msg/src/main/resources/mapper/incident/SysIncidentMapper.xml b/couplet-modules/couplet-analyze/couplet-analyze-msg/src/main/resources/mapper/incident/SysIncidentMapper.xml index e7d883e..e53a115 100644 --- a/couplet-modules/couplet-analyze/couplet-analyze-msg/src/main/resources/mapper/incident/SysIncidentMapper.xml +++ b/couplet-modules/couplet-analyze/couplet-analyze-msg/src/main/resources/mapper/incident/SysIncidentMapper.xml @@ -17,7 +17,7 @@ `single_battery_max_voltage`, `single_battery_min_voltage`, `single_battery_max_temperature`, `single_battery_min_temperature`, `available_battery_capacity`, `vehicle_status`, `charging_status`, - `operatingStatus`, `soc_status`, `charging_energy_storage_status`, + `operating_status`, `soc_status`, `charging_energy_storage_status`, `drive_motor_status`, `position_status`, `eas_status`, `ptc_status`, `eps_status`, `abs_status`, `mcu_status`, `heating_status`, `battery_status`, `battery_insulation_status`, `dcdc_status`, `chg_status`, `brake_pedal`) diff --git a/couplet-modules/couplet-business/src/main/resources/bootstrap.yml b/couplet-modules/couplet-business/src/main/resources/bootstrap.yml index b88e464..d900876 100644 --- a/couplet-modules/couplet-business/src/main/resources/bootstrap.yml +++ b/couplet-modules/couplet-business/src/main/resources/bootstrap.yml @@ -16,11 +16,9 @@ spring: discovery: # 服务注册地址 server-addr: 121.89.211.230:8848 - namespace: 172469 config: # 配置中心地址 server-addr: 121.89.211.230:8848 - namespace: 172469 # 配置文件格式 file-extension: yml # 共享配置 diff --git a/couplet-modules/couplet-modules-mq/src/main/java/com/couplet/mq/remote/factory/RemoteFenceFallbackFactory.java b/couplet-modules/couplet-modules-mq/src/main/java/com/couplet/mq/remote/factory/RemoteFenceFallbackFactory.java index 5221a10..24d5e0b 100644 --- a/couplet-modules/couplet-modules-mq/src/main/java/com/couplet/mq/remote/factory/RemoteFenceFallbackFactory.java +++ b/couplet-modules/couplet-modules-mq/src/main/java/com/couplet/mq/remote/factory/RemoteFenceFallbackFactory.java @@ -18,12 +18,9 @@ import static com.couplet.common.core.domain.Result.error; @Component public class RemoteFenceFallbackFactory implements FallbackFactory { private static final Logger log = LoggerFactory.getLogger(RemoteFenceFallbackFactory.class); - - @Override public RemoteFenceService create(Throwable cause) { return new RemoteFenceService() { - @Override public void fenceQueue(FenceUpdateRequest fenceUpdateRequest) { error("调用失败...."+cause.getMessage()); diff --git a/couplet-modules/couplet-modules-onLine/src/main/resources/bootstrap.yml b/couplet-modules/couplet-modules-onLine/src/main/resources/bootstrap.yml index 9362179..1d9a0fa 100644 --- a/couplet-modules/couplet-modules-onLine/src/main/resources/bootstrap.yml +++ b/couplet-modules/couplet-modules-onLine/src/main/resources/bootstrap.yml @@ -15,11 +15,9 @@ spring: discovery: # 服务注册地址 server-addr: 121.89.211.230:8848 - namespace: 172469 config: # 配置中心地址 server-addr: 121.89.211.230:8848 - namespace: 172469 # 配置文件格式 file-extension: yml # 共享配置 diff --git a/couplet-modules/couplet-system/src/main/resources/bootstrap.yml b/couplet-modules/couplet-system/src/main/resources/bootstrap.yml index 91453d0..d9315bd 100644 --- a/couplet-modules/couplet-system/src/main/resources/bootstrap.yml +++ b/couplet-modules/couplet-system/src/main/resources/bootstrap.yml @@ -15,11 +15,9 @@ spring: discovery: # 服务注册地址 server-addr: 121.89.211.230:8848 - namespace: 172469 config: # 配置中心地址 server-addr: 121.89.211.230:8848 - namespace: 172469 # 配置文件格式 file-extension: yml # 共享配置 diff --git a/mqttx_32dcaf76-tcp8130181161883/.lck b/mqttx_32dcaf76-tcp8130181161883/.lck deleted file mode 100644 index e69de29..0000000