java开源后台管理系统完整源码,OA、工作流、可继承权限管理系统,前后端分离架构

个人开发的后台管理系统,基本包含了后台系统所需的基本功能,如用户、组织架构、权限、菜单等,集成了quartz、redis、elasticsearch、activiti等框架,为后期的深度开发提供支持。

源码地址:https://gitee.com/dream-factory/lanyu-public

介绍

基于vue和springboot的前后端分离项目,演示环境地址:https://www.zhoulang.site

试用账号:ql.wu

登录密码:111111

系统架构

  1. springboot、MybatisPlus作为基础框架。
  2. 使用JWT和Redis实现登录会话功能。
  3. 前端使用若依ui,并进行了修改,适应自身后台系统。

运行环境

软件版本
JDK1.8
Mysql5.7

功能简介

  1. 用户管理:对系统访问用户进行新增、修改、锁定、重置密码等管理。
  2. 组织架构管理:维护系统的部门、角色和用户的关系。
  3. 参数管理:对系统的关键参数进行配置,可以修改、开启或关闭系统功能。
  4. 菜单管理:配置前端动态路由菜单。
  5. 缓存信息:提供刷新系统缓存的接口。
  6. 系统安全策略:控制用户登录和密码安全,以及系统访问环境安全策略。
  7. 附件管理:管理系统中生成的附件,如用户头像,消息附件等。
  8. 黑名单:管理禁止访问系统的客户端ip地址。
  9. 权限管理 :对系统权限进行维护。
  10. 系统监控:记录系统操作日志。
  11. 定时任务管理:动态管理系统的任务调度。
  12. activiti工作流
  13. 消息管理系统:用户可以发送邮件和系统内消息

组织架构简介

系统中的组织架构分为部门角色用户 ,它们都属于组织架构对象,存放在一张系统组织架构表中,通过一个组织架构类型进行区分。它们之间通过一张组织架构关系表维护上下级树关系,用户放在部门或者角色的下级,部门下面可以新建子部门。不同角色之间是平级关系,没有上下级关系:

 为了提示组织架构对象查询的性能,系统启动时对组织架构对象的树结构进行了缓存,查询时直接去缓存树中进行递归,查找出所有子节点,或所有父节点。在进行组织结构关系修改时,系统会自动刷新缓存。组织架构菜单如下:

考虑到组织架构选择功能很多地方会使用到,我封装了前端的组织架构选择控件,可选择部门、角色、和用户:


菜单功能简介

系统将菜单分为四个种类:

菜单类型菜单说明
目录菜单所存放的目录
菜单实际能访问的菜单页面
接口后端提供的访问接口
按钮前端页面可见的按钮

这种四级菜单结构的设计,为菜单的权限提供了更细粒度的控制。

可以在菜单管理页面中直接查看到对应菜单授权的信息:


 权限系统简介

系统设计了一个通用的权限系统,不仅仅局限于菜单权限,系统只用一张权限表,就可以支持任意权限,不用再设计其他权限表。

用户自动继承上级部门或者角色的权限,也可拥有自身权限。

提供通一的权限查询接口,根据权限定义、权限类型、用户id,查询出对应权限。

以下以菜单权限为例:

 可以对部门进行菜单授权,则该部门下的用户自动拥有该部门的权限,蓝色文字代表直接对这个授权对象赋予的权限,黑色文字表示这个授权对象的权限是继承自上级对象。

界面提供一个清空自身权限按钮,点击会删除授权对象的所有自身权限,不影响继承权限。

假如部门下有100个用户,其中一个用户我们想单独取消某些用户权限,这时可以同时对用户进行单独授权,拒绝该菜单的权限,当菜单的checkbox为红色时,表示拒绝权限,当checkbox未选中时,表示没有该菜单的权限,当checkbox为选中状态时,表示拥有菜单权限。

注:用户给其他用户授权时,只能将自身拥有的权限授权给他人


引入Activiti工作流

1. bpmn-js流程在线设计器,可以在线新建并绘制流程保存到服务器

2. 流程发布与版本控制,重复发布后可以查看流程的历史版本

3. 流程发起、挂起、激活、终止,指派、增员、减员

4. 流程任务办理,系统提供了内置的处理页面,根据流程图配置动态展示审批按钮

  • 9
    点赞
  • 60
    收藏
    觉得还不错? 一键收藏
  • 17
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值