Skip to content

Activiti工作流开发说明

Exrick edited this page Mar 9, 2019 · 15 revisions

工作流基于Activiti 5.22,已开发基本流程相关功能,剩下的工作只需开发表单的增删改即可,具体下面以请假申请为例。 集成的工作流编辑器在后台静态资源中,记得在系统配置中设置访问域名(开发时直接填后台 http://localhost:8888 即可),部署后将相关请求转发到后台

  • 后台仅需开发相应表单增删改接口,存储至单张表中,如t_leave,唯一需注意的地方为新增接口(添加新数据时)需关联业务act_buniess表,向其添加流程和表ID等信息,参考LeaveController

  • 前台仅需开发相应单个表单页面(可以通过路由传参实现相应按钮显示),参考leave.vue(以菜单中配置的该路由名name跳转)

  • 最后记得在系统中配置相应流程信息

    • 数据字典"业务表"中添加相应业务表名,如"t_leave";"业务表单路由"中添加相应前端表单组件路由名,如"leave"
    • 流程管理中编辑填写关联刚开发的表单信息,业务表的作用主要为用户删除申请时关联删除相应表单数据,表单路由名作用为跳转显示刚前端开发的表单页面

    QQ截图20190113212518.png

  • 流程节点审批人可根据角色、部门、人员设置多个,设置后默认勾选,为或签(任意一人审批,流程进入下一步,即先到先审)

  • 如何实现会签?

    • 请增加审批节点!

    QQ截图20190118111505.png

若部署后流程图中文字符无法显示,是因为服务器环境jdk中无相应中文字体,百度安装即可(配置文件已配置微软雅黑,若未配置默认宋体)

绑定监听器示例

常见的业务需求需要完成一个审批流程后改变原数据状态、通知审批结果消息或执行其他操作,在结束节点上绑定监听器即可,一旦结束说明流程全部通过,触发自定义业务。

  • 绘制流程图填写定义的监听器类

    WX20190309-233809@2x.png

    WX20190309-233945@2x.png

  • 监听器示例代码

@Slf4j
public class MyListener implements ExecutionListener {

    @Autowired
    private LeaveService leaveService;

    @Override
    public void notify(DelegateExecution delegateExecution) throws Exception {
        
        // 获取关联业务表ID变量(启动流程代码里已存入tableId,此处直接获取即可)
        String tableId = (String) delegateExecution.getVariable("tableId");
        log.info(tableId);
        Leave leave = leaveService.get(tableId);
        ... ....
    }
}