审批流程的设计与实现和OA系统权限设计

JamesLes 2011-08-03 11:26:58
一、审批流程的设计与实现

在审批过程中可能多个部门审批一个文件,同时还有些约束,比如金额的限制,数量的限制等等.
用"采购申请单"来说明:
申请人填制完申请单后,由部门主管审核,再由部门经理批准,然后再由采购批准,"采购申请单"才
算是批准完成,
但其中的问题是:"申请人"是多个部门的,每个部门有自己的主管和经理,在审批过程中,
只有自己部门的主管和经理才能收到相关的申请.
如何实现这样的流程设计呢?
以前曾做出过类似的,但由于没有加入模块限制,不是很灵活,不知大家有什么好的做法,
可以设计为每个模块通用的?

二、OA系统权限设计

在系统权限设计中,我现在采用的是模块权限设计,比如有一个组织结构的模块,分别会有查看、添加、删除、修改以及其他权限多种不同权限,如果页面是分开的好办,如果同一个页面中包含有修改、添加,我怎么来实现这个权限设计,还有如果我想网站前台给模块添加权限,怎么在后台预留权限呢!

第一个问题前面有人提到过,但是没有说怎么实现的,就这两个问题我再次请教大家,谢谢各位的指教!
...全文
4682 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
JamesLes 2011-08-11
  • 打赏
  • 举报
回复
除了前两位同学10分,其他的分给大家平分了正好。呵呵
JamesLes 2011-08-11
  • 打赏
  • 举报
回复
这个东西什么时候可以结贴呀?权限设计跟流程设计自己理清思路再弄吧,呵呵,是挺复杂的!
  • 打赏
  • 举报
回复
这东西就是逻辑问题,逻辑想好了,自然而然就可以做了!
deepmist 2011-08-10
  • 打赏
  • 举报
回复
1.你的系统没有人员组织结构表吗?
2.另外新建一张表,保存每个页面需要控制权限的按钮,给一个唯一id,设置parentid为页面id
xiaoyu821120 2011-08-10
  • 打赏
  • 举报
回复
一种通用的做法:工作流+电子表单+人事系统;不过开发这套东西非常的复杂,属于一些软件公司的核心价值所在。
窗户纸 2011-08-10
  • 打赏
  • 举报
回复
就大型企业的权限管理,你考虑的过于简单了,企业的部门设计是非常复杂易变的,现有的所有设计思路都有问题,导致用户处理起来很“别扭”,有个土办法可以供你参考一下:
http://blog.csdn.net/etudiant6666/article/details/6260502
窗户纸 2011-08-10
  • 打赏
  • 举报
回复
楼上一说把人家孩子都吓着了,以后笔都不敢落了,科班研究的东西就是牛,那产品不是拿来用的,是用来欣赏的。其实如果你不想做通用产品也很简单,很多土办法可用。偏方治大病嘛。
就权限管理而言,分为两个范畴:
1)功能操作权限-比如谁有权设计流程、谁有权修改用户等,
这些权限直接与界面的按钮相关的,一个土办法就是把功能编上号,存到数据库里,功能还可以分组,与用户或角色关联上就可以,在点击按钮后就会进入功能的入口,这时对每个功能入口硬编码,判断编号与权限是否匹配即可。
2) 业务流转权限,比如谁有权查看业务记录、谁应该操作某个步骤等等。
这里也有两种类型:
- 业务操作权(查看记录、设置权限等),这可以设计的非常复杂,以解决动态的权限定义问题,也可以设计的非常简单,只有管理员可以做业务操作就行了呗。
- 步骤操作权: 对于步骤操作权,可以看看某个帖子:http://blog.csdn.net/comsci/article/details/6642856
wanghui0380 2011-08-09
  • 打赏
  • 举报
回复
工作流部分
1.请阅读《编译原理》搞明白啥是文本解析和语法树
2.请了解如何把 if---else ,while 解析成语法树
3.请了解如何把语法树解析成对象
4.请了解如何把语法树对象保存为xml
5.请了解BPM,BPMN,BPML相关xml定义

知道上面这些东西,其实就可以做工作流了。了解前4项基本就可以做一个不太通用的工作流引擎,而第5项则是做通用工作流引擎的基础

==============================================

权限部分
1.了解撒是AOP和动态代理
2.了解如何使用MEF做AOP编程
3.了解如何进行切面注入和方法拦截

权限本质上包含两部分
一权限树(包括树状表示,分组继承,特例权限)
二AOP代码切面注入,方法拦截

其中第一部分是很常见的东西,本质上他和一般B2C软件的商品属性是一个故事
但是与商品属性不同的是,商品属性只用数据结构即可描述清楚,而权限必须在数据结构的基础上加入硬编码控制,这方面可以使用AOP编程进行动态植入和配置


ps:我所回答的是做标准产品化的思维和步骤。如果就事论事不考虑后续开发,其实可以直接硬编码
mamxfx 2011-08-09
  • 打赏
  • 举报
回复
这个审核得控制好审批顺序,这个顺序可以通过一个字段来决定,部分级别高的也不能审批级别低的;
权限可以添加一个权限表,这个里边存放着不能的用户权限,这些权限对应着角色;角色下又有用户;
即:
先对角色进行分配权限;
再对用户分配角色;

页面展示时会去判断一下有没有这个权限,没有就做没有处理,有则把页面元素展示出来;


tyrcui 2011-08-09
  • 打赏
  • 举报
回复
审批加入提交对象
在提交对象上做筛选
shirlyfeng 2011-08-05
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 jamesles 的回复:]
引用 1 楼 shirlyfeng 的回复:

