一种工作流的二次处理审批人方法与流程

文档序号:21368035发布日期:2020-07-04 04:43阅读:711来源:国知局
一种工作流的二次处理审批人方法与流程

本发明属于计算机信息处理领域,具体涉及一种工作流的二次处理审批人方法。



背景技术:

工作流程图的节点和对应的角色基本是固定的,很少需要运维人员改动流程图,但公司会经常性的变动人员、调整组织架构,会频繁的调整审批节点的审批人,例如:在某一节点原有的审批人的基础上临时增加或者减少审批人,或者审批级数增加或减少。对于这类情况,目前普遍采用在开发系统中,由流程运维人员依据需求大量变动流程图,工作量增多。对于企业中不同的组织对于同一个流程有差异性需求,也复杂了流程图代码逻辑,不便于统一管理,同时复杂了代码维护,增加大量人力成本。



技术实现要素:

本发明的针对现有技术中的不足,提供一种工作流的二次处理审批人方法,根据不同场景去读取配置,对流程图中各个节点的审批人进行二次处理,或删除审批人,或依次增加审批人,或同时增加审批人,场景的维度包括流程图名称、流程节点、部门、角色、人员等,根据这些单个或多个混合场景维度来获取匹配的配置表,以达到变更审批节点对应的审批人;本发明只需要简单的对配置表进行配置,以此来应对公司组织人员和架构的频繁变动带来的流程代码修改。整个方案中,只需要一张配置表,一个存储过程,一个类方法就可以实现。

为实现上述目的,本发明采用以下技术方案:一种工作流的二次处理审批人方法,包括以下步骤:

创建配置表:根据企业架构和不同业务类型,创建配置表,所述配置表的维度包括流程图全称、节点名称、最底层组织编码、角色编码、当前节点首次审批人、处理类型、待处理的人员;

数据库存储过程:以各个维度作为参数检索配置表,根据当前节点信息,匹配配置表对应的处理类型,对待处理的人员进行处理,变更审批人,生成新的审批流程;若未检索到匹配的配置表,则无需变更审批人,由当前节点首次审批人进行审批;根据处理类型设定处理方式,处理方式包括删除审批人、审批人同时会签、审批人依次顺序会签,审批人依次倒序会签;

类方法:以各个维度创建对象,以此对象作为参数访问类方法,类方法包括提取对象中的各个维度(即属性),传参给数据库存储过程,在各个节点首次获取到审批人之后,调用执行数据库存储过程,初始化当前节点审批人,覆盖首次获取的审批人,得到新的审批人。

为优化上述技术方案,采取的具体措施还包括:

创建配置表具体包括:

配置表的维度包括流程图全称、节点名称、最底层组织编码、角色编码、当前节点首次审批人、待处理的人员、处理类型;

定义流程图全称,匹配所有流程;

节点名称,匹配所有节点;

最底层组织编码,匹配所有最底层组织;

角色编码,匹配所有角色;

当前首次已获取的审批人若包含多个审批人,匹配所有审批人;

待处理的人员,若包含多个人员,匹配所有待处理的审批人员;

处理类型,处理类型值包括0,1,2,3,后期根据需求扩展。

不同的处理类型值代表不同的审批人处理方式,

删除审批人:定义处理类型值为0时表示删除当前节点首次审批人中出现的与待处理的人员名单相同的审批人;

审批人同时会签:定义处理类型值为1时表示同时会签,在当前节点首次审批人中人员与待处理的人员同时会签;

审批人依次顺序会签:定义处理类型值为2时表示依次顺序审批,在当前节点首次审批人进行审批前增加待处理的人员依次审批,待处理的人员审批完,再由当前节点首次审批人进行审批;

审批人依次倒序会签:定义处理类型值为3时表示依次倒序审批,在待处理的人员审批前增加当前节点首次审批人依次审批,当前节点首次审批人审批完,再由待处理的人员进行审批。

所述配置表创建在sqlserver数据库上。

创建数据库存储过程包括:创建程序p_approverredo,添加存储过程的参数,所述参数即配置表中的各个维度;设定处理类型与对应的处理方式。

所述类方法具体包括以下过程:

1)先创建对象,对象中含流程节点对应的相关维度,包括当前的流程图全称、当前节点名称、最底层组织编码、使用的角色编码、当前节点首次审批人;

2)获取新的审批人

