1、修改API根据项目获取数据的bug

This commit is contained in:
weidong 2025-04-15 18:43:35 +08:00
parent 92c6bc25e9
commit f7ef1ce8b6

View File

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