视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001 知道1 知道21 知道41 知道61 知道81 知道101 知道121 知道141 知道161 知道181 知道201 知道221 知道241 知道261 知道281
问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
Asp.Net Mvc2 OA 工作流设计思路[图]
2020-11-27 22:42:20 责编:小采
文档

回老家上班的新公司,第一个项目:OA。以前没有做过OA,因为设计到工作流这一块的东西,所以自己去进行了相关的了解,于是有了这篇博客(以下文字只是个人理解,高手漂过)。环境:MVC2+SQL2008

工作流分为几个步骤:表单(设计、解析)、流程(设计)、合并就是一个完整的工作流。先上个一个图:

第一步:表单

因为没有使用图形化设计表单,所以我们的思路是强制定义表单格式,后台解析。如图:

上图的HTML是强制定义的,像table>tbody>tr>td必须按照这个格式定义,虽然不灵活,但是功能也算实现了。说说思路:这个表单将解析成11个节点(申请人、申请日期、部门、假期类别、请假时间、扣薪形式、请假理由、审批人、审批日期、审批结果、审批意见)

如上图所示,解析节点是通过[爱好]中的id获取的,采用HtmlAgilityPack来解析,具体代码:

SelectNodes("//table/tbody/tr/td[@id='title']")

这样就可以知道表单的所有节点,而标题所对应的选项则用class来对应,从上图也可以看出来(用来控制表单节点是否可以填写项,下面会介绍)。

特殊控件处理:譬如时间的话也是通过定义class='time'而后,通过jquery动态绑定加载。

第二步:流程,同样通过文字形式来制定流程步骤

定义流程与表单关联

这里的经办权限是直接跟用户关联的,用来标识哪些人拥有该流程的办理权限。

接下来就是定义流程的步骤了。

上图是一个请假流程的全部步骤,下面介绍怎么制定这些步骤。

节点序号:用来表示当前流程为第几步,节点名称用来标识当前步骤名称,是否允许附件、会签,用来控制附件与会签区的显示和隐藏。下一步标识当前步骤可以流转到哪些步骤,左边是已经选择好了的(可以是多个步骤,这里考虑的是,不同的职位使用相同的流程会有特殊情况发生,譬如正常的流程是需要四步[员工填写》经理审批》总监审批》人事备案],但是当总监请假的时候就不需要这么多步骤[填写表单》人事备案]),右边是拉取当前流程下的所有步骤。不可写字段标识,当前步骤时,表单有哪些节点为不可以填写,譬如:员工填写请假申请单,流转到经理时,那么经理看到的表单就有员工姓名、部门等信息不能填写,只能填写审批意见等节点信息。这样流程与表单就关联好了,接下来就是工作流流转了。

第三步:工作流流转,模拟流程流转,新建流程

定义工作流的名称

点击确认新建是,直接跳转到流程页面,并且在数据库存入第一步流程的相关信息。

然后填写表单内容,选择下一个步骤及经办人就可以流转至下一步。说明:表单内容我是把整个表单的HTML代码全部存入数据库,然后流程流转时再把填写好的表单内容存入下一步,这样流程到下一步时,看到的表单就是最新的了。这是一个很笨的办法,因为使用$("#表单tableID")是获取不到表单的value值的,所有需要进行处理,获取表单内容通过jquery直接attr(value,文本值)上去,这样就可以把表单内容存入数据库。

这里还涉及到多人办理的情况,当经办人选择为多人时,除非是最后一个人,否则流程不允许流转至下一步,但是可以填写会签意见及修改表单,修改的表单将覆盖当前步骤表单,至最后一个转交至下一步,如此重复就可以实现流程流转了。

语言组织能不强,所有只能说成这个样子,整个流程还是有缺陷的,表单设计和流程设计都只能使用文字的形式,可能以后会考虑更换成图形化,还有就是不支持子流程。今天就写这么多了,也是最近才接触自定义工作流,也看过很多非常强大的工作流,所以以后还继续完成、改进和学习。

下载本文
显示全文
专题