From 5c61ae2e2f4c73d45f0d2389bb317c00be24bd58 Mon Sep 17 00:00:00 2001 From: zhangheng <3226558941@qq.com> Date: Tue, 21 Jan 2025 15:52:44 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E7=AE=A1=E7=90=86=E5=88=A0?= =?UTF-8?q?=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SignPatientManageRouteNodeMapper.java | 8 ++++++++ .../impl/SignPatientManageRouteServiceImpl.java | 13 +++++++++---- .../SignPatientManageRouteNodeMapper.xml | 7 +++++++ 3 files changed, 24 insertions(+), 4 deletions(-) diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/signpatientmanageroutenode/SignPatientManageRouteNodeMapper.java b/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/signpatientmanageroutenode/SignPatientManageRouteNodeMapper.java index 3ba47d89..2d950ee9 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/signpatientmanageroutenode/SignPatientManageRouteNodeMapper.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/signpatientmanageroutenode/SignPatientManageRouteNodeMapper.java @@ -239,4 +239,12 @@ public interface SignPatientManageRouteNodeMapper { * @return SignPatientManageRouteNode */ List selectSameManageRouteNodeIdByRouteIds(List ids); + + /** + * 查询节点id的路径id + * + * @param ids + * @return Long + */ + List selectManageRouteIdByIds(Long[] ids); } diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/service/signpatientmanageroute/impl/SignPatientManageRouteServiceImpl.java b/postdischarge-manage/src/main/java/com/xinelu/manage/service/signpatientmanageroute/impl/SignPatientManageRouteServiceImpl.java index a36ed460..dc546114 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/service/signpatientmanageroute/impl/SignPatientManageRouteServiceImpl.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/service/signpatientmanageroute/impl/SignPatientManageRouteServiceImpl.java @@ -741,17 +741,22 @@ public class SignPatientManageRouteServiceImpl implements ISignPatientManageRout if (deleteNodeCount < 0) { return AjaxResult.error("删除失败,请联系管理员!"); } + List manageRouteIdByIds = signPatientManageRouteNodeMapper.selectManageRouteIdByIds(ids); //根据节点ids查询同路径的节点ids List signPatientManageRouteNodes = signPatientManageRouteNodeMapper.selectSameManageRouteNodeIdByNodeIds(ids); //无同级节点id List noSameLevelNodeIds = new ArrayList<>(); //有同级节点,且同级节点状态不为0,不删除上级路径 - for (Long aLong : ids) { - List collect = signPatientManageRouteNodes.stream().filter(Objects::nonNull).filter(item -> item.getId().equals(aLong)).collect(Collectors.toList()); + for (Long aLong : manageRouteIdByIds) { + List collect = signPatientManageRouteNodes.stream().filter(Objects::nonNull).filter(item -> item.getManageRouteId().equals(aLong)).collect(Collectors.toList()); if (CollectionUtils.isEmpty(collect) || collect.size() == 0) { noSameLevelNodeIds.add(aLong); } } + //都存在同级节点,返回,不删除其他数据 + if (CollectionUtils.isEmpty(noSameLevelNodeIds) || noSameLevelNodeIds.size() == 0) { + return AjaxResult.success(); + } //无同级节点,查询上级路径 signPatientManageRoutes 上级路径ids List signPatientManageRoutes = signPatientManageRouteMapper.selectRouteByNodeIds(noSameLevelNodeIds); if (CollectionUtils.isEmpty(signPatientManageRoutes) || signPatientManageRoutes.size() == 0) { @@ -764,9 +769,9 @@ public class SignPatientManageRouteServiceImpl implements ISignPatientManageRout //List patientManageRouteIds = new ArrayList<>(); //上级为主路径,查询是否有子路径。上级为子路径继续查询同级信息 for (SignPatientManageRoute signPatientManageRoute : signPatientManageRoutes) { - if (Objects.nonNull(signPatientManageRoute.getParentRouteId())) { + if (Objects.nonNull(signPatientManageRoute.getParentRouteId()) && signPatientManageRoute.getParentRouteId() != 0) { patientManageRouteIds.add(signPatientManageRoute.getId()); - } else { + } else if (Objects.isNull(signPatientManageRoute.getParentRouteId()) || signPatientManageRoute.getParentRouteId() == 0) { manageRouteIds.add(signPatientManageRoute.getId()); } } diff --git a/postdischarge-manage/src/main/resources/mapper/manage/signpatientmanageroutenode/SignPatientManageRouteNodeMapper.xml b/postdischarge-manage/src/main/resources/mapper/manage/signpatientmanageroutenode/SignPatientManageRouteNodeMapper.xml index 98d3f56c..a5bb0f00 100644 --- a/postdischarge-manage/src/main/resources/mapper/manage/signpatientmanageroutenode/SignPatientManageRouteNodeMapper.xml +++ b/postdischarge-manage/src/main/resources/mapper/manage/signpatientmanageroutenode/SignPatientManageRouteNodeMapper.xml @@ -1390,4 +1390,11 @@ #{id} + +