From 3bc57d8582d3d13e7e653b0f04dd09742c3b2c15 Mon Sep 17 00:00:00 2001
From: jinpengyong <jpy123456>
Date: Mon, 23 Aug 2021 10:20:26 +0800
Subject: [PATCH] 走航车轨迹数据单因子-》所有因子
---
screen-api/src/main/java/com/moral/api/entity/SpecialDevice.java | 7 +++++++
screen-api/src/main/resources/mapper/HistorySecondSpecialMapper.xml | 8 ++++----
screen-api/src/main/java/com/moral/api/controller/SpecialDeviceController.java | 6 +++---
screen-api/src/main/java/com/moral/api/service/impl/SpecialDeviceServiceImpl.java | 33 ++++++++++++++++++++++++++++-----
screen-manage/src/main/java/com/moral/api/service/impl/HistorySecondSpecialServiceImpl.java | 1 +
5 files changed, 43 insertions(+), 12 deletions(-)
diff --git a/screen-api/src/main/java/com/moral/api/controller/SpecialDeviceController.java b/screen-api/src/main/java/com/moral/api/controller/SpecialDeviceController.java
index ae6cf8d..7a83ed6 100644
--- a/screen-api/src/main/java/com/moral/api/controller/SpecialDeviceController.java
+++ b/screen-api/src/main/java/com/moral/api/controller/SpecialDeviceController.java
@@ -6,6 +6,7 @@
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.util.ObjectUtils;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
@@ -40,16 +41,15 @@
@ApiImplicitParams(value = {
@ApiImplicitParam(name = "token", value = "token", required = true, paramType = "header", dataType = "String"),
@ApiImplicitParam(name = "mac", value = "������mac", required = true, paramType = "query", dataType = "String"),
- @ApiImplicitParam(name = "sensorCode", value = "���������code", required = true, paramType = "query", dataType = "String"),
@ApiImplicitParam(name = "time", value = "���������2021-08-18", required = true, paramType = "query", dataType = "String")
})
public ResultMessage carTrajectory(HttpServletRequest request) {
Map<String, Object> params = WebUtils.getParametersStartingWith(request, null);
- if (!params.containsKey("mac") || !params.containsKey("sensorCode") || !params.containsKey("time")) {
+ if (!params.containsKey("mac") || !params.containsKey("time")) {
return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(), ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg());
}
List<Map<String, Object>> response = specialDeviceService.carTrajectory(params);
- return ResultMessage.ok(response);
+ return ObjectUtils.isEmpty(response) ? ResultMessage.ok() : ResultMessage.ok(response);
}
}
diff --git a/screen-api/src/main/java/com/moral/api/entity/SpecialDevice.java b/screen-api/src/main/java/com/moral/api/entity/SpecialDevice.java
index c561375..99df6fb 100644
--- a/screen-api/src/main/java/com/moral/api/entity/SpecialDevice.java
+++ b/screen-api/src/main/java/com/moral/api/entity/SpecialDevice.java
@@ -1,6 +1,7 @@
package com.moral.api.entity;
import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.baomidou.mybatisplus.annotation.TableId;
import java.io.Serializable;
@@ -74,6 +75,12 @@
*/
private String isDelete;
+ /*
+ * ������������
+ * */
+ @TableField(exist = false)
+ private Version version;
+
@Override
protected Serializable pkVal() {
diff --git a/screen-api/src/main/java/com/moral/api/service/impl/SpecialDeviceServiceImpl.java b/screen-api/src/main/java/com/moral/api/service/impl/SpecialDeviceServiceImpl.java
index 7b0bdc8..7e5d8c1 100644
--- a/screen-api/src/main/java/com/moral/api/service/impl/SpecialDeviceServiceImpl.java
+++ b/screen-api/src/main/java/com/moral/api/service/impl/SpecialDeviceServiceImpl.java
@@ -14,16 +14,21 @@
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.moral.api.service.SysDictDataService;
import com.moral.constant.Constants;
+import com.moral.constant.RedisConstants;
import com.moral.util.DateUtils;
import com.moral.util.GeodesyUtils;
+import com.moral.util.TokenUtils;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
+import org.springframework.util.ObjectUtils;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
+import java.util.stream.Collectors;
/**
* <p>
@@ -45,6 +50,9 @@
@Autowired
private SysDictDataService sysDictDataService;
+ @Autowired
+ private RedisTemplate redisTemplate;
+
private final static Double dis = 50d;
@Override
@@ -60,14 +68,29 @@
String sensorUnit = sysDictDataService.getOne(sysDictDataQueryWrapper).getDataValue();
params.put("sensorUnit", sensorUnit);*/
+ Map<String, Object> userInfo = (Map<String, Object>) TokenUtils.getUserInfo();
+ Map<String, Object> orgInfo = (Map<String, Object>) userInfo.get("organization");
+ Integer orgId = (Integer) orgInfo.get("id");
+ params.put("orgId", orgId);
//������������������������������������
List<Map<String, Object>> data = historySecondSpecialMapper.getSpecialDeviceData(params);
+ if (ObjectUtils.isEmpty(data)) {
+ return data;
+ }
data.removeIf(o -> {
- //������
- double lng = Double.parseDouble(o.get(Constants.SENSOR_CODE_LON).toString());
- //������
- double lat = Double.parseDouble(o.get(Constants.SENSOR_CODE_LAT).toString());
- return lng < 70 || lng > 150 || lat > 60 || lat < 20;
+ Map<String, Object> value = JSONObject.parseObject(o.remove("value").toString(), Map.class);
+ Object flylon = value.get("flylon");
+ Object flylat = value.get("flylat");
+ if (ObjectUtils.isEmpty(flylon) || ObjectUtils.isEmpty(flylat)) {
+ return true;
+ }
+ double lon = Double.parseDouble(flylon.toString());
+ double lat = Double.parseDouble(flylat.toString());
+ if (lon < 70 || lon > 150 || lat < 20 || lat > 60) {
+ return true;
+ }
+ o.putAll(value);
+ return false;
});
return filterData(data);
}
diff --git a/screen-api/src/main/resources/mapper/HistorySecondSpecialMapper.xml b/screen-api/src/main/resources/mapper/HistorySecondSpecialMapper.xml
index 207f6a3..989922f 100644
--- a/screen-api/src/main/resources/mapper/HistorySecondSpecialMapper.xml
+++ b/screen-api/src/main/resources/mapper/HistorySecondSpecialMapper.xml
@@ -12,13 +12,13 @@
</resultMap>
<select id="getSpecialDeviceData" resultType="java.util.Map">
- SELECT JSON_UNQUOTE(`value`->'$.${sensorCode}') AS '${sensorCode}',
- JSON_UNQUOTE(`value`->'$.flylon') AS 'flylon',
- JSON_UNQUOTE(`value`->'$.flylat') AS 'flylat',
- DATE_FORMAT(`time`, #{dateFormat}) AS 'time'
+ SELECT
+ DATE_FORMAT(`time`, #{dateFormat}) AS `time`,
+ `value`
FROM `history_second_special`
WHERE mac = #{mac}
AND `time` LIKE #{time}"%"
+ AND organization_id = #{orgId}
</select>
</mapper>
\ No newline at end of file
diff --git a/screen-manage/src/main/java/com/moral/api/service/impl/HistorySecondSpecialServiceImpl.java b/screen-manage/src/main/java/com/moral/api/service/impl/HistorySecondSpecialServiceImpl.java
index 47905d9..366e784 100644
--- a/screen-manage/src/main/java/com/moral/api/service/impl/HistorySecondSpecialServiceImpl.java
+++ b/screen-manage/src/main/java/com/moral/api/service/impl/HistorySecondSpecialServiceImpl.java
@@ -75,6 +75,7 @@
historySecondSpecial.setMac(mac);
historySecondSpecial.setTime(time);
historySecondSpecial.setValue(JSONObject.toJSONString(data));
+ historySecondSpecial.setOrganizationId(specialDevice.getOrganizationId());
historySecondSpecial.setBatch(batchTime);
historySecondSpecialMapper.insert(historySecondSpecial);
}
--
Gitblit v1.8.0