高效、简单、方便管理与维护的开源运维工单系统
ferry 工单系统介绍
ferry工单系统是一个集工单统计、任务钩子、RBAC权限管理、灵活配置流程与模版于一身的开源工单系统,当然也可以称之为工作流引擎。
权限控制:给予casbin的rbac权限控制开发,能非常灵活的控制左侧菜单及页面按钮,并且可以对api进行权限控制,避免可以通过类似与Postman的工具直接发送请求触发api操作的情况。
工单统计:对工单进行数据统计,便于以后对根据工单进行分析与调整。
任务钩子:目前支持在当前阶段离开时来触发任务钩子,进行任务的执行,当然后面会加入进入当前阶段的时候触发任务钩子,来执行任务,并且将表单数据,当成参数传递给任务,方便任务可以根据表单数据进行一系列的操作。
灵活配置流程及模版:通过后台管理,实现拖拖拽拽就能创建出一个完成的工作流和模版,并可以绑定模版。进行表单输入。
当然还有更多更好更妙的功能,比如:并行阶段处理,条件判断处理,会签功能,处理人实现变量管理等等。
还有已经排入日程的功能开发,比如:表单设计的子表单功能,加签功能,催办功能,多人可自认工单处理功能等等。
当然如果你觉得还有需要加的功能可以给作者留言,或者提交PR。
github: https://github.com/lanyulei/ferry
gitee: https://gitee.com/yllan/ferry
如果可以的话,github或者gitee上点上一个小小的star吧,一份支持,一份动力。
此项目为方便以后加入其他项目,因此代码结构是根据功能区分好的,比较适合做二次开发加入新的项目,例如作者后续就打算加入,CMDB,SQL审计平台等等。
权限控制
粒度非常大的权限控制,页面按钮都可准确控制,并且可对API进行访问控制。
首先先添加菜单及按钮数据。
然后就可通过角色进行权限控制了。
后端使用的casbin及自己维护的扩展表进行权限管理,前端按钮的展示则通过v-permisaction
来进行维护管理。
任务钩子
通过对每个阶段进行任务绑定来实现,流程中的任务执行。
同时可通过Web页面对任务进行管理和维护。
在流程中绑定任务。
灵活定制流程及模版
对流程和模版进行灵活的配置。
首先是流程。
然后设计模版。
工单统计(正在开发阶段)
目前统计的数据:
- 工单总数
- 待办工单总数
- 个人待办总数
- 本周工单统计,曲线图展示,包括工单总数,待办总数,已完成总数
- 本周工单数据提交排名
- 本周待办工单排名
- 本周完成工单排名
ferry工单系统就介绍到这了,更多功能就进Dome自己去演练一下吧。
开源不易,请用一个star表表心意感谢。
- 帆软FineReport如何使用程序数据集
- etcd:用于服务发现的键值存储系统
- 如何使用HTTP压缩优化服务器
- "org.jboss.netty.internal.LoggerConfigurator".DESCRIBED is already registered 的解决办法
- ASP.NET SignalR 高可用设计
- JavaScript 和asp.net配合编码字符串
- 3D游戏开发之UE4中的集合:TSet容器
- weblogic启动失败:Could not obtain the localhost address 解决办法
- 如何理解云计算?很简单,就像吃货想吃披萨了……
- .NET 2.0 中使用Active Directory 应用程序模式 (ADAM)
- struts2: 通过流输出实现exce导出
- Google的数据交换协议:GData (Google Data APIs Protocol)
- C# 内部类
- 四字母.com域名均以五位数结拍
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 基于docker快速搭建多节点Hadoop集群
- CSS简笔画:纯CSS绘制一辆婴儿车
- 分布式自增数据库ID
- 【STM32F429开发板用户手册】第27章 STM32F429的定时器应用之TIM1-TIM14的PWM实现
- 数据库基础开源学习教程-android 使用 litepal 操作本地数据库
- 红黑树——动态+静态图
- 一文读懂Python实现张量运算
- javascript之闭包基础了解
- Python中的多处理与多线程:新手简介
- Fortran中的陷阱-NAMELIST
- 当Excel遇到大数据问题,是时候用Python来拯救了
- PySCF程序包平均场计算的一些收敛技巧
- 你应该知道的10个Python文件系统方法
- 适合初学者的Python装饰器的简易教程
- 一起刷Leetcode第一篇,数组和字典的妙用