CN113298503A - 一种面向政务的工作流管理系统及其分库分表方法 - Google Patents
一种面向政务的工作流管理系统及其分库分表方法 Download PDFInfo
- Publication number
- CN113298503A CN113298503A CN202110659214.XA CN202110659214A CN113298503A CN 113298503 A CN113298503 A CN 113298503A CN 202110659214 A CN202110659214 A CN 202110659214A CN 113298503 A CN113298503 A CN 113298503A
- Authority
- CN
- China
- Prior art keywords
- flow
- module
- sub
- task
- service
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 211
- 230000008569 process Effects 0.000 claims abstract description 152
- 238000007726 management method Methods 0.000 claims abstract description 61
- 230000006870 function Effects 0.000 claims abstract description 24
- 238000012544 monitoring process Methods 0.000 claims abstract description 14
- 238000013500 data storage Methods 0.000 claims abstract description 8
- 230000008520 organization Effects 0.000 claims description 17
- 238000012545 processing Methods 0.000 claims description 13
- 230000007246 mechanism Effects 0.000 claims description 11
- 238000004458 analytical method Methods 0.000 claims description 9
- 238000003860 storage Methods 0.000 claims description 9
- 230000000694 effects Effects 0.000 claims description 7
- 230000004044 response Effects 0.000 claims description 3
- 230000000007 visual effect Effects 0.000 claims description 3
- 238000013461 design Methods 0.000 abstract description 3
- 238000005538 encapsulation Methods 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 12
- 230000010354 integration Effects 0.000 description 10
- 238000004590 computer program Methods 0.000 description 4
- 238000011161 development Methods 0.000 description 4
- 238000000638 solvent extraction Methods 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 238000003672 processing method Methods 0.000 description 2
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 239000007795 chemical reaction product Substances 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
- G06Q10/103—Workflow collaboration or project management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4482—Procedural
- G06F9/4484—Executing subprograms
- G06F9/4486—Formation of subprogram jump address
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4488—Object-oriented
- G06F9/449—Object-oriented method invocation or resolution
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- Human Resources & Organizations (AREA)
- Strategic Management (AREA)
- Entrepreneurship & Innovation (AREA)
- Data Mining & Analysis (AREA)
- Human Computer Interaction (AREA)
- Economics (AREA)
- Marketing (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- General Business, Economics & Management (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Stored Programmes (AREA)
Abstract
本发明实施例提供一种面向政务的工作流管理系统及其分库分表方法,其包括:数据存储层,用于存储流程数据及流程配置数据;流程引擎,用于提供流程资源管理、任务调度、历史数据查询中的任意多个服务;统一接口层,用于提供多个统一接口;业务流程扩展模块,用于提供面向政务的工作流管理功能;流程设计器,用于绘制流程模型,以及配置流程节点的相关信息;展现层,用于管理流程配置信息。本发明实施例提供一种面向政务的工作流管理系统,其基于工作流引擎,提供业务流程的设计建模、调试、部署、运行、监控等功能。支持引擎的高并发访问;通过封装简化工作流引擎服务接口,对开发人员提供统一API,降低开发人员的流程门槛。
Description
技术领域
本发明涉及工作流,具体涉及一种面向政务的工作流管理系统及其分库分表方法。
背景技术
工作流是对工作流程及其各操作步骤之间业务规则的抽象、概括描述。工作流建模,即将工作流程中的工作如何前后组织在一起的逻辑和规则,在计算机中以恰当的模型表达并对其实施计算。工作流管理系统要解决的主要问题是:为实现某个业务目标,利用计算机在多个参与者之间按某种预定规则自动传递文档、信息或者任务。在智慧政务服务场景下对工作流管理系统提出了“一件事”网上办、场景化、特色化主题办事,重塑办事流程,联通多个部门间办事系统,实现并联办事,提高效率的要求。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:
传统工作流管理系统一般是基于工作流引擎,使用流程模型设计器或者手动编写XML文件定义流程模型,开发人员通过调用流程引擎服务或实现相关的事件监听接口控制的流程启停、流转等操作,通常要求开发人员熟悉众多的流程引擎服务接口;不具备政务场景所需的选人模式、自定义待办/已办查询、流程监控等业务扩展功能;不适合大数据量大并发场景。
发明内容
有鉴于此,本发明实施例的目的在于提供一种面向政务的工作流管理系统及其分库分表方法,解决上述的至少一个技术问题。
第一方面,本发明实施例提供了一种面向政务的工作流管理系统,其包括:
数据存储层,用于存储流程数据及流程配置数据;
流程引擎,用于提供流程资源管理、任务调度、历史数据查询中的任意多个服务;
统一接口层,用于提供多个接口;例如,包括工作流接口、事件监听接口及组织机构接口中的任意多个;
业务流程扩展模块,用于提供面向政务的工作流管理功能;
流程设计器,用于绘制流程模型,配置流程节点的相关信息;
展现层,用于管理流程配置信息。
在一些可能的实施方式中,所述数据存储层包括如下中的任意一个或任意多个:Mysql集群、对象存储、Redis缓存。
在一些可能的实施方式中,所述流程引擎,用于提供如下中的任意一个或任意多个服务:运行时服务、任务服务、资源服务、历史服务、调度服务。
所述运行时服务,用于处理正在运行状态的流程实例和任务;
所述任务服务,用于管理和查询任务信息,例如,签收、办理、转办等;
所述资源服务,用于管理流程资源,例如,部署、删除、读取流程图片和流程模型文件;
所述历史服务,用于查询流程历史信息,例如,流程实例、任务、活动、变量等;
所述调度服务,用于流程启动后流程节点的驱动,例如,启动流程、终止流程、转办流程。
在一些可能的实施方式中,所述统一接口层包括如下中的任意一个或任意多个接口:
工作流接口,用于执行流程管理、流程调度、和流程查询;
事件监听接口,用于对流程启动前后、任务提交前后、以及流程完成前后的事件进行监听回调;
组织机构接口,用于为流程节点处理人设置默认的自有组织机构信息,或者,为流程节点处理人设置从第三方业务应用系统调用到的第三方组织机构信息。
在一些可能的实施方式中,所述业务流程扩展模块,包括如下任意一个或多个模块:
离岗移交模块,用于通过设置包括离岗开关、交接人和离岗时间在内的信息,将离岗期间的审批任务自动转办为预设定交接人;
子流程调用模块,用于通过http远程调用及回调函数实现跨部门间协同审批;
待办扩展模块,用于流程绘制时或绘制前设置流程查询待办列表所需的业务字段键值作为查询条件,流程启动时传入预先设置的待办扩展字段值,将流程Id、当前任务Id、当前处理人及扩展字段关联存储,在进行待办任务查询时通过所述自定义扩展字段查询待办;
已办扩展模块,用于通过已办扩展表将流程Id、任务Id、处理人及扩展字段关联,使得用户能够自定义业务所需的扩展字段,在进行流程查询时通过自定义扩展字段查询已办;
流程跟踪模块,用于根据流程实例Id查询流程所有节点的状态信息,所述状态信息包括已办节点和待办节点,并根据流程模型对已办节点和待办节点进行不同着色,绘制出流程轨迹图;
选人模式扩展模块,用于支持用户审批通过当前节点后,使得用户能够在流程配置的候选人列表里选择下一节点处理人;
效率分析模块,用于通过历史服务查询所有流程历史数据、任务办理开始时间、任务办理结束时间、以及组织机构信息,按部门和/或按员工,展示流程处理数量和/或平均时间,获得流程处理效率;
性能分析模块,用于分析所述流程引擎每个预设时长内(例如每分钟内)的请求平均响应时间和/或请求数量;
在一些可能的实施方式中,所述流程设计器,用于使用Angular Web前端框架提供可拖拽的流程建模功能;所述流程设计器包括:流程建模模块和控件支撑模块;
所述流程建模模块,包括如下任意一个或多个子模块:流程绘制子模块、流程导入子模块、流程导出子模块、流程发布子模块、流程上传子模块;
所述流程绘制子模块,用于浏览器端可视化拖拽控件绘制流程图;
所述流程导入子模块,用于将现有流程模型文件导入自动生成流程图;
所述流程导出子模块,用于将绘制完成的流程图导出为流程模型文件;
所述流程发布子模块,用于使绘制的流程图生效;
所述流程上传子模块,用于将绘制的流程图上传到对象存储供其他应用读取;
所述控件支撑模块,包括如下任意一个或多个子模块:用户任务子模块、服务任务子模块、网关子模块、子流程子模块、边界事件子模块。
所述用户任务子模块,用于建模需要人工执行的任务;
所述服务任务子模块,用于执行外部的Java类;所述服务任务子模块,具体用于执行不需要人工干预的自动任务,通过编写外部的Java处理类实现自动审核处理;
所述网关子模块,用于控制流程走向,例如流程中当前节点处理完成后存在多个分支,根据流程配置的业务规则执行一个或多个分支;
所述子流程子模块,用于流程中嵌套子流程,子流程中可包含其他的用户任务、网关等的子模块;
所述边界事件子模块,用于标识流程的起始节点和结束节点。
在一些可能的实施方式中,所述展现层,用于提供流程配置信息的管理,具体包括提供用户、租户、菜单、权限、流程分类等流程配置信息的管理。所述展现层包括如下任意一个或多个功能模块:
用户管理模块,用于新增用户、删除用户、以及修改用户;
流程分类管理模块,用于新增流程分类、删除流程分类、以及修改流程分类,对所有流程按照分类编码进行分类;
租户管理模块,用于新增租户、删除租户、以及修改租户,隔离不同租户下的流程数据;
菜单管理模块,用于新增用户菜单、删除用户菜单、以及修改用户菜单;
权限管理模块,用于新增用户权限、删除用户权限、以及修改用户权限。
在一些可能的实施方式中,所述工作流管理系统的所述流程引擎和所述统一接口作为jar包半嵌入方式集成到第三方业务应用系统。
在一些可能的实施方式中,所述流程引擎基于Activiti工作流引擎,采用SpringBoot微服务框架。
在一些可能的实施方式中,所述流程引擎,还用于基于Mybatis插件机制,根据设置的需要分库的表以及需要校验分库条件的方法对操作流程数据的sql语句进行拦截,拦截后修改sql语句进行分库分表。
第二方面,本发明实施例提供一种面向政务的工作流管理系统的分库分表方法,其包括如下步骤:
在流程配置数据中定义分库分表开关、需要校验分库分表条件的方法调用名称列表、需分库分表的表名列表及分库分表字段;
使用Spring切面定义工作流操作切面服务类,对工作流接口中的所有方法调用进行拦截,获取方法调用名称,判断方法调用名称是否在流程配置数据中定义的需要校验分库分表条件的方法调用名称列表中,如果不存在则放行,如果存在则继续执行下一步;
使用Mybatis插件对SQL语法构建器的prepare()方法进行拦截,获取SQL要操作的表名,判断表名是否在流程配置数据中定义的需分库分表的表名列表中,如果不存在则放行,如果存在则继续执行下一步;
对需要进行分库分表操作的SQL拦截后增加流程配置数据中定义的分库分表字段。
上述技术方案具有如下有益效果:
本发明实施例提供一种面向政务的工作流管理系统,其包括数据存储层、流程引擎、统一接口层、流程设计器和展现层,从而基于工作流引擎,不要求开发人员熟悉众多的流程引擎服务接口;具备政务场景所需的选人模式、自定义待办/已办查询、流程监控等业务扩展功能;适合大数据量大并发场景,满足政务场景复杂的流程审批需求。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例的工作流管理系统框架图;
图2是本发明实施例的工作流与第三方业务应用系统半嵌入式集成示意图;
图3是本发明实施例的工作流管理系统的分库分表方法的流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供一种面向政务的工作流管理系统,其基于工作流引擎,提供业务流程的设计建模、调试、部署、运行、监控等功能。支持引擎的高并发访问;通过封装简化工作流引擎服务接口,对开发人员提供统一API(Application Programming Interface,应用程序接口),降低开发人员的流程门槛;具备配置节点的人工和自动处理的柔性特点,满足复杂的流程审批需求;提出了工作流管理系统与第三方业务应用系统进行半嵌入式集成方案,可以有效解决全嵌入方式集成造成第三方业务应用系统与工作流管理系统高度耦合的弊端以及分别独立部署方式可能造成数据库事务全局不一致的重大隐患。
本发明实施例的面向政务服务的工作流管理系统基于工作流引擎进行二次开发,对开发人员提供统一API,提高开发效率;流程引擎支持大数据、高并发;在传统工作流功能基础上提供业务扩展、选人模式扩展、待办已办扩展、流程监控等功能;提出了一种与第三方业务应用系统半嵌入方式的集成方案,可以有效避免传统集成方案的弊端。
图1是本发明实施例的工作流管理系统框架图。如图1所示,本发明实施例的面向政务服务的工作流管理系统可以基于Activiti工作流引擎,采用Spring Boot微服务框架,Mybatis持久化框架,MySql传统关系型数据库、Redis非关系型数据库、对象存储等支撑数据存取。工作流管理系统通过Mybatis插件机制根据开发人员设置的需要分库的表以及需要校验分库条件的方法对操作流程数据的sql语句进行拦截,拦截后修改sql语句进行分库分表,进而支撑大数据量高并发访问。业务人员通过Web端的流程设计器绘制流程模型,配置流程节点处理人、抄送人、会签属性、表单等信息,保存、导入、导出工作流。上述Mybatis插件用于数据存储层中。
数据存储层,用于存储流程数据及流程配置数据。该数据存储层可以包括如下中的任意一个或任意多个:Mysql集群、对象存储、Redis缓存。其中,上述流程配置数据可以包括:待办扩展字段、分库分表等配置数据。
流程引擎层,用于提供多个服务。该多个服务可以包括:流程资源管理、任务调度、历史数据查询等中的任意多个服务。流程引擎层包括如下中的任意一个或任意多个:运行时服务、任务服务、资源服务、历史服务,调度服务,各模块的功能分别是:运行时服务用于处理正在运行状态的流程实例和任务;任务服务用于管理和查询任务信息,例如,签收、办理、转办等;资源服务用于管理流程资源,例如,部署、删除、读取流程图片和流程模型文件;历史服务用于查询流程历史信息,例如,流程实例、任务、活动、变量等;调度服务用于流程启动后流程节点的驱动,例如,启动流程、终止流程、转办流程。
面向政务服务的工作流管理系统通过封装Activiti工作流引擎API提供统一接口层,其可以包括工作流接口、事件监听接口及组织机构接口中的任意多个。工作流接口用于负责流程管理、流程调度、流程查询等基本功能。事件监听接口用于负责流程启动前后、任务提交前后、流程完成前后等事件的监听回调功能。组织机构接口用于负责流程节点处理人设置所需的用户、角色、机构、部门信息,该工作流管理系统默认使用自有组织机构信息。用户通过展现层用户管理模块设定本系统组织机构信息,同时系统提供扩展能力,可由第三方业务应用系统实现组织机构具体逻辑,流程建模时将自动调用第三方组织机构信息。上述任务在工作流里指的是流程启动后到达某一个节点便产生了对应用户的一个待办任务。
业务层包括:业务流程扩展模块和流程设计器。业务流程扩展模块提供了面向政务的工作流管理特色功能。例如,支持根据自定义业务字段查询待办列表和已办列表的待办扩展和已办扩展模块,支持多部门协同并联审批的子流程模块,支持历史流程办理效率统计分析的效率分析模块。
业务流程扩展模块,包括如下任意一个或多个模块:
离岗移交模块,用于通过设置离岗开关,交接人,离岗时间等信息将离岗期间的审批任务自动转办为预设定交接人。
子流程调用模块,用于通过http远程调用及回调函数实现跨部门间协同审批。
待办扩展模块,用于待办扩展模块,用于根据自定义的业务字段,例如合同号,查询用户的待办任务列表,处理方法如下:流程绘制时或绘制前设置该流程查询待办列表所需的业务字段键值作为查询条件,即待办扩展字段,可设置一个或多个,流程启动时传入预先设置的待办扩展字段值,将流程Id、当前任务Id、当前处理人及扩展字段关联存储,在进行待办任务查询时通过所述自定义扩展字段查询待办。
已办扩展模块,用于通过已办扩展表将流程标识Id、任务标识Id、处理人及扩展字段关联,用户可自定义业务所需的扩展字段,在进行流程查询时通过自定义扩展字段查询已办。
流程跟踪模块,用于根据流程实例Id查询流程所有节点的状态信息,所述状态信息包括:已办节点和待办节点,并绘制流程轨迹图,同时可进行效率分析和性能分析。
效率分析模块,用于通过历史服务查询所有流程历史数据、任务办理开始时间、任务办理结束时间、以及组织机构信息,按部门和/或按员工,展示流程处理数量和/或平均时间,获得流程处理效率。
性能分析模块,用于分析流程引擎每个预设时长内例如每分钟内的请求平均响应时间和/或请求数量。
选人模式扩展模块,用于支持用户审批通过当前节点后,使得用户能够在流程配置的候选人列表里选择下一节点处理人。
流程设计器可以使用例如Angular Web前端框架提供可拖拽的流程建模功能。
流程建模模块,包括如下任意一个或多个子模块:流程绘制子模块、流程导入子模块、流程导出子模块、流程发布子模块、流程上传子模块。上述各功能模块的功能分别是:流程绘制子模块,用于浏览器端可视化拖拽控件绘制流程图;流程导入子模块,用于将现有流程模型文件导入自动生成流程图;流程导出子模块,用于将绘制完成的流程图导出为流程模型文件;流程发布子模块,用于使绘制的流程图生效;流程上传子模块,用于将绘制的流程图上传到对象存储供其他应用读取。
控件支撑模块,包括如下任意一个或多个子模块:用户任务子模块、服务任务子模块、网关子模块、子流程子模块、边界事件子模块。上述各功能模块的功能分别是:用户任务子模块,用于建模需要人工执行的任务;服务任务子模块,用于执行外部的Java类,即用于执行不需要人工干预的自动任务,通过编写外部的Java处理类实现自动审核处理;网关子模块,用于控制流程走向,例如流程中当前节点处理完成后存在多个分支,根据流程配置的业务规则执行一个或多个分支;子流程子模块,用于在流程中嵌套子流程,子流程中可包含其他的用户任务、网关等的子模块;边界事件子模块,用于标识流程的起始节点和结束节点。
展现层,用于提供用户、租户、菜单、权限、流程分类等流程配置信息的管理。该展示层包括如下任意一个或多个功能模块:用户管理模块,用于新增用户、删除用户、以及修改用户;流程分类管理模块,用于新增流程分类、删除流程分类、以及修改流程分类,对所有流程按照分类编码进行分类;租户管理模块,用于新增租户、删除租户、以及修改租户,隔离不同租户下的流程数据;菜单管理模块,用于新增用户菜单、删除用户菜单、以及修改用户菜单;权限管理模块,用于执行新增用户权限、删除用户权限、以及修改用户权限中的至少一个。其中,租户相当于对用户的一个分组,不同租户下的不同用户是隔离的。
发明人发现现有技术在与第三方业务应用系统集成方式上存在耦合度高或者全局事务不一致的重大隐患。为解决该技术问题,本发明实施例的工作流管理系统的流程引擎和统一接口可作为jar包半嵌入方式集成到第三方业务应用系统,避免独立部署通过远程调用导致数据库事务问题全局流程状态不一致。图2是本发明实施例的工作流与第三方业务应用系统半嵌入式集成示意图。如图2所示,包括如下步骤:
S1:第三方业务应用系统通过URL跳转到工作流管理系统流程建模页面进行流程设计,保存并上传流程BPM文件(业务流程建模与标注文件)到对象存储。具体地,BPM文件是流程模型文件,具体是xxx.bpm文件,其是流程图绘制后得到的文件,该文件包含了流程的全部信息,可以导出并导入到其他工作流系统。
S2:工作流管理系统返回BPM文件地址到第三方业务应用系统。具体地,流程图绘制完成后得到上述BPM文件地址。
S3:第三方业务应用系统内部引入工作流系统统一接口层和工作流引擎jar包,通过API导入相应的流程BPM文件,然后进行流程启停、流转等操作。具体地,在软件领域,JAR文件(Java归档,英语:Java Archive)是一种软件包文件格式,通常用于聚合大量的Java类文件、相关的元数据和资源(文本、图片等)文件到一个文件,以便开发Java平台应用软件或库。
本发明实施例基于Activiti工作流引擎进行的统一接口封装,抽象出工作流接口、事件监听接口、组织结构接口,并且组织机构接口可由第三方业务应用系统实现。
本发明实施例与第三方业务应用系统半嵌入式集成方案,通过工作流管理系统的流程设计器模块导出BPM文件到对象存储,第三方业务应用系统通过引入工作流统一接口层和流程引擎模块导入流程BPM文件进一步调度流程。
本发明实施例的流程引擎分库分表方法,基于Mybatis插件机制,根据开发人员设置的需要分库的表以及需要校验分库条件的方法对操作流程数据的sql语句进行拦截,拦截后修改sql语句进行分库分表,分库分表逻辑为只针对流程运行时的数据表和历史表进行分库分表,其他表视为配置表作为复制表存在,如图3所示,该方法包括如下步骤:
S110:在流程配置数据中定义分库分表开关、需要校验分库分表条件的方法调用名称列表、需分库分表的表名列表及分库分表字段。
S120:使用Spring切面定义工作流操作切面服务类,对工作流接口中的所有方法调用进行拦截,获取方法调用名称,判断方法调用名称是否在流程配置数据中定义的需要校验分库分表条件的方法调用名称列表中,不存在则放行,存在则继续执行下一步。
S130:使用Mybatis插件对SQL语法构建器的prepare()方法进行拦截,获取SQL要操作的表名,判断表名是否在流程配置数据中定义的需分库分表的表名列表中,不存在则放行,存在则继续执行下一步。
S140:对需要进行分库分表操作的SQL拦截后增加流程配置数据中定义的分库分表字段。
本发明实施例的上述技术方案的优点包括:
传统工作流管理系统通常要求开发人员熟悉众多工作流引擎API,进行功能扩展的二次开发要求高,对于待办已办任务查询只支持通过待办人为条件进行查询,不利于与第三方业务应用系统集成。本发明实施例的系统对Activiti工作流引擎进行高度抽象,提供简单易用的接口,简化了开发人员的开发难度;提出了根据用户自定义条件查询待办已办的扩展方案;方便与第三方业务应用系统集成,且通过半嵌入方式集成能够保证事务的全局一致性;通过分库分表使本发明实施例的系统具备接受高并发大数据的能力。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
虽然本申请提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的手段可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或终端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境,甚至为分布式数据处理环境)。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (10)
1.一种面向政务的工作流管理系统,其特征在于,包括:
数据存储层,用于存储流程数据及流程配置数据;
流程引擎,用于提供流程资源管理、任务调度、历史数据查询中的任意多个服务;
统一接口层,用于提供多个统一接口;
业务流程扩展模块,用于提供面向政务的工作流管理功能;
流程设计器,用于绘制流程模型,以及配置流程节点的相关信息;
展现层,用于管理流程配置信息。
2.根据权利要求1所述的系统,其特征在于,所述数据存储层包括如下中的任意一个或任意多个:Mysql集群、对象存储、Redis缓存。
3.根据权利要求1所述的系统,其特征在于,所述流程引擎,用于提供如下中的任意一个或任意多个服务:运行时服务、任务服务、资源服务、历史服务、调度服务;
所述运行时服务,用于处理正在运行状态的流程实例和任务;
所述任务服务,用于管理和查询任务信息;
所述资源服务,用于管理流程资源;
所述历史服务,用于查询流程历史信息;
所述调度服务,用于流程启动后,驱动流程节点。
4.根据权利要求1所述的系统,其特征在于,所述统一接口层包括如下中的任意一个或任意多个接口:
工作流接口,用于进行流程管理、流程调度和流程查询;
事件监听接口,用于对流程启动前后、任务提交前后、以及流程完成前后的事件进行监听回调;
组织机构接口,用于为流程节点处理人设置默认的自有组织机构信息,或者,为流程节点处理人设置从第三方业务应用系统调用到的第三方组织机构信息。
5.根据权利要求1所述的系统,其特征在于,所述业务流程扩展模块,包括如下任意一个或多个模块:
离岗移交模块,用于通过设置包括离岗开关、交接人和离岗时间在内的信息,将离岗期间的审批任务自动转办为预设定交接人;
子流程调用模块,用于通过http远程调用及回调函数实现跨部门间协同审批;
待办扩展模块,用于流程绘制时或绘制前设置流程查询待办列表所需的业务字段键值作为查询条件,流程启动时传入预先设置的待办扩展字段值,将流程Id、当前任务Id、当前处理人及扩展字段关联存储,在进行待办任务查询时通过自定义扩展字段查询待办;
已办扩展模块,用于通过已办扩展表将流程Id、任务Id、处理人及扩展字段关联,使得用户能够自定义业务所需的扩展字段,在进行已办任务查询时通过自定义扩展字段查询已办;
流程跟踪模块,用于根据流程实例Id查询流程所有节点的状态信息,所述状态信息包括已办节点和待办节点,并根据流程模型对所述已办节点和所述待办节点进行不同着色,绘制出流程轨迹图;
选人模式扩展模块,用于支持用户审批通过当前节点后,使得用户能够在流程配置的候选人列表里选择下一节点处理人;
效率分析模块,用于通过历史服务查询所有流程历史数据、任务办理开始时间、任务办理结束时间、以及组织机构信息,按部门和/或按员工,展示流程处理数量和/或平均时间,获得流程处理效率;
性能分析模块,用于分析所述流程引擎每个预设时长内的请求平均响应时间和/或请求数量。
6.根据权利要求1所述的系统,其特征在于,所述流程设计器,用于使用Angular Web前端框架提供可拖拽的流程建模功能;所述流程设计器包括:流程建模模块和控件支撑模块;
所述流程建模模块,包括如下任意一个或多个子模块:流程绘制子模块、流程导入子模块、流程导出子模块、流程发布子模块、流程上传子模块;
所述流程绘制子模块,用于浏览器端可视化拖拽控件绘制流程图;
所述流程导入子模块,用于将现有流程模型文件导入自动生成流程图;
所述流程导出子模块,用于将绘制完成的流程图导出为流程模型文件;
所述流程发布子模块,用于使绘制的流程图生效;
所述流程上传子模块,用于将绘制的流程图上传到对象存储供其他应用读取;
所述控件支撑模块,包括如下任意一个或多个子模块:用户任务子模块、服务任务子模块、网关子模块、子流程子模块、边界事件子模块;
所述用户任务子模块,用于建模需要人工执行的任务;
所述服务任务子模块,用于执行外部的Java类;
所述网关子模块,用于控制流程走向;
所述子流程子模块,用于在流程中嵌套子流程;
所述边界事件子模块,用于标识流程的起始节点和结束节点。
7.根据权利要求1所述的系统,其特征在于,所述展现层,包括如下任意一个或多个模块:
用户管理模块,用于新增用户、删除用户、以及修改用户;
流程分类管理模块,用于新增流程分类、删除流程分类、以及修改流程分类,对所有流程按照分类编码进行分类;
租户管理模块,用于新增租户、删除租户、以及修改租户,隔离不同租户下的流程数据;
菜单管理模块,用于新增用户菜单、删除用户菜单、以及修改用户菜单;
权限管理模块,用于新增用户权限、删除用户权限、以及修改用户权限。
8.根据权利要求1所述的系统,其特征在于,所述工作流管理系统的所述流程引擎和所述统一接口作为jar包半嵌入方式集成到第三方业务应用系统。
9.根据权利要求1-8中任一项所述的系统,其特征在于,所述流程引擎,还用于根据基于Mybatis插件机制,根据设置的需要分库的表以及需要校验分库条件的方法对操作流程数据的SQL语句进行拦截,拦截后修改SQL语句进行分库分表。
10.一种根据权利要求9所述的面向政务的工作流管理系统的分库分表方法,其特征在于,包括:
在流程配置数据中定义分库分表开关、需要校验分库分表条件的方法调用名称列表、需分库分表的表名列表及分库分表字段;
使用Spring切面定义工作流操作切面服务类,对工作流接口中的所有方法调用进行拦截,获取方法调用名称,判断所述方法调用名称是否在所述流程配置数据中定义的需要校验分库分表条件的方法调用名称列表中,如果不存在则放行,如果存在则继续执行下一步;
使用Mybatis插件对SQL语法构建器的prepare()方法进行拦截,获取SQL要操作的表名,判断表名是否在流程配置数据中定义的需分库分表的表名列表中,如果不存在则放行,如果存在则继续执行下一步;
对需要进行分库分表操作的SQL拦截后增加所述流程配置数据中定义的分库分表字段。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110659214.XA CN113298503A (zh) | 2021-06-15 | 2021-06-15 | 一种面向政务的工作流管理系统及其分库分表方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110659214.XA CN113298503A (zh) | 2021-06-15 | 2021-06-15 | 一种面向政务的工作流管理系统及其分库分表方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113298503A true CN113298503A (zh) | 2021-08-24 |
Family
ID=77328265
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110659214.XA Pending CN113298503A (zh) | 2021-06-15 | 2021-06-15 | 一种面向政务的工作流管理系统及其分库分表方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113298503A (zh) |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113672205A (zh) * | 2021-08-25 | 2021-11-19 | 广州方舟信息科技有限公司 | 一种基于业务事件驱动的工作流框架 |
CN113805885A (zh) * | 2021-09-18 | 2021-12-17 | 建信金融科技有限责任公司 | 基于工作流引擎的流程式管理系统前端构建系统及方法 |
CN114219451A (zh) * | 2021-12-20 | 2022-03-22 | 华戎信息产业有限公司 | 一种基于可视化引擎的工作流设计方法和系统 |
CN114398577A (zh) * | 2021-12-14 | 2022-04-26 | 上海易校信息科技有限公司 | 一种表单数据提交到系统后重新赋值字段的方法 |
CN114971594A (zh) * | 2022-07-28 | 2022-08-30 | 北京有生深境技术有限公司 | 一种基于抢占式办公模式的工作流引擎 |
CN115063108A (zh) * | 2022-06-21 | 2022-09-16 | 上海浦东发展银行股份有限公司 | 一种基于开源activiti的催收审批平台 |
CN115099774A (zh) * | 2022-06-16 | 2022-09-23 | 神州医疗科技股份有限公司 | 一种基于流程处理引擎的云放疗服务管理方法及系统 |
CN115187223A (zh) * | 2022-09-09 | 2022-10-14 | 浙江融象智慧科技有限公司 | 基于Flowable工作流引擎的集成方法及系统 |
CN115330324A (zh) * | 2022-06-27 | 2022-11-11 | 光大环境科技(中国)有限公司 | 基于Camunda的通用工作流系统 |
CN115827110A (zh) * | 2023-02-15 | 2023-03-21 | 成都铂恩科技有限公司 | 基于部门间协同的可视化流程引擎中流程节点的配置方法 |
CN115857907A (zh) * | 2023-02-06 | 2023-03-28 | 卓望数码技术(深圳)有限公司 | 一种业务流动态装配系统及方法 |
CN116414840A (zh) * | 2023-05-30 | 2023-07-11 | 深圳市华曦达科技股份有限公司 | 基于MySQL数据库分库分表策略中间件的处理方法和装置 |
CN118644371A (zh) * | 2024-08-13 | 2024-09-13 | 中电数据产业集团有限公司 | 数字政务操作系统、服务流程的构建方法、设备及介质 |
CN119003825A (zh) * | 2024-10-21 | 2024-11-22 | 北京道达天际科技股份有限公司 | 基于工作流引擎的气象数据自动化存储发布方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20070011973A (ko) * | 2005-07-22 | 2007-01-25 | 삼성에스디에스 주식회사 | 금융 워크플로우 관리 방법 |
CN101082970A (zh) * | 2007-07-05 | 2007-12-05 | 山东浪潮齐鲁软件产业股份有限公司 | 政务审批工作流引擎系统的实现方法 |
US20100049568A1 (en) * | 2008-08-21 | 2010-02-25 | Clevest Solutions Inc. | System and Method for an Extensible Workflow Management |
CA2639713A1 (en) * | 2008-09-22 | 2010-03-22 | Clevest Solutions Inc. | A system and method for an extensible workflow management |
-
2021
- 2021-06-15 CN CN202110659214.XA patent/CN113298503A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20070011973A (ko) * | 2005-07-22 | 2007-01-25 | 삼성에스디에스 주식회사 | 금융 워크플로우 관리 방법 |
CN101082970A (zh) * | 2007-07-05 | 2007-12-05 | 山东浪潮齐鲁软件产业股份有限公司 | 政务审批工作流引擎系统的实现方法 |
US20100049568A1 (en) * | 2008-08-21 | 2010-02-25 | Clevest Solutions Inc. | System and Method for an Extensible Workflow Management |
CA2639713A1 (en) * | 2008-09-22 | 2010-03-22 | Clevest Solutions Inc. | A system and method for an extensible workflow management |
Non-Patent Citations (7)
Title |
---|
AUTHINE_H3BPM: "BPM工作流之——流程包导入导出", pages 1 - 4, Retrieved from the Internet <URL:https://blog.csdn.net/weixin_42382007/article/details/81130800> * |
DNC8371: "在Activiti中执行自定义查询", pages 1 - 15, Retrieved from the Internet <URL:https://blog.csdn.net/dnc8371/article/details/106704795> * |
LGMAWEI: ".net工作流引擎设计(二):WorkFlowEngine工作流引擎使用简要说明", pages 1 - 5, Retrieved from the Internet <URL:https://blog.csdn.net/lgmawei/article/details/5510130> * |
北海三少: "基于Mybatis的分库实践", pages 1 - 28, Retrieved from the Internet <URL:https://www.jianshu.com/p/13f4a3a9765a> * |
唐华云 等: "工作流管理平台的设计及其在自助服务中的应用", 计算机系统应用, vol. 25, no. 7, 15 July 2016 (2016-07-15), pages 89 - 95 * |
暴裂无球: "springboot自定义分库分表插件+代码", pages 1 - 21, Retrieved from the Internet <URL:https://blog.csdn.net/weixin_42437633/article/details/89765740> * |
曹伟: "工作流技术在社保经办系统中的应用", 劳动保障世界, no. 9, 31 March 2018 (2018-03-31), pages 23 - 24 * |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113672205A (zh) * | 2021-08-25 | 2021-11-19 | 广州方舟信息科技有限公司 | 一种基于业务事件驱动的工作流框架 |
CN113805885A (zh) * | 2021-09-18 | 2021-12-17 | 建信金融科技有限责任公司 | 基于工作流引擎的流程式管理系统前端构建系统及方法 |
CN113805885B (zh) * | 2021-09-18 | 2023-06-02 | 建信金融科技有限责任公司 | 基于工作流引擎的流程式管理系统前端构建系统及方法 |
CN114398577A (zh) * | 2021-12-14 | 2022-04-26 | 上海易校信息科技有限公司 | 一种表单数据提交到系统后重新赋值字段的方法 |
CN114219451A (zh) * | 2021-12-20 | 2022-03-22 | 华戎信息产业有限公司 | 一种基于可视化引擎的工作流设计方法和系统 |
CN115099774B (zh) * | 2022-06-16 | 2025-04-22 | 神州医疗科技股份有限公司 | 一种基于流程处理引擎的云放疗服务管理方法及系统 |
CN115099774A (zh) * | 2022-06-16 | 2022-09-23 | 神州医疗科技股份有限公司 | 一种基于流程处理引擎的云放疗服务管理方法及系统 |
CN115063108A (zh) * | 2022-06-21 | 2022-09-16 | 上海浦东发展银行股份有限公司 | 一种基于开源activiti的催收审批平台 |
CN115330324A (zh) * | 2022-06-27 | 2022-11-11 | 光大环境科技(中国)有限公司 | 基于Camunda的通用工作流系统 |
CN114971594B (zh) * | 2022-07-28 | 2022-10-25 | 北京有生深境技术有限公司 | 一种基于抢占式办公模式的工作流引擎 |
CN114971594A (zh) * | 2022-07-28 | 2022-08-30 | 北京有生深境技术有限公司 | 一种基于抢占式办公模式的工作流引擎 |
CN115187223A (zh) * | 2022-09-09 | 2022-10-14 | 浙江融象智慧科技有限公司 | 基于Flowable工作流引擎的集成方法及系统 |
CN115857907A (zh) * | 2023-02-06 | 2023-03-28 | 卓望数码技术(深圳)有限公司 | 一种业务流动态装配系统及方法 |
CN115857907B (zh) * | 2023-02-06 | 2023-05-23 | 卓望数码技术(深圳)有限公司 | 一种业务流动态装配系统及方法 |
CN115827110A (zh) * | 2023-02-15 | 2023-03-21 | 成都铂恩科技有限公司 | 基于部门间协同的可视化流程引擎中流程节点的配置方法 |
CN116414840A (zh) * | 2023-05-30 | 2023-07-11 | 深圳市华曦达科技股份有限公司 | 基于MySQL数据库分库分表策略中间件的处理方法和装置 |
CN118644371A (zh) * | 2024-08-13 | 2024-09-13 | 中电数据产业集团有限公司 | 数字政务操作系统、服务流程的构建方法、设备及介质 |
CN119003825A (zh) * | 2024-10-21 | 2024-11-22 | 北京道达天际科技股份有限公司 | 基于工作流引擎的气象数据自动化存储发布方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113298503A (zh) | 一种面向政务的工作流管理系统及其分库分表方法 | |
US10162612B2 (en) | Method and apparatus for inventory analysis | |
US7418453B2 (en) | Updating a data warehouse schema based on changes in an observation model | |
JP4676199B2 (ja) | カスタマのアクティビティを統合、管理、および調整するためのシステムおよび方法 | |
US7412399B1 (en) | Designing business processes using distributed process flows | |
US7836103B2 (en) | Exchanging project-related data between software applications | |
US8630969B2 (en) | Systems and methods for implementing business rules designed with cloud computing | |
US20010044738A1 (en) | Method and system for top-down business process definition and execution | |
CN112148788A (zh) | 异构数据源的数据同步方法及系统 | |
US20130166602A1 (en) | Cloud-enabled business object modeling | |
CN111176867B (zh) | 数据共享交换及开放应用平台 | |
US9513874B2 (en) | Enterprise computing platform with support for editing documents via logical views | |
WO1997048045A1 (en) | Activity based long-lived transaction system | |
CN111930354B (zh) | 一种用于软件开发的框架组件系统及其构建方法 | |
CN101013426A (zh) | 使用了连接关系信息的信息管理系统 | |
CN109669767B (zh) | 一种面向多类型上下文依赖的任务封装和调度方法及系统 | |
US20180225017A1 (en) | Merging applications | |
CN103186384A (zh) | 一种面向业务组件的软件设计分析系统及其使用方法 | |
CN113537943A (zh) | 一种通用工作流引擎及其构建方法 | |
US7849442B2 (en) | Application requirement design support system and method therefor | |
CN117933685A (zh) | 业务流程实现方法、装置、电子设备及存储介质 | |
CN104040537A (zh) | 数据库查询的自动生成和执行的系统及方法 | |
CN112925655A (zh) | 划分服务的解耦系统及其方法 | |
Kim et al. | Management of software test using CASE tool | |
Leida et al. | Facing big data variety in a model driven approach |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |