Pārlūkot izejas kodu

fix 修复权限问题
fix 修复设备切换医院时输注错乱的问题

A17404李放 3 gadi atpakaļ
vecāks
revīzija
04c01284a9

+ 2 - 1
nb-framework/src/main/java/com/nb/framework/web/service/impl/UserServiceImpl.java

@@ -31,6 +31,7 @@ import com.nb.system.service.ISysRoleService;
 import com.nb.system.service.ISysUserService;
 import com.nb.system.utils.CaptchaTool;
 import com.google.common.collect.Sets;
+import com.nb.system.utils.TenantUtil;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
 import org.springframework.stereotype.Service;
@@ -211,7 +212,7 @@ public class UserServiceImpl implements IUserService {
             LambdaQueryWrapper<SysMenu> queryWrapper = Wrappers.lambdaQuery();
             queryWrapper.eq(SysMenu::getStatus, StatusEnum.YES.getCode());
             queryWrapper.in(SysMenu::getMenuType, MenuTypeEnum.DIR.getCode(), MenuTypeEnum.MENU.getCode());
-            queryWrapper.eq(!SecurityUtil.isSys(),SysMenu::getTenantMenu,true);
+            queryWrapper.eq(!TenantUtil.isTuoRen(),SysMenu::getTenantMenu,true);
             sysMenuList = sysMenuService.list(queryWrapper);
         } else {
             sysMenuList = sysMenuService.listGrantMenuByUserId(sysUserBO.getId());

+ 5 - 0
nb-system/src/main/java/com/nb/aliyun/AliyunConsumerGroupService.java

@@ -4,6 +4,7 @@ import cn.hutool.core.text.CharSequenceUtil;
 import cn.hutool.json.JSONUtil;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.toolkit.IdWorker;
 import com.nb.aliyun.utils.Constants;
 import com.nb.aliyun.utils.EnumUtils;
 import com.nb.aliyun.utils.Items;
@@ -216,6 +217,10 @@ public class AliyunConsumerGroupService {
             }
             long entTime = System.currentTimeMillis();
             hospitalLog.setUseTime(entTime-startTime);
+            hospitalLog.setId(IdWorker.getIdStr());
+            if(CharSequenceUtil.isEmpty(hospitalLog.getTenantId())){
+                log.warn("日志【{}】医院为空,进行自动填充",JSONUtil.toJsonStr(hospitalLog));
+            }
             hospitalLogService.save(hospitalLog);
         }
 

+ 1 - 0
nb-system/src/main/java/com/nb/bus/registry/patient/ClusterPatientRegistry.java

