From ec95e52c6f84c0a6cbdcbaecc2465b00ede6696d Mon Sep 17 00:00:00 2001
From: jinpengyong <jpy123456>
Date: Thu, 24 Jun 2021 14:03:59 +0800
Subject: [PATCH] 数据校准工具类
---
screen-api/src/main/resources/mapper/GroupMapper.xml | 5 -
screen-manage/src/main/java/com/moral/api/util/AdjustDataUtils.java | 48 +++------
screen-api/src/main/java/com/moral/api/service/impl/GroupServiceImpl.java | 9 +
screen-manage/src/main/java/com/moral/api/service/impl/DeviceServiceImpl.java | 102 +++++++++----------
screen-api/src/main/java/com/moral/api/service/GroupService.java | 5
screen-manage/src/main/java/com/moral/api/config/kafka/KafkaConsumerConfig.java | 4
screen-api/src/main/java/com/moral/api/service/UserGroupService.java | 3
screen-api/src/main/java/com/moral/api/controller/GroupController.java | 5
screen-manage/src/main/java/com/moral/api/kafka/consumer/KafkaConsumer.java | 10 -
screen-api/src/main/java/com/moral/api/kafka/consumer/SecondsDataConsumer.java | 2
screen-manage/src/main/resources/application-dev.yml | 6
screen-manage/src/main/java/com/moral/api/config/kafka/KafkaProducerConfig.java | 4
screen-api/src/main/java/com/moral/api/service/impl/UserGroupServiceImpl.java | 11 --
screen-job/src/main/java/com/moral/api/service/impl/DeviceServiceImpl.java | 2
screen-common/src/main/java/com/moral/constant/RedisConstants.java | 27 ++--
15 files changed, 107 insertions(+), 136 deletions(-)
diff --git a/screen-api/src/main/java/com/moral/api/controller/GroupController.java b/screen-api/src/main/java/com/moral/api/controller/GroupController.java
index 9dacceb..302b910 100644
--- a/screen-api/src/main/java/com/moral/api/controller/GroupController.java
+++ b/screen-api/src/main/java/com/moral/api/controller/GroupController.java
@@ -17,7 +17,6 @@
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.moral.api.entity.Group;
import com.moral.api.service.GroupService;
@@ -115,8 +114,8 @@
return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(),
ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg());
}
- List<Integer> groupIds = userGroupService.getGroupIds(userId);
- return ResultMessage.ok(groupIds);
+ List<Map<String, Object>> groups = groupService.getGroupIds(userId);
+ return ResultMessage.ok(groups);
}
@ApiOperation(value = "���������������", notes = "���������������")
diff --git a/screen-api/src/main/java/com/moral/api/kafka/consumer/SecondsDataConsumer.java b/screen-api/src/main/java/com/moral/api/kafka/consumer/SecondsDataConsumer.java
index 710e4a9..6b412cd 100644
--- a/screen-api/src/main/java/com/moral/api/kafka/consumer/SecondsDataConsumer.java
+++ b/screen-api/src/main/java/com/moral/api/kafka/consumer/SecondsDataConsumer.java
@@ -19,7 +19,7 @@
* @Date 2021/6/15 14:49
* @Version TODO
**/
-@Component
+//@Component
public class SecondsDataConsumer implements ConsumerSeekAware {
@KafkaListener(topics = "test",groupId = "SecondsDataGroup3")
diff --git a/screen-api/src/main/java/com/moral/api/service/GroupService.java b/screen-api/src/main/java/com/moral/api/service/GroupService.java
index 1bebb59..cde76b5 100644
--- a/screen-api/src/main/java/com/moral/api/service/GroupService.java
+++ b/screen-api/src/main/java/com/moral/api/service/GroupService.java
@@ -27,7 +27,10 @@
//���������������������
Map<String, Object> updateGroup(Group group);
- //���������������������������
+ //���������������������������
Page<Group> selectGroups(Map<String, Object> parameters);
+ //���������������������������
+ List<Map<String, Object>> getGroupIds(Integer userId);
+
}
diff --git a/screen-api/src/main/java/com/moral/api/service/UserGroupService.java b/screen-api/src/main/java/com/moral/api/service/UserGroupService.java
index 4bf9c24..8743a60 100644
--- a/screen-api/src/main/java/com/moral/api/service/UserGroupService.java
+++ b/screen-api/src/main/java/com/moral/api/service/UserGroupService.java
@@ -1,6 +1,5 @@
package com.moral.api.service;
-import java.util.List;
import java.util.Map;
import com.moral.api.entity.UserGroup;
@@ -16,7 +15,7 @@
*/
public interface UserGroupService extends IService<UserGroup> {
+ //���������������������������
void allotGroups(Map<String, Object> parameters);
- List<Integer> getGroupIds(Integer userId);
}
diff --git a/screen-api/src/main/java/com/moral/api/service/impl/GroupServiceImpl.java b/screen-api/src/main/java/com/moral/api/service/impl/GroupServiceImpl.java
index 4152336..166a709 100644
--- a/screen-api/src/main/java/com/moral/api/service/impl/GroupServiceImpl.java
+++ b/screen-api/src/main/java/com/moral/api/service/impl/GroupServiceImpl.java
@@ -2,6 +2,7 @@
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
import java.util.Objects;
@@ -10,7 +11,6 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.moral.api.entity.Group;
import com.moral.api.entity.GroupMenu;
-import com.moral.api.entity.User;
import com.moral.api.entity.UserGroup;
import com.moral.api.mapper.GroupMapper;
import com.moral.api.mapper.GroupMenuMapper;
@@ -164,4 +164,11 @@
groupMapper.selectPage(pageData, queryWrapper);
return pageData;
}
+
+ @Override
+ public List<Map<String, Object>> getGroupIds(Integer userId) {
+ Map<String, Object> params = new HashMap<>();
+ params.put("userId", userId);
+ return groupMapper.selectUserGroup(params);
+ }
}
diff --git a/screen-api/src/main/java/com/moral/api/service/impl/UserGroupServiceImpl.java b/screen-api/src/main/java/com/moral/api/service/impl/UserGroupServiceImpl.java
index 75a25f0..bcdc290 100644
--- a/screen-api/src/main/java/com/moral/api/service/impl/UserGroupServiceImpl.java
+++ b/screen-api/src/main/java/com/moral/api/service/impl/UserGroupServiceImpl.java
@@ -5,7 +5,6 @@
import java.util.Map;
import java.util.Objects;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.moral.api.entity.UserGroup;
import com.moral.api.mapper.GroupMapper;
@@ -78,15 +77,5 @@
String account = userMapper.selectById((Integer) parameters.get("userId")).getAccount();
String content = "������������" + account + "���������������" + groups;
operationLogUtils.insertLog(request, content, Constants.UPDATE_OPERATE_TYPE);
- }
-
- @Override
- public List<Integer> getGroupIds(Integer userId) {
- QueryWrapper<UserGroup> queryWrapper = new QueryWrapper<>();
- queryWrapper.eq("user_id", userId).eq("is_delete", Constants.NOT_DELETE);
- List<UserGroup> userGroups = userGroupMapper.selectList(queryWrapper);
- List<Integer> groupIds = new ArrayList<>();
- userGroups.forEach(userGroup -> groupIds.add(userGroup.getGroupId()));
- return groupIds;
}
}
diff --git a/screen-api/src/main/resources/mapper/GroupMapper.xml b/screen-api/src/main/resources/mapper/GroupMapper.xml
index 1123a96..36edc9d 100644
--- a/screen-api/src/main/resources/mapper/GroupMapper.xml
+++ b/screen-api/src/main/resources/mapper/GroupMapper.xml
@@ -12,11 +12,6 @@
<result column="is_delete" property="isDelete"/>
</resultMap>
- <resultMap id="GroupResultMap" type="java.util.LinkedHashMap">
- <id column="id" property="id"/>
- <result column="group_name" property="groupName"/>
- </resultMap>
-
<select id="selectUserGroup" resultMap="GroupResultMap">
SELECT g.id,g.group_name
FROM `group` g,`user_group` ug
diff --git a/screen-common/src/main/java/com/moral/constant/RedisConstants.java b/screen-common/src/main/java/com/moral/constant/RedisConstants.java
index bbc6324..05e95cd 100644
--- a/screen-common/src/main/java/com/moral/constant/RedisConstants.java
+++ b/screen-common/src/main/java/com/moral/constant/RedisConstants.java
@@ -32,30 +32,31 @@
/*
* ������������������
* */
- public static final String DEVICE = "device";
+ public static final String DEVICE = "device_";
/*
- * ������������������������
+ * ���������������������������������������������������������������
+ * ���������������hash
+ * key���mac
+ * value���Device
+ * ���������������Map<String,Device>
* */
- public static final String STATE = "state";
-
- /*
- * ���������������������������������������������������������������
- * ���������������hash
- * key���mac
- * value���Device
- * ���������������Map<String,Device>
- * */
public static final String DEVICE_INFO = "device_alarm_info";
/*
* ������������������������
* */
- public static final String ADJUST = "adjust";
+ public static final String ADJUST = "adjust_";
/*
* ������������������
* */
- public static final String DEVICE_DATA = "data";
+ public static final String DEVICE_DATA = "data_";
+
+ /*
+ * ������������������
+ * */
+ public static final String AQI_DATA = "aqi_";
+
}
diff --git a/screen-job/src/main/java/com/moral/api/service/impl/DeviceServiceImpl.java b/screen-job/src/main/java/com/moral/api/service/impl/DeviceServiceImpl.java
index 265c405..8850e00 100644
--- a/screen-job/src/main/java/com/moral/api/service/impl/DeviceServiceImpl.java
+++ b/screen-job/src/main/java/com/moral/api/service/impl/DeviceServiceImpl.java
@@ -64,6 +64,6 @@
}
private Map<String, Object> getDataFromRedis(String mac) {
- return (Map<String, Object>) redisTemplate.opsForValue().get(RedisConstants.DEVICE_DATA + "_" + mac);
+ return (Map<String, Object>) redisTemplate.opsForValue().get(RedisConstants.DEVICE_DATA + mac);
}
}
diff --git a/screen-manage/src/main/java/com/moral/api/config/kafka/KafkaConsumerConfig.java b/screen-manage/src/main/java/com/moral/api/config/kafka/KafkaConsumerConfig.java
index 4d6652a..8ce1e76 100644
--- a/screen-manage/src/main/java/com/moral/api/config/kafka/KafkaConsumerConfig.java
+++ b/screen-manage/src/main/java/com/moral/api/config/kafka/KafkaConsumerConfig.java
@@ -16,8 +16,8 @@
import java.util.HashMap;
import java.util.Map;
-/*@Configuration
-@EnableKafka*/
+@Configuration
+@EnableKafka
public class KafkaConsumerConfig {
@Value("${kafka.consumer.servers}")
private String servers;
diff --git a/screen-manage/src/main/java/com/moral/api/config/kafka/KafkaProducerConfig.java b/screen-manage/src/main/java/com/moral/api/config/kafka/KafkaProducerConfig.java
index ef5b141..a5603f1 100644
--- a/screen-manage/src/main/java/com/moral/api/config/kafka/KafkaProducerConfig.java
+++ b/screen-manage/src/main/java/com/moral/api/config/kafka/KafkaProducerConfig.java
@@ -13,8 +13,8 @@
import java.util.HashMap;
import java.util.Map;
-/*@Configuration
-@EnableKafka*/
+@Configuration
+@EnableKafka
public class KafkaProducerConfig {
@Value("${kafka.producer.servers}")
private String servers;
diff --git a/screen-manage/src/main/java/com/moral/api/kafka/consumer/KafkaConsumer.java b/screen-manage/src/main/java/com/moral/api/kafka/consumer/KafkaConsumer.java
index cc98e98..54c9d35 100644
--- a/screen-manage/src/main/java/com/moral/api/kafka/consumer/KafkaConsumer.java
+++ b/screen-manage/src/main/java/com/moral/api/kafka/consumer/KafkaConsumer.java
@@ -17,7 +17,6 @@
import com.moral.api.service.DeviceService;
import com.moral.api.service.HistoryHourlyService;
import com.moral.api.service.HistoryMinutelyService;
-import com.moral.api.util.AdjustDataUtils;
import com.moral.constant.KafkaConstants;
import com.moral.constant.RedisConstants;
@@ -35,15 +34,13 @@
private DeviceService deviceService;
@Autowired
- private AdjustDataUtils adjustDataUtils;
-
- @Autowired
private RedisTemplate redisTemplate;
//������������
@KafkaListener(topics = KafkaConstants.TOPIC_MINUTE, groupId = KafkaConstants.GROUP_ID_INSERT, containerFactory = "kafkaListenerContainerFactory")
public void listenMinute(ConsumerRecord<String, String> record, Acknowledgment ack) {
String msg = record.value();
+ System.out.println(msg);
try {
Map<String, Object> data = JSON.parseObject(msg, HashMap.class);
Object mac = data.get("mac");
@@ -104,6 +101,7 @@
@KafkaListener(topics = KafkaConstants.TOPIC_SECOND, groupId = KafkaConstants.GROUP_ID_STATE, containerFactory = "kafkaListenerContainerFactory")
public void listenSecond(ConsumerRecord<String, String> record, Acknowledgment ack) {
String msg = record.value();
+ //System.out.println(record.offset() + "===>" + msg);
try {
Map<String, Object> data = JSON.parseObject(msg, HashMap.class);
Object mac = data.get("mac");
@@ -115,9 +113,9 @@
return;
}
//������������
- data = adjustDataUtils.adjust(data);
+ data = deviceService.adjustDeviceData(data);
//������redis
- redisTemplate.opsForValue().set(RedisConstants.DEVICE_DATA + "_" + mac, data);
+ redisTemplate.opsForValue().set(RedisConstants.DEVICE_DATA + mac, data);
//���������������������������
deviceService.judgeDeviceState(data);
ack.acknowledge();
diff --git a/screen-manage/src/main/java/com/moral/api/service/impl/DeviceServiceImpl.java b/screen-manage/src/main/java/com/moral/api/service/impl/DeviceServiceImpl.java
index 4af7aef..fcf29d3 100644
--- a/screen-manage/src/main/java/com/moral/api/service/impl/DeviceServiceImpl.java
+++ b/screen-manage/src/main/java/com/moral/api/service/impl/DeviceServiceImpl.java
@@ -34,12 +34,10 @@
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.ArrayList;
-import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
-import java.util.stream.Collectors;
import javax.servlet.http.HttpServletRequest;
@@ -92,38 +90,21 @@
* ���redis������������������
* */
private Map<String, Object> getDeviceInfoFromRedis(String mac) {
- return (Map<String, Object>) redisTemplate.opsForValue().get(getDeviceKey(mac));
+ return (Map<String, Object>) redisTemplate.opsForValue().get(RedisConstants.DEVICE + mac);
}
/*
* ������������������redis
*/
private void setDeviceInfoToRedis(String mac, Map<String, Object> deviceInfo) {
- redisTemplate.opsForValue().set(getDeviceKey(mac), deviceInfo);
+ redisTemplate.opsForValue().set(RedisConstants.DEVICE + mac, deviceInfo);
}
/*
* ���redis������������������
*/
private void delDeviceInfoFromRedis(String mac) {
- redisTemplate.delete(getDeviceKey(mac));
- }
-
- /*
- * ���������������������redis������key
- */
- private String getDeviceKey(String mac) {
- return keysConnect(RedisConstants.DEVICE, mac);
- }
-
- //redis key������
- private String keysConnect(String... keys) {
- StringBuilder key = new StringBuilder(keys[0]);
- for (int i = 1; i < keys.length; i++) {
- key.append("_");
- key.append(keys[i]);
- }
- return key.toString().toLowerCase();
+ redisTemplate.delete(RedisConstants.DEVICE + mac);
}
@Override
@@ -134,7 +115,7 @@
deviceMapper.insert(device);
Map<String, Object> deviceInfo = selectDeviceInfoById(device.getId());
//���������������������������
- insertOrganizationUnitAlarm(orgId,device.getDeviceVersionId());
+ insertOrganizationUnitAlarm(orgId, device.getDeviceVersionId());
//������������������������redis
String mac = device.getMac();
//���redis���������������������
@@ -163,7 +144,7 @@
//���������������������������
Integer versionId = device.getDeviceVersionId();
Integer orgId = device.getOrganizationId();
- deleteOrganizationUnitAlarm(orgId,versionId);
+ deleteOrganizationUnitAlarm(orgId, versionId);
//������deviceInfo������
CacheUtils.flushDeviceAlarmInfo();
//������������������
@@ -179,7 +160,7 @@
Integer deviceId = device.getId();
Device oldDevice = deviceMapper.selectById(deviceId);
//���������������������������������������������������������������������������������id������������
- if(!ObjectUtils.isEmpty(device.getMonitorPointId())){
+ if (!ObjectUtils.isEmpty(device.getMonitorPointId())) {
MonitorPoint monitorPoint = monitorPointMapper.selectById(device.getMonitorPointId());
device.setOrganizationId(monitorPoint.getOrganizationId());
}
@@ -187,14 +168,14 @@
Device updateDevice = deviceMapper.selectById(deviceId);
String mac = updateDevice.getMac();
//���������������������������
- Integer oldOrgId = oldDevice.getOrganizationId();
- Integer newOrgId = updateDevice.getOrganizationId();
- Integer oldVersionId = oldDevice.getDeviceVersionId();
- Integer newVersionId = updateDevice.getDeviceVersionId();
- if(!oldOrgId.equals(newOrgId)||!oldVersionId.equals(newVersionId)){
- deleteOrganizationUnitAlarm(oldOrgId,oldVersionId);
- insertOrganizationUnitAlarm(newOrgId,newVersionId);
- }
+ Integer oldOrgId = oldDevice.getOrganizationId();
+ Integer newOrgId = updateDevice.getOrganizationId();
+ Integer oldVersionId = oldDevice.getDeviceVersionId();
+ Integer newVersionId = updateDevice.getDeviceVersionId();
+ if (!oldOrgId.equals(newOrgId) || !oldVersionId.equals(newVersionId)) {
+ deleteOrganizationUnitAlarm(oldOrgId, oldVersionId);
+ insertOrganizationUnitAlarm(newOrgId, newVersionId);
+ }
//���redis���������������������
delDeviceInfoFromRedis(mac);
Map<String, Object> deviceInfo = selectDeviceInfoById(deviceId);
@@ -438,7 +419,22 @@
@Override
public Map<String, Object> adjustDeviceData(Map<String, Object> deviceData) {
- return adjustDataUtils.adjust(deviceData);
+ String mac = deviceData.get("mac").toString();
+ //���redis������������������
+ Map<String, Object> adjustFormula = redisTemplate.opsForHash().entries(RedisConstants.ADJUST + mac);
+ if (!ObjectUtils.isEmpty(adjustFormula)) {
+ Map<String, Object> deviceInfo = getDeviceByMac(mac);
+ Map<String, Object> monitorPoint = (Map<String, Object>) deviceInfo.get("monitorPoint");
+ Object areaCode = monitorPoint.get("areaCode");
+ Object cityCode = monitorPoint.get("cityCode");
+
+ Map<String, Object> aqiMap = redisTemplate.opsForHash().entries(RedisConstants.AQI_DATA + areaCode);
+ if (ObjectUtils.isEmpty(aqiMap)) {
+ aqiMap = redisTemplate.opsForHash().entries(RedisConstants.AQI_DATA + cityCode);
+ }
+ return adjustDataUtils.adjust(deviceData, adjustFormula, ObjectUtils.isEmpty(aqiMap) ? null : aqiMap);
+ }
+ return deviceData;
}
@Override
@@ -493,18 +489,18 @@
return state;
}
- private void insertOrganizationUnitAlarm(Integer orgId,Integer versionId){
+ private void insertOrganizationUnitAlarm(Integer orgId, Integer versionId) {
QueryWrapper<OrganizationUnitAlarm> queryOrganizationVersionWrapper = new QueryWrapper<>();
- queryOrganizationVersionWrapper.eq("organization_id",orgId);
- queryOrganizationVersionWrapper.eq("version_id",versionId);
- queryOrganizationVersionWrapper.eq("is_delete",Constants.NOT_DELETE);
+ queryOrganizationVersionWrapper.eq("organization_id", orgId);
+ queryOrganizationVersionWrapper.eq("version_id", versionId);
+ queryOrganizationVersionWrapper.eq("is_delete", Constants.NOT_DELETE);
List<OrganizationUnitAlarm> organizationUnitAlarms = organizationUnitAlarmMapper.selectList(queryOrganizationVersionWrapper);
- if(ObjectUtils.isEmpty(organizationUnitAlarms)){
- QueryWrapper<VersionSensorUnit> queryVersionSensorUnitWrapper =new QueryWrapper<>();
- queryVersionSensorUnitWrapper.eq("version_id",versionId);
- queryVersionSensorUnitWrapper.eq("is_delete",Constants.NOT_DELETE);
+ if (ObjectUtils.isEmpty(organizationUnitAlarms)) {
+ QueryWrapper<VersionSensorUnit> queryVersionSensorUnitWrapper = new QueryWrapper<>();
+ queryVersionSensorUnitWrapper.eq("version_id", versionId);
+ queryVersionSensorUnitWrapper.eq("is_delete", Constants.NOT_DELETE);
List<VersionSensorUnit> versionSensorUnits = versionSensorUnitMapper.selectList(queryVersionSensorUnitWrapper);
- if(!ObjectUtils.isEmpty(versionSensorUnits)){
+ if (!ObjectUtils.isEmpty(versionSensorUnits)) {
for (VersionSensorUnit versionSensorUnit : versionSensorUnits) {
OrganizationUnitAlarm organizationUnitAlarm = new OrganizationUnitAlarm();
organizationUnitAlarm.setOrganizationId(orgId);
@@ -518,19 +514,19 @@
}
}
- private void deleteOrganizationUnitAlarm(Integer orgId,Integer versionId){
+ private void deleteOrganizationUnitAlarm(Integer orgId, Integer versionId) {
QueryWrapper<Device> queryOrganizationVersionWrapper = new QueryWrapper<>();
- queryOrganizationVersionWrapper.eq("organization_id",orgId);
- queryOrganizationVersionWrapper.eq("device_version_id",versionId);
- queryOrganizationVersionWrapper.eq("is_delete",Constants.NOT_DELETE);
+ queryOrganizationVersionWrapper.eq("organization_id", orgId);
+ queryOrganizationVersionWrapper.eq("device_version_id", versionId);
+ queryOrganizationVersionWrapper.eq("is_delete", Constants.NOT_DELETE);
List<Device> devices = deviceMapper.selectList(queryOrganizationVersionWrapper);
- if(ObjectUtils.isEmpty(devices)){//������������������������������������������������������
+ if (ObjectUtils.isEmpty(devices)) {//������������������������������������������������������
UpdateWrapper deleteWrapper = new UpdateWrapper();
- deleteWrapper.eq("organization_id",orgId);
- deleteWrapper.eq("version_id",versionId);
- deleteWrapper.eq("is_delete",Constants.NOT_DELETE);
- deleteWrapper.set("is_delete",Constants.DELETE);
- organizationUnitAlarmMapper.update(null,deleteWrapper);
+ deleteWrapper.eq("organization_id", orgId);
+ deleteWrapper.eq("version_id", versionId);
+ deleteWrapper.eq("is_delete", Constants.NOT_DELETE);
+ deleteWrapper.set("is_delete", Constants.DELETE);
+ organizationUnitAlarmMapper.update(null, deleteWrapper);
}
}
}
diff --git a/screen-manage/src/main/java/com/moral/api/util/AdjustDataUtils.java b/screen-manage/src/main/java/com/moral/api/util/AdjustDataUtils.java
index 36fdf60..1f1deba 100644
--- a/screen-manage/src/main/java/com/moral/api/util/AdjustDataUtils.java
+++ b/screen-manage/src/main/java/com/moral/api/util/AdjustDataUtils.java
@@ -1,10 +1,9 @@
package com.moral.api.util;
import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Component;
import org.springframework.util.ObjectUtils;
+import org.springframework.util.StringUtils;
import java.util.Date;
import java.util.HashMap;
@@ -15,66 +14,53 @@
import com.googlecode.aviator.AviatorEvaluator;
import com.googlecode.aviator.Expression;
import com.moral.api.entity.DeviceAdjustValue;
-import com.moral.api.service.DeviceService;
-import com.moral.constant.RedisConstants;
import com.moral.util.DateUtils;
@Slf4j
@Component
public class AdjustDataUtils {
-
- @Autowired
- private DeviceService deviceService;
-
- @Autowired
- private RedisTemplate redisTemplate;
-
- public Map<String, Object> adjust(Map<String, Object> deviceData) {
+ //���������������
+ public Map<String, Object> adjust(Map<String, Object> deviceData, Map<String, Object> adjustFormula, Map<String, Object> aqiMap) {
try {
Object dataTime = deviceData.get("DataTime");
- String mac = deviceData.get("mac").toString();
//���������������������������
long time = Math.round(new Double((String) dataTime) / 1000) * 1000L;
long finalTime = DateUtils.dataToTimeStampTime(new Date(time), DateUtils.HH_mm_ss_EN).getTime();
- //������������
- Map<String, Object> deviceInfo = deviceService.getDeviceByMac(mac);
- Map<String, Object> monitorPoint = (Map<String, Object>) deviceInfo.get("monitorPoint");
- Object areaCode = monitorPoint.get("areaCode");
- Object cityCode = monitorPoint.get("cityCode");
for (String key : deviceData.keySet()) {
if (!key.equals("mac") && !key.equals("time") && !key.equals("DataTime") && !key.equals("ver") && !key.contains("Flag")) {
//���������
Object measuredValue = deviceData.get(key);
- List<DeviceAdjustValue> adjustValues = (List<DeviceAdjustValue>) redisTemplate.opsForHash().get(RedisConstants.ADJUST + "_" + mac, key);
- if (ObjectUtils.isEmpty(adjustValues)) {
+ //������������������������
+ List<DeviceAdjustValue> sensorFormulas = (List<DeviceAdjustValue>) adjustFormula.get(key);
+ if (ObjectUtils.isEmpty(sensorFormulas)) {
deviceData.put(key, measuredValue);
continue;
}
//���������������������������������
- DeviceAdjustValue deviceAdjustValue = adjustValues.stream()
+ DeviceAdjustValue deviceAdjustValue = sensorFormulas.stream()
.filter(o -> o.getStartTime().getTime() <= finalTime && o.getEndTime().getTime() > finalTime)
.findFirst().get();
- String adjustValue = deviceAdjustValue.getValue();
- if (ObjectUtils.isEmpty(adjustValue)) {
+ String formula = deviceAdjustValue.getValue();
+ if (StringUtils.isEmpty(formula)) {
deviceData.put(key, measuredValue);
continue;
}
- Expression expression = AviatorEvaluator.compile(adjustValue);
+ Expression expression = AviatorEvaluator.compile(formula);
Map<String, Object> env = new HashMap<>();
- if (adjustValue.contains("aqi")) {
- Object aqiValue = redisTemplate.opsForHash().get("aqi_" + areaCode, key);
- if (ObjectUtils.isEmpty(aqiValue)) {
- aqiValue = redisTemplate.opsForHash().get("aqi_" + cityCode, key);
+ if (formula.contains("aqi")) {
+ Object aqiValue = null;
+ if (aqiMap != null) {
+ aqiValue = aqiMap.get(key);
}
env.put("aqi", ObjectUtils.isEmpty(aqiValue) ? 0F : Float.parseFloat((String) aqiValue));
}
- if (adjustValue.contains("vocs")) {
+ if (formula.contains("vocs")) {
Object vocsValue = ObjectUtils.isEmpty(deviceData.get("a99054")) ? 0F : deviceData.get("a99054");
env.put("vocs", vocsValue);
}
- if (adjustValue.contains("cel")) {
+ if (formula.contains("cel")) {
env.put("cel", Float.parseFloat((String) measuredValue));
}
//������
@@ -84,7 +70,6 @@
measuredValue = 0F;
}
deviceData.put(key, Double.parseDouble(String.format("%.3f", measuredValue)));
-
}
}
} catch (Exception e) {
@@ -93,5 +78,4 @@
}
return deviceData;
}
-
}
diff --git a/screen-manage/src/main/resources/application-dev.yml b/screen-manage/src/main/resources/application-dev.yml
index e81262e..16c7e70 100644
--- a/screen-manage/src/main/resources/application-dev.yml
+++ b/screen-manage/src/main/resources/application-dev.yml
@@ -92,11 +92,11 @@
enable:
auto:
commit: false
- servers: 192.168.0.16:9092,192.168.0.17:9092,192.168.0.18:9092
+ servers: 172.16.44.65:9092,172.16.44.67:9092,172.16.44.66:9092
session:
timeout: 6000
zookeeper:
- connect: 192.168.0.16:2181,192.168.0.17:2181,192.168.0.18:2181
+ connect: 172.16.44.65:2181,172.16.44.67:2181,172.16.44.66:2181
producer:
batch:
size: 4096
@@ -104,7 +104,7 @@
memory: 40960
linger: 1
retries: 0
- servers: 192.168.0.16:9092,192.168.0.17:9092,192.168.0.18:9092
+ servers: 172.16.44.65:9092,172.16.44.67:9092,172.16.44.66:9092
mvc:
interceptor:
exclude:
--
Gitblit v1.8.0