0. 前言
前些时间,基于流程引擎activiti做了一个审批功能,但是扩展性并不是很好,对于新的流程的开发量还是比较大。于是需要进行升级改造,增强其通用性。
1. 场景
对于不同的业务类型,需要接入统一的审批流程进行审批。需要满足以下要求:
- 不同业务类型需传入不同流程变量,以便于配置流转条件;
- 流程配置界接入自有业务系统,支持审批人的选择
- 审批人类型包括但不限于用户、角色
- 流转条件配置需要简化,提高用户体验。
- 流程配置界面支持多语言
2. 思路及方案设计
-
需求:不同业务类型需传入不同流程变量,以便于配置流转条件
方案:提供统一接口发起流程,入参传入流程变量 -
需求:流程配置界接入业务系统,支持审批人的选择
方案:改造activiti默认配置界面主要修改文件为:
properties-assignment-controller.js
assignment-popup.html -
需求:审批人类型包括但不限于用户、角色
方案:统一作为候选人处理,以不同前缀区分,例如对于用户:user.10001,对于角色:role.10001等主要修改文件为:
properties-assignment-controller.js
assignment-popup.html -
需求:流转条件配置需要简化,提高用户体验
方案:引入query builder组件,可视化配置条件,并将条件sql转化为流程引擎支持的UEL表达式。需要全局引入querybuilder库。需要修改的文件为
condition-expression-popup.html
properties-condition-expression-controller.jsGo to : QueryBuilder文档
-
需求:流程配置界面支持多语言
方案:改造activiti前端和后端语言配置部分代码,实现多语言切换。需要修改地方有:
(1) 后端修改:获取左侧图标栏配置的json文件,中文时取得中文json,英文时取得英文json
(2) 前端修改:需要在i18n文件夹下新增语言配置文件;然后修改app.js里的语言配置:
$translateProvider.preferredLanguage(‘your language’);
3. 实现效果
审核人选择页面:
流转条件配置页面: