基于执行上下文图的工作流候选人动态分配方法及系统与流程
本技术涉及政务信息化与工作流引擎,尤其涉及一种基于执行上下文图的工作流候选人动态分配方法及系统。
背景技术:
1、在当前政务数字化建设过程中,广泛采用工作流引擎(如 flowable、activiti、camunda 等)对审批业务进行流程化建模与执行管理。工作流引擎通常采用 bpmn(business process model and notation)作为标准建模语言,通过用户任务节点(usertask)、网关节点(gateway)以及流程变量(process variables)等机制,实现审批流程的定义与流转控制。
2、在生态环境监测、排污许可、数据填报及备案审批等业务场景中,通常存在明确的行政层级结构,例如“地方提交—省级初审—国家终审”。其中,省级审批节点往往需要根据申请主体所属行政区划动态确定审批角色或审批用户集合,而不同省份对应不同的审批组织体系。
3、在现有系统中,候选人分配通常采用以下几种方式:
4、(1)基于bpmn模型的静态候选人配置方式。
5、该方式直接在流程定义文件中配置候选用户或候选角色组,例如在用户任务节点中配置 candidateusers(候选用户列表)或 candidategroups(候选角色列表)。
6、(2)基于流程变量驱动的条件网关方式。
7、该方式在流程启动阶段将 provincecode(行政区划编码)、deptid (部门 id)等业务变量写入流程实例,并在网关节点通过条件表达式进行分支控制,例如:{provincecode == 'xx'}、{roleidlist.contains('xxx')}。行政区划编码例如:410000→ 河南省;110000 → 北京市。部门 id代表一条数据归属哪个部门;或者操作用户所属部门。
8、(3)基于表达式bean(对象实例)的动态候选人计算方式。
9、部分系统采用 spring bean(容器实例化)表达式方式通过调用业务方法动态计算候选人集合。
10、例如:{candidateservice.resolveroles(execution)}。
11、现有方案存在以下缺陷:
12、(1)候选人分配与行政区划强耦合,缺乏动态解耦能力。
13、现有方案在流程设计阶段或启动阶段即确定候选人集合,导致流程模型与行政区划体系强绑定。当行政区划调整或组织结构变更时,需要修改流程模型或业务代码,系统扩展性较差。
14、(2)流程模型复杂度随行政区划数量增长而线性增加。
15、在基于条件网关的方案中,每新增一个省份,就需要增加一个条件分支或判断路径,使流程模型复杂度随行政区划数量增长呈线性扩展趋势,导致bpmn流程图逐渐复杂化,不利于维护与理解。
16、(3)候选人解析逻辑与流程控制逻辑重复执行。
17、在表达式bean方式中,网关判断与任务候选人计算通常基于同一行政区划解析链路:user(用户) → dept(部门) → provincecode(行政区划编码) → role mapping(角色映射),但在流程执行过程中分别触发,导致同一流程推进中重复执行相同计算逻辑,形成语义层面的计算冗余。
18、(4)流程变量全量加载导致性能开销过高。
19、现有流程引擎通常在启动阶段加载完整流程变量集合,以便表达式计算使用。然而在实际业务中,大量变量并不参与候选人计算,导致:cpu反序列化开销增加、数据库io压力增大、流程启动延迟增加。
20、(5)行政区划缺失时缺乏统一容错机制。
21、当用户未绑定部门、部门未配置行政区划编码或映射表缺失时,现有技术通常直接返回空候选人集合或抛出异常,容易导致流程启动失败或任务无法创建。
22、(6)同一流程执行周期内缺乏语义级结果复用机制。
23、在流程执行过程中,同一execution(执行实例)可能多次触发候选人解析逻辑,但现有系统未对解析结果进行语义级缓存,导致重复数据库访问与重复计算。
24、因此,目前亟需解决的技术问题是,如何提供一种基于执行上下文图的工作流候选人动态分配方法及系统,流程模型与行政区划强耦合,扩展性差,候选人解析逻辑重复执行,存在计算冗余,单流程生命周期内无结果复用缓存机制等问题。
技术实现思路
1、本技术的目的在于提供一种基于执行上下文图的工作流候选人动态分配方法及系统,实现通过在流程执行上下文引入瞬时变量缓存候选人解析结果,避免重复数据库查询,提升流程执行性能;采用省码优先、特殊保留值的两级查询策略实现容错匹配;统一角色解析与单位判定逻辑,能够自动识别国家单位并跳过省级审批节点,实现审批智能路由;同时将权限规则与流程模型解耦,便于行政区划与审批权限变更维护,并且缓存按流程实例隔离,保障系统运行稳定。
2、为达到上述目的,作为本技术的第一方面,本技术提供一种基于执行上下文图的工作流候选人动态分配方法,该方法包括如下步骤:
3、在数据库中建立行政区划与审批角色映射关系,获得行政区划编码与审批角色映射表;构建执行上下文图模型;响应于流程发起人发起获取审批候选角色的请求,获取流程发起人标识;根据请求中携带的信息,获取流程发起人标识和行政区划编码;根据行政区划编码,查询执行上下文图模型的语义缓存区域,判断语义缓存区域中是否存在对应审批角色标识候选集合,若存在,则直接调用缓存中的审批角色标识候选集合,否则,执行下一步;根据行政区划编码,查找行政区划编码与审批角色映射表,获得审批角色标识的候选集合,并写入执行上下文图模型的缓存;构建统一决策函数生成机制,将执行上下文图模型输入统一决策函数,输出决策上下文;基于决策上下文中候选角色集合,在用户任务创建时,将候选角色集合写入任务候选组,并筛选审批候选人。
4、如上所述的基于执行上下文图的工作流候选人动态分配方法,其中,在数据库中建立行政区划与审批角色映射关系,获得行政区划编码与审批角色映射表包括:
5、建立行政区划编码、审批角色标识和租户标识之间的多维度映射关系,形成基础映射表;
6、在基础映射表中设置默认审批角色的特殊保留值,获得行政区划编码与审批角色映射表。
7、如上所述的基于执行上下文图的工作流候选人动态分配方法,其中,构建执行上下文图模型为:;
8、其中,表示执行上下文图模型;表示审批节点集合,,表示第个审批节点;表示流程边集合;表示节点的特征集合;表示上下文转移矩阵。
9、如上所述的基于执行上下文图的工作流候选人动态分配方法,其中,流程发起人发起获取审批候选角色的请求中携带流程发起人标识、业务所属部门及行政区划编码。
10、如上所述的基于执行上下文图的工作流候选人动态分配方法,其中,根据行政区划编码,查询执行上下文图模型的语义缓存区域,判断语义缓存区域中是否存在对应审批角色标识候选集合,若存在,则直接调用缓存中的审批角色标识候选集合,否则,执行下一步包括:
11、根据行政区划编码,查询执行上下文图的语义缓存区域,判断执行上下文图模型内部语义缓存区域中是否存在与本次查询条件匹配的审批角色标识候选集合;
12、若执行上下文图模型内部语义缓存区域中存在与本次查询条件匹配的审批角色标识候选集合,则直接调用缓存中的审批角色标识候选集合,无需更新执行上下文图模型的缓存;
13、若执行上下文图模型内部语义缓存区域中不存在与本次查询条件匹配的审批角色标识候选集合,则更新执行上下文图模型的缓存,执行下一步。
14、如上所述的基于执行上下文图的工作流候选人动态分配方法,其中,根据行政区划编码,查找行政区划编码与审批角色映射表,获得审批角色标识的候选集合,并写入执行上下文图模型的缓存包括:
15、根据行政区划编码,查找行政区划编码与审批角色映射表,获得审批角色标识的候选集合;
16、将获取审批角色标识的候选集合写入执行上下文图模型的缓存。
17、如上所述的基于执行上下文图的工作流候选人动态分配方法,其中,构建统一决策函数生成机制,将执行上下文图模型输入统一决策函数,输出决策上下文包括:
18、将执行上下文图模型输入统一决策函数中,从执行上下文图模型中读取本次业务对应的行政区划编码,判断当前业务主体的单位类型;
19、从执行上下文图模型的语义缓存区读取审批角色标识的候选集合;
20、基于行政区划编码、角色配置输出下一流程节点流转条件。
21、如上所述的基于执行上下文图的工作流候选人动态分配方法,其中,根据行政区划编码,查找行政区划编码与审批角色映射表,获得审批角色标识的候选集合包括:根据行政区划编码,查找行政区划编码与审批角色映射表,若为空,则使用特殊保留值查询,若仍为空,则返回空集合。
22、如上所述的基于执行上下文图的工作流候选人动态分配方法,其中,执行上下文图模型的语义缓存区域的缓存数据定义为:;表示第条缓存条目,表示缓存条目的总数量。
23、作为本技术的第二方面,本技术提供一种基于执行上下文图的工作流候选人动态分配系统,执行所述的基于执行上下文图的工作流候选人动态分配方法,该系统包括:
24、映射表建立模块,用于在数据库中建立行政区划与审批角色映射关系,获得行政区划编码与审批角色映射表;
25、构建模块,用于构建执行上下文图模型;
26、获取模块,用于响应于流程发起人发起获取审批候选角色的请求,获取流程发起人标识;
27、获取模块,还用于根据请求中携带的信息,获取流程发起人标识和行政区划编码;
28、判断模块,用于根据行政区划编码,查询执行上下文图模型的语义缓存区域,判断语义缓存区域中是否存在对应审批角色标识候选集合,若存在,则直接调用缓存中的审批角色标识候选集合,否则,执行下一步;
29、查找模块,用于根据行政区划编码,查找行政区划编码与审批角色映射表,获得审批角色标识的候选集合,并写入执行上下文图模型的缓存;
30、决策模块,用于构建统一决策函数生成机制,将执行上下文图模型输入统一决策函数,输出决策上下文;
31、筛选模块,用于基于决策上下文中候选角色集合,在用户任务创建时,将候选角色集合写入任务候选组,并筛选审批候选人。
32、本技术实现的有益效果如下:
33、(1)本技术根据行政区划编码,查询执行上下文图模型的语义缓存区域,判断语义缓存区域中是否存在对应审批角色标识候选集合,若存在,则直接调用缓存中的审批角色标识候选集合,否则,执行下一步,在流程执行上下文时缓存角色解析结果,同一流程实例多次调用候选人计算逻辑时可命中缓存,避免重复执行用户、部门、省级编码、权限映射的全链路数据库查询。
34、(2)本技术当行政区划、审批权限发生变更时,仅调整映射表即可生效,无需修改流程图纸,降低流程迭代与运维成本,系统扩展性更强。
35、(3)本技术采用省级编码精准查询和特殊保留值通用标识两级匹配策略。当省级编码无匹配角色时自动触发特殊保留值兜底查询,规范输出角色集合;避免因匹配无结果导致流程卡死、任务创建失败,保障流程稳定运行。
36、(4)本技术不同流程实例缓存相互隔离,不会出现数据串扰问题;结合自动生命周期管理,无需开发人员手动清理缓存,降低程序出错风险。
版权声明:本站专利文献数据主要来源于国家知识产权局等公开渠道,由 技术新讯 进行整理汇编。页面设计及数据汇编的著作权归本站所有。全部内容仅供个人学习、科研评估与技术交流参考,严禁用于任何商业用途(包括但不限于直接生产制造、技术转让、倒卖数据等)。
免责条款:专利技术具有时效性,本站不对资料的绝对准确性、完整性和可实施性提供任何明示或暗示的担保。因参考本站内容造成的直接或间接损失,本站不承担相关法律责任。若您认为本站内容有侵权问题,请及时提供权属证明与我们联系,本站将在核实后依法处理。反馈意见:yyfuon@163.com