1.你那个申请人兼顾多个部门角色对吧,我想问下,你的那个申请审批的过程是自选审批人发送审批呢?还是说程序设定部门审批人,不需要申请人选择由谁审批就直接发送审批呢?如果是自选审批人,那你的问题就很简单,都不用管申请人的多角色问题造成审批信息泄露。但如果是不需选择审批人那种,那你可以根据申请人角色的不同,应该有模块权限的划分,比如他是市场采购人员的角色时,他可以做采购申请的操作,自然审批人事采购部主管和经理,如果她还作为行政人员角色时,他肯定只能做一些信息流转审批类的操作,自然审批人的话就是行政主管或经理,再不行的话,你可以在填单申请时加多一个部门选择项,那样根据部门就知道是该由谁审批啦?
ys_like 2011-08-04
  • 打赏
  • 举报
回复
这个比较复杂,我们刚好有类似的工作流系统,属于比较核心的东西
JamesLes 2011-08-04
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 etudiant6666 的回复:]

引用楼主 jamesles 的回复:
但其中的问题是:"申请人"是多个部门的,每个部门有自己的主管和经理,在审批过程中,

你的意思是不是指的申请人有多种身份,必须余责成要同时向吴敬中和药店掌柜的申请是吗?那你的OA就需要支持多身份管理,每个身份对应自己所在部门(及指定的直接主管),或者以身份登录,或者填单的时候选择自己身份就可以喽,如果系统没有身份管理功能,这就难了,就像给你一个扁担让你……
[/Quote]

呵呵,谢谢啦,可能是我没把问题说清楚,问题就是现在要给公司OA做一个自动化的审批流程,跟一个比较好的组织结构设计,权限设计,好像这个都是公司的核心业务!
JamesLes 2011-08-04
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 shirlyfeng 的回复:]

1、审批流程的设计与实现,解答:既然你申请审批的过程会涉及到多部门 多人审批,那可以在选择审批人员的时候读取所有人员,从中去选择拥有此单审批权限的人,在发送审批操作,对应的审批人全部审批通过的话,此单才算审批完成,中间有一个人审批不通过,此单就得被返回到“审批退回”的状态。


2、OA系统权限涉及,解答:可以分角色权限去控制菜单和模块功能;
[/Quote]

1.解答太模糊了,我自己都云里雾里了,哈哈
2.分角色权限去控制,我想问下模块分离,一个页面中有添加跟编辑在同一个页面,我是不是应该分成两个页面操作好些?我不想通过PAGE_LOAD来判断是编辑还是添加!

以前我没做过模块权限,最后,谢谢你的回答!
窗户纸 2011-08-04
  • 打赏
  • 举报
回复
[Quote=引用楼主 jamesles 的回复:]
但其中的问题是:"申请人"是多个部门的,每个部门有自己的主管和经理,在审批过程中,
[/Quote]
你的意思是不是指的申请人有多种身份,必须余责成要同时向吴敬中和药店掌柜的申请是吗?那你的OA就需要支持多身份管理,每个身份对应自己所在部门(及指定的直接主管),或者以身份登录,或者填单的时候选择自己身份就可以喽,如果系统没有身份管理功能,这就难了,就像给你一个扁担让你打坦克一样。
JamesLes 2011-08-04
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 ys_like 的回复:]
这个比较复杂,我们刚好有类似的工作流系统,属于比较核心的东西
[/Quote]

对啊,我们要做,做个简单的也行,但是有些头晕,没思路!
shirlyfeng 2011-08-03
  • 打赏
  • 举报
回复
1、审批流程的设计与实现,解答:既然你申请审批的过程会涉及到多部门 多人审批,那可以在选择审批人员的时候读取所有人员,从中去选择拥有此单审批权限的人,在发送审批操作,对应的审批人全部审批通过的话,此单才算审批完成,中间有一个人审批不通过,此单就得被返回到“审批退回”的状态。


2、OA系统权限涉及,解答:可以分角色权限去控制菜单和模块功能;





OA 流程可视化系统设计实现 该系统基于 BS 架构,通过 Web 界面向用户展示 OA 流程实现流程的可视化管理和优化,具体设计实现如下: 用户权限与身份验证: 用户通过浏览器访问系统,需要进行身份验证,系统支持不同角色的用户登录,并根据权限控制用户对流程的访问和操作。 流程定义与建模: 提供图形化界面,让管理员或流程设计者定义和建模 OA 流程,包括流程节点、连线、审批人等信息。 支持常见的流程建模标准,如 BPMN(Business Process Model and Notation)等。 流程监控与跟踪: 用户可以通过系统界面实时监控流程的执行情况,了解当前流程所处的节点和状态。 提供流程跟踪功能,记录流程的执行轨迹和历史信息,方便用户追溯和分析流程执行情况。 任务分配与调度: 根据流程定义和规则,系统自动分配任务给相应的审批人或处理者,并提醒用户处理待办任务。 支持任务的优先级设置、超时提醒等功能,确保流程按时完成。 报表与统计分析: 提供各种报表和统计分析功能,帮助管理员和决策者了解流程的执行情况和效率,发现问题并进行优化。 支持图表展示和数据导出,方便用户进行数据分析和决策。 技术实现: 使用 Java 作为后端开发语言,结合 Spring 框架实现系统的业务逻辑和数据访问。 前端界面使用 HTML、CSS 和 JavaScript 技术,结合现代的 Web 框架如 Angular、React 或 Vue.js 实现用户友好的交互界面。 数据库采用关系型数据库或 NoSQL 数据库存储流程定义、执行记录等数据。 通过以上设计实现,基于 BS 架构的 OA 流程可视化系统能够为企业提供高效、便捷的流程管理工具,帮助提升办公效率和流程优化能力。

13,190

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 分析与设计
社区管理员
  • 分析与设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