From 3ace7d18fcc751628c221cc3a4db1366d93b60a9 Mon Sep 17 00:00:00 2001 From: lijiarao Date: Sat, 14 Sep 2024 16:33:57 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E6=8B=86=E5=88=86=E7=BB=93=E6=9E=9C?= =?UTF-8?q?=E7=BC=96=E8=BE=91=20=E7=9B=AE=E5=BD=95=E5=BE=80=E6=8B=96?= =?UTF-8?q?=E5=8A=A8=E5=90=8E=E5=8F=B3=E4=BE=A7=E5=86=85=E5=AE=B9=E6=8E=92?= =?UTF-8?q?=E5=BA=8F=E6=B2=A1=E6=9C=89=E4=B8=80=E8=B5=B7=E6=9B=B4=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mapper/SarFileSplitMenuEOMapper.java | 2 +- .../mapper/xml/SarFileSplitMenuEOMapper.xml | 4 +- .../impl/SarFileSplitMenuEOServiceImpl.java | 70 +++++++------------ 3 files changed, 28 insertions(+), 48 deletions(-) diff --git a/laws-modules/src/main/java/com/jero/modules/split/mapper/SarFileSplitMenuEOMapper.java b/laws-modules/src/main/java/com/jero/modules/split/mapper/SarFileSplitMenuEOMapper.java index 9b509d04..e302fecf 100644 --- a/laws-modules/src/main/java/com/jero/modules/split/mapper/SarFileSplitMenuEOMapper.java +++ b/laws-modules/src/main/java/com/jero/modules/split/mapper/SarFileSplitMenuEOMapper.java @@ -74,7 +74,7 @@ public interface SarFileSplitMenuEOMapper extends BaseMapper SarFileSplitMenuEO findById(String id); - List findLastByParentId(@Param("parentId") String parentId, @Param("displaySeq") Long displaySeq); + List findLastByParentId(@Param("parentId") String parentId, @Param("displaySeq") Long displaySeq, @Param("sourceIdList") List sourceIdList); List queryByGTDisplaySeq(@Param("infoId") String infoId, @Param("displaySeq") Long displaySeq); diff --git a/laws-modules/src/main/java/com/jero/modules/split/mapper/xml/SarFileSplitMenuEOMapper.xml b/laws-modules/src/main/java/com/jero/modules/split/mapper/xml/SarFileSplitMenuEOMapper.xml index 85827283..c9ffbff0 100644 --- a/laws-modules/src/main/java/com/jero/modules/split/mapper/xml/SarFileSplitMenuEOMapper.xml +++ b/laws-modules/src/main/java/com/jero/modules/split/mapper/xml/SarFileSplitMenuEOMapper.xml @@ -378,7 +378,9 @@ and display_seq > #{displaySeq} - + + #{item} + order by display_seq diff --git a/laws-modules/src/main/java/com/jero/modules/split/service/impl/SarFileSplitMenuEOServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/split/service/impl/SarFileSplitMenuEOServiceImpl.java index b7955d48..4e31bfa1 100644 --- a/laws-modules/src/main/java/com/jero/modules/split/service/impl/SarFileSplitMenuEOServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/split/service/impl/SarFileSplitMenuEOServiceImpl.java @@ -377,54 +377,32 @@ public class SarFileSplitMenuEOServiceImpl extends ServiceImpl sourceIdList = Arrays.asList(sourceIds.split(",")); + // 获取要移动到的层级的最后一个 的排序值 + List lastMenuList = getLastMenu(parentMenu.getId(),displaySeq,sourceIdList); - List lastMenuList; - //是否是放到最后 - boolean equals = Objects.equals(menuDisplaySeq, displaySeq); - if (equals){ - // 获取要移动到的层级的最后一个 的排序值 - lastMenuList = getLastMenu(parentMenu.getId(),null); - int size = lastMenuList.size(); - for (int i = 0; i < size; i++) { - SarFileSplitMenuEO sarFileSplitMenuEO = lastMenuList.get(i); - sarFileSplitMenuEO.setDisplaySeq(menuDisplaySeq+i+1); - baseMapper.updateByPrimaryKeySelective(sarFileSplitMenuEO); - } - if(displaySeq == 0){ - displaySeq = menuDisplaySeq; - } - for (int i = 0; i < sourceIdList.size(); i++) { - String sourceId = sourceIdList.get(i); - // 要移动的节点信息 - SarFileSplitMenuEO sarFileSplitMenuEO = baseMapper.findById(sourceId); - sarFileSplitMenuEO.setParentId(parentId); - sarFileSplitMenuEO.setDisplaySeq(displaySeq+size+i+1); - baseMapper.updateByPrimaryKeySelective(sarFileSplitMenuEO); - } - }else { - // 获取要移动到的层级的最后一个 的排序值 - lastMenuList = getLastMenu(parentMenu.getId(),displaySeq); - int size = sourceIdList.size(); - for (SarFileSplitMenuEO sarFileSplitMenuEO : lastMenuList) { - Long displaySeq1 = sarFileSplitMenuEO.getDisplaySeq(); - sarFileSplitMenuEO.setDisplaySeq(displaySeq1+size); - baseMapper.updateByPrimaryKeySelective(sarFileSplitMenuEO); - } - if(displaySeq == 0){ - displaySeq = parentMenu.getDisplaySeq(); - } - for (int i = 0; i < sourceIdList.size(); i++) { - String sourceId = sourceIdList.get(i); - // 要移动的节点信息 - SarFileSplitMenuEO sarFileSplitMenuEO = baseMapper.findById(sourceId); - sarFileSplitMenuEO.setParentId(parentId); - sarFileSplitMenuEO.setDisplaySeq(displaySeq+i+1); - baseMapper.updateByPrimaryKeySelective(sarFileSplitMenuEO); - } + if(displaySeq == 0){ + displaySeq = parentMenu.getDisplaySeq(); } + // 要移动的节点所有子集(包括本身) + List sarFileSplitMenuEO1List = new ArrayList<>(); + for (int i = 0; i < sourceIdList.size(); i++) { + String sourceId = sourceIdList.get(i); + // 要移动的节点信息 + SarFileSplitMenuEO sarFileSplitMenuEO = baseMapper.findById(sourceId); + sarFileSplitMenuEO.setParentId(parentId); + sarFileSplitMenuEO1List.add(sarFileSplitMenuEO); + } + sarFileSplitMenuEO1List.addAll(lastMenuList); + List allList = new ArrayList<>(); + getChildren(allList, sarFileSplitMenuEO1List); + + for (int i = 0; i < allList.size(); i++) { + SarFileSplitMenuEO sarFileSplitMenuEO = allList.get(i); + sarFileSplitMenuEO.setDisplaySeq(displaySeq+i+1); + baseMapper.updateByPrimaryKeySelective(sarFileSplitMenuEO); + } //this.updateBatchById(updateList); // 要移动的节点所有子集(包括本身) @@ -472,8 +450,8 @@ public class SarFileSplitMenuEOServiceImpl extends ServiceImpl getLastMenu(String parentId, Long displaySeq) { - List lastByParentId = baseMapper.findLastByParentId(parentId, displaySeq); + public List getLastMenu(String parentId, Long displaySeq, List sourceIdList) { + List lastByParentId = baseMapper.findLastByParentId(parentId, displaySeq,sourceIdList); //if(sarFileSplitMenuEO1 != null){ // getLastMenu(sarFileSplitMenuEO1.getId()); //}