增加外部API接口

This commit is contained in:
weidong 2024-07-02 16:31:36 +08:00
parent 9f1554da93
commit aeb9b1a933
3 changed files with 48 additions and 19 deletions

View File

@ -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;
}

View File

@ -39,7 +39,7 @@
<div class="layui-inline">
<label class="layui-form-label">所属项目</label>
<div class="layui-input-inline">
<select name="project_id" id="projectid" lay-search="" lay-filter="project">
<select name="sl_d.project_id" id="projectid" lay-search="" lay-filter="project">
<option value="">全部</option>
<option th:each="item : ${project_list}" th:text="${item.project_id}" th:value="${item.project_id}"></option>
</select>

View File

@ -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<GnssCalcData>()
.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,10 +71,12 @@ public class GnssDataApi {
GnssQueryResponse gnssResponse = new GnssQueryResponse();
LocalDateTime lastRecordTime = null;
gnssResponse.OK();
for(GnssCalcData data: dataList){
if(isAsc) {
for (GnssCalcData data : dataList) {
LocalDateTime recordTime = data.getCreatetime();
if(lastRecordTime == null) lastRecordTime=recordTime;
if(lastRecordTime.isBefore(recordTime) || lastRecordTime.isEqual(recordTime)) {
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));
@ -78,6 +87,23 @@ public class GnssDataApi {
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);
}
}
}
String json = GsonUtil.toJson(gnssResponse);
logger.info(json);