@@ -60,6 +60,7 @@ public class ClusterPatientRegistry implements PatientRegistry {
             if(patient==null){
                 patient=new BusPatientEntity();
                 patient.setOriginCode(patientCode);
+                patient.setCode(patientCode);
                 patient.setTenantId(hospitalId);
                 patient.setId(IdWorker.getIdStr());
 

+ 3 - 5
nb-system/src/main/java/com/nb/bus/websocket/listener/DeviceInfoListener.java

@@ -22,7 +22,7 @@ import com.nb.bus.service.*;
 import com.nb.bus.utils.WsPublishUtils;
 import com.nb.common.util.ExceptionUtil;
 import lombok.AllArgsConstructor;
-import org.slf4j.Logger;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.context.event.EventListener;
 import org.springframework.stereotype.Component;
 import org.springframework.transaction.annotation.Transactional;
@@ -45,9 +45,9 @@ import java.util.function.Supplier;
  */
 @Component
 @AllArgsConstructor
+@Slf4j
 public class DeviceInfoListener {
 
-    private static final Logger log = org.slf4j.LoggerFactory.getLogger(DeviceInfoListener.class);
     private final DeviceRegistry deviceRegistry;
 
     private final LocalBusDeviceAlarmService alarmService;
@@ -190,13 +190,10 @@ public class DeviceInfoListener {
     }
 
     private void init(BusDeviceRunningEntity device) {
-        String deviceId = device.getDeviceId();
         //默认格式化住院号=设备上传住院号
         device.setFormatPatientCode(device.getPatientCode());
-        DeviceOperator deviceOperator = deviceRegistry.getOperator(deviceId);
         device.setMonitorType(true);
         device.setUploadTime(device.getUploadTime()==null?new Date():device.getUploadTime());
-
         //将设备撤泵标志去除
         device.setIsUndo(false);
 
@@ -331,6 +328,7 @@ public class DeviceInfoListener {
                 deviceOperator.setClassification(device.getClassification());
                 deviceOperator.setStartTime(infusionHistory.getStartTime());
                 deviceOperator.setContinueDose(device.getContinueDose());
+                deviceOperator.setInfusionTenantId(device.getTenantId());
             }
             patientOperator.setExist(true);
             return null;

+ 0 - 7
nb-system/src/main/java/com/nb/system/controller/SysRoleController.java

@@ -128,13 +128,6 @@ public class SysRoleController {
      */
     @GetMapping("/listRoleMenus")
     public R listRoleMenus(@RequestParam String roleId) {
-        if(SecurityUtil.isSuperAdmin()){
-            LambdaQueryWrapper<SysMenu> queryWrapper = Wrappers.lambdaQuery();
-            queryWrapper.eq(SysMenu::getStatus, StatusEnum.YES.getCode());
-            queryWrapper.eq(!SecurityUtil.isSys(),SysMenu::getTenantMenu, true);
-            queryWrapper.in(SysMenu::getMenuType, MenuTypeEnum.DIR.getCode(), MenuTypeEnum.MENU.getCode());
-            return R.success(menuService.list(queryWrapper));
-        }
         return R.success(sysRoleService.listRoleMenus(roleId));
     }
 

+ 12 - 12
nb-system/src/main/java/com/nb/system/service/impl/SysMenuServiceImpl.java

@@ -29,6 +29,7 @@ import com.nb.system.service.ISysUserRoleService;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
 import com.google.common.collect.Sets;
+import com.nb.system.utils.TenantUtil;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
@@ -58,7 +59,7 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
     public IPage<SysMenu> page(Page reqPage, SysMenuQueryDTO req) {
         LambdaQueryWrapper<SysMenu> queryWrapper = Wrappers.lambdaQuery();
         queryWrapper.eq(Objects.nonNull(req.getParentId()), SysMenu::getParentId, req.getParentId());
-        queryWrapper.eq(!SecurityUtil.isSys(), SysMenu::getTenantMenu, true);
+        queryWrapper.eq(!TenantUtil.isTuoRen(), SysMenu::getTenantMenu, true);
         queryWrapper.like(StrUtil.isNotBlank(req.getMenuName()), SysMenu::getMenuName, req.getMenuName());
         queryWrapper.orderByAsc(SysMenu::getSort);
         return this.page(reqPage, queryWrapper);
@@ -171,12 +172,9 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
     @Override
     public List<Tree<String>> listMenuTree() {
         List<SysMenu> sysMenuList=null;
-        if(SecurityUtil.isSys()){
-            sysMenuList = this.list();
-        }else {
-            sysMenuList=this.list(new QueryWrapper<SysMenu>().lambda().eq(SysMenu::getTenantMenu,true));
-        }
-
+        sysMenuList=this.list(new QueryWrapper<SysMenu>().
+                lambda().
+                eq(!TenantUtil.isTuoRen(),SysMenu::getTenantMenu,true));
         List treeNodeList = sysMenuList.stream().map(item -> {
             TreeNode treeNode = new TreeNode();
             treeNode.setId(item.getId().toString());
@@ -194,7 +192,8 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
 
     @Override
     public List<Tree<String>> selectMenuTreeAndExcludeNode(String nodeId) {
-        List<SysMenu> sysMenuList = this.list(Wrappers.lambdaQuery(SysMenu.class).ne(StrUtil.isNotBlank(nodeId), SysMenu::getId, nodeId));
+        List<SysMenu> sysMenuList = this.list(Wrappers.lambdaQuery(SysMenu.class).ne(StrUtil.isNotBlank(nodeId), SysMenu::getId, nodeId)
+                .eq(!TenantUtil.isTuoRen(),SysMenu::getTenantMenu,true));
         List treeNodeList = sysMenuList.stream().map(item -> {
             TreeNode treeNode = new TreeNode();
             treeNode.setId(item.getId().toString());
@@ -212,7 +211,9 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
 
     @Override
     public List<Tree<String>> selectMenuTree() {
-        List<SysMenu> sysMenuList = this.list();
+        List<SysMenu> sysMenuList = this.list(new QueryWrapper<SysMenu>()
+                .lambda()
+                .eq(!TenantUtil.isTuoRen(),SysMenu::getTenantMenu,true));
         List treeNodeList = sysMenuList.stream().map(item -> {
             TreeNode treeNode = new TreeNode();
             treeNode.setId(item.getId().toString());
@@ -246,7 +247,7 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
         LambdaQueryWrapper<SysMenu> queryWrapper = Wrappers.lambdaQuery();
         queryWrapper.eq(SysMenu::getMenuType, MenuTypeEnum.BUTTON.getCode());
         queryWrapper.eq(SysMenu::getStatus, StatusEnum.YES.getCode());
-//        queryWrapper.eq(!SecurityUtil.isSys(),SysMenu::getTenantMenu, true);
+        queryWrapper.eq(!TenantUtil.isTuoRen(),SysMenu::getTenantMenu, true);
         queryWrapper.in(SysMenu::getId, menuIds);
         List<SysMenu> sysMenuList = this.list(queryWrapper);
         return sysMenuList.stream().map(item -> item.getPermission()).collect(Collectors.toSet());
@@ -271,8 +272,7 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
         queryWrapper.eq(SysMenu::getStatus, StatusEnum.YES.getCode());
         queryWrapper.in(SysMenu::getMenuType, MenuTypeEnum.DIR.getCode(), MenuTypeEnum.MENU.getCode());
         queryWrapper.in(SysMenu::getId, menuIds);
-        //仅查看租户可见的菜单
-        queryWrapper.eq(!SecurityUtil.isSys(),SysMenu::getTenantMenu, true);
+        queryWrapper.eq(!TenantUtil.isTuoRen(),SysMenu::getTenantMenu,true);
         return this.list(queryWrapper);
     }
 

+ 20 - 4
nb-system/src/main/java/com/nb/system/service/impl/SysRoleServiceImpl.java

@@ -4,12 +4,15 @@ import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.nb.common.enums.MenuTypeEnum;
 import com.nb.common.enums.StatusEnum;
 import com.nb.common.exception.CustomException;
+import com.nb.common.util.SecurityUtil;
 import com.nb.system.common.dto.SysRoleAddDTO;
 import com.nb.system.common.dto.SysRoleAssignMenuDTO;
 import com.nb.system.common.dto.SysRoleEditDTO;
@@ -18,6 +21,7 @@ import com.nb.system.entity.*;
 import com.nb.system.mapper.SysRoleMapper;
 import com.nb.system.service.*;
 import com.google.common.collect.Lists;
+import com.nb.system.utils.TenantUtil;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -168,10 +172,22 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
 
     @Override
     public List<SysMenu> listRoleMenus(String roleId) {
-        List<SysRoleMenu> sysRoleMenuList = sysRoleMenuService.list(Wrappers.lambdaQuery(SysRoleMenu.class).eq(SysRoleMenu::getRoleId, roleId));
-        if (CollUtil.isNotEmpty(sysRoleMenuList)) {
-            List<Long> menuIds = sysRoleMenuList.stream().map(SysRoleMenu::getMenuId).collect(Collectors.toList());
-            return sysMenuService.listByIds(menuIds);
+        QueryWrapper<SysMenu> queryWrapper = new QueryWrapper<>();
+        SysRole role = this.getById(roleId);
+        //系统级医院
+        if(!TenantUtil.isTuoRen()){
+            queryWrapper.lambda().eq(SysMenu::getTenantMenu,true);
+        }
+        if (role.getRoleCode().contains("admin")) {
+            queryWrapper.lambda().eq(SysMenu::getStatus, StatusEnum.YES.getCode());
+            queryWrapper.lambda().in(SysMenu::getMenuType, MenuTypeEnum.DIR.getCode(), MenuTypeEnum.MENU.getCode());
+            return sysMenuService.list(queryWrapper);
+        }else {
+            List<SysRoleMenu> sysRoleMenuList = sysRoleMenuService.list(Wrappers.lambdaQuery(SysRoleMenu.class).eq(SysRoleMenu::getRoleId, roleId));
+            if (CollUtil.isNotEmpty(sysRoleMenuList)) {
+                List<Long> menuIds = sysRoleMenuList.stream().map(SysRoleMenu::getMenuId).collect(Collectors.toList());
+                return sysMenuService.list(queryWrapper.lambda().in(SysMenu::getId,menuIds));
+            }
         }
         return new ArrayList<>();
     }

+ 19 - 0
nb-system/src/main/java/com/nb/system/utils/TenantUtil.java

@@ -0,0 +1,19 @@
+package com.nb.system.utils;
+
+import cn.dev33.satoken.spring.SpringMVCUtil;
+import cn.hutool.core.util.ObjectUtil;
+
+/**
+ * @author lifang
+ * @version 1.0.0
+ * @ClassName TeantUtil.java
+ * @Description TODO
+ * @createTime 2022年07月06日 13:59:00
+ */
+public class TenantUtil {
+    public static boolean isTuoRen(){
+        Object tenantId = SpringMVCUtil.getRequest().getAttribute("tenantId");
+        return ObjectUtil.equals(tenantId,"1");
+    }
+
+}