|
@@ -60,25 +60,24 @@ public class CheckDataServiceImpl implements CheckDataService {
|
|
|
return;
|
|
|
}
|
|
|
Map<Integer, List<RobotDTO>> robotMap = robots.stream().collect(Collectors.groupingBy(RobotDTO::getId));
|
|
|
- //从redis中获取最新一次上传id (若为首次上传 查询当前最近记录上传)
|
|
|
+ //从redis中获取最新一次上传id
|
|
|
Long lastDataId = (Long) redisUtils.get(RedisKey.UPLOAD_IPS_LAST_ID);
|
|
|
+ //若为首次上传则记录当前巡检数据的最大id 产生新的数据之后再进行上传
|
|
|
+ if (lastDataId == null) {
|
|
|
+ lastDataId = uploadMapper.selectMaxId();
|
|
|
+ redisUtils.set(RedisKey.UPLOAD_IPS_LAST_ID, lastDataId);
|
|
|
+ return;
|
|
|
+ }
|
|
|
//根据lastDataId查询基于上次上传后巡检数据
|
|
|
List<RecordTaskPoint> checkDataList = uploadMapper.queryDataAfterId(lastDataId, count);
|
|
|
if (!CollectionUtils.isEmpty(checkDataList)) {
|
|
|
checkDataList = checkDataList.stream().filter(t -> t.getTaskId() != null).collect(Collectors.toList());
|
|
|
}
|
|
|
-
|
|
|
if (CollectionUtils.isEmpty(checkDataList)) {
|
|
|
return;
|
|
|
}
|
|
|
- Long maxId = null;
|
|
|
- //lastDataId为空即为首次上传,倒叙查询最新的巡检数据取最大的一条数据id
|
|
|
- if (lastDataId == null) {
|
|
|
- maxId = Long.parseLong(checkDataList.get(0).getResultId());
|
|
|
- } else {
|
|
|
- //不为空则顺序查询,最后一条为最大的数据id
|
|
|
- maxId = Long.valueOf(checkDataList.get(checkDataList.size() - 1).getResultId());
|
|
|
- }
|
|
|
+ //记录查询的最大id
|
|
|
+ Long maxId = Long.valueOf(checkDataList.get(checkDataList.size() - 1).getResultId());
|
|
|
//组装数据同步请求对象
|
|
|
List<RecordData> uploadResult = getRecordData(robotMap, checkDataList);
|
|
|
//若任务执行后 改变机器人信息 会导致无同步数据
|