Przeglądaj źródła

Merge branch 'master' of huangrui/CostAccount into dev

lijiaxi 4 lat temu
rodzic
commit
007a21a1cd

+ 1 - 1
src/main/java/com/imed/costaccount/service/impl/HospProfitAndLossServiceImpl.java

@@ -280,7 +280,7 @@ public class HospProfitAndLossServiceImpl extends ServiceImpl<HospProfitAndLossM
     }
 
     /**
-     * 按分摊层级计算
+     * 按分摊层级计算
      *
      * @param hospId     医院id
      * @param reportForm 报表

+ 25 - 30
src/main/java/com/imed/costaccount/service/impl/MenuServiceImpl.java

@@ -70,7 +70,7 @@ public class MenuServiceImpl extends ServiceImpl<MenuMapper, Menu> implements Me
     public PageUtils selectList(Integer page, Integer pageSize, User user, String name) {
         List<Menu> list = this.list(
                 new LambdaQueryWrapper<Menu>().eq(Menu::getHospId, user.getHospId())
-                        .like(StrUtil.isNotBlank(name),Menu::getName,name)
+                        .like(StrUtil.isNotBlank(name), Menu::getName, name)
                         .orderByAsc(Menu::getOrderNum)
         );
 
@@ -176,39 +176,34 @@ public class MenuServiceImpl extends ServiceImpl<MenuMapper, Menu> implements Me
      */
     @Override
     public List<NavVO> getNav(User user) {
-        Long id = user.getId();
-        Long hospId = user.getHospId();
-        // TODO: 2021/8/5 超级管理员(切换人员操作)
-        List<Menu> list = baseMapper.getNav(id, hospId);
+        List<Menu> list = this.list(new LambdaQueryWrapper<Menu>().eq(Menu::getHospId, user.getHospId()).ne(Menu::getType, 2).orderByAsc(Menu::getOrderNum));
+        list.removeIf(i -> i.getType() != 0);
+        // 用户具体不同的是菜单不同
+        List<Menu> menus = baseMapper.getNav(user.getId(), user.getHospId());
+        list.addAll(menus);
         List<NavVO> navVOS = BeanUtil.convertList(list, NavVO.class);
-        log.info("拷贝后的list:{}", navVOS);
-//        List<NavVO> parentNavVOs = navVOS.stream().filter(i -> i.getParentId() == 0L).collect(Collectors.toList());
-        List<NavVO> parentNavVOs = baseMapper.getAllParentNav(id, hospId);
-        List<NavVO> navVOList = new ArrayList<>();
-        for (NavVO parentNavVO : parentNavVOs) {
-            List<NavVO> navs = this.getSon(parentNavVO, navVOS);
-            navVOList.addAll(navs);
-        }
-        navVOList.removeIf(next -> CollUtil.isEmpty(next.getChildren()));
-        navVOList = navVOList.stream().sorted((Comparator.comparingInt(NavVO::getOrderNum))).collect(Collectors.toList());
-        return navVOList;
+        List<NavVO> vos = navVOS.stream().filter(i -> i.getParentId() == 0)
+                .peek(o -> {
+                    List<NavVO> son = this.getSon(o, navVOS);
+                    if (CollUtil.isNotEmpty(son)) {
+                        o.setChildren(son);
+                    }
+                })
+                .collect(Collectors.toList());
+        // 移除目录下菜单为空的层级
+        vos.removeIf(next -> CollUtil.isEmpty(next.getChildren()));
+        return vos;
     }
 
     private List<NavVO> getSon(NavVO parentNavVO, List<NavVO> list) {
-        List<NavVO> navVOs = new ArrayList<>();
-        navVOs.add(parentNavVO);
-        for (NavVO nav : list) {
-            if (parentNavVO.getMenuId().equals(nav.getParentId())) {
-                List<NavVO> children = parentNavVO.getChildren();
-                if (CollUtil.isEmpty(children)) {
-                    children = new ArrayList<>();
-                }
-                children.add(nav);
-                parentNavVO.setChildren(children);
-                this.getSon(nav, list);
-            }
-        }
-        return navVOs;
+        return list.stream().filter(o -> parentNavVO.getMenuId().equals(o.getParentId()))
+                .peek(i -> {
+                    List<NavVO> son = this.getSon(i, list);
+                    if (CollUtil.isNotEmpty(son)) {
+                        i.setChildren(son);
+                    }
+                })
+                .collect(Collectors.toList());
     }
 
 }

+ 1 - 1
src/main/resources/mapper/MenuMapper.xml

@@ -29,7 +29,7 @@
                                and su.hosp_id = #{hospId}
                                and ur.hosp_id = #{hospId}
                                and rm.hosp_id = #{hospId})
-          and sm.type != 3
+          and sm.type = 1
     </select>
     <select id="getAllParentNav" resultType="com.imed.costaccount.model.vo.NavVO">
         select *