diff --git a/sec-exapi/src/main/java/com/imdroid/sec_exapi/controller/GnssDataApi.java b/sec-exapi/src/main/java/com/imdroid/sec_exapi/controller/GnssDataApi.java index b3c13e20..0e1ba510 100644 --- a/sec-exapi/src/main/java/com/imdroid/sec_exapi/controller/GnssDataApi.java +++ b/sec-exapi/src/main/java/com/imdroid/sec_exapi/controller/GnssDataApi.java @@ -41,10 +41,11 @@ public class GnssDataApi { .selectAll(GnssCalcData.class); queryWrapper.eq("t.tenantid",tenantId); if(StrUtil.isBlank(deviceId)){ + queryWrapper.leftJoin("gnssdevices d on t.deviceid=d.deviceid"); queryWrapper.eq("d.project_id",projectName); } else { - queryWrapper.leftJoin("gnssdevices d on t.deviceid=d.deviceid"); + //queryWrapper.leftJoin("gnssdevices d on t.deviceid=d.deviceid"); queryWrapper.eq("t.deviceid",deviceId); } @@ -68,11 +69,11 @@ public class GnssDataApi { } if(pageSize!=null){ - if(pageSize > 1000) pageSize=1000; - queryWrapper.last("limit "+pageSize); + if(pageSize > 1000) pageSize=3000; + queryWrapper.last("limit "+pageSize*3); } else{ - queryWrapper.last("limit 100"); + queryWrapper.last("limit 300"); } List dataList = dataMapper.selectList(queryWrapper); @@ -81,24 +82,25 @@ public class GnssDataApi { gnssResponse.OK(); HashMap deviceHashMap = new HashMap<>(); + HashMap deviceRecordTimeMap = new HashMap<>(); - if(isAsc) { - for (GnssCalcData data : dataList) { - LocalDateTime recordTime = data.getCreatetime(); - if (lastRecordTime == null) lastRecordTime = recordTime; + for (GnssCalcData data : dataList) { + LocalDateTime recordTime = data.getCreatetime(); + lastRecordTime = deviceRecordTimeMap.get(data.getDeviceid()); + if(lastRecordTime == null){ + lastRecordTime = recordTime; + + } + if(isAsc) { if (lastRecordTime.isBefore(recordTime) || lastRecordTime.isEqual(recordTime)) { addToResponse(gnssResponse, data, deviceHashMap); - lastRecordTime = recordTime.plusMinutes(30); + deviceRecordTimeMap.put(data.getDeviceid(), recordTime.plusMinutes(30)); } } - } - else{ - for (GnssCalcData data : dataList) { - LocalDateTime recordTime = data.getCreatetime(); - if (lastRecordTime == null) lastRecordTime = recordTime; + else{ if (lastRecordTime.isAfter(recordTime) || lastRecordTime.isEqual(recordTime)) { addToResponse(gnssResponse, data, deviceHashMap); - lastRecordTime = recordTime.minusMinutes(30); + deviceRecordTimeMap.put(data.getDeviceid(), recordTime.minusMinutes(30)); } } }