浏览代码

修复空指针

hechunping 1 年之前
父节点
当前提交
4b8a316f49
共有 1 个文件被更改,包括 5 次插入3 次删除
  1. 5 3
      device-api-service/src/main/java/com/xy/service/DeviceInfoServiceImpl.java

+ 5 - 3
device-api-service/src/main/java/com/xy/service/DeviceInfoServiceImpl.java

@@ -889,9 +889,11 @@ public class DeviceInfoServiceImpl extends ServiceImpl<DeviceInfoMapper, DeviceI
         //根据点位ID查询管理员名字
         List<Long> placeIdList = deviceInfoList.stream().map(DeviceInfoDto.Vo::getPlaceId).distinct().filter(Objects::nonNull).collect(Collectors.toList());
         List<MercPlaceDto.Vo> mercPlaceList = mercPlaceService.list(new MercPlaceDto.ListDto().setIds(placeIdList)).getData();
-        Map<Long, String> mercPlaceMap = mercPlaceList.stream().collect(Collectors.toMap(i -> i.getId(), i -> i.getAdminName()));
-        deviceInfoList.forEach(i -> i.setAdminName(mercPlaceMap.get(i.getPlaceId())));
-
+        if(Emptys.check(mercPlaceList)){
+            //Map<Long, String> mercPlaceMap = mercPlaceList.stream().collect(Collectors.toMap(i -> i.getId(), i -> i.getAdminName()));
+            Map<Long, String> mercPlaceMap = mercPlaceList.stream().collect(HashMap::new,(map,item) -> map.put(item.getId(),item.getAdminName()),HashMap::putAll);
+            deviceInfoList.forEach(i -> i.setAdminName(mercPlaceMap.get(i.getPlaceId())));
+        }
         //没有管理员的的设置默认值
         deviceInfoList.stream().filter(s -> s.getAdminName() == null).forEach(s -> s.setAdminName("未分配管理员"));
         List<String> adminNameList = deviceInfoList.stream().map(DeviceInfoDto.Vo::getAdminName).distinct().collect(Collectors.toList());