提交 ee9bb5f6 authored 作者: liuhaiquan's avatar liuhaiquan

定时获取车辆定位去除平台失效的车辆信息

上级 4cc162be
...@@ -10,6 +10,10 @@ public class RedisConstants { ...@@ -10,6 +10,10 @@ public class RedisConstants {
public static final String ZJXL_TRUCK_TRACE_LIST = "performance:zjxl_truck_trace_list:"; public static final String ZJXL_TRUCK_TRACE_LIST = "performance:zjxl_truck_trace_list:";
public static final String ZJXL_LAST_PULL_TRUCK = "performance:zjxl_last_time_pull_truck:";
public static final String TRUCK_LOCATION_KEY = "performance:truck_location_key:"; public static final String TRUCK_LOCATION_KEY = "performance:truck_location_key:";
} }
...@@ -17,6 +17,7 @@ import org.springframework.stereotype.Component; ...@@ -17,6 +17,7 @@ import org.springframework.stereotype.Component;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.time.temporal.ChronoUnit; import java.time.temporal.ChronoUnit;
import java.util.ArrayList;
import java.util.Comparator; import java.util.Comparator;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
...@@ -58,6 +59,10 @@ public class TruckTraceJob { ...@@ -58,6 +59,10 @@ public class TruckTraceJob {
LocalDateTime now = LocalDateTime.now(); LocalDateTime now = LocalDateTime.now();
LocalDateTime beginTime = now.plus(-5, ChronoUnit.MINUTES); LocalDateTime beginTime = now.plus(-5, ChronoUnit.MINUTES);
if(Objects.equals(result.getCode(), ResultCodeEnum.SUCCESS.getCode())){ if(Objects.equals(result.getCode(), ResultCodeEnum.SUCCESS.getCode())){
//本次拉取定位信息成功的车辆
List<String> pullTruckList = new ArrayList<>();
List<String> truckNos = result.getData(); List<String> truckNos = result.getData();
for(String truckNo : truckNos){ for(String truckNo : truckNos){
List<TruckTraceDTO> truckTrace = zjxlGpsService.getTruckTrace(truckNo, List<TruckTraceDTO> truckTrace = zjxlGpsService.getTruckTrace(truckNo,
...@@ -69,7 +74,22 @@ public class TruckTraceJob { ...@@ -69,7 +74,22 @@ public class TruckTraceJob {
TruckTraceDTO truckTraceDTO = truckTrace.get(0); TruckTraceDTO truckTraceDTO = truckTrace.get(0);
truckTraceDTO.setTruckNo(truckNo); truckTraceDTO.setTruckNo(truckNo);
redisTemplate.opsForHash().put(RedisConstants.ZJXL_TRUCK_TRACE_LIST,truckNo,truckTraceDTO); redisTemplate.opsForHash().put(RedisConstants.ZJXL_TRUCK_TRACE_LIST,truckNo,truckTraceDTO);
pullTruckList.add(truckNo);
}
}
//获取上次拉取的车辆
if(redisTemplate.hasKey(RedisConstants.ZJXL_LAST_PULL_TRUCK)){
List<String> lastTimeTruck= redisTemplate.opsForList().range(RedisConstants.ZJXL_LAST_PULL_TRUCK,0,-1);//获取上次拉取的车辆列表
//上次拉取的车辆 去除掉 本次拉运的车辆 = 本次没有拉取的车辆(可能车辆过期,删除了,所以此类数据不需要在缓存中存在了)
lastTimeTruck.removeAll(pullTruckList);
if(CollectionUtils.isNotEmpty(lastTimeTruck)){
//移除掉本次没拉运的定位信息
redisTemplate.opsForHash().delete(RedisConstants.ZJXL_TRUCK_TRACE_LIST,lastTimeTruck.toArray());
}
redisTemplate.delete(RedisConstants.ZJXL_LAST_PULL_TRUCK);
} }
if(CollectionUtils.isNotEmpty(pullTruckList)){
redisTemplate.opsForList().leftPushAll(RedisConstants.ZJXL_LAST_PULL_TRUCK,pullTruckList);
} }
}else{ }else{
log.info("通过clx-user服务获取平台认证成功车辆,获取失败"); log.info("通过clx-user服务获取平台认证成功车辆,获取失败");
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论