根据流程当前节点的信息,包括当前的流程图全称、当前节点名称、最底层组织编码、使用的角色编码、当前节点首次审批人,来调用p_approverredo存储过程,查询已经创建好的配置表,找出匹配的项,得出新的审批人;若找不到匹配的配置表,就默认取当前节点首次审批人值。

整个处理过程中,只有当前节点处新的审批人全部通过用户的情求,流程才能继续下一节点的处理;若有节点处新的审批人拒绝用户申请,则整个流程结束。

本发明的有益效果是:本发明提供的二次处理方法,通过根据不同场景的维度匹配配置表,在每个审批节点首次获取的审批人基础上,根据匹配的处理方法,对审批人进行二次处理,在不变更流程图的基础上进行扩展,灵活应对公司组织人员和架构的频繁变动,灵活应变业务部门的大部分需求,大幅减少工作量,简化流程管理,大量减少流程图代码修改。

附图说明

图1是本发明的二次处理审批人方法流程图。

图2是本发明的配置表示意图。

图3是本发明的审批过程示意图。

具体实施方式

以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。

流程在大型企业中会有频繁变动,在流程审批时就需要经常改动,例如商营总监审批流程,原流程是直接由商营总监审批,但由于制度临时更改,在审批前,他就加签给商营主管先审批,商营主管审批完了再到商营总监审批。对于这种审批人的频繁改动,本发明提供一种工作流的二次处理审批人方法,根据不同场景去读取配置表,对流程图中各个节点的首次获取的审批人进行二次处理,处理方法或删除审批人,或依次增加审批人,或同时增加审批人;场景的维度包括流程图名称、流程节点、部门、角色、人员等,根据这些单个或多个混合场景维度来获取匹配的配置表,以达到变更审批节点对应的审批人;本发明只需要简单的对配置表进行配置,以此来应对公司组织人员和架构的频繁变动带来的流程代码修改。整个方案中,只需要一张配置表,一个存储过程,一个类方法就可以实现。

如附图1-3所示,本发明提供了一种工作流的二次处理审批人方法,包括以下步骤:

1、创建配置表:根据企业架构和不同业务类型、不同需求场景,创建配置表。所述配置表的维度包括但不限于流程图全称、节点名称、最底层组织编码、角色编码、当前节点首次审批人、处理类型、待处理的人员,

具体包括定义流程图全称,匹配所有流程;节点名称,匹配所有节点;最底层组织编码,匹配所有最底层组织;

角色编码,匹配所有角色;当前首次已获取的审批人若包含多个审批人,匹配所有审批人;待处理的人员,若包含多个人员,匹配所有待处理的审批人员;处理类型,本实施例中处理类型值包括0,1,2,3,后期可根据需求扩展。

配置表中各个维度之间的对应关系是,在一个流程中,流程图全称有与之对应的各个节点名称,每个节点对应有角色编码,每个节点对应有处理类型,根据角色编码,再结合流程发起人的最底层组织编码,进而获取对应当前节点的首次审批人;根据当前节点对应的处理类型,对待处理人员进行处理。对于当前节点首次审批人的获取方法已经是现有技术,故在此不做过多赘述。

根据每个公司不同组织架构,最底层组织或为部门,或为小组等,依照实际情况设置。例如,有些公司组织为三层,集团-门店-部门,部门就是最底层组织,有些公司组织为四层,集团-门店-部门-小组,此时小组就是最底层组织。本发明实施例中,取最底层组织为部门。

配置表中的待处理的人员是指待处理的审批人员,即除默认的当前节点首次审批人外,等待按照处理方法进行增加或删除等操作的审批人。

2、数据库存储过程:以各个维度作为参数检索配置表,根据当前节点名称,匹配配置表中对应的处理类型,对待处理的人员进行处理,变更审批人,生成新的审批流程,由当前节点变更后的新的审批人进行审批,如果审批结果是全部新的批人都同意,则进入到下一审批节点,重复该存储过程,如果有任一审批人拒绝流程发起人的申请,则审批流程结束,将结果返回给流程发起人;若未检索到匹配的配置表,则无需变更审批人,由当前节点首次审批人进行审批,如果审批结果是全部审批人都通过流程,则进入到下一审批节点,重复该存储过程,如果有任一审批人拒绝流程发起人的申请,则审批流程结束,将结果返回给流程发起人。

创建数据库存储过程包括:创建程序p_approverredo,添加存储过程的参数,所述参数即配置表中的各个维度;设定处理类型与对应的处理方式。

