`

开源OA系统启动:基础数据,工作流设计

    博客分类:
  • OA
阅读更多
转自http://www.cnblogs.com/kwklover

最近在做工作流这方面的东西,在网上搜了N久,看着有用的就拿来了。

自从开源OA系统启动:系统概览放出来后。园友们反馈了一些不错的建议。主要集中在工作流部分。本来是先不考虑工作流部分。这些天的交流和思考。决定把工作流部分作为系统基础结构贯穿整个系统。所以先考虑了这个部分的设计,因为这部分的设计是否合理关系到整个系统是否可以继续和是否有实际价值的问题。自己不敢独断专行。特放出来。让大家拍拍砖。期待各位园友一如即往提供专业意见!

本来打算用尝试用MindManager画个思维导向图的,不过down了N久都没down下来,也就做罢了。
1,基础部分数据库设计。



下面说一下"页面(功能项)表"的设计,因为其他的比较简单。通过关系图已经可以完整表达我的设计意图:
我这样设计是希望系统具有一定的自定义组装能力,所以把设计的权限控制粒度细到页面级的添,删,改,查的和局部的用户级,抽出页面(功能项)表解释下,
   1),启用审批流程:页面(基本等同于一个具体功能项,或者代表某项业务需求,下同),这个功能项是否需要进入审批流程;如果设置“是”则需要自定义相应的工作流程(下面会讲到);
   2),启用填加控制:这个设置决定在配置用户权限的时候的细化程度。如果为“启用”,则在配置用户权限的时候,可以控制改功能项那些用户可以填加,那些不可以。反之。则所有用户均可以。当然该用户必须具有功能项级的权限。其他的。启用修改,版本控制,浏览,删除等类似;
   3),仅自己:这个选项对启用填加,修改,浏览,删除控制均有影响。如果为“是”,则在配置用户权限的时候,可以附加选项“仅自己”,如果配置用户权限的时候“仅自己”为“是”,那么该用户只能修改,编辑,删除,浏览自己填加的数据,反之。则无限制。

页面(功能项)表为用户权限配置的时候提供可选参数,为系统配置提供服务。而权限表是具体的用户权限设置。为控制用户权限服务;

2,工作流数据库设计:
也就是说,系统自身实现简单实用的工作流引擎而非采用比如wwf等的workflow enginee:






工作流部分基于功能项和节点的组合。如果功能项(页面)被配置为启用审批流程。那么需要设置相应的自定义流程。多个“节点”构成一个完整的流程。节点的前后顺序结构在数据库设计中以“树结构”来体现。每个“节点”可配置多个相关人员。通过“是否需全体通过”来控制该流程节点等待所有人员都审批通过才进入下一节点。还是只需要其中审批通过就进入下一节点。

考虑到系统的定位。没有采用基于“岗位流转”的工作流设计,而采用了基于“人员流转”的工作流设计。

其实我自己对工作流并不是很熟悉,欢迎大家批评指正或者提供更优的设计。
  • 大小: 19.4 KB
  • 大小: 16.2 KB
分享到:
评论

相关推荐

    开源OA系统 - 码云GVP-Java开源

    【开源OA系统 - 码云GVP-Java开源】是一个基于Java技术的开源办公自动化(OA)系统,它在码云GVP(优秀开源项目)平台上发布,旨在为企事业单位提供一套高效、稳定且可定制化的协同办公解决方案。这个系统的出现,...

    智能OA办公系统 SpringBoot JAVA 开源OA协同办公系统自研工作流引擎支持可视化表单设计与流程设计支技分布式部署

    本项目JDK8x64+SpringBoot+MyBatis+Redis+Durid+Beetl的框架组合的开源OA系统,自研工作流引擎,支持可视化表单设计与流程设计。支持分布式部署,支持文档全文检索,支持集群应用,支持私有化部署,支持钉钉微信,...

    基于thinkphp的开源oa系统

    【标题】"基于thinkphp的开源oa系统"指的是一个使用ThinkPHP框架开发的开放源代码办公自动化(Office Automation,简称OA)系统。ThinkPHP是中国较早的PHP开发框架之一,以其简洁、高效的特性受到广大开发者喜爱。这...

    [信息办公]PHProjekt v5.2 (国外开源OA系统)_phprojekt.rar

    【标题】:“[信息办公]PHProjekt v5.2 (国外开源OA系统)_phprojekt.rar”指的是一款名为PHProjekt的开源在线协作和项目管理软件的v5.2版本。这款软件专为提高办公效率而设计,提供了一个全面的平台,使团队能够协同...

    基于工作流的OA系统的设计与实现

    基于工作流的OA系统的设计与实现,基于工作流的OA系统的设计与实现

    开源oa系统

    MySQL是关系型数据库管理系统,负责存储OA系统中的各种数据,如用户信息、文档、工作流状态等。在安装过程中,你需要创建一个数据库并授予相应的权限给OA系统。确保数据库的性能和安全性是关键,可以考虑定期备份和...

    SpringBoot JAVA 开源OA协同办公系统

    本项目JDK8x64+SpringBoot+MyBatis+Redis+Druid+Beetl+Shrio的框架组合,自研工作流引擎,支持可视化表单设计与流程设计。支技分布式部署。功能完善能够满足中大型企业办公需要。 本项目自2020-08-17日起,为全面...

    php开源oa办公系统

    1. 工作流引擎:这是OA系统的核心,用于定义、执行和监控业务流程。用户可以自定义审批流程,实现任务自动化分配和跟踪。 2. 信息管理:提供文档管理、公告发布、邮件收发等功能,方便信息的共享与交流。 3. 资源...

    JEOS开源OA系统

    **JEOS开源OA系统详解** JEOS开源OA(Office Automation)系统是一款专为企事业单位设计的高效、便捷的办公自动化解决方案。它以完全开源、免费的特性,为用户提供了高度可定制化的服务,旨在提高组织的工作效率,...

    开源OA系统

    【开源OA系统】是一种基于开放源代码的办公自动化(Office Automation,简称OA)软件系统,旨在提高企业或组织的工作效率,实现信息化管理。开源OA系统的最大特点在于其源代码对公众开放,允许用户自由地使用、修改...

    开源企业OA 系统

    在【描述】中提到的“无错,无后门,无加密”,这意味着该开源OA系统在设计时注重了安全性与稳定性。无错误意味着系统经过了严格的测试和优化,减少了运行过程中可能出现的问题。无后门强调了系统的安全性,确保用户...

    开源OA系统,国外的

    国外的开源OA系统通常拥有丰富的功能模块,如工作流管理、文档管理、项目管理、任务分配、会议安排、邮件集成等。以压缩包中的"egroupware"为例,这是一个知名的开源协同办公套件,它提供了一整套企业级的解决方案,...

    基于ThinkPHP开发的PHP开源OA办公系统

    开源OA系统允许企业根据自身需求进行定制化开发,同时节省了购买商业软件的费用。 三、基于ThinkPHP的OA系统特点 1. **模块化设计**:ThinkPHP的模块化设计使得OA系统可以拆分成多个独立的功能模块,便于维护和...

    OA工作流设计

    1. 表单:表单是工作流的基础,由用户自行设计或管理员预先设定,可以用网页设计工具或Word等创建,然后在“表单智能设计器”中添加所需控件。表单可以用于不同流程,且每个流程通常对应一个特定的表单。 2. 流程...

    oa办公系统开源

    1. **模块化设计**:大多数开源OA系统会采用模块化设计,允许用户根据需要选择和启用不同的功能模块,如人力资源管理、财务管理、项目管理等。 2. **权限管理**:OA系统必须有严谨的权限控制,确保不同角色的用户...

    开源的OA系统,欢迎下载

    【开源的OA系统,欢迎下载】是一个以开源方式提供的办公自动化(OA)系统,它集成了源代码和SQL文件,方便用户下载后直接进行安装和使用。OA系统是现代企业信息化管理的重要工具,用于提升办公效率,实现无纸化办公...

    PHP开源OA办公系统

    4. **工作流引擎**:实现审批流程的自动化,允许用户定义和定制工作流程,提高办公效率。 5. **API接口**:可能提供RESTful API,以便与其他系统集成,如CRM、ERP等,实现数据交换和业务联动。 6. **移动支持**:...

    免费oa系统

    本文将深入探讨一个特别针对小公司设计的开源OA系统,其特点在于安装简便、易于二次开发,并拥有完善的权限管理功能。 首先,让我们来理解一下什么是OA系统。OA系统,即办公自动化系统,是通过信息技术整合企业内部...

    asp开源OA系统

    【ASP开源OA系统详解】 ASP(Active Server Pages)是一种由微软开发的服务器端脚本环境,用于创建动态交互式网页。开源OA(Office Automation)系统则是一个基于ASP技术的、可自由使用的办公自动化解决方案,旨在...

    基于RuoYi-VUE版本开发开源OA协同办公系统源码 集成Flowable流程引擎 可自由选择提交的流程.zip

    总的来说,基于RuoYi-VUE和Flowable的开源OA协同办公系统,不仅为企业提供了强大的流程管理工具,也为开发者提供了宝贵的实践平台,让他们能够深入理解前后端分离架构、工作流引擎的应用以及企业级系统的设计与实现...

Global site tag (gtag.js) - Google Analytics