From f7ef1ce8b6b7346db5c7094540f466a3dac7262d Mon Sep 17 00:00:00 2001 From: weidong Date: Tue, 15 Apr 2025 18:43:35 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E4=BF=AE=E6=94=B9API=E6=A0=B9?= =?UTF-8?q?=E6=8D=AE=E9=A1=B9=E7=9B=AE=E8=8E=B7=E5=8F=96=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sec_exapi/controller/GnssDataApi.java | 32 ++++++++++--------- 1 file changed, 17 insertions(+), 15 deletions(-) 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)); } } }