聊聊如何设计一款灵活配置、方便管理的工单系统

简单聊聊

在我们平时的工作中,会有很多时候需要跟其他同事进行协同办公,甚至需要跨部门合作,在这种情况下,我们就需要同事之间的沟通交流,而沟通过程中一句不合适的话,都会造成争吵,跨部门合作的时候,更加麻烦,因为对彼此都不熟悉,因此很难进行很好的沟通交流。

其实很多时候,我们的工作都是流程化,上一位同事处理完,下一位同事接着进行处理,在这种场景需求下就诞生了工单系统,将一个任务处理过程中,所涉及到的人,按照优先级排列,然后依次进行处理,处理过程中可进行注解,方便下一个处理人对之前处理结果的熟悉,并且处理完成后通过邮件或者其他通讯方式通知下一个人处理,依次类推,当处理完成后,通知工单申请人,工单已全部处理完成。

其实目前有一些现成的工单系统了,有开源的也有收费的,但是普遍的功能比较单一,不方便管理,当然肯定有我不知道的非常流弊的工单系统,只是在说我已知的,如果冒犯到你的话,深感抱歉。

本篇文章就给大家详细的介绍一下如何设计一个灵活,易维护管理的工单系统,在介绍此工单系统之前,首先给大家推荐一个还是不错的工单系统,供大家参考,学习。

Demo: ferry 工单系统(点击进入演示Demo)

Github: https://github.com/lanyulei/ferry

Gitee: https://gitee.com/yllan/ferry

核心功能介绍

单点登陆

目前大部分公司都会安装部署一套单点登录系统,方便维护管理员工的账号信息,同时实现多系统的用户登陆,例如Ldap,因此支持主流的单点登录系统也是很有必要的。

权限管理

对于一个工单系统来说,因为涉及的人会非常多,审批阶段会有各层次的领导进行审阅;处理阶段会有各部门的人进行处理。因此对于权限的管理是要非常的严格。

流程设计

在工单系统中流程设计应该算是最繁琐的地方了,要定义好每个节点的关联关系、处理人以及各种属性数据,如果没有一个好的流程设计工具,对于工单系统的用户体验来说,是非常差的。而且对于后续的维护也是非常的不易。

之前就有朋友说,他们的工单系统是写死的,每个流程,每个节点,每个处理人都是在代码里定义好的,这样的工单系统是非常不易用的,只要有人员变动,流程变动,都需要重新修改代码进行编译上线,因此好的流程设计工具,对一个好的工单系统来说,是至关重要的。

模版设计

我们在提交工单的时候,需要写很多的描述数据,例如申请服务器,就需要写服务器的配置信息,像是CPU、内存、磁盘等信息,这些需要写的描述数据,并非是一成不变的,会根据场景的不同而进行适当的修改,因此我们就需要有一个可视化的表单设计工具,来进行表单模版的维护管理,通过将表单模版与流程的关联从而实现一条完整的工作流。

多样化的工单列表

我们工单系统内的工单,根据工单归属的分类,可以大概的分为:我创建的工单、我待办的工单、我相关的工单以及所有工单。我们根据这4类工单归属类型进行数据的分类展示,方便他人的使用及查看。

任务管理

在一个工单流程中,通常很多操作都是可以自动完成的,比如申请数据库账号,可以让用户填写好数据后,DBA审批通过,则自动去创建账号,并进行邮件或者其他通讯工具进行通知。这种就能节省很多人为操作,使这个人可以处理更多其他的工作。毕竟20世纪最贵的成本是人力呢。

更多其他功能点

  • 加签: 临时将工单转交给他人处理,处理完成后自动返回给原来的处理人。
  • 会签: 当一个节点出现多个处理人的时候,则需要所有的处理人都处理完成才可进行下一步。
  • 催办: 催促当前节点的处理人尽快处理,当然需要设置时间间隔的。
  • 结单: 有的时候我们会提错单子,因为可联系管理员进行手动结单。
  • 转交: 在流程中,某一节点的处理人临时有时间,商议后,可转交给他人。
  • 主动接单: 当一个节点出现多个处理人的时候,配置主动接单后,需这几个人进行抢单处理。
  • 等等,还有很多扩展的功能,有兴趣的人,可以加群一起聊聊:1127401830 。

以上就是大概总结的一些核心的功能,当然还有很多细小的划分。更精细的设计就需要大家去认真构思了。毕竟一篇文章如果说考虑到方方面面的话,那是不现实的,得需要码多少字呢。

数据库设计

其实开发一个系统,最耗费时间的不是敲代码的部分。程序设计,数据结构设计才是最繁琐的,要考虑到各种场景、各种关联。

所以这里就不藏私了,直接给大家看下我的数据结构设计:

用户/权限/菜单/系统配置

image

工单系统

image

核心功能代码

在此将核心功能中代码给大家展示一下,但是肯定不会全部的(因为实在是太多了,贴不完呢),有兴趣的可以去Github上Clone下来详细的研究一下。

Github: https://github.com/lanyulei/ferry

Gitee: https://gitee.com/yllan/ferry

Ldap登陆验证

ldap算是比较常用的一个单点登陆系统了,跟同事、同学、朋友聊天的过程中,能感觉大部分都是在使用ldap。当然有人会说ldap是一个协议,这些就不用纠结这些细节了,你也可以说,使用了ldap协议单点登录系统。

集成ldap登陆验证后,在用户验证通过会,会将数据保存至本地数据库一份,方便维护管理。

连接ldap:

搜索ldap用户信息:

映射本地数据库字段:

ldap用户登陆:

工单流转

在一个工单系统中,最核心的部分就是工单流转,要兼容各种处理人信息,并且根据节点之间的关联进行节点的流转,因此,在工单流转这一部分我们需要非常认真对待,因为如果你不认真对待,可能会造成工单流转到一个非此流程相关的人名下,对于用户体验是非常差的,甚至会丧失用户对系统的信用不再使用此系统。所以这段是重中之重。需认真对待。

ok, anyway.

加上一段在公司经常听到英文作为结束语,如果能实现本文的这些功能,其实一个简单易用,灵活方便维护管理的工单系统就成型了。

在此给大家说声抱歉,无法将完整的代码贴在这里(因为实在是太多了),如果大家还有什么疑问的话,欢迎随时来我的博客留言。

本文为原创文章,未经授权禁止转载本站文章。
原文出处:兰玉磊的个人博客
原文链接:https://www.fdevops.com/2020/08/25/cmdb-3336
版权:本文采用「署名-非商业性使用-相同方式共享 4.0 国际」知识共享许可协议进行许可。

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注