diff --git a/couplet-common/couplet-common-system/src/main/java/com/couplet/common/system/remote/RemoteCodeService.java b/couplet-common/couplet-common-system/src/main/java/com/couplet/common/system/remote/RemoteCodeService.java deleted file mode 100644 index 79051a7..0000000 --- a/couplet-common/couplet-common-system/src/main/java/com/couplet/common/system/remote/RemoteCodeService.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.couplet.common.system.remote; - -import com.couplet.common.core.constant.ServiceNameConstants; -import com.couplet.common.core.domain.Result; -import com.couplet.common.domain.CoupletTroubleCode; -import com.couplet.common.system.remote.factory.RemoteCodeFallbackFactory; -import org.springframework.cloud.openfeign.FeignClient; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; - -/** - * @author DongXiaoDong - * @version 1.0 - * @date 2024/4/4 16:00 - * @description - */ -@FeignClient(contextId = "remoteCodeService",value = ServiceNameConstants.BUSINESS_SERVICE, fallbackFactory = RemoteCodeFallbackFactory.class) -public interface RemoteCodeService { - - @PostMapping("trouble/insertCode") - public Result insertCode(@RequestBody CoupletTroubleCode coupletTroubleCode); -} diff --git a/couplet-common/couplet-common-system/src/main/java/com/couplet/common/system/remote/factory/RemoteCodeFallbackFactory.java b/couplet-common/couplet-common-system/src/main/java/com/couplet/common/system/remote/factory/RemoteCodeFallbackFactory.java deleted file mode 100644 index 36a092d..0000000 --- a/couplet-common/couplet-common-system/src/main/java/com/couplet/common/system/remote/factory/RemoteCodeFallbackFactory.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.couplet.common.system.remote.factory; - -import com.couplet.common.core.domain.Result; -import com.couplet.common.domain.CoupletTroubleCode; -import com.couplet.common.system.remote.RemoteCodeService; -import lombok.extern.slf4j.Slf4j; -import org.springframework.cloud.openfeign.FallbackFactory; -import org.springframework.stereotype.Component; - -/** - * @author DongXiaoDong - * @version 1.0 - * @date 2024/4/4 16:03 - * @description - */ -@Slf4j -@Component -public class RemoteCodeFallbackFactory implements FallbackFactory { - @Override - public RemoteCodeService create(Throwable cause) { - log.error("调用日志服务异常:{}", cause.getMessage()); - return new RemoteCodeService() - { - @Override - public Result insertCode(CoupletTroubleCode coupletTroubleCode) { - return null; - } - }; - } -} diff --git a/couplet-common/couplet-common-system/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/couplet-common/couplet-common-system/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports index 8c98848..428b4e8 100644 --- a/couplet-common/couplet-common-system/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports +++ b/couplet-common/couplet-common-system/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -3,4 +3,3 @@ com.couplet.common.system.remote.factory.RemoteLogFallbackFactory com.couplet.common.system.remote.factory.RemoteFileFallbackFactory com.couplet.common.system.remote.factory.RemoteDeptFallbackFactory com.couplet.common.system.remote.factory.RemoteEmployeeFallbackFactory -com.couplet.common.system.remote.factory.RemoteCodeFallbackFactory diff --git a/couplet-modules/couplet-analyze/couplet-analyze-msg/src/main/java/com/couplet/analyze/msg/consumer/KafkaConsumer.java b/couplet-modules/couplet-analyze/couplet-analyze-msg/src/main/java/com/couplet/analyze/msg/consumer/KafkaConsumer.java new file mode 100644 index 0000000..6b91d24 --- /dev/null +++ b/couplet-modules/couplet-analyze/couplet-analyze-msg/src/main/java/com/couplet/analyze/msg/consumer/KafkaConsumer.java @@ -0,0 +1,16 @@ +package com.couplet.analyze.msg.consumer; + +import org.springframework.kafka.annotation.KafkaListener; + +/** + * @author DongXiaoDong + * @version 1.0 + * @date 2024/4/6 15:37 + * @description + */ +public class KafkaConsumer { + @KafkaListener(topics = "test", groupId = "group", properties = {"bootstrap.servers = 39.103.133.136:9092"}) + public void getMessage(String msg) { + System.out.println("接收到消息:" + msg); + } +} 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 index 714d4ba..a857211 100644 --- 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 @@ -3,7 +3,6 @@ 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 com.couplet.common.system.remote.RemoteCodeService; import lombok.extern.slf4j.Slf4j; import org.eclipse.paho.client.mqttv3.*; import org.springframework.amqp.rabbit.core.RabbitTemplate; @@ -29,372 +28,369 @@ import static com.couplet.analyze.msg.contents.MsgContent.CLIENT_ID; @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"); - } - }; - - @Autowired - private RemoteCodeService remoteCodeService; - -// @Value("${mq.queueName}") -// public String queueName; +// @Autowired +// private RabbitTemplate rabbitTemplate; +// static ArrayList strings = new ArrayList<>() { +// { +// add("breakdown"); +// add("electronic-fence"); +// add("real-time-data"); +// add("stored-event"); +// } +// }; // -// //交换机 -// @Value("${mq.exchangeName}") -// public String exchangeName; +//// @Value("${mq.queueName}") +//// public String queueName; +//// +//// //交换机 +//// @Value("${mq.exchangeName}") +//// public String exchangeName; +//// +//// //路由键 +//// @Value("${mq.routingKey}") +//// public String routingKey; // -// //路由键 -// @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); +// @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); // } - } - - } - - @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; - } +//// 不睡眠,他们也会主动拉取数据,不会影响其他服务 +//// 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/model/ModelsKafkaMessage.java b/couplet-modules/couplet-analyze/couplet-analyze-msg/src/main/java/com/couplet/analyze/msg/model/ModelsKafkaMessage.java new file mode 100644 index 0000000..4419fb8 --- /dev/null +++ b/couplet-modules/couplet-analyze/couplet-analyze-msg/src/main/java/com/couplet/analyze/msg/model/ModelsKafkaMessage.java @@ -0,0 +1,86 @@ +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.apache.kafka.clients.consumer.ConsumerConfig; +import org.apache.kafka.clients.consumer.ConsumerRecords; +import org.apache.kafka.clients.consumer.KafkaConsumer; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; + +import javax.annotation.PostConstruct; +import java.time.Duration; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.Properties; + +import static com.couplet.analyze.msg.utils.MsgUtils.hexToString; +import static com.couplet.analyze.msg.utils.MsgUtils.sendMsg; + + +/** + * @author DongXiaoDong + * @version 1.0 + * @date 2024/4/6 14:04 + * @description + */ +@Component +@Slf4j +public class ModelsKafkaMessage { + private static final String TOPIC_NAME = "online"; + private static final String BOOTSTRAP_SERVERS = "39.103.133.136:9092"; + + static ArrayList strings = new ArrayList<>() { + { + add("breakdown"); + add("electronic-fence"); + add("real-time-data"); + add("stored-event"); + } + }; + /** + * 消费者配置 + * @return + */ + @Scheduled(fixedDelay = 50) + private static void consumerMessages() { + Properties props = new Properties(); + props.put(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, BOOTSTRAP_SERVERS); + props.put(ConsumerConfig.GROUP_ID_CONFIG, "my-consumer-group"); + props.put(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG, "org.apache.kafka.common.serialization.StringDeserializer"); + props.put(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG, "org.apache.kafka.common.serialization.StringDeserializer"); + + //创建消费者 + KafkaConsumer consumer = new KafkaConsumer<>(props); + + try { + + //订阅主题 + consumer.subscribe(Collections.singletonList(TOPIC_NAME)); + + //持续消费消息 + while (true) { + ConsumerRecords records = consumer.poll(Duration.ofMillis(100)); + records.forEach(record -> { + System.out.println("接收到的数据:" + record.value()); + String str = hexToString(record.value()); + List coupletMsgDataList = sendMsg(str); + for (CoupletMsgData msgData : coupletMsgDataList) { + log.info("解析到车辆数据:{}", msgData); + for (String string : strings) { + IncidentService incidentService = SpringUtils.getBean(string); + incidentService.incident(msgData); + } + } + }); + } + } catch (Exception e) { + e.printStackTrace(); + } finally { + consumer.close(); + } + } +} diff --git a/couplet-modules/couplet-analyze/couplet-analyze-msg/src/main/java/com/couplet/analyze/msg/utils/MsgUtils.java b/couplet-modules/couplet-analyze/couplet-analyze-msg/src/main/java/com/couplet/analyze/msg/utils/MsgUtils.java new file mode 100644 index 0000000..5eb4ea9 --- /dev/null +++ b/couplet-modules/couplet-analyze/couplet-analyze-msg/src/main/java/com/couplet/analyze/msg/utils/MsgUtils.java @@ -0,0 +1,317 @@ +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; + +/** + * @author DongXiaoDong + * @version 1.0 + * @date 2024/4/6 14:12 + * @description + */ +@Slf4j +public class MsgUtils { + + /** + * 将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-modules/couplet-business/src/main/java/com/couplet/business/server/controller/SysTroubleController.java b/couplet-modules/couplet-business/src/main/java/com/couplet/business/server/controller/SysTroubleController.java index 2d40fd1..b9f733b 100644 --- a/couplet-modules/couplet-business/src/main/java/com/couplet/business/server/controller/SysTroubleController.java +++ b/couplet-modules/couplet-business/src/main/java/com/couplet/business/server/controller/SysTroubleController.java @@ -75,22 +75,6 @@ public class SysTroubleController extends BaseController { return success(); } - /** - * 故障数据入库 - * @param coupletTroubleCode - * @return - */ - @PostMapping("insertCode") - public Result insertCode(@RequestBody CoupletTroubleCode coupletTroubleCode){ - long start = System.currentTimeMillis(); - int i = troubleService.insertMsgResq(coupletTroubleCode); - - long end = System.currentTimeMillis(); - log.info("记录异常信息成功,耗时:{}",(end-start)); - - return Result.success(i); - } - /** * 清空故障码信息 */ diff --git a/couplet-modules/couplet-business/src/main/java/com/couplet/business/server/service/SysTroubleService.java b/couplet-modules/couplet-business/src/main/java/com/couplet/business/server/service/SysTroubleService.java index ee332bb..cb9b551 100644 --- a/couplet-modules/couplet-business/src/main/java/com/couplet/business/server/service/SysTroubleService.java +++ b/couplet-modules/couplet-business/src/main/java/com/couplet/business/server/service/SysTroubleService.java @@ -25,7 +25,5 @@ public interface SysTroubleService extends IService { */ void newFaultData(CoupletTroubleCode code); - int insertMsgResq(CoupletTroubleCode coupletTroubleCode); - void cleanTroubleCode(); } diff --git a/couplet-modules/couplet-business/src/main/java/com/couplet/business/server/service/impl/SysTroubleServiceImpl.java b/couplet-modules/couplet-business/src/main/java/com/couplet/business/server/service/impl/SysTroubleServiceImpl.java index 93ea904..56797cc 100644 --- a/couplet-modules/couplet-business/src/main/java/com/couplet/business/server/service/impl/SysTroubleServiceImpl.java +++ b/couplet-modules/couplet-business/src/main/java/com/couplet/business/server/service/impl/SysTroubleServiceImpl.java @@ -50,16 +50,6 @@ public class SysTroubleServiceImpl extends ServiceImpl - - + - - - + + - select t.*,g.grade_name,y.type_name from couplet_trouble_code t - LEFT JOIN couplet_trouble_grade g on t.grade_id = g.grade_id - LEFT JOIN couplet_trouble_type y on t.type_id= y.type_id + select * from couplet_trouble_code INSERT INTO `couplet-cloud`.`couplet_trouble_code` @@ -26,9 +22,6 @@ `trouble_start_time`) VALUES (#{troubleVin}, #{troubleTag}, #{troubleStartTime}) - - - diff --git a/couplet-modules/couplet-modules-mq/src/main/java/com/couplet/mq/controller/KafkaTest.java b/couplet-modules/couplet-modules-mq/src/main/java/com/couplet/mq/controller/KafkaTest.java index 3c90638..a9c2c3a 100644 --- a/couplet-modules/couplet-modules-mq/src/main/java/com/couplet/mq/controller/KafkaTest.java +++ b/couplet-modules/couplet-modules-mq/src/main/java/com/couplet/mq/controller/KafkaTest.java @@ -8,6 +8,7 @@ import org.apache.kafka.clients.producer.KafkaProducer; import org.apache.kafka.clients.producer.ProducerConfig; import org.apache.kafka.clients.producer.ProducerRecord; +import javax.annotation.PostConstruct; import java.time.Duration; import java.util.Collections; import java.util.Properties; @@ -29,11 +30,12 @@ public class KafkaTest { produceMessage(); //消费者示例 - consumerMessages(); +// consumerMessages(); } //生产者 + @PostConstruct private static void produceMessage() { Properties props = new Properties(); props.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, BOOTSTRAP_SERVERS); @@ -59,33 +61,33 @@ public class KafkaTest { } //消费者 - private static void consumerMessages() { - Properties props = new Properties(); - props.put(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, BOOTSTRAP_SERVERS); - props.put(ConsumerConfig.GROUP_ID_CONFIG, "my-consumer-group"); - props.put(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG, "org.apache.kafka.common.serialization.StringDeserializer"); - props.put(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG, "org.apache.kafka.common.serialization.StringDeserializer"); - - //创建消费者 - KafkaConsumer consumer = new KafkaConsumer<>(props); - - try { - - //订阅主题 - consumer.subscribe(Collections.singletonList(TOPIC_NAME)); - - //持续消费消息 - while (true) { - ConsumerRecords records = consumer.poll(Duration.ofMillis(100)); - records.forEach(record -> { - System.out.println("消费者接受到的消息值:" + record.value()); - }); - } - } catch (Exception e) { - e.printStackTrace(); - } finally { - consumer.close(); - } - } +// private static void consumerMessages() { +// Properties props = new Properties(); +// props.put(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, BOOTSTRAP_SERVERS); +// props.put(ConsumerConfig.GROUP_ID_CONFIG, "my-consumer-group"); +// props.put(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG, "org.apache.kafka.common.serialization.StringDeserializer"); +// props.put(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG, "org.apache.kafka.common.serialization.StringDeserializer"); +// +// //创建消费者 +// KafkaConsumer consumer = new KafkaConsumer<>(props); +// +// try { +// +// //订阅主题 +// consumer.subscribe(Collections.singletonList(TOPIC_NAME)); +// +// //持续消费消息 +// while (true) { +// ConsumerRecords records = consumer.poll(Duration.ofMillis(100)); +// records.forEach(record -> { +// System.out.println("消费者接受到的消息值:" + record.value()); +// }); +// } +// } catch (Exception e) { +// e.printStackTrace(); +// } finally { +// consumer.close(); +// } +// } }