From 8228b06f808840d95d58e4ad457e072800af33e6 Mon Sep 17 00:00:00 2001 From: jinpengyong <jpy123456> Date: Wed, 09 Mar 2022 11:35:00 +0800 Subject: [PATCH] 校准公式工具类修改 --- screen-api/src/main/java/com/moral/api/service/impl/DeviceServiceImpl.java | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 52 insertions(+), 7 deletions(-) diff --git a/screen-api/src/main/java/com/moral/api/service/impl/DeviceServiceImpl.java b/screen-api/src/main/java/com/moral/api/service/impl/DeviceServiceImpl.java index 3541861..3a68890 100644 --- a/screen-api/src/main/java/com/moral/api/service/impl/DeviceServiceImpl.java +++ b/screen-api/src/main/java/com/moral/api/service/impl/DeviceServiceImpl.java @@ -18,11 +18,12 @@ import java.util.ArrayList; +import java.util.Arrays; import java.util.HashMap; +import java.util.LinkedHashMap; import java.util.List; import java.util.Map; -import java.util.stream.Collectors; /** * <p> @@ -51,6 +52,20 @@ @Override public Map<String, Object> getSensorsByMac(Map<String, Object> params) { + List<String> sensorCodes = Arrays.asList(Constants.SENSOR_CODE_PM25 + , Constants.SENSOR_CODE_PM10 + , Constants.SENSOR_CODE_SO2 + , Constants.SENSOR_CODE_NO2 + , Constants.SENSOR_CODE_CO + , Constants.SENSOR_CODE_O3 + , Constants.SENSOR_CODE_TEMP + , "a01002" + , Constants.SENSOR_CODE_WIND_SPEED + , Constants.SENSOR_CODE_WIND_DIR + , "a01006" + , "a00e12" + ); + //������mac List<String> macs = (List<String>) params.remove("macs"); List<Map<String, Object>> elementLists = new ArrayList<>(); @@ -68,13 +83,21 @@ elementLists.add(map); } - Map<String, Object> map = elementLists.parallelStream() + Map<String, Object> map = elementLists.stream() .filter(elementList -> elementList.size() != 0) .reduce((a, b) -> { a.keySet().retainAll(b.keySet()); return a; }).orElse(new HashMap<>()); - return map; + Map<String, Object> result = new LinkedHashMap<>(); + sensorCodes.forEach(sensorCode -> { + Object o = map.remove(sensorCode); + if (o != null) { + result.put(sensorCode, o); + } + }); + result.putAll(map); + return result; } @Override @@ -166,11 +189,33 @@ @Override public List<Map<String, Object>> getDevicesByOrganizationId(Integer orgId) { //������������������mac - QueryWrapper<Device> queryWrapper = new QueryWrapper<>(); - queryWrapper.select("mac").eq("organization_id", orgId).eq("is_delete", Constants.NOT_DELETE); - List<Device> devices = deviceMapper.selectList(queryWrapper); + List macs = getMacsByOrganizationId(orgId); //���redis������������������������ - return devices.stream().map(device -> (Map<String, Object>) redisTemplate.opsForHash().get(RedisConstants.DEVICE, device.getMac())).collect(Collectors.toList()); + List<Map<String, Object>> result = new ArrayList<>(); + for (Object mac : macs) { + Map<String, Object> map = (Map<String, Object>) redisTemplate.opsForHash().get(RedisConstants.DEVICE, mac.toString()); + result.add(map); + } + return result; + } + + @Override + public List getMacsByOrganizationId(Integer organizationId) { + QueryWrapper<Device> queryWrapper = new QueryWrapper<>(); + queryWrapper.select("mac") + .eq("organization_id", organizationId) + .eq("is_delete", Constants.NOT_DELETE); + return deviceMapper.selectObjs(queryWrapper); + } + + @Override + public List getMacsByOrgIdAndRegionCode(Integer organizationId, Integer regionCode) { + QueryWrapper<Device> queryWrapper = new QueryWrapper<>(); + queryWrapper.select("mac") + .eq("organization_id", organizationId) + .eq("is_delete", Constants.NOT_DELETE) + .eq("town_code", regionCode); + return deviceMapper.selectObjs(queryWrapper); } private Device getDeviceByMacFromDB(String mac) { -- Gitblit v1.8.0