本发明根据处理类型设定了对不同节点的首次审批人的处理方式,处理方式包括删除审批人、审批人同时会签、审批人依次顺序会签,审批人依次倒序会签等;

本实施例中定义不同的处理类型值代表不同的审批人处理方式:

删除审批人:定义处理类型值为0时表示删除当前节点首次审批人中出现的与待处理的人员名单相同的审批人;

审批人同时会签:定义处理类型值为1时表示同时会签,在当前节点首次审批人中人员与待处理的人员同时会签;

审批人依次顺序会签:定义处理类型值为2时表示依次顺序审批,在当前节点首次审批人进行审批前增加待处理的人员依次审批,待处理的人员审批完,再由当前节点首次审批人进行审批;

审批人依次倒序会签:定义处理类型值为3时表示依次倒序审批,在待处理的人员审批前增加当前节点首次审批人依次审批,当前节点首次审批人审批完,再由待处理的人员进行审批。

3、类方法:以各个维度创建对象,以此对象作为参数访问类方法,类方法包括提取对象中的各个属性(即维度),传参给数据库存储过程,在各个节点获取到首次审批人之后,调用执行数据库存储过程,初始化当前节点审批人,覆盖首次获取的审批人,得到新的审批人。

类方法具体包括以下过程:

1)先创建对象,对象中含流程节点对应的相关维度,包括当前的流程图全称、当前节点名称、最底层组织编码、使用的角色编码、当前节点首次审批人等;

2)获取新的审批人

根据流程当前节点的信息,包括当前的流程图全称、当前节点名称、最底层组织编码、使用的角色编码、当前节点首次审批人,来调用p_approverredo存储过程,查询已经创建好的配置表,找出匹配的项,得出新的审批人;若找不到匹配的配置表,就默认取当前节点首次审批人值。

申请人发起的流程的整个处理过程中,只有当前节点处新的审批人全部通过用户的情求,流程才能继续下一节点的处理;若有节点处新的审批人拒绝用户申请,则整个流程结束。

以下是本发明的一个具体实施例,

如图2所示,配置表字段(维度)分别为processfullname、activityname、deptcode、rolecode、currentapprover、dotype、users,

processfullname--流程图全称,值为*号,匹配所有流程;

activityname--节点名称,值为*号,匹配所有节点;

deptcode--最底层组织编码,值为*号,匹配所有最底层组织;

rolecode--角色编码,值为*号,匹配所有角色;

currentapprover--当前节点首次审批人,若是多个审批人,以半角分号隔开“;”,值为*号,匹配所有审批人;

users--需要处理的人员,若是多个人,以半角分号隔开“;”;

dotype--处理类型,目前值有0,1,2,3,后期可根据需求扩展;

dotype=0表示删除currentapprover中出现users值的审批人;

dotype=1是在currentapprover中增加users同时会签;

dotype=2是在currentapprover审批前增加users中人员依次审批,users审批完了,再轮到currentapprover审批,这个定义为依次顺序审批;

dotype=3是在users审批前增加currentapprover中人员依次审批,currentapprover审批完了,再轮到users审批,这个定义为依次倒序审批;

以上配置表id=1,表示流程图全称为hrprocject\请假申请流程,并且在含有部门负责人名称的节点上,任何组织、任何角色、当前节点任何首次审批人,满足这些条件,新的审批人就当前节点首次审批人和审批人s同时会签;

配置表id=2,表示流程图全称为hrprocject\请假申请流程,并且在含有集团hr总监名称的节点上,最底层组织编码为01012400,任何角色、当前节点任何首次审批人,满足这些条件,在当前节点首次审批人审批前,先由审批人p先审批,审批人p审批完再由当前节点首次审批人审批;

配置表id=3,表示任何流程图,在含有集团hr分管领导名称的节点上,任何组织、任何角色、任何首次获取的审批人,满足这些条件,当前节点首次审批人先审批,然后审批人y再审批;

配置表d=4,表示任何流程,在含有人事专员名称的节点上,任何组织、任何角色、当前节点任何首次审批人,去除与当前节点首次审批人重复的审批人a1,再审批。

以图3为例,执行配置表:

由申请人x发起请假申请流程,申请人x的部门编码是01012400,首先经过人事专员节点,该节点对应的角色编码为hrspic,获取的首次审批人为a1和a2,根据配置表,匹配配置id=4,处理类型值为0,执行对应的处理方法,对人事专员节点的首次审批人进行二次处理:去除审批人a1,在人事专员节点上,只有a2审批;若a2拒绝该申请,则流程至此结束,将审批结果返回给申请人x。

