diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/station/service/impl/StationServiceImpl.java b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/station/service/impl/StationServiceImpl.java index 3c74d02..ee39559 100644 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/station/service/impl/StationServiceImpl.java +++ b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/station/service/impl/StationServiceImpl.java @@ -593,13 +593,42 @@ public class StationServiceImpl extends BaseServiceImpl getStationList(List authList, Long deptId, List types, Integer servrType, boolean make) { - // 取权限机构中已绑定站点的机构(stationId 不为空) - List refDepList = authList.stream().filter(o -> StringUtils.isNotBlank(o.getStationId())).map(Dept::getId).collect(Collectors.toList()); + List refDepList; + if (null != deptId) { + // 取此部门及其所有子部门中已绑定站点的机构(stationId 不为空) + List deptIds = new ArrayList<>(); + deptIds.add(deptId); + this.getChildDeptIds(authList, deptId, deptIds); + refDepList = authList.stream().filter(o -> deptIds.contains(o.getId()) && StringUtils.isNotBlank(o.getStationId())).map(Dept::getId).collect(Collectors.toList()); + } else { + // 取权限机构中已绑定站点的机构(stationId 不为空) + refDepList = authList.stream().filter(o -> StringUtils.isNotBlank(o.getStationId())).map(Dept::getId).collect(Collectors.toList()); + } // 获取水利站点(过滤其他站点类型) return this.getWaterList(refDepList, types, servrType, make); } /** + * 递归获取子机构id集合 + * + * @param departList + * @param deptId + * @param list + * @return + */ + private void getChildDeptIds(List departList, Long deptId, List list) { + if (null == deptId || CollectionUtil.isEmpty(departList)) { + return; + } + departList.forEach(dept -> { + if (deptId.equals(dept.getParentId())) { + list.add(dept.getId()); + getChildDeptIds(departList, dept.getId(), list); + } + }); + } + + /** * 获取参数类型站点(过滤其他站点类型) * * @param refDepList