diff --git a/adc-da-sys/src/main/java/com/adc/da/sys/sarMenuStandard/service/impl/SarMenuStandardServiceImpl.java b/adc-da-sys/src/main/java/com/adc/da/sys/sarMenuStandard/service/impl/SarMenuStandardServiceImpl.java index 1ac03e29..29fa1c9d 100644 --- a/adc-da-sys/src/main/java/com/adc/da/sys/sarMenuStandard/service/impl/SarMenuStandardServiceImpl.java +++ b/adc-da-sys/src/main/java/com/adc/da/sys/sarMenuStandard/service/impl/SarMenuStandardServiceImpl.java @@ -112,12 +112,36 @@ public class SarMenuStandardServiceImpl extends ServiceImpl(); sarMenuQueryWrapper.eq("DIC_ID",dicId); sarMenuQueryWrapper.orderByAsc("DISPLAY_SEQ"); - sarMenuQueryWrapper.isNull("PARENT_ID"); +// sarMenuQueryWrapper.isNull("PARENT_ID"); List sarMenus=dao.selectList(sarMenuQueryWrapper); - for(SarMenuStandard sarMenu:sarMenus){ - sarMenu.setChildren(recursionGetChildren((sarMenu))); + List dtas=new ArrayList<>(); + List remove=new ArrayList<>(); + for (SarMenuStandard sarMenuStandard:sarMenus) { + if (null==sarMenuStandard.getParentId() ){ + dtas.add(sarMenuStandard); + remove.add(sarMenuStandard); + } } - return sarMenus; + sarMenus.removeAll(remove); + for(SarMenuStandard sarMenu:dtas){ + sarMenu.setChildren(recursionGetChildrens(sarMenu,sarMenus)); + } + + return dtas; + } + + private List recursionGetChildrens( SarMenuStandard Menu, List sarMenuStandards){ + List children=new ArrayList<>(); + sarMenuStandards.forEach(sarMenuStandard -> { + if (Menu.getId().equals(sarMenuStandard.getParentId())){ + children.add(sarMenuStandard); + } + }); + sarMenuStandards.removeAll(children); + for(SarMenuStandard sarMenu:children){ + sarMenu.setChildren(recursionGetChildrens(sarMenu,sarMenuStandards)); + } + return children; } /**