Merge branch 'server_five' of https://gitea.qinmian.online/five-groups/five-groups-couplet into server_five_liuyunhu

# Conflicts:
#	couplet-modules/couplet-business/src/main/resources/bootstrap.yml
#	couplet-modules/couplet-modules-onLine/src/main/resources/bootstrap.yml
server_five_liuyunhu
liuyunhu 2024-04-08 14:05:30 +08:00
commit 1b9c777a87
14 changed files with 435 additions and 273 deletions

View File

@ -65,4 +65,9 @@ public class CoupletTroubleCode {
*/
@Excel(name = "故障位置")
private String troublePosition;
/**
*
*/
private Integer processingState;
}

View File

@ -0,0 +1,19 @@
package com.couplet.remote;
import com.couplet.common.core.constant.ServiceNameConstants;
import com.couplet.common.core.domain.Result;
import com.couplet.common.domain.CoupletTroubleCode;
import com.couplet.remote.factory.RemoteRealTimeFallbackFactory;
import com.couplet.remote.factory.RemoteTroubleFallbackFactory;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
@FeignClient(contextId = "remoteRealTimeService" ,
value = ServiceNameConstants.BUSINESS_SERVICE,
fallbackFactory = RemoteRealTimeFallbackFactory.class
)
public interface RemoteRealTimeService {
}

View File

