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