diff --git a/sec-beidou/src/main/java/com/imdroid/beidou/controller/GnssCalcDataController.java b/sec-beidou/src/main/java/com/imdroid/beidou/controller/GnssCalcDataController.java index 7cf8993f..24534ff4 100644 --- a/sec-beidou/src/main/java/com/imdroid/beidou/controller/GnssCalcDataController.java +++ b/sec-beidou/src/main/java/com/imdroid/beidou/controller/GnssCalcDataController.java @@ -140,7 +140,9 @@ public class GnssCalcDataController extends BasicController implements CommonExc public void checkSearchParams(JSONObject search){ if(search != null) { String parentId = search.getString("sl_d.parentid"); - isJoinQuery = (parentId != null && StringUtils.hasText(parentId)); + String projectId = search.getString("sl_d.project_id"); + isJoinQuery = (parentId != null && StringUtils.hasText(parentId)) || + (projectId != null && StringUtils.hasText(projectId)); } else isJoinQuery=false; } @@ -149,7 +151,8 @@ public class GnssCalcDataController extends BasicController implements CommonExc isJoinQuery=false; if(enu != null) { while (enu.hasMoreElements()) { - if(enu.nextElement().contains("d.parentid")){ + if(enu.nextElement().contains("d.parentid") || + enu.nextElement().contains("d.project_id")){ isJoinQuery = true; break; } diff --git a/sec-beidou/src/main/resources/templates/page/gnss_data_calc.html b/sec-beidou/src/main/resources/templates/page/gnss_data_calc.html index 21045f79..6d4e9b5e 100644 --- a/sec-beidou/src/main/resources/templates/page/gnss_data_calc.html +++ b/sec-beidou/src/main/resources/templates/page/gnss_data_calc.html @@ -39,7 +39,7 @@
- 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 5954ff49..f419bea8 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 @@ -11,6 +11,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; +import javax.servlet.http.HttpServletRequest; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.List; @@ -24,15 +25,19 @@ public class GnssDataApi { final Logger logger = LoggerFactory.getLogger(GnssDataApi.class); @GetMapping(value = "/gnss/data") - public String query(String projectName, String deviceId, + public String query(HttpServletRequest request, String projectName, String deviceId, String beginDate, String endDate, Integer pageSize, String sortType) { + Integer tenantId = (Integer) request.getAttribute("tenantId"); MPJQueryWrapper queryWrapper = new MPJQueryWrapper() .selectAll(GnssCalcData.class); + queryWrapper.eq("t.tenantid",tenantId); if(StrUtil.isBlank(deviceId)){ - queryWrapper.leftJoin("gnssdevices d on t.deviceid=d.deviceid AND d.project_id="+projectName); + 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 AND t.deviceid="+deviceId); + queryWrapper.leftJoin("gnssdevices d on t.deviceid=d.deviceid"); + queryWrapper.eq("t.deviceid",deviceId); } queryWrapper.isNotNull("rpose"); @@ -42,14 +47,16 @@ public class GnssDataApi { } if(!StrUtil.isBlank(endDate)){ - queryWrapper.ge("t.createtime",endDate); + queryWrapper.le("t.createtime",endDate); } + boolean isAsc=true; if(StrUtil.isBlank(sortType) || sortType.equals("asc")){ queryWrapper.orderByAsc("t.createtime"); } else{ queryWrapper.orderByDesc("t.createtime"); + isAsc=false; } if(pageSize!=null){ @@ -64,18 +71,37 @@ public class GnssDataApi { GnssQueryResponse gnssResponse = new GnssQueryResponse(); LocalDateTime lastRecordTime = null; gnssResponse.OK(); - for(GnssCalcData data: dataList){ - LocalDateTime recordTime = data.getCreatetime(); - if(lastRecordTime == null) lastRecordTime=recordTime; - if(lastRecordTime.isBefore(recordTime) || lastRecordTime.isEqual(recordTime)) { - GnssQueryResponse.GnssData gnssData = new GnssQueryResponse.GnssData(); - gnssData.setDeviceId(data.getDeviceid()); - gnssData.setCreateTime(data.getCreatetime().format(formatter)); - gnssData.setRpose(data.getRpose()); - gnssData.setRposn(data.getRposn()); - gnssData.setRposu(data.getRposd()); - gnssResponse.getData().add(gnssData); - lastRecordTime = recordTime.plusMinutes(30); + + if(isAsc) { + for (GnssCalcData data : dataList) { + LocalDateTime recordTime = data.getCreatetime(); + if (lastRecordTime == null) lastRecordTime = recordTime; + if (lastRecordTime.isBefore(recordTime) || lastRecordTime.isEqual(recordTime)) { + GnssQueryResponse.GnssData gnssData = new GnssQueryResponse.GnssData(); + gnssData.setDeviceId(data.getDeviceid()); + gnssData.setCreateTime(data.getCreatetime().format(formatter)); + gnssData.setRpose(data.getRpose()); + gnssData.setRposn(data.getRposn()); + gnssData.setRposu(data.getRposd()); + gnssResponse.getData().add(gnssData); + lastRecordTime = recordTime.plusMinutes(30); + } + } + } + else{ + for (GnssCalcData data : dataList) { + LocalDateTime recordTime = data.getCreatetime(); + if (lastRecordTime == null) lastRecordTime = recordTime; + if (lastRecordTime.isAfter(recordTime) || lastRecordTime.isEqual(recordTime)) { + GnssQueryResponse.GnssData gnssData = new GnssQueryResponse.GnssData(); + gnssData.setDeviceId(data.getDeviceid()); + gnssData.setCreateTime(data.getCreatetime().format(formatter)); + gnssData.setRpose(data.getRpose()); + gnssData.setRposn(data.getRposn()); + gnssData.setRposu(data.getRposd()); + gnssResponse.getData().add(gnssData); + lastRecordTime = recordTime.minusMinutes(30); + } } }