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