@ -63,13 +63,6 @@ public interface RemoteVehicleService {
*/
@PostMapping("/vehicleAndLogo/queryByLogoIds/{vehicleId}")
public Result<List<Long>> queryByLogoIds(@PathVariable("vehicleId") Long vehicleId);
/**
* id
* @param
* @return
*/
// @PostMapping("/vehicleAndLogo/queryByLogoIds/{vehicleId}")
// public Result<List<Long>> queryByLogoIds(@PathVariable("vehicleId") Long vehicleId);
@PostMapping("/list")
public Result list(@RequestBody VehicleListParams listParams);

View File

@ -0,0 +1,21 @@
package com.couplet.remote.factory;
import com.couplet.common.core.domain.Result;
import com.couplet.common.domain.CoupletTroubleCode;
import com.couplet.remote.RemoteRealTimeService;
import org.springframework.cloud.openfeign.FallbackFactory;
import org.springframework.stereotype.Component;
/**
* @Author: LiJiaYao
* @Date: 2024/4/8
* @Description:
*/
@Component
public class RemoteRealTimeFallbackFactory implements FallbackFactory<RemoteRealTimeService> {
@Override
public RemoteRealTimeService create(Throwable cause) {
return null;
}
}

View File

@ -1,5 +1,6 @@
package com.couplet.analyze.common.contents;
import org.springframework.context.annotation.Configuration;
import org.springframework.stereotype.Component;
/**
@ -8,8 +9,7 @@ import org.springframework.stereotype.Component;
* @Description:
*/
@Component
public class AnalyzeEventContents {
public interface AnalyzeEventContents {
/**
*

View File

@ -92,6 +92,8 @@
<groupId>com.couplet</groupId>
<artifactId>couplet-common-event</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.kafka</groupId>
<artifactId>spring-kafka</artifactId>
@ -101,6 +103,12 @@
<artifactId>couplet-common-business</artifactId>
</dependency>
<!-- RabbitMQ依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
</dependencies>
</project>

View File

@ -1,150 +1,203 @@
//package com.couplet.analyze.msg.consumer;
//
//import com.alibaba.fastjson.JSONObject;
//import com.couplet.analyze.msg.domain.CoupletMsgData;
//import com.couplet.analyze.msg.utils.MsgUtils;
//import com.couplet.common.domain.CoupletTroubleCode;
//import com.couplet.common.redis.service.RedisService;
//import com.couplet.remote.RemoteTroubleService;
//import com.rabbitmq.client.Channel;
//import lombok.extern.slf4j.Slf4j;
//import org.springframework.amqp.rabbit.annotation.Queue;
//import org.springframework.amqp.rabbit.annotation.RabbitListener;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.data.redis.core.RedisTemplate;
//import org.springframework.amqp.core.Message;
//import org.springframework.stereotype.Component;
//
//import java.util.Date;
//import java.util.concurrent.CompletableFuture;
//
///**
// * @author DongXiaoDong
// * @version 1.0
// * @date 2024/4/6 15:37
// * @description
// */
//@Component
//@Slf4j
//public class CodeConsumer {
//// @Autowired
//// private RedisTemplate<String, String> redisTemplate;
//
package com.couplet.analyze.msg.consumer;
import com.alibaba.fastjson.JSONObject;
import com.couplet.analyze.msg.domain.CoupletMsgData;
import com.couplet.analyze.msg.utils.MsgUtils;
import com.couplet.common.domain.CoupletTroubleCode;
import com.couplet.common.redis.service.RedisService;
import com.couplet.remote.RemoteTroubleService;
import com.rabbitmq.client.Channel;
import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.rabbit.annotation.Queue;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.amqp.core.Message;
import org.springframework.stereotype.Component;
import java.util.Date;
import java.util.concurrent.CompletableFuture;
/**
* @author DongXiaoDong
* @version 1.0
* @date 2024/4/6 15:37
* @description
*/
@Component
@Slf4j
public class CodeConsumer {
// @Autowired
// private RedisService redisService;
// @Autowired
// private RemoteTroubleService remoteTroubleService;
//
// @RabbitListener(queuesToDeclare = {@Queue("couplet-code-queue")})
// public void sendLogQueueConsumer(Message message, CoupletMsgData msgData, Channel channel) {
// log.info("日志队列:{},接收到的消息:{},开始消费...","couplet-code-queue", JSONObject.toJSONString(msgData));
// long start = System.currentTimeMillis();
//
// String messageId = message.getMessageProperties().getMessageId();
//
// try {
// boolean addToSetIfNotExists = redisService.addToSetIfNotExists("couplet-code-queue", messageId);
// if (addToSetIfNotExists) {
// //异步保存记录
// CompletableFuture.runAsync(() -> {
// CoupletTroubleCode troubleCode = new CoupletTroubleCode();
// troubleCode.setTroubleStartTime(new Date());
// troubleCode.setTroubleVin(msgData.getVin());
// // 随机生成故障码
// String faultCode = MsgUtils.generateGTA();
// troubleCode.setTroubleCode(faultCode);
//
// // 检查车辆状态若为0则设置故障位置为"190"
// if(msgData.getVehicleStatus() == 0) {
// troubleCode.setTroublePosition("190");
// }
//
// // 检查充电状态若为0则设置故障位置为"191"
// if (msgData.getChargingStatus() == 0) {
// troubleCode.setTroublePosition("191");
// }
//
// // 检查运行状态若为0则设置故障位置为"192"
// if (msgData.getOperatingStatus() == 0) {
// troubleCode.setTroublePosition("192");
// }
//
// // 检查电池荷电状态SOC, 若为0则设置故障位置为"193"
// if (msgData.getSocStatus() == 0) {
// troubleCode.setTroublePosition("193");
// }
//
// // 检查充电能源存储状态若为0则设置故障位置为"194"
// if (msgData.getChargingEnergyStorageStatus() == 0) {
// troubleCode.setTroublePosition("194");
// }
//
// // 检查驱动电机状态若为0则设置故障位置为"195"
// if (msgData.getDriveMotorStatus() == 0) {
// troubleCode.setTroublePosition("195");
// }
//
// // 检查定位状态若为0则设置故障位置为"196"
// if (msgData.getPositionStatus() == 0) {
// troubleCode.setTroublePosition("196");
// }
//
// // 检查电子驻车系统EAS状态若为0则设置故障位置为"197"
// if (msgData.getEasStatus() == 0) {
// troubleCode.setTroublePosition("197");
// }
//
// // 检查PTC正温度系数热敏电阻状态若为0则设置故障位置为"198"
// if (msgData.getPtcStatus() == 0) {
// troubleCode.setTroublePosition("198");
// }
//
// // 检查电动助力转向系统EPS状态若为0则设置故障位置为"199"
// if (msgData.getEpsStatus() == 0) {
// troubleCode.setTroublePosition("199");
// }
//
// // 检查防抱死制动系统ABS状态若为0则设置故障位置为"200"
// if (msgData.getAbsStatus() == 0) {
// troubleCode.setTroublePosition("200");
// }
//
// // 检查主控制器MCU状态若为0则设置故障位置为"201"
// if (msgData.getMcuStatus() == 0) {
// troubleCode.setTroublePosition("201");
// }
//
// // 检查加热状态若为0则设置故障位置为"202"
// if (msgData.getHeatingStatus() == 0) {
// troubleCode.setTroublePosition("202");
// }
//
// // 检查电池状态若为0则设置故障位置为"203"
// if (msgData.getBatteryStatus() == 0) {
// troubleCode.setTroublePosition("203");
// }
//
// // 检查电池绝缘状态若为0则设置故障位置为"204"
// if (msgData.getBatteryInsulationStatus() == 0) {
// troubleCode.setTroublePosition("204");
// }
//
// // 检查直流-直流转换器DC/DC状态若为0则设置故障位置为"205"
// if (msgData.getDcdcStatus() == 0) {
// troubleCode.setTroublePosition("205");
// }
//
// // 检查充电机CHG状态若为0则设置故障位置为"206"
// if (msgData.getChgStatus() == 0) {
// troubleCode.setTroublePosition("206");
// }
// remoteTroubleService.newFaultData(troubleCode);
// });
// }
// long end = System.currentTimeMillis();
// log.info("日志队列:{},接收到的消息:{},消费完成,耗时:{}毫秒","couplet-code-queue", JSONObject.toJSONString(msgData), (end-start));
// } catch (Exception e) {
// throw new RuntimeException(e);
// }
// }
//}
// private RedisTemplate<String, String> redisTemplate;
@Autowired
private RedisService redisService;
@Autowired
private RemoteTroubleService remoteTroubleService;
@RabbitListener(queuesToDeclare = {@Queue("couplet-code-queue")})
public void sendLogQueueConsumer(Message message, CoupletMsgData msgData, Channel channel) {
log.info("日志队列:{},接收到的消息:{},开始消费...","couplet-code-queue", JSONObject.toJSONString(msgData));
long start = System.currentTimeMillis();
String messageId = message.getMessageProperties().getMessageId();
try {
boolean addToSetIfNotExists = redisService.addToSetIfNotExists("couplet-code-queue", messageId);
if (addToSetIfNotExists) {
//异步保存记录
CompletableFuture.runAsync(() -> {
CoupletTroubleCode troubleCode = new CoupletTroubleCode();
troubleCode.setTroubleStartTime(new Date());
troubleCode.setTroubleVin(msgData.getVin());
// 随机生成故障码
String faultCode = MsgUtils.generateGTA();
troubleCode.setTroubleCode(faultCode);
switch (msgData.getVehicleStatus()) {
case 0:
troubleCode.setTroublePosition("190");
troubleCode.setProcessingState(0);
break;
default:
switch (msgData.getChargingStatus()) {
case 0:
troubleCode.setTroublePosition("191");
troubleCode.setProcessingState(0);
break;
default:
switch (msgData.getOperatingStatus()) {
case 0:
troubleCode.setTroublePosition("192");
troubleCode.setProcessingState(0);
break;
default:
switch (msgData.getSocStatus()) {
case 0:
troubleCode.setTroublePosition("193");
troubleCode.setProcessingState(0);
break;
default:
switch (msgData.getChargingEnergyStorageStatus()) {
case 0:
troubleCode.setTroublePosition("194");
troubleCode.setProcessingState(0);
break;
default:
switch (msgData.getDriveMotorStatus()) {
case 0:
troubleCode.setTroublePosition("195");
troubleCode.setProcessingState(0);
break;
default:
switch (msgData.getPositionStatus()) {
case 0:
troubleCode.setTroublePosition("196");
troubleCode.setProcessingState(0);
break;
default:
switch (msgData.getEasStatus()) {
case 0:
troubleCode.setTroublePosition("197");
troubleCode.setProcessingState(0);
break;
default:
switch (msgData.getPtcStatus()) {
case 0:
troubleCode.setTroublePosition("198");
troubleCode.setProcessingState(0);
break;
default:
switch (msgData.getEpsStatus()) {
case 0:
troubleCode.setTroublePosition("199");
troubleCode.setProcessingState(0);
break;
default:
switch (msgData.getAbsStatus()) {
case 0:
troubleCode.setTroublePosition("200");
troubleCode.setProcessingState(0);
break;
default:
switch (msgData.getMcuStatus()) {
case 0:
troubleCode.setTroublePosition("201");
troubleCode.setProcessingState(0);
break;
default:
switch (msgData.getHeatingStatus()) {
case 0:
troubleCode.setTroublePosition("202");
troubleCode.setProcessingState(0);
break;
default:
switch (msgData.getBatteryStatus()) {
case 0:
troubleCode.setTroublePosition("203");
troubleCode.setProcessingState(0);
break;
default:
switch (msgData.getBatteryInsulationStatus()) {
case 0:
troubleCode.setTroublePosition("204");
troubleCode.setProcessingState(0);
break;
default:
switch (msgData.getDcdcStatus()) {
case 0:
troubleCode.setTroublePosition("205");
troubleCode.setProcessingState(0);
break;
default:
switch (msgData.getChgStatus()) {
case 0:
troubleCode.setTroublePosition("206");
troubleCode.setProcessingState(0);
break;
default:
// do nothing
break;
}
break;
}
break;
}
break;
}
break;
}
break;
}
break;
}
break;
}
break;
}
break;
}
break;
}
break;
}
break;
}
break;
}
break;
}
break;
}
break;
}
remoteTroubleService.newFaultData(troubleCode);
});
}
long end = System.currentTimeMillis();
log.info("日志队列:{},接收到的消息:{},消费完成,耗时:{}毫秒","couplet-code-queue", JSONObject.toJSONString(msgData), (end-start));
} catch (Exception e) {
throw new RuntimeException(e);
}
}
}

View File

@ -2,6 +2,9 @@ package com.couplet.analyze.msg.mapper;
import com.couplet.analyze.msg.domain.CoupletMsgData;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.Date;
/**
* @Author: LiJiaYao
@ -20,6 +23,6 @@ public interface IncidentMapper {
* vin
*/
// CoupletMsgData queryByIncident(RealTimeDataRequest realTimeDataRequest);
CoupletMsgData queryByIncident(String vin);
CoupletMsgData queryByIncident(@Param("vin") String vin, @Param("createTime") Date createTime);
}

View File

@ -1,7 +1,5 @@
package com.couplet.analyze.msg.model;
import com.couplet.analyze.common.contents.AnalyzeEventContents;
import com.couplet.analyze.common.event.AnalyzeEventCache;
import com.couplet.analyze.msg.domain.CoupletMsgData;
import com.couplet.analyze.msg.service.IncidentService;
import com.couplet.common.core.exception.vehicle.VehicleException;
@ -10,6 +8,7 @@ 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.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
@ -35,12 +34,8 @@ public class ModelsKafkaMessage {
private static final String TOPIC_NAME = "online";
private static final String BOOTSTRAP_SERVERS = "39.103.133.136:9092";
@Autowired
private AnalyzeEventContents analyzeEventContents;
@Autowired
private AnalyzeEventCache analyzeEventCache;
// @Autowired
// private RabbitTemplate rabbitTemplate;
/**
*

View File

@ -18,6 +18,7 @@ import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.HashSet;
import java.util.Set;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.TimeUnit;
/**
@ -103,6 +104,7 @@ public class BreakdownServiceImpl extends KeyExpirationEventMessageListener impl
for (CoupletMsgData member : members) {
Set<String> breakdownIds = redisService.getCacheSet(member.getVin()+":"+key);
if (breakdownIds.size()==0){
CompletableFuture.runAsync(() -> {
CoupletTroubleCode troubleCode = new CoupletTroubleCode();
troubleCode.setTroubleStartTime(new Date());
troubleCode.setTroubleVin(member.getVin());
@ -110,96 +112,149 @@ public class BreakdownServiceImpl extends KeyExpirationEventMessageListener impl
String faultCode = MsgUtils.generateGTA();
troubleCode.setTroubleCode(faultCode);
// 检查车辆状态若为0则设置故障位置为"190"
if(member.getVehicleStatus() == 0) {
troubleCode.setTroublePosition("190");
}
// 检查充电状态若为0则设置故障位置为"191"
if (member.getChargingStatus() == 0) {
troubleCode.setTroublePosition("191");
}
// 检查运行状态若为0则设置故障位置为"192"
if (member.getOperatingStatus() == 0) {
troubleCode.setTroublePosition("192");
}
// 检查电池荷电状态SOC, 若为0则设置故障位置为"193"
if (member.getSocStatus() == 0) {
troubleCode.setTroublePosition("193");
}
// 检查充电能源存储状态若为0则设置故障位置为"194"
if (member.getChargingEnergyStorageStatus() == 0) {
troubleCode.setTroublePosition("194");
}
// 检查驱动电机状态若为0则设置故障位置为"195"
if (member.getDriveMotorStatus() == 0) {
troubleCode.setTroublePosition("195");
}
// 检查定位状态若为0则设置故障位置为"196"
if (member.getPositionStatus() == 0) {
troubleCode.setTroublePosition("196");
}
// 检查电子驻车系统EAS状态若为0则设置故障位置为"197"
if (member.getEasStatus() == 0) {
troubleCode.setTroublePosition("197");
}
// 检查PTC正温度系数热敏电阻状态若为0则设置故障位置为"198"
if (member.getPtcStatus() == 0) {
troubleCode.setTroublePosition("198");
}
// 检查电动助力转向系统EPS状态若为0则设置故障位置为"199"
if (member.getEpsStatus() == 0) {
troubleCode.setTroublePosition("199");
}
// 检查防抱死制动系统ABS状态若为0则设置故障位置为"200"
if (member.getAbsStatus() == 0) {
troubleCode.setTroublePosition("200");
}
// 检查主控制器MCU状态若为0则设置故障位置为"201"
if (member.getMcuStatus() == 0) {
troubleCode.setTroublePosition("201");
}
// 检查加热状态若为0则设置故障位置为"202"
if (member.getHeatingStatus() == 0) {
troubleCode.setTroublePosition("202");
}
// 检查电池状态若为0则设置故障位置为"203"
if (member.getBatteryStatus() == 0) {
troubleCode.setTroublePosition("203");
}
// 检查电池绝缘状态若为0则设置故障位置为"204"
if (member.getBatteryInsulationStatus() == 0) {
troubleCode.setTroublePosition("204");
}
// 检查直流-直流转换器DC/DC状态若为0则设置故障位置为"205"
if (member.getDcdcStatus() == 0) {
troubleCode.setTroublePosition("205");
}
// 检查充电机CHG状态若为0则设置故障位置为"206"
if (member.getChgStatus() == 0) {
troubleCode.setTroublePosition("206");
}
switch (member.getVehicleStatus()) {
case 0:
troubleCode.setTroublePosition("190");
troubleCode.setProcessingState(0);
break;
default:
switch (member.getChargingStatus()) {
case 0:
troubleCode.setTroublePosition("191");
troubleCode.setProcessingState(0);
break;
default:
switch (member.getOperatingStatus()) {
case 0:
troubleCode.setTroublePosition("192");
troubleCode.setProcessingState(0);
break;
default:
switch (member.getSocStatus()) {
case 0:
troubleCode.setTroublePosition("193");
troubleCode.setProcessingState(0);
break;
default:
switch (member.getChargingEnergyStorageStatus()) {
case 0:
troubleCode.setTroublePosition("194");
troubleCode.setProcessingState(0);
break;
default:
switch (member.getDriveMotorStatus()) {
case 0:
troubleCode.setTroublePosition("195");
troubleCode.setProcessingState(0);
break;
default:
switch (member.getPositionStatus()) {
case 0:
troubleCode.setTroublePosition("196");
troubleCode.setProcessingState(0);
break;
default:
switch (member.getEasStatus()) {
case 0:
troubleCode.setTroublePosition("197");
troubleCode.setProcessingState(0);
break;
default:
switch (member.getPtcStatus()) {
case 0:
troubleCode.setTroublePosition("198");
troubleCode.setProcessingState(0);
break;
default:
switch (member.getEpsStatus()) {
case 0:
troubleCode.setTroublePosition("199");
troubleCode.setProcessingState(0);
break;
default:
switch (member.getAbsStatus()) {
case 0:
troubleCode.setTroublePosition("200");
troubleCode.setProcessingState(0);
break;
default:
switch (member.getMcuStatus()) {
case 0:
troubleCode.setTroublePosition("201");
troubleCode.setProcessingState(0);
break;
default:
switch (member.getHeatingStatus()) {
case 0:
troubleCode.setTroublePosition("202");
troubleCode.setProcessingState(0);
break;
default:
switch (member.getBatteryStatus()) {
case 0:
troubleCode.setTroublePosition("203");
troubleCode.setProcessingState(0);
break;
default:
switch (member.getBatteryInsulationStatus()) {
case 0:
troubleCode.setTroublePosition("204");
troubleCode.setProcessingState(0);
break;
default:
switch (member.getDcdcStatus()) {
case 0:
troubleCode.setTroublePosition("205");
troubleCode.setProcessingState(0);
break;
default:
switch (member.getChgStatus()) {
case 0:
troubleCode.setTroublePosition("206");
troubleCode.setProcessingState(0);
break;
default:
// do nothing
break;
}
break;
}
break;
}
break;
}
break;
}
break;
}
break;
}
break;
}
break;
}
break;
}
break;
}
break;
}
break;
}
break;
}
break;
}
break;
}
break;
}
remoteTroubleService.newFaultData(troubleCode);
});
redisService.setCacheSet(member.getVin()+":"+key, member.getVin()+":"+member);
long expireTime = 30;
redisService.expire(member.getVin()+":"+key, expireTime, TimeUnit.MINUTES);
}
}
}

View File

@ -7,11 +7,14 @@ import com.couplet.analyze.msg.service.impl.realTimeData.RealTimeJudge;
import com.couplet.common.core.utils.StringUtils;
import com.couplet.common.domain.request.RealTimeDataRequest;
import com.couplet.common.redis.service.RedisService;
import com.couplet.remote.RemoteRealTimeService;
import lombok.extern.log4j.Log4j2;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Service;
import java.util.Date;
/**
* @Author: LiJiaYao
* @Date: 2024/4/2
@ -29,6 +32,8 @@ public class RealTimeDataServiceImpl implements IncidentService {
@Autowired
private RedisService redisService;
@Autowired
private RemoteRealTimeService remoteRealTimeService;
/**
*
@ -41,11 +46,15 @@ public class RealTimeDataServiceImpl implements IncidentService {
log.info("实时数据事件开始.....");
RealTimeDataRequest cacheObject = redisService.getCacheObject("vin:" + coupletMsgData.getVin());
if (StringUtils.isArray(cacheObject)){
log.info("[{}]有缓存数据,值为:[{}]", coupletMsgData.getVin(), cacheObject);
if (RealTimeJudge.addRealTime(cacheObject)) {
log.info("[{}]有缓存数据,值为:[{}],且缓存数据与实时数据一致,开始传输实时数据", coupletMsgData.getVin(), cacheObject);
CoupletMsgData query = incidentMapper.queryByIncident(coupletMsgData.getVin(), new Date());
redisService.setCacheObject("vin:" + cacheObject.getVin(), query);
} else {
log.info("[{}]有缓存数据,值为:[{}],且缓存数据与实时数据不一致,开始传输实时数据", coupletMsgData.getVin(), cacheObject);
}
if (RealTimeJudge.isJudge(coupletMsgData.getVin())){
if (RealTimeJudge.isJudge(coupletMsgData.getVin())) {
log.info("有实时数据,值为:[{}]开始传输实时数据", coupletMsgData.getVin());
}
log.info("[{}]开始传输实时数据", coupletMsgData.getVin());
@ -56,6 +65,7 @@ public class RealTimeDataServiceImpl implements IncidentService {
/**
*
*
* @return
*/
@Override

View File

@ -72,7 +72,7 @@
</insert>
<select id="queryByIncident" resultType="com.couplet.analyze.msg.domain.CoupletMsgData"
parameterType="com.couplet.common.domain.request.RealTimeDataRequest">
SELECT * FROM couplet_msg_data WHERE vin =#{vin}
SELECT * FROM couplet_msg_data WHERE vin=#{vin} and create_time = #{createTime}
</select>

View File

@ -25,21 +25,21 @@ public class ParsingMsg {
String hexStringWithoutSpaces = substring.replaceAll("\\s+", "");
String asciiString = hexToString(hexStringWithoutSpaces);
System.out.println("16进制解析后的数据"+asciiString);
//截取前17位
String substring1 = asciiString.substring(0, 17);
System.out.println("VIN"+substring1);
String substring2 = asciiString.substring(17, 30);
System.out.println("时间戳:"+substring2);
String substring3 = asciiString.substring(30, 40);
System.out.println("经度:" +substring3);
String substring4 = asciiString.substring(41, 50);
System.out.println("纬度:"+ substring4);
String substring5 = asciiString.substring(51, 56);
System.out.println("车速:"+ substring5);
String substring6 = asciiString.substring(57, 67);
System.out.println("总里程:"+ substring6);
String substring7 = asciiString.substring(68, 73);
System.out.println("总电压:"+ substring7);
// //截取前17位
// String substring1 = asciiString.substring(0, 17);
// System.out.println("VIN"+substring1);
// String substring2 = asciiString.substring(17, 30);
// System.out.println("时间戳:"+substring2);
// String substring3 = asciiString.substring(30, 40);
// System.out.println("经度:" +substring3);
// String substring4 = asciiString.substring(41, 50);
// System.out.println("纬度:"+ substring4);
// String substring5 = asciiString.substring(51, 56);
// System.out.println("车速:"+ substring5);
// String substring6 = asciiString.substring(57, 67);
// System.out.println("总里程:"+ substring6);
// String substring7 = asciiString.substring(68, 73);
// System.out.println("总电压:"+ substring7);
String pattern = "(.{17})(.{10})(.{9})(.{8})(.{2})";
Pattern compile = Pattern.compile(pattern);
Matcher matcher = compile.matcher(asciiString);

View File

@ -8,9 +8,9 @@
<id property="troubleId" column="trouble_id"/>
<result property="troubleCode" column="trouble_code"/>
<result property="troubleVin" column="trouble_vin"/>
<result property="troubleTag" column="trouble_tag"/>
<result property="troubleStartTime" column="trouble_start_time"/>
<result property="troubleEndTime" column="trouble_end_time"/>
<result property="processingState" column="processing_state"/>
</resultMap>
<sql id="selectTroubleVo">
@ -19,9 +19,9 @@
</sql>
<insert id="newFaultData">
INSERT INTO `couplet-cloud`.`couplet_trouble_code`
(`trouble_code`,`trouble_vin`,`trouble_position`,`trouble_start_time`)
(`trouble_code`,`trouble_vin`,`trouble_position`,`trouble_start_time`,`processing_state`)
VALUES
(#{troubleCode},#{troubleVin}, #{troublePosition},#{troubleStartTime})
(#{troubleCode},#{troubleVin}, #{troublePosition},#{troubleStartTime},#{processingState})
</insert>
<update id="cleanTroubleCode">
truncate table couplet_trouble_code