当a2审批通过后,经过部门负责人节点,该节点角色编码为dephead,获取的首次审批人为b,根据配置表,匹配配置id=1,处理类型值为1,执行对应的处理方法,对部门负责人节点的首次审批人进行二次处理:部门负责人节点的新的审批人为b和s,两个审批人同时接受到审批任务;

当b和s审批通过后,经过集团hr总监节点,该节点角色编码为ghrzj,获取的首次审批人为c,根据配置表,匹配配置id=2,处理类型值为2,执行对应的处理方法,对集团hr总监节点的首次审批人进行二次处理:在首次审批人c进行审批前增加待处理的人员p,待p审批完,再由c进行审批;

当p和c审批通过后,经过集团hr分管领导节点,该节点角色编码为ghrfg,获取的首次审批人为d,根据配置表,匹配配置id=3,处理类型值为3,执行对应的处理方法,对集团hr分管领导节点的首次审批人进行二次处理:在待处理的人员y审批前增加当前节点首次审批人d依次审批,当前节点首次审批人d审批完,再由待处理的人员y进行审批。

当d和y通过审批后,全部请假申请流程完毕,将审批结果返回至申请人x。

对于本发明的二次处理审批人的方法,部分实现程序如下:

创建配置表(数据库以sqlserver为例):

创建检索配置表存储过程p_approverredo:

createprocedurep_approverredo

--addtheparametersforthestoredprocedurehere

@processfullnamenvarchar(200),

@activitynamenvarchar(50),

@deptcodenvarchar(50),

@rolecodenvarchar(50),

@currentapprovernvarchar(50)

as

begin

--setnocountonaddedtopreventextraresultsetsfrom

--interferingwithselectstatements.

setnocounton;

--insertstatementsforprocedurehere

selecttop1(casewhen[dotype]=0thenreplace(@currentapprover,users,″)when[dotype]=1then(@currentapprover+′;′+users)when[dotype]=2then(users+′^′+@currentapprover)else(@currentapprover+′^′+users)end)users

from[dbo].[approverredo]

where1=1

and([processfullname]=@processfullnameor[processfullname]=′*′)

and@activitynamelike(′%′+[activityname]+′%′)

and([deptcode]=@deptcodeor[deptcode]=′*′)

and([rolecode]=@rolecodeor[rolecode]=′*′)

and([currentapprover]=@currentapproveror[currentapprover]=′*′)

end

go

说明:此存储过程根据以各个维度作为参数检索配置表,查询出匹配的数据来替换掉当前审批人,生成新的审批人。

二次审批人处理方法(c#语言)

先建立对象approverredoinfo

说明:对象中含流程节点对应的相关值(即上文所说的维度),含processfullname(当前使用的流程图全称)、activityname(当前节点名称)、deptcode(部门(最底层组织)编码)、rolecode(使用的角色编码)、currentapprover(当前节点的首次获取的审批人)。

二次处理方法getnewapprovers

说明:

此方法中sq1helper类源于微软官网。

二次处理方法根据流程当前节点部分信息,含processfullname(当前使用的流程全称)、activityname(当前节点名称)、deptcode(部门编码)、rolecode(使用的角色编码)、currentapprover(当前节点已有审批人),根据这些信息来调用p_approverredo存储过程,查询approverredo这张表,找出匹配的项,直接得出新的审批人,若找不到匹配的,就默认取currentapprover值。

本发明针对不同组织对于同一个流程有差异性需求(例如,同一个流程,x店和y店设定的审批流程是a--b--c,但某一天,y店需求变了,需要变更成a--d--b--c,而x店还是a--b--c,这就是差异性需求)的情况,提供了对审批人的二次处理方法,弥补了流程在大型企业中频繁变动而带来的繁复工作的短板,以快速配置形式来完善流程图逻辑,只需修改配置表,即可减少流程图的变动,极大减轻运维人员的工作量,以配置表来应各业务组织对流程图的大部分需求。

根据本实施例的一个示例,上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述程序可存储于一计算机可读取存储介质中,例如该程序可存储于计算机系统的存储介质中,并被该计算机系统中的至少一个处理器执行,以实现包括如上述各方法的实施例的流程。该存储介质包括但不限于磁碟、优盘、光盘、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。

以上仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,应视为本发明的保护范围。。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1