| | |
| | | |
| | | 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> |
| | |
| | | |
| | | @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<>(); |
| | |
| | | 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 |
| | |
| | | @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) { |