chenying2100 3 mesi fa
parent
commit
b657f418b3
21 ha cambiato i file con 207 aggiunte e 43 eliminazioni
  1. 8 8
      ruoyi-admin/src/main/resources/application-dev.yml
  2. 1 1
      ruoyi-admin/src/main/resources/application-prod.yml
  3. 2 2
      ruoyi-admin/src/main/resources/application.yml
  4. 9 0
      ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/constant/BizConst.java
  5. 1 1
      ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/constant/TenantConstants.java
  6. 42 24
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysDeptController.java
  7. 12 0
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysDictDataController.java
  8. 5 0
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysDept.java
  9. 12 0
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysRole.java
  10. 5 0
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysDeptBo.java
  11. 5 0
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysRoleBo.java
  12. 4 1
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysDeptVo.java
  13. 10 0
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysRoleVo.java
  14. 2 0
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysDeptService.java
  15. 7 0
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysDictDataService.java
  16. 34 5
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysDeptServiceImpl.java
  17. 30 0
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysDictDataServiceImpl.java
  18. 13 1
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysRoleServiceImpl.java
  19. 1 0
      ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysRoleMapper.xml
  20. 3 0
      script/sql/ry_vue_5.X.sql
  21. 1 0
      script/sql/ry_workflow.sql

+ 8 - 8
ruoyi-admin/src/main/resources/application-dev.yml

@@ -1,7 +1,7 @@
 --- # 监控中心配置
 spring.boot.admin.client:
   # 增加客户端开关
-  enabled: true
+  enabled: false
   url: http://localhost:9090/admin
   instance:
     service-host-type: IP
@@ -13,7 +13,7 @@ spring.boot.admin.client:
 
 --- # snail-job 配置
 snail-job:
-  enabled: true
+  enabled:  false
   # 需要在 SnailJob 后台组管理创建对应名称的组,然后创建任务的时候选择对应的组,才能正确分派任务
   group: "ruoyi_group"
   # SnailJob 接入验证令牌 详见 script/sql/ry_job.sql `sj_group_config` 表
@@ -49,9 +49,9 @@ spring:
           driverClassName: com.mysql.cj.jdbc.Driver
           # jdbc 所有参数配置参考 https://lionli.blog.csdn.net/article/details/122018562
           # rewriteBatchedStatements=true 批处理优化 大幅提升批量插入更新删除性能(对数据库有性能损耗 使用批量操作应考虑性能问题)
-          url: jdbc:mysql://localhost:3306/ry-vue?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true
+          url: jdbc:mysql://192.168.1.146:3306/wkx_his?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true
           username: root
-          password: root
+          password: P@ssw0rd
 #        # 从库数据源
 #        slave:
 #          lazy: true
@@ -98,13 +98,13 @@ spring:
 spring.data:
   redis:
     # 地址
-    host: localhost
+    host: 192.168.1.146
     # 端口,默认为6379
     port: 6379
     # 数据库索引
-    database: 0
+    database: 14
     # redis 密码必须配置
-    password: ruoyi123
+#    password: ruoyi123
     # 连接超时时间
     timeout: 10s
     # 是否开启ssl
@@ -121,7 +121,7 @@ redisson:
   # 单节点配置
   singleServerConfig:
     # 客户端名称 不能用中文
-    clientName: RuoYi-Vue-Plus
+    clientName: wkx-his
     # 最小空闲连接数
     connectionMinimumIdleSize: 8
     # 连接池大小

+ 1 - 1
ruoyi-admin/src/main/resources/application-prod.yml

@@ -124,7 +124,7 @@ redisson:
   # 单节点配置
   singleServerConfig:
     # 客户端名称 不能用中文
-    clientName: RuoYi-Vue-Plus
+    clientName: wkx-his
     # 最小空闲连接数
     connectionMinimumIdleSize: 32
     # 连接池大小

+ 2 - 2
ruoyi-admin/src/main/resources/application.yml

@@ -52,7 +52,7 @@ user:
 # Spring配置
 spring:
   application:
-    name: RuoYi-Vue-Plus
+    name: wkx-his
   threads:
     # 开启虚拟线程 仅jdk21可用
     virtual:
@@ -263,7 +263,7 @@ websocket:
 --- # warm-flow工作流配置
 warm-flow:
   # 是否开启工作流,默认true
-  enabled: true
+  enabled: false
   # 是否开启设计器ui
   ui: true
   # 默认Authorization,如果有多个token,用逗号分隔

+ 9 - 0
ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/constant/BizConst.java

@@ -0,0 +1,9 @@
+package org.dromara.common.core.constant;
+
+/**
+ * @author chenYing
+ * @date 2025-06-24 16:12:13
+ **/
+public interface BizConst {
+    String HOSPITAL_ROLE_TYPE = "hospital_role_type";
+}

+ 1 - 1
ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/constant/TenantConstants.java

@@ -15,7 +15,7 @@ public interface TenantConstants {
     /**
      * 超级管理员角色 roleKey
      */
-    String SUPER_ADMIN_ROLE_KEY = "superadmin";
+    String SUPER_ADMIN_ROLE_KEY = "SuperAdmin";
 
     /**
      * 租户管理员角色 roleKey

+ 42 - 24
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysDeptController.java

@@ -14,12 +14,20 @@ import org.dromara.system.domain.vo.SysDeptVo;
 import org.dromara.system.service.ISysDeptService;
 import org.dromara.system.service.ISysPostService;
 import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
 
 import java.util.List;
 
 /**
- * 部门信息
+ * 科室信息
  *
  * @author Lion Li
  */
@@ -33,7 +41,7 @@ public class SysDeptController extends BaseController {
     private final ISysPostService postService;
 
     /**
-     * 获取部门列表
+     * 获取科室列表
      */
     @SaCheckPermission("system:dept:list")
     @GetMapping("/list")
@@ -43,9 +51,19 @@ public class SysDeptController extends BaseController {
     }
 
     /**
-     * 查询部门列表(排除节点)
+     * 状态修改
+     */
+    @SaCheckPermission("system:dept:edit")
+    @Log(title = "科室管理", businessType = BusinessType.UPDATE)
+    @PutMapping("/changeStatus")
+    public R<Void> changeStatus(@RequestBody SysDeptBo deptBo) {
+        return toAjax(deptService.updateDeptStatus(deptBo));
+    }
+
+    /**
+     * 查询科室列表(排除节点)
      *
-     * @param deptId 部门ID
+     * @param deptId 科室ID
      */
     @SaCheckPermission("system:dept:list")
     @GetMapping("/list/exclude/{deptId}")
@@ -57,9 +75,9 @@ public class SysDeptController extends BaseController {
     }
 
     /**
-     * 根据部门编号获取详细信息
+     * 根据科室编号获取详细信息
      *
-     * @param deptId 部门ID
+     * @param deptId 科室ID
      */
     @SaCheckPermission("system:dept:query")
     @GetMapping(value = "/{deptId}")
@@ -69,67 +87,67 @@ public class SysDeptController extends BaseController {
     }
 
     /**
-     * 新增部门
+     * 新增科室
      */
     @SaCheckPermission("system:dept:add")
-    @Log(title = "部门管理", businessType = BusinessType.INSERT)
+    @Log(title = "科室管理", businessType = BusinessType.INSERT)
     @PostMapping
     public R<Void> add(@Validated @RequestBody SysDeptBo dept) {
         if (!deptService.checkDeptNameUnique(dept)) {
-            return R.fail("新增部门'" + dept.getDeptName() + "'失败,部门名称已存在");
+            return R.fail("新增科室'" + dept.getDeptName() + "'失败,科室名称已存在");
         }
         return toAjax(deptService.insertDept(dept));
     }
 
     /**
-     * 修改部门
+     * 修改科室
      */
     @SaCheckPermission("system:dept:edit")
-    @Log(title = "部门管理", businessType = BusinessType.UPDATE)
+    @Log(title = "科室管理", businessType = BusinessType.UPDATE)
     @PutMapping
     public R<Void> edit(@Validated @RequestBody SysDeptBo dept) {
         Long deptId = dept.getDeptId();
         deptService.checkDeptDataScope(deptId);
         if (!deptService.checkDeptNameUnique(dept)) {
-            return R.fail("修改部门'" + dept.getDeptName() + "'失败,部门名称已存在");
+            return R.fail("修改科室'" + dept.getDeptName() + "'失败,科室名称已存在");
         } else if (dept.getParentId().equals(deptId)) {
-            return R.fail("修改部门'" + dept.getDeptName() + "'失败,上级部门不能是自己");
+            return R.fail("修改科室'" + dept.getDeptName() + "'失败,上级科室不能是自己");
         } else if (StringUtils.equals(SystemConstants.DISABLE, dept.getStatus())) {
             if (deptService.selectNormalChildrenDeptById(deptId) > 0) {
-                return R.fail("该部门包含未停用的子部门!");
+                return R.fail("该科室包含未停用的子科室!");
             } else if (deptService.checkDeptExistUser(deptId)) {
-                return R.fail("该部门下存在已分配用户,不能禁用!");
+                return R.fail("该科室下存在已分配用户,不能禁用!");
             }
         }
         return toAjax(deptService.updateDept(dept));
     }
 
     /**
-     * 删除部门
+     * 删除科室
      *
-     * @param deptId 部门ID
+     * @param deptId 科室ID
      */
     @SaCheckPermission("system:dept:remove")
-    @Log(title = "部门管理", businessType = BusinessType.DELETE)
+    @Log(title = "科室管理", businessType = BusinessType.DELETE)
     @DeleteMapping("/{deptId}")
     public R<Void> remove(@PathVariable Long deptId) {
         if (deptService.hasChildByDeptId(deptId)) {
-            return R.warn("存在下级部门,不允许删除");
+            return R.warn("存在下级科室,不允许删除");
         }
         if (deptService.checkDeptExistUser(deptId)) {
-            return R.warn("部门存在用户,不允许删除");
+            return R.warn("科室存在用户,不允许删除");
         }
         if (postService.countPostByDeptId(deptId) > 0) {
-            return R.warn("部门存在岗位,不允许删除");
+            return R.warn("科室存在岗位,不允许删除");
         }
         deptService.checkDeptDataScope(deptId);
         return toAjax(deptService.deleteDeptById(deptId));
     }
 
     /**
-     * 获取部门选择框列表
+     * 获取科室选择框列表
      *
-     * @param deptIds 部门ID串
+     * @param deptIds 科室ID串
      */
     @SaCheckPermission("system:dept:query")
     @GetMapping("/optionselect")

+ 12 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysDictDataController.java

@@ -9,6 +9,7 @@ import org.dromara.common.core.domain.R;
 import org.dromara.common.mybatis.core.page.TableDataInfo;
 import org.dromara.common.log.enums.BusinessType;
 import org.dromara.common.excel.utils.ExcelUtil;
+import org.dromara.system.domain.SysDictData;
 import org.dromara.system.domain.bo.SysDictDataBo;
 import org.dromara.system.domain.vo.SysDictDataVo;
 import org.dromara.system.service.ISysDictDataService;
@@ -19,7 +20,9 @@ import org.springframework.web.bind.annotation.*;
 
 import jakarta.servlet.http.HttpServletResponse;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
+import java.util.Map;
 
 /**
  * 数据字典信息
@@ -44,6 +47,15 @@ public class SysDictDataController extends BaseController {
         return dictDataService.selectPageDictDataList(dictData, pageQuery);
     }
 
+    /**
+     * 查询字典数据列表
+     */
+    @SaCheckPermission("system:dict:list")
+    @GetMapping("/listByType")
+    public R<Map<String, List<SysDictDataVo>>> listByType(@RequestParam String dictType) {
+        return dictDataService.selectGroupByType(Arrays.stream(dictType.split(",")).toList());
+    }
+
     /**
      * 导出字典数据列表
      */

+ 5 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysDept.java

@@ -83,6 +83,11 @@ public class SysDept extends TenantEntity {
      */
     private String ancestors;
 
+    /**
+     * 科室描述
+     */
+    private String remark;
+
     /**
      * 子部门
      */

+ 12 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysRole.java

@@ -1,5 +1,6 @@
 package org.dromara.system.domain;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableLogic;
 import com.baomidou.mybatisplus.annotation.TableName;
@@ -31,6 +32,17 @@ public class SysRole extends TenantEntity {
      */
     private String roleName;
 
+    /**
+     * 角色类型
+     */
+    private Integer roleType;
+
+    /**
+     * 角色类型名称
+     */
+    @TableField(exist = false)
+    private String roleTypeName;
+
     /**
      * 角色权限
      */

+ 5 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysDeptBo.java

@@ -31,6 +31,11 @@ public class SysDeptBo extends BaseEntity {
      */
     private Long parentId;
 
+    /**
+     * 科室描述
+     */
+    private String remark;
+
     /**
      * 部门名称
      */

+ 5 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysRoleBo.java

@@ -42,6 +42,11 @@ public class SysRoleBo extends BaseEntity {
     @Size(min = 0, max = 100, message = "权限字符长度不能超过{max}个字符")
     private String roleKey;
 
+    /**
+     * 角色类型
+     */
+    private Integer roleType;
+
     /**
      * 显示顺序
      */

+ 4 - 1
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysDeptVo.java

@@ -32,7 +32,10 @@ public class SysDeptVo implements Serializable {
      */
     @ExcelProperty(value = "部门id")
     private Long deptId;
-
+    /**
+     * 科室描述
+     */
+    private String remark;
     /**
      * 父部门id
      */

+ 10 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysRoleVo.java

@@ -38,6 +38,16 @@ public class SysRoleVo implements Serializable {
     @ExcelProperty(value = "角色名称")
     private String roleName;
 
+    /**
+     * 角色类型
+     */
+    private Integer roleType;
+
+    /**
+     * 角色类型
+     */
+    private String roleTypeName;
+
     /**
      * 角色权限字符串
      */

+ 2 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysDeptService.java

@@ -127,6 +127,8 @@ public interface ISysDeptService {
      */
     int updateDept(SysDeptBo bo);
 
+    int updateDeptStatus(SysDeptBo bo);
+
     /**
      * 删除部门管理信息
      *

+ 7 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysDictDataService.java

@@ -1,11 +1,14 @@
 package org.dromara.system.service;
 
+import org.dromara.common.core.domain.R;
 import org.dromara.common.mybatis.core.page.PageQuery;
 import org.dromara.common.mybatis.core.page.TableDataInfo;
+import org.dromara.system.domain.SysDictData;
 import org.dromara.system.domain.bo.SysDictDataBo;
 import org.dromara.system.domain.vo.SysDictDataVo;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * 字典 业务层
@@ -17,6 +20,10 @@ public interface ISysDictDataService {
 
     TableDataInfo<SysDictDataVo> selectPageDictDataList(SysDictDataBo dictData, PageQuery pageQuery);
 
+    R<Map<String, SysDictDataVo>> selectMapByType(String type);
+
+    R<Map<String, List<SysDictDataVo>>> selectGroupByType(List<String> typeList);
+
     /**
      * 根据条件分页查询字典数据
      *

+ 34 - 5
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysDeptServiceImpl.java

@@ -4,7 +4,9 @@ import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.convert.Convert;
 import cn.hutool.core.lang.tree.Tree;
+import cn.hutool.core.util.ObjUtil;
 import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@@ -13,6 +15,7 @@ import lombok.RequiredArgsConstructor;
 import org.dromara.common.core.constant.CacheNames;
 import org.dromara.common.core.constant.SystemConstants;
 import org.dromara.common.core.domain.dto.DeptDTO;
+import org.dromara.common.core.enums.UserStatus;
 import org.dromara.common.core.exception.ServiceException;
 import org.dromara.common.core.service.DeptService;
 import org.dromara.common.core.utils.*;
@@ -311,13 +314,22 @@ public class SysDeptServiceImpl implements ISysDeptService, DeptService {
     @CacheEvict(cacheNames = CacheNames.SYS_DEPT_AND_CHILD, allEntries = true)
     @Override
     public int insertDept(SysDeptBo bo) {
-        SysDept info = baseMapper.selectById(bo.getParentId());
-        // 如果父节点不为正常状态,则不允许新增子节点
-        if (!SystemConstants.NORMAL.equals(info.getStatus())) {
-            throw new ServiceException("部门停用,不允许新增");
+        if (ObjUtil.isNull(bo.getParentId())) {
+            bo.setParentId(0L);
         }
+
         SysDept dept = MapstructUtils.convert(bo, SysDept.class);
-        dept.setAncestors(info.getAncestors() + StringUtils.SEPARATOR + dept.getParentId());
+        if (dept.getParentId() == 0L) {
+            dept.setAncestors(String.valueOf(0));
+        } else {
+            SysDept info = baseMapper.selectById(bo.getParentId());
+            // 如果父节点不为正常状态,则不允许新增子节点
+            if (!SystemConstants.NORMAL.equals(info.getStatus())) {
+                throw new ServiceException("部门停用,不允许新增");
+            }
+            dept.setAncestors(info.getAncestors() + StringUtils.SEPARATOR + dept.getParentId());
+        }
+
         return baseMapper.insert(dept);
     }
 
@@ -415,4 +427,21 @@ public class SysDeptServiceImpl implements ISysDeptService, DeptService {
         return baseMapper.deleteById(deptId);
     }
 
+    @Override
+    public int updateDeptStatus(SysDeptBo bo) {
+        if (StrUtil.isBlank(bo.getStatus())) {
+            throw new ServiceException("状态不能为空!");
+        }
+        if (ObjUtil.isNull(bo.getDeptId())) {
+            throw new ServiceException("ids不能为空!");
+        }
+        if (!UserStatus.OK.getCode().equals(bo.getStatus())
+            && !UserStatus.DISABLE.getCode().equals(bo.getStatus())) {
+            throw new ServiceException("状态值无效!");
+        }
+
+        return baseMapper.update(Wrappers.lambdaUpdate(SysDept.class)
+            .set(SysDept::getStatus, bo.getStatus())
+            .eq(SysDept::getDeptId, bo.getDeptId()));
+    }
 }

+ 30 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysDictDataServiceImpl.java

@@ -1,10 +1,13 @@
 package org.dromara.system.service.impl;
 
+import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.map.MapUtil;
 import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import org.dromara.common.core.constant.CacheNames;
+import org.dromara.common.core.domain.R;
 import org.dromara.common.core.utils.MapstructUtils;
 import org.dromara.common.core.utils.ObjectUtils;
 import org.dromara.common.mybatis.core.page.PageQuery;
@@ -21,7 +24,10 @@ import lombok.RequiredArgsConstructor;
 import org.springframework.cache.annotation.CachePut;
 import org.springframework.stereotype.Service;
 
+import java.util.Collections;
 import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * 字典 业务层处理
@@ -34,6 +40,30 @@ public class SysDictDataServiceImpl implements ISysDictDataService {
 
     private final SysDictDataMapper baseMapper;
 
+    @Override
+    public R<Map<String, List<SysDictDataVo>>> selectGroupByType(List<String> typeList) {
+        List<SysDictDataVo> dataList = baseMapper.selectVoList(Wrappers.lambdaQuery(SysDictData.class)
+            .select(SysDictData::getDictLabel, SysDictData::getDictSort, SysDictData::getDictValue, SysDictData::getDictType)
+            .in(SysDictData::getDictType, typeList).orderByAsc(SysDictData::getDictSort));
+        if (CollUtil.isEmpty(dataList)) {
+            return R.ok();
+        }
+
+        return R.ok(dataList.stream().collect(Collectors.groupingBy(k1 -> k1.getDictType())));
+    }
+
+    @Override
+    public R<Map<String, SysDictDataVo>> selectMapByType(String type) {
+        List<SysDictDataVo> dataList = baseMapper.selectVoList(Wrappers.lambdaQuery(SysDictData.class)
+            .select(SysDictData::getDictLabel, SysDictData::getDictSort, SysDictData::getDictValue, SysDictData::getDictType)
+            .eq(SysDictData::getDictType, type));
+        if (CollUtil.isEmpty(dataList)) {
+            return R.ok();
+        }
+
+        return R.ok(dataList.stream().collect(Collectors.toMap(k1 -> k1.getDictValue(), k2 -> k2, (k1, k2) -> k1)));
+    }
+
     @Override
     public TableDataInfo<SysDictDataVo> selectPageDictDataList(SysDictDataBo dictData, PageQuery pageQuery) {
         LambdaQueryWrapper<SysDictData> lqw = buildQueryWrapper(dictData);

+ 13 - 1
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysRoleServiceImpl.java

@@ -12,6 +12,7 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import lombok.RequiredArgsConstructor;
+import org.dromara.common.core.constant.BizConst;
 import org.dromara.common.core.constant.CacheNames;
 import org.dromara.common.core.constant.SystemConstants;
 import org.dromara.common.core.constant.TenantConstants;
@@ -29,11 +30,14 @@ import org.dromara.system.domain.SysRoleDept;
 import org.dromara.system.domain.SysRoleMenu;
 import org.dromara.system.domain.SysUserRole;
 import org.dromara.system.domain.bo.SysRoleBo;
+import org.dromara.system.domain.vo.SysDictDataVo;
 import org.dromara.system.domain.vo.SysRoleVo;
+import org.dromara.system.mapper.SysDictDataMapper;
 import org.dromara.system.mapper.SysRoleDeptMapper;
 import org.dromara.system.mapper.SysRoleMapper;
 import org.dromara.system.mapper.SysRoleMenuMapper;
 import org.dromara.system.mapper.SysUserRoleMapper;
+import org.dromara.system.service.ISysDictDataService;
 import org.dromara.system.service.ISysRoleService;
 import org.springframework.cache.annotation.CacheEvict;
 import org.springframework.stereotype.Service;
@@ -54,10 +58,18 @@ public class SysRoleServiceImpl implements ISysRoleService, RoleService {
     private final SysRoleMenuMapper roleMenuMapper;
     private final SysUserRoleMapper userRoleMapper;
     private final SysRoleDeptMapper roleDeptMapper;
+    private final ISysDictDataService sysDictDataService;
 
     @Override
     public TableDataInfo<SysRoleVo> selectPageRoleList(SysRoleBo role, PageQuery pageQuery) {
         Page<SysRoleVo> page = baseMapper.selectPageRoleList(pageQuery.build(), this.buildQueryWrapper(role));
+        Map<String, SysDictDataVo> dictDataMap = sysDictDataService.selectMapByType(BizConst.HOSPITAL_ROLE_TYPE).getData();
+        page.getRecords().forEach(r -> {
+            SysDictDataVo vo = dictDataMap.get(String.valueOf(r.getRoleType()));
+            if (ObjectUtil.isNotNull(vo)) {
+                r.setRoleTypeName(vo.getDictLabel());
+            }
+        });
         return TableDataInfo.build(page);
     }
 
@@ -82,7 +94,7 @@ public class SysRoleServiceImpl implements ISysRoleService, RoleService {
             .like(StringUtils.isNotBlank(bo.getRoleKey()), "r.role_key", bo.getRoleKey())
             .between(params.get("beginTime") != null && params.get("endTime") != null,
                 "r.create_time", params.get("beginTime"), params.get("endTime"))
-            .orderByAsc("r.role_sort").orderByAsc("r.create_time");
+            .orderByDesc("r.role_sort").orderByDesc("r.create_time");
         return wrapper;
     }
 

+ 1 - 0
ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysRoleMapper.xml

@@ -10,6 +10,7 @@
     <sql id="selectRoleVo">
         select distinct r.role_id,
                         r.role_name,
+                        r.role_type,
                         r.role_key,
                         r.role_sort,
                         r.data_scope,

+ 3 - 0
script/sql/ry_vue_5.X.sql

@@ -1,3 +1,6 @@
+create database wkx_his;
+use wkx_his;
+
 -- ----------------------------
 -- 第三方平台授权表
 -- ----------------------------

+ 1 - 0
script/sql/ry_workflow.sql

@@ -1,6 +1,7 @@
 -- ----------------------------
 -- 0、warm-flow-all.sql,地址:https://gitee.com/dromara/warm-flow/blob/master/sql/mysql/warm-flow-all.sql
 -- ----------------------------
+use wkx_his;
 CREATE TABLE `flow_definition`
 (
     `id`              bigint          NOT NULL COMMENT '主键id',