From 4ad23e84972f60fd0c3bdd495123b9e4c05a8436 Mon Sep 17 00:00:00 2001 From: luyie Date: Wed, 23 Sep 2026 11:08:46 +0800 Subject: [PATCH] =?UTF-8?q?update:=E7=AB=99=E7=82=B9=E5=88=97=E8=A1=A8dept?= =?UTF-8?q?Id=E4=B8=8D=E4=B8=BA=E7=A9=BA=E6=97=B6=E5=8F=96=E5=85=B6?= =?UTF-8?q?=E5=8F=8A=E5=AD=90=E9=83=A8=E9=97=A8=E4=B8=ADstationId=E4=B8=8D?= =?UTF-8?q?=E4=B8=BA=E7=A9=BA=E7=9A=84=E6=9C=BA=E6=9E=84id?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../station/service/impl/StationServiceImpl.java | 33 ++++++++++++++++++++-- 1 file changed, 31 insertions(+), 2 deletions